Skip to content

ROS: Centralize teleop runtime profiles#774

Merged
sgrizan-nv merged 3 commits into
mainfrom
sgrizan/branch2
Jul 15, 2026
Merged

ROS: Centralize teleop runtime profiles#774
sgrizan-nv merged 3 commits into
mainfrom
sgrizan/branch2

Conversation

@sgrizan-nv

@sgrizan-nv sgrizan-nv commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

Description

Make mode-specific session and publication contracts explicit, and add focused unit coverage to prevent wiring drift.

Summary by CodeRabbit

  • New Features

    • Added profile-based teleoperation handling to select required outputs and published telemetry for each operating mode.
    • Added clearer validation for session results, including actionable missing or unexpected output errors.
    • Standardized teleoperation mode handling with named mode values.
  • Bug Fixes

    • Improved consistency of hand, controller, full-body, head, and root-command output publishing across modes.
  • Tests

    • Added coverage for geometry transformations, message construction, profile selection, mode validation, and malformed session results.

@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: d638b14e-b632-4550-992d-4c6ad0f94b53

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The teleoperation example now uses TeleopMode for mode contracts and parameter parsing. New profile specifications define required session-result keys and publication targets, with validation before ROS output. TeleopRos2Node routes publications from the resolved profile. Shared constants replace duplicated verifier definitions, the obsolete hand-pose helper is removed, and pytest configuration plus geometry, message, and profile tests are added.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant TeleopRos2Node
  participant Session
  participant ProfileResolver
  participant ResultValidator
  participant ROSPublishers
  TeleopRos2Node->>ProfileResolver: resolve mode and hand retargeter
  ProfileResolver-->>TeleopRos2Node: TeleopProfileSpec
  TeleopRos2Node->>Session: step()
  Session-->>TeleopRos2Node: session result
  TeleopRos2Node->>ResultValidator: validate result against profile
  ResultValidator-->>TeleopRos2Node: SessionResult
  TeleopRos2Node->>ROSPublishers: publish profile-selected outputs
Loading

Possibly related PRs

  • NVIDIA/IsaacTeleop#755: Both changes move teleoperation pose publishing toward named-pose/message construction and remove the older shared hand-pose assembly flow.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 5.88% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: centralizing teleop runtime profiles in the ROS example.
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
  • Commit unit tests in branch sgrizan/branch2

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

Comment thread examples/teleop_ros2/python/geometry.py
Comment thread examples/teleop_ros2/python/teleop_profiles.py
Comment thread examples/teleop_ros2/python/teleop_profiles.py
Comment thread examples/teleop_ros2/python/constants.py
Comment thread examples/teleop_ros2/python/teleop_profiles.py Outdated
Make mode-specific session and publication contracts explicit, and add focused unit coverage to prevent wiring drift.
@sgrizan-nv sgrizan-nv enabled auto-merge (squash) July 15, 2026 17:41
@sgrizan-nv sgrizan-nv merged commit cb95bce into main Jul 15, 2026
167 of 183 checks passed
@sgrizan-nv sgrizan-nv deleted the sgrizan/branch2 branch July 15, 2026 18:35
@github-project-automation github-project-automation Bot moved this from TBD to DONE in Isaac Teleop Planning Jul 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: DONE

Development

Successfully merging this pull request may close these issues.

3 participants