From 3b73dc719c78dd96106cda40d575d88b97534452 Mon Sep 17 00:00:00 2001 From: Grant Mulitz Date: Fri, 22 Aug 2025 15:49:29 -0400 Subject: [PATCH 1/2] get poses --- src/components/pose-tracker/client.ts | 18 +++++++++++++++++- src/components/pose-tracker/pose-tracker.ts | 7 ++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/components/pose-tracker/client.ts b/src/components/pose-tracker/client.ts index 83947ebe3..9f2b3df78 100644 --- a/src/components/pose-tracker/client.ts +++ b/src/components/pose-tracker/client.ts @@ -2,10 +2,11 @@ import { type JsonValue, Struct } from '@bufbuild/protobuf'; import type { CallOptions, PromiseClient } from '@connectrpc/connect'; import { PoseTrackerService } from '../../gen/component/posetracker/v1/pose_tracker_connect'; import type { RobotClient } from '../../robot'; -import type { Options } from '../../types'; +import type { Options, PoseInFrame } 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>; } From 1008a528b4746e29d667e1d235b1823911c4eb60 Mon Sep 17 00:00:00 2001 From: Grant Mulitz Date: Fri, 22 Aug 2025 16:00:49 -0400 Subject: [PATCH 2/2] remove unused import --- src/components/pose-tracker/client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/pose-tracker/client.ts b/src/components/pose-tracker/client.ts index 9f2b3df78..f90ae56ff 100644 --- a/src/components/pose-tracker/client.ts +++ b/src/components/pose-tracker/client.ts @@ -2,7 +2,7 @@ import { type JsonValue, Struct } from '@bufbuild/protobuf'; import type { CallOptions, PromiseClient } from '@connectrpc/connect'; import { PoseTrackerService } from '../../gen/component/posetracker/v1/pose_tracker_connect'; import type { RobotClient } from '../../robot'; -import type { Options, PoseInFrame } from '../../types'; +import type { Options } from '../../types'; import { doCommandFromClient } from '../../utils'; import type { PoseTracker } from './pose-tracker'; import { GetGeometriesRequest } from '../../gen/common/v1/common_pb';