Skip to content

Update frame system API docs for the C++ SDK frame system client - #5424

Merged
Eliza Farley (elizafarley) merged 3 commits into
mainfrom
claude/update-frame-system-api-cpp
Oct 17, 2026
Merged

Eliza Farley (elizafarley) merged 3 commits into
mainfrom
claude/update-frame-system-api-cpp

Conversation

@shannonbradshaw

Copy link
Copy Markdown
Collaborator

Source changes

  • RSDK-14590, RSDK-14591, RSDK-14592 — viam-cpp-sdk#720: RobotClient::transform_pcd, a FrameSystem service client (get_frame_system_config, get_pose, transform_pose, transform_pcd), and $framesystem added to every C++ module's dependencies. Released in C++ SDK v0.42.0 (git tag --contains e72de4a: releases/v0.42.0).
  • Documents: no DOCS ticket found (the three keys and their parent RSDK-14586 have none).

Docs changes

  • docs/motion-planning/reference/frame-system-api.md:
    • The intro said Go module authors were "the one exception" who can use the frame system as a dependency. C++ module authors now can too.
    • "Method availability varies by SDK: Go exposes all four, while Python reaches GetPose through the motion service" was wrong. Python has had RobotClient.get_pose since v0.83.0 (the page's own GetPose section says so), TypeScript exposes all four, and the C++ client now does too.
    • "Service names" now has separate Go and C++ instructions. In C++, the frame system arrives in the dependencies under FrameSystem::public_name() without being listed in validate (as in the SDK's complex/base example).

How I found these

  • Upcoming items cpp-sdk-framesystem-client and cpp-sdk-camera-default-reference-frame graduated on today's C++ release. Grep of transform_pcd, $framesystem, framesystem.PublicServiceName and C++ across docs/ and static/.
  • Pre-PR checks: prettier (repo-local 3.2.5), markdownlint, vale 3.12.0, frontmatter_rules.py and make build-prod passed.

Generated by daily docs change agent

🤖 Generated with Claude Code

https://claude.ai/code/session_01XwNXFK9ZE8y7xJ9BCaDCib


Generated by Claude Code

viam-cpp-sdk#720 (RSDK-14590, RSDK-14591, RSDK-14592), released in
v0.42.0, adds RobotClient::transform_pcd, a FrameSystem service client,
and seeds $framesystem into every C++ module's dependencies. The page
said Go module authors were the only ones who could depend on the frame
system, and that Python reaches GetPose only through the motion service,
which has not been true since Python SDK v0.83.0.
@netlify

netlify Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for viam-docs ready!

Name Link
🔨 Latest commit 29e5c2f
🔍 Latest deploy log https://app.netlify.com/projects/viam-docs/deploys/6ad3b518bb8fe7eec581469f
😎 Deploy Preview https://deploy-preview-5424--viam-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 38 (🔴 down 3 from production)
Accessibility: 100 (no change from production)
Best Practices: 100 (no change from production)
SEO: 92 (no change from production)
PWA: 60 (no change from production)
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

@viambot viambot added the safe to build This pull request is marked safe to build from a trusted zone label Oct 15, 2026
@elizafarley

Eliza Farley (elizafarley) commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Docs review: Ready to merge

This PR updates the frame system API reference for the new C++ frame system client, and fixes the wrong statement about which SDKs have which methods. The only commit since the last review is 29e5c2f, a merge from main. It doesn't touch frame-system-api.md, so the page content matches what was reviewed and verified before: all three earlier findings are fixed, and every technical claim matches SDK source.

CI: Pending on the merge commit: htmltest and runner / vale (required), plus prettier, markdownlint, and the Netlify preview. Frontmatter, moved-files, and codespell checks pass. All checks passed on 7ed6f66. Merge once the required ones go green.

Docs health: No regressions

Verified against source (13 claims)
  • C++ FrameSystem service has get_frame_system_config, get_pose, transform_pose, transform_pcd: viamrobotics/viam-cpp-sdk src/viam/sdk/services/framesystem.hpp:64,89,107,117 (releases/v0.42.0)
  • FrameSystem::public_name() is $framesystem: viam-cpp-sdk src/viam/sdk/services/framesystem.cpp:11-14
  • Every modular resource gets the frame system in deps without listing it in validate, only when there's a viam-server parent: viam-cpp-sdk src/viam/sdk/module/service.cpp:252-257
  • Check-then-std::dynamic_pointer_cast pattern: viam-cpp-sdk src/viam/examples/modules/complex/base/impl.cpp:54-57
  • C++ RobotClient exposes all four in v0.42.0: viam-cpp-sdk src/viam/sdk/robot/client.hpp:232,243,253,275
  • C++ RobotClient::transform_pcd first appears in v0.42.0: absent from src/viam/sdk/robot/client.hpp at releases/v0.41.0
  • Python RobotClient exposes all four: viamrobotics/viam-python-sdk src/viam/robot/client.py:691,710,754,802
  • Python RobotClient.get_pose from v0.83.0: commit 514477fb4 (Fix different use of "remote" #1270), first in tag v0.83.0
  • TypeScript client exposes all four: viamrobotics/viam-typescript-sdk src/robot/client.ts:1238,1245,1265,1330
  • Go RobotClient exposes all four: viamrobotics/rdk robot/client/client.go:1182,1200,1235,1262
  • Flutter robot client exposes none of the four: no matches under viamrobotics/viam-flutter-sdk lib/ (outside generated protos) on main
  • machine.transform_pcd example name matches the Python method: viam-python-sdk src/viam/robot/client.py:802
  • Go framesystem.PublicServiceName is $framesystem: viamrobotics/rdk robot/framesystem/framesystem.go:36

Automated review by Claude. Rerunning the review updates this comment.

Copy link
Copy Markdown
Collaborator Author

Thanks. All three are fixed in 7ed6f66:

  • The availability sentence now says C++ exposes transform_pcd from v0.42.0. v0.41.1's client.hpp has the other three methods but not this one.
  • It also says the Flutter SDK doesn't expose these methods on its robot client. I checked: Flutter has only the motion service's getPose.
  • The C++ bullet now says the dependency is present only under a viam-server parent, so check that it exists and then std::dynamic_pointer_cast it, which matches the SDK's complex/base example.

Generated by Claude Code

@elizafarley
Eliza Farley (elizafarley) merged commit c747b09 into main Oct 17, 2026
13 checks passed
@elizafarley
Eliza Farley (elizafarley) deleted the claude/update-frame-system-api-cpp branch October 17, 2026 17:52
@github-actions

Copy link
Copy Markdown

🔎💬 Inkeep AI search and chat service is syncing content for source 'Viam Docs'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

safe to build This pull request is marked safe to build from a trusted zone

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants