DOCS-4801: Document arm MoveThroughJointPositionsStreamed for Go and C++ - #5317
Open
Eliza Farley (elizafarley) wants to merge 3 commits into
Open
Eliza Farley (elizafarley) wants to merge 3 commits into
Eliza Farley (elizafarley) wants to merge 3 commits into
Conversation
api#874 added the MoveThroughJointPositionsStreamed bidi-streaming RPC to the Arm API. rdk#6192 and viam-cpp-sdk#675 implement it in the Go and C++ SDKs; the universal-robots and ufactory-xarm modules both support it. The Python and TypeScript SDKs do not expose it yet, so neither is documented here. Adds a MoveThroughJointPositionsStreamed section to the joint-positions guide with Go and C++ examples, the unit split across the three interfaces, and two troubleshooting entries. Adds the method to the generated arm API reference. The generator crashed on its Go signature: parse_method_usage() only handled the bare `ch chan Tick` shape, so directional channel params fell through every branch and left type_link unbound. Handle them and keep the direction arrow HTML-escaped so the rendered link text shows it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
✅ Deploy Preview for viam-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Member
|
See also #5318 |
Member
|
Related Python changes are ready but awaiting SDK release: #5284 |
Member
|
FYI the Python SDK changes for streaming just merged in viamrobotics/viam-python-sdk#1242 |
…reamed viam-python-sdk#1242 merged, adding Python client support for the streamed arm RPC. Splits MoveThroughJointPositionsStreamed out of move-by-joint-positions.md into its own page now that three SDKs cover it, and fills in comparison-table rows on overview.md that were missing for existing pages. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Eliza Farley (elizafarley)
requested a review
from Andrew C. Morrow (acmorrow)
September 17, 2026 13:32
Andrew C. Morrow (acmorrow)
approved these changes
Sep 17, 2026
Andrew C. Morrow (acmorrow)
left a comment
Member
There was a problem hiding this comment.
LGTM, though if you want to more robustly fix the handling for channels in the update script, you might want to take a closer look at what the other PR did there.
Unescape HTML entities before matching channel direction tokens, clear per-parameter state to prevent neighbor-leaking, and add a fallback for unhandled parameter shapes. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Source changes
MoveThroughJointPositionsStreamedbidi-streaming RPC toArmService, withTrajectoryPoint,JointVelocities,JointAccelerations, andKinematicConstraintsmessagesNow covers Python, Go, and C++. TypeScript still has no implementation and no open PR.
Python support isn't in a PyPI release yet (latest
viam-sdkis 0.80.0, from 2026-07-28) — documented againstmain, the same convention already used here for Go and C++. C++ has a client/server implementation and is noted as available, but is intentionally not walked through with its own example (see below).Docs changes
docs/motion-planning/move-an-arm/stream-joint-positions.md(new page): splitMoveThroughJointPositionsStreamedout ofmove-by-joint-positions.mdinto its own how-to, now that three SDKs cover it. Covers theTrajectoryPointcontract, batching semantics, Python and Go stream examples, safety-heartbeat behavior, and troubleshooting. The SDK-availability note lists C++ as available, but there's no C++ tab or example — we don't carry C++ documentation support for this method, so the page deliberately says nothing more about it than that.docs/motion-planning/move-an-arm/move-by-joint-positions.md: removed theMoveThroughJointPositionsStreamedsection (moved to the new page) and points readers there instead. Updated the comparison table and "What's next" links accordingly.docs/motion-planning/move-an-arm/overview.md: the arm-motion comparison table was missing rows for two existing pages, Relax a goal with a pose cloud and Move through waypoints — added them, plus a new row for the streamed page and one for the arm-levelMoveToPositionCartesian call. Added a card link for the new page.static/include/components/apis/generated/arm.md: adds the Python tab forMoveThroughJointPositionsStreamed(Go tab already existed). Regenerated, not hand-edited..github/workflows/sdk_protos_map.csv: added the Python method-name mapping for the row.How I found these
api-1e83f5d-arm-streaming-rpcin the docs change agent's state was gated on Python landing; viam-python-sdk#1242 merged 2026-09-15, ungating it.Notes for reviewers
viam:ufactoryandviam:universal-robotsmodules.batches, caller closesresponsesonly after the call returns) and the Python async-iterator shape are the parts most worth a second pair of eyes.viamrobotics/rdk#6386(open) adds a README and runnable example for the higher-levelDoCommandstreaming interface on the motion service (rdk#6261). That is a different layer from this arm RPC and is not documented here.hugo --minifyproduction build all pass.Known stale content not fixed here
move-by-joint-positions.mdstill saysMoveThroughJointPositions(the unary method) is "not currently exposed by the Python SDK." viam-python-sdk#1250 added it on 2026-08-25 and python.viam.dev already publishes it, but it is not in a PyPI release yet (latest is 0.80.0, 2026-07-28). Left alone deliberately — it needs its own decision about documenting main versus released, and it is outside this PR's scope.Generated by daily docs change agent