Skip to content

docs(device): document the RobStride backend of the reBot DevArm leader#783

Open
johnnynunez wants to merge 1 commit into
NVIDIA:mainfrom
johnnynunez:docs/rebot-devarm-robstride
Open

docs(device): document the RobStride backend of the reBot DevArm leader#783
johnnynunez wants to merge 1 commit into
NVIDIA:mainfrom
johnnynunez:docs/rebot-devarm-robstride

Conversation

@johnnynunez

@johnnynunez johnnynunez commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Description

Follow-up to #761: documents the RobStride build of the reBot DevArm leader plugin on the Generic Joint-Space Device page (docs/source/device/joint_space.rst), matching the backend added to #729.

Changes

  • Intro + section intro: the arm ships in two motor builds, and the plugin picks the backend from the shape of the device argument (serial path -> Damiao, SocketCAN interface name -> RobStride); the synthetic-fallback note moved up since it is backend-independent.
  • New subsection "The RobStride build" (anchor rebot-devarm-robstride-build): RobStrideBus and the leader subset of the RobStride private 29-bit extended-id CAN protocol (stop frame 0x04 for back-drive, alternating 0x11 parameter reads of mechPos/mechVel, exact-f32 model-independent decode, 45 Hz per channel at the 90 Hz loop), SocketCAN bring-up, run/probe commands, shared probe exit codes, and calibration-file semantics on this backend.

Notes

Checklist

  • Sphinx build clean: sphinx-build -b html -W --keep-going -> build succeeded, 0 warnings
  • SKIP=check-copyright-year pre-commit run clean on the touched file
  • DCO sign-off

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Updated Generic Joint-Space Device documentation to cover both Damiao and RobStride motor builds for the reBot DevArm leader.
    • Clarified automatic backend selection based on the device argument and documented synthetic fallback behavior.
    • Added RobStride setup, SocketCAN requirements, probing, protocol details, exit codes, and calibration guidance.

Extend the reBot DevArm leader section of the joint-space device docs:
note that the arm ships in two motor builds selected by the shape of
the device argument (serial path -> Damiao, SocketCAN interface name ->
RobStride), and add a RobStride build subsection covering RobStrideBus
(stop frame + alternating mechPos/mechVel single-parameter reads over
the private 29-bit extended-id CAN protocol), SocketCAN bring-up, run
and probe commands, and the shared calibration file semantics.

Signed-off-by: Johnny <johnnync13@gmail.com>

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

📝 Docs preview is not auto-deployed for fork PRs.

A maintainer with write access to NVIDIA/IsaacTeleop can deploy a preview by
commenting /preview-docs on this PR. Once deployed, the preview
will live at:

https://nvidia.github.io/IsaacTeleop/preview/pr-783/

@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The reBot DevArm leader documentation now identifies Damiao and RobStride motor builds, explains backend selection from the device argument, and documents the synthetic trajectory fallback when no device is specified. A new RobStride subsection covers SocketCAN setup, plugin invocation, probing, CAN behavior, decoded units, probe exit codes, and calibration-file column expectations.

Estimated code review effort: 1 (Trivial) | ~3 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: adding RobStride backend documentation for the reBot DevArm leader.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@johnnynunez

Copy link
Copy Markdown
Contributor Author

viz @jiwenc-nv

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/source/device/joint_space.rst`:
- Line 156: Update the register reference for mechVel in the documented
per-motor cycle reply description to 0x701B, leaving the existing 0x7019
reference unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 302330b0-20ac-48df-a5e4-25136bda7990

📥 Commits

Reviewing files that changed from the base of the PR and between 2a67ed4 and 1ba2449.

📒 Files selected for processing (1)
  • docs/source/device/joint_space.rst

implements the leader subset of the RobStride private 29-bit extended-id CAN protocol directly --
again no SDK dependency: it sends the **stop** frame (comm type ``0x04``) so the arm can be
back-driven by hand, then alternates single-parameter reads (comm type ``0x11``) of ``mechPos``
(``0x7019``) and ``mechVel`` (``0x701A``) per motor per cycle. Replies carry exact little-endian

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect the doc section and look for register references in the repo.
git ls-files docs/source/device/joint_space.rst
echo '---'
nl -ba docs/source/device/joint_space.rst | sed -n '145,170p'
echo '--- rg 0x701A/0x701B ---'
rg -n '0x701A|0x701B|mechVel|iqf' docs . -g '!**/.git/**' || true

Repository: NVIDIA/IsaacTeleop

Length of output: 235


🌐 Web query:

RobStride manual mechVel 0x701B 0x701A iqf

💡 Result:

In the technical documentation for RobStride actuators and compatible controllers (such as the CyberGear series), the hex addresses 0x701A and 0x701B correspond to read-only parameters used for monitoring motor state [1][2]. 0x701A (iqf): Represents the filtered q-axis current (Iq) value [1][3][4]. It is typically a 4-byte floating-point (f32) value indicating the filtered current feedback in Amperes (A) [1][5]. 0x701B (mechVel): Represents the load-side velocity (mechanical velocity) [1][3][5]. It is also a 4-byte floating-point (f32) value, with the unit typically being radians per second (rad/s) [1][5]. Because these specific parameter ranges (e.g., the valid current or speed limits) vary significantly depending on the specific model of the RobStride motor (e.g., RS00, RS02, RS03) [3][6][7], you should consult the instruction manual specific to your hardware model for the exact operating ranges [3][6][7]. These parameters are frequently accessed in motion control applications, such as via the MotorBridge SDK, to obtain real-time feedback [1][8].

Citations:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Show the relevant lines with a portable line-numbering method.
sed -n '150,162p' docs/source/device/joint_space.rst | cat -n

Repository: NVIDIA/IsaacTeleop

Length of output: 1043


Use 0x701B for mechVel. 0x701A is iqf, so this line points readers to the wrong register and should be updated to the velocity address.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/source/device/joint_space.rst` at line 156, Update the register
reference for mechVel in the documented per-motor cycle reply description to
0x701B, leaving the existing 0x7019 reference unchanged.

Source: MCP tools

@jiwenc-nv

Copy link
Copy Markdown
Collaborator

/preview-docs

@github-actions

Copy link
Copy Markdown
Contributor

❌ No successful Build & deploy docs run found for commit 1ba24497. Wait for the build to finish (or push a commit that touches docs/ to trigger one), then re-comment /preview-docs.

@jiwenc-nv

Copy link
Copy Markdown
Collaborator

/preview-docs

@github-actions

Copy link
Copy Markdown
Contributor

✅ Preview deployed: https://NVIDIA.github.io/IsaacTeleop/preview/pr-783/

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants