Skip to content

DOCS-4801: Document arm MoveThroughJointPositionsStreamed for Go and C++ - #5317

Open
Eliza Farley (elizafarley) wants to merge 3 commits into
mainfrom
claude/DOCS-4801-arm-streaming
Open

Eliza Farley (elizafarley) wants to merge 3 commits into
mainfrom
claude/DOCS-4801-arm-streaming

Conversation

@elizafarley

@elizafarley Eliza Farley (elizafarley) commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Source changes

Now 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-sdk is 0.80.0, from 2026-07-28) — documented against main, 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): split MoveThroughJointPositionsStreamed out of move-by-joint-positions.md into its own how-to, now that three SDKs cover it. Covers the TrajectoryPoint contract, 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 the MoveThroughJointPositionsStreamed section (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-level MoveToPosition Cartesian call. Added a card link for the new page.
  • static/include/components/apis/generated/arm.md: adds the Python tab for MoveThroughJointPositionsStreamed (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

  • Backlog item api-1e83f5d-arm-streaming-rpc in the docs change agent's state was gated on Python landing; viam-python-sdk#1242 merged 2026-09-15, ungating it.
  • Python semantics confirmed against the merged SDK PR; Go and C++ semantics as previously verified for the initial version of this PR.

Notes for reviewers

  • Suggested reviewer: Andrew C. Morrow (@acmorrow) (raised the gap and confirmed C++ / UR / xarm support).
  • Streaming is documented as supported by the viam:ufactory and viam:universal-robots modules.
  • The Go ownership rules (caller closes batches, caller closes responses only 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-level DoCommand streaming interface on the motion service (rdk#6261). That is a different layer from this arm RPC and is not documented here.
  • Pre-PR checks: prettier 3.2.5, markdownlint, vale 3.12.0, and hugo --minify production build all pass.

Known stale content not fixed here

move-by-joint-positions.md still says MoveThroughJointPositions (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

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>
@netlify

netlify Bot commented Sep 15, 2026

Copy link
Copy Markdown

Deploy Preview for viam-docs ready!

Name Link
🔨 Latest commit de65892
🔍 Latest deploy log https://app.netlify.com/projects/viam-docs/deploys/6aac0357bf3c330008d1c6d2
😎 Deploy Preview https://deploy-preview-5317--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: 41 (🔴 down 3 from production)
Accessibility: 99 (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 Sep 15, 2026
@acmorrow

Copy link
Copy Markdown
Member

See also #5318

@jeremyrose-viam

Copy link
Copy Markdown
Member

Related Python changes are ready but awaiting SDK release: #5284

@acmorrow

Copy link
Copy Markdown
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>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread .github/workflows/update_sdk_methods.py Outdated
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>
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