diff --git a/src/components/pose-tracker/client.ts b/src/components/pose-tracker/client.ts index 83947ebe3..f90ae56ff 100644 --- a/src/components/pose-tracker/client.ts +++ b/src/components/pose-tracker/client.ts @@ -6,6 +6,7 @@ import type { Options } from '../../types'; import { doCommandFromClient } from '../../utils'; import type { PoseTracker } from './pose-tracker'; import { GetGeometriesRequest } from '../../gen/common/v1/common_pb'; +import { GetPosesRequest } from '../../gen/component/posetracker/v1/pose_tracker_pb'; /** * A gRPC-web client for the Generic component. @@ -46,4 +47,19 @@ export class PoseTrackerClient implements PoseTracker { callOptions ); } + + async getPoses( + bodyNames?: string[], + extra = {}, + callOptions = this.callOptions + ) { + const request = new GetPosesRequest({ + name: this.name, + bodyNames, + extra: Struct.fromJson(extra), + }); + + const response = await this.client.getPoses(request, callOptions); + return response.bodyPoses; + } } diff --git a/src/components/pose-tracker/pose-tracker.ts b/src/components/pose-tracker/pose-tracker.ts index e606958b6..7fef881c8 100644 --- a/src/components/pose-tracker/pose-tracker.ts +++ b/src/components/pose-tracker/pose-tracker.ts @@ -1,4 +1,4 @@ -import type { Geometry } from '../../gen/common/v1/common_pb'; +import type { Geometry, PoseInFrame } from '../../gen/common/v1/common_pb'; import type { Struct, Resource } from '../../types'; /** Represents a generic component. */ @@ -23,4 +23,9 @@ export interface PoseTracker extends Resource { * API](https://docs.viam.com/dev/reference/apis/components/generic/#getgeometries). */ getGeometries: (extra?: Struct) => Promise; + + getPoses: ( + bodyNames?: string[], + extra?: Struct + ) => Promise>; }