Skip to content

Fix: stale API usage in the teleop session doc - #1009

Open
xsun2445 wants to merge 1 commit into
mainfrom
xinghuas/fix-teleop-session-doc
Open

Fix: stale API usage in the teleop session doc#1009
xsun2445 wants to merge 1 commit into
mainfrom
xinghuas/fix-teleop-session-doc

Conversation

@xsun2445

@xsun2445 xsun2445 commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Description

The Python blocks in docs/source/getting_started/teleop_session.rst predated the single-sided GripperRetargeter and the TensorGroup input contract, so several of them raised on the first call rather than being merely imprecise. A reader copying the Quick Start got an ImportError; a reader copying the "Before" block got three different exceptions in sequence.

Quick Start

  • GripperRetargeter moved to isaacteleop.retargeters and now requires a GripperRetargeterConfig
  • one retargeter handles one hand and emits gripper_command, not gripper_left / gripper_right

Before vs After

  • oxr.OpenXRSession.create(...) does not exist — construct the class directly
  • the source owns its ControllerTracker, so take it from controllers.get_tracker(); a standalone deviceio.ControllerTracker() is never registered with the session and raises RuntimeError: Tracker implementation not found
  • pipeline inputs must be TensorGroups — poll_tracker() replaces the hand-built dict of lists, which raised AttributeError: 'list' object has no attribute 'group_type'

Also

  • OpenXRSessionHandles import path: teleopcore.oxr -> isaacteleop.oxr (teleopcore is not importable)
  • corrected the gripper example path and added the two-sided example reference
  • added the missing teleop_control_pipeline and sinks fields to the TeleopSessionConfig listing

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Testing

Every code block was extracted into a scratch harness and executed against a live
CloudXR session (CloudXR Runtime 6.3.0, Quest3 device profile, web-client emulator),
rather than only checked against the source. Each block ran with a bounded loop and
exited 0.

Not covered: the pm.PluginManager([...]) / plugin_manager.start(...) lines in the
"Before" block remain ... placeholders in a deliberately schematic section, and were
not executed.

Platform: Ubuntu, Python 3.11.15, isaacteleop 1.5.115rc1.

Checklist

  • I have read and understood the contribution guidelines
  • I have run the linter and formatter with SKIP=check-copyright-year pre-commit run --all-files
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix/feature works (or explained why not)
  • I have signed off all my commits (git commit -s) per the DCO

Summary by CodeRabbit

  • Documentation
    • Updated the teleoperation quick-start guide with the current two-sided gripper setup.
    • Clarified optional control pipeline and sink configuration for teleoperation sessions.
    • Updated OpenXR import instructions and complete-example references.
    • Refreshed setup examples to include combined gripper commands and tracker polling.

Signed-off-by: Xinghua Sun <xinghuas@nvidia.com>
@xsun2445
xsun2445 requested review from ivany-nv and jiwenc-nv August 24, 2026 23:41
@coderabbitai

coderabbitai Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 4d8b1518-6ef1-42ce-a8f2-bd9f6a93a2b2

📥 Commits

Reviewing files that changed from the base of the PR and between 8278e3f and e3fbac4.

📒 Files selected for processing (1)
  • docs/source/getting_started/teleop_session.rst

Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review.


📝 Walkthrough

Walkthrough

The teleoperation guide now uses configured left-hand GripperRetargeter inputs and the combined gripper_command output. It documents optional TeleopSessionConfig pipelines and sinks. The OpenXR example uses the isaacteleop.oxr import path. Complete examples now reference current locations, use ControllersSource.poll_tracker(), construct OpenXRSession directly, and combine separately configured left and right gripper retargeters with OutputCombiner.

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

Merge Risk: ⚪ Minimal · up to e3fba

This documentation-only update corrects stale teleoperation examples and configuration references; no actionable merge-blocking risk remains beyond normal checks and review.

🚥 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 and concisely describes the main change: correcting stale API usage in the teleoperation session documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

✨ Finishing Touches 💡 1
⚔️ Resolve merge conflicts 💡
  • Resolve merge conflict in branch xinghuas/fix-teleop-session-doc
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch xinghuas/fix-teleop-session-doc

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

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.

1 participant