Skip to content

fix(ros2): reject untracked head-relative targets - #1313

Merged
sgrizan-nv merged 1 commit into
mainfrom
sgrizan/branch1
Oct 21, 2026
Merged

sgrizan-nv merged 1 commit into
mainfrom
sgrizan/branch1

Conversation

@sgrizan-nv

@sgrizan-nv sgrizan-nv commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • require active head tracking before computing head-relative end-effector targets
  • keep readable-but-untracked head poses from becoming stale robot commands
  • add regression coverage for valid but untracked head input

NVBugs: https://nvbugspro.nvidia.com/bug/6928390

Testing

  • Built the repository-provided examples/teleop_ros2/Dockerfile test image
  • Ran all teleop_ros2 Python unit tests
  • Ran the untracked-head regression test directly
  • Ran SKIP=check-copyright-year pre-commit run --all-files

Summary by CodeRabbit

  • Bug Fixes

    • Improved head-frame controller tracking by requiring the head to be tracked before calculating wrist poses.
    • When head tracking is unavailable, wrist poses are marked invalid and no transforms are emitted.
  • Tests

    • Added coverage to verify safe handling of untracked head data in head-frame mode.

CloudXR can leave a disconnected headset pose valid while clearing its tracked state. Require active head tracking before publishing head-relative end-effector targets so stale poses cannot be used as robot commands.

Signed-off-by: Sergey Grizan <sgrizan@nvidia.com>
@coderabbitai

coderabbitai Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: NVIDIA/IsaacCapture/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Enterprise
  • Run ID: 680fc120-b2a0-4ee5-998e-46f5cb0e1231
📥 Commits

Reviewing files that changed from the base of the PR and between 1a99e9d and 67c3166.

📒 Files selected for processing: 3
  • examples/teleop_ros2/python/isaaccapture_examples/teleop_ros2/messages.py
  • examples/teleop_ros2/python/isaaccapture_examples/teleop_ros2/tensor_group_helpers.py
  • tests/python/examples/teleop_ros2/test_messages.py

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

📝 Walkthrough

The change adds head_is_tracked to check the head group’s tracking flag. In head-frame mode, the code computes head-relative wrist poses only when the head is present and tracked. Otherwise, both wrist poses are invalidated. A regression test verifies that an untracked head produces invalid, zero-position wrist poses and no transforms.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~8 minutes

Merge Risk: ⚪ Minimal · up to 67c31

The intended untracked-head safety behavior is implemented without an identified merge-blocking risk.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 7 functions across 3 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed 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 clearly and concisely describes the main change: rejecting untracked head-relative targets in ROS 2.
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: 💡 1
📝 Generate docstrings: 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@sgrizan-nv
sgrizan-nv merged commit 725b1a9 into main Oct 21, 2026
34 checks passed
@sgrizan-nv
sgrizan-nv deleted the sgrizan/branch1 branch October 21, 2026 20:30

This branch was successfully deployed

1 active deployment
dev — 67c3166c Deployed Oct 21, 2026 by sgrizan-nv via publish-wheel #5805
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants