Skip to content

Cherry-pick (#727) to release v0.2.1: Document second-viewport teleop monitoring workflow#730

Open
rwiltz wants to merge 4 commits into
isaac-sim:release/0.2.1from
rwiltz:rwiltz/cp/727/release/0.2.1
Open

Cherry-pick (#727) to release v0.2.1: Document second-viewport teleop monitoring workflow#730
rwiltz wants to merge 4 commits into
isaac-sim:release/0.2.1from
rwiltz:rwiltz/cp/727/release/0.2.1

Conversation

@rwiltz
Copy link
Copy Markdown
Collaborator

@rwiltz rwiltz commented May 27, 2026

Summary

Cherry-pick (#727) to release/0.2.1: docs only

Detailed description

  • Cherry-picks 754c87a (PR Document second-viewport teleop monitoring workflow #727) onto release/0.2.1. Clean cherry-pick, no conflicts.
  • Adds the optional "Step 2b: Monitor Recording with a Second Viewport" workflow to the static apple example (docs/pages/example_workflows/static_apple/step_2_teleoperation.rst) plus two screenshots.
  • Docs only; no code changes. Brings the teleop monitoring guidance into the 0.2.1 release so users on that branch don't silently lose demos to out-of-FOV trajectories.

## Summary
Doc two-person teleop with 2nd viewport

## Detailed description
- Per Edith's feedback, demos where the trajectory drifts outside the
robot's recording-camera FOV silently degrade policy training. A second
operator watching a viewport bound to the recording camera can catch
this live and avoid a re-record.
- Adds a new "Step 2b: Monitor Recording with a Second Viewport
(Optional)" between Steps 2 and 3 in
`docs/pages/example_workflows/static_apple/step_2_teleoperation.rst`,
with two screenshots: enabling Viewport 2 from the **Window** menu, and
pointing it at `RobotHeadCam`.
- Notes that `RobotHeadCam` is only spawned when `--enable_cameras` is
set — present by default in Step 4's `record_demos.py`, absent in the
Step 2 `teleop.py` smoke test — so readers know when the camera will
appear in the selector.
- Docs only; no code changes.

(cherry picked from commit 754c87a)
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 27, 2026

Greptile Summary

This docs-only cherry-pick backports the "Step 2b: Monitor Recording with a Second Viewport" workflow from main into release/0.2.1, giving users on the 0.2.1 branch guidance on how to open a second viewport bound to the robot's head camera so a second operator can verify recordings stay within the recording FOV.

  • Adds a new optional subsection between Step 2 and Step 3 in step_2_teleoperation.rst, including three screenshots and a note clarifying that RobotHeadCam only appears when --enable_cameras is set.
  • Adds three new JPEG screenshots (xr-dual-viewport-start.jpg, xr-dual-viewport-menu.jpg, xr-dual-viewport-result.jpg) that are correctly referenced by the RST image directives.

Confidence Score: 5/5

Docs-only cherry-pick with no code changes; safe to merge.

All four changed files are documentation — three JPEG screenshots and one RST page. The RST is well-structured, image paths match the new files, the --enable_cameras note is consistent with the existing Step 2 and Step 4 commands already in the file, and the cherry-pick introduces no conflicts with the rest of the 0.2.1 branch.

No files require special attention.

Important Files Changed

Filename Overview
docs/pages/example_workflows/static_apple/step_2_teleoperation.rst Adds 'Step 2b: Monitor Recording with a Second Viewport (Optional)' section with correct RST structure, accurate references to image paths, and consistent step numbering.
docs/images/xr-dual-viewport-start.jpg New screenshot showing the default single-viewport XR view; correctly referenced in the RST.
docs/images/xr-dual-viewport-menu.jpg New screenshot showing the camera selector menu in Viewport 2; correctly referenced in the RST.
docs/images/xr-dual-viewport-result.jpg New screenshot showing the completed dual-viewport layout; correctly referenced in the RST.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Step 2: Start Arena Teleop
teleop.py --viz kit ...] --> B{Want to monitor
recording FOV?}
    B -- No --> C[Step 3: Connect headset
and teleop normally]
    B -- Yes - Step 2b --> D[Open Window menu
toggle on Viewport 2]
    D --> E[In Viewport 2 toolbar
select RobotHeadCam
/World/envs/env_0/Robot/head_link]
    E --> F[Two-person workflow
Person 1: teleop via headset
Person 2: watch Viewport 2 on monitor]
    F --> G{Head-cam FOV OK?}
    G -- Yes --> C
    G -- No --> H[Observer gives live feedback
to teleoperator, adjust position]
    H --> G
    C --> I[Step 4: record_demos.py
--enable_cameras
writes RobotHeadCam to HDF5]
Loading

Reviews (4): Last reviewed commit: "Merge branch 'release/0.2.1' into rwiltz..." | Re-trigger Greptile

@xyao-nv xyao-nv enabled auto-merge (squash) May 27, 2026 16:59
Signed-off-by: Rafael Wiltz <rwiltz@nvidia.com>
Copy link
Copy Markdown
Contributor

@isaaclab-review-bot isaaclab-review-bot Bot left a comment

Choose a reason for hiding this comment

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

🤖 Isaac Lab Review Bot

Summary

Cherry-pick of documentation PR #727 onto release/0.2.1. Documents the second-viewport teleop monitoring workflow, consolidates network requirements, simplifies language instructions, and clarifies the recording reset flow. No functional code changes — docs and config only.

Update (a3f1cb9)

The latest push broadens the scope beyond the dual-viewport screenshots. Key changes since previous review:

1. Network requirements consolidated across all teleop docs

An .. important:: admonition linking to the CloudXR network requirements is now added at the top of all four teleoperation workflow pages:

  • static_apple/step_2_teleoperation.rst
  • locomanipulation/step_2_teleoperation.rst
  • sequential_static_manipulation/step_2_teleoperation.rst
  • static_manipulation/step_2_teleoperation.rst

The previous inline "A strong wireless connection is essential…" paragraph is removed from each file's Step 3. This is a good pattern — prerequisites belong at the top, not buried mid-workflow.

2. Language instruction simplified

Changed from:

"Pick up the apple from the shelf and place it onto the plate on the same shelf next to it."

To:

"move the apple to the plate"

Updated in three places consistently:

  • docs/pages/example_workflows/static_apple/step_3_policy_training.rst
  • isaaclab_arena_gr00t/lerobot/config/g1_static_apple_config.yaml
  • isaaclab_arena_gr00t/policy/config/g1_static_apple_gr00t_closedloop_config.yaml

3. Recording workflow (Step 4) clarified

The reset instructions now explicitly describe:

  • Wait for auto-reset (not just "simulation freeze")
  • Return hands to initial position before pressing Reset
  • Added a dedicated "Reset" sub-step in the tips section

4. Dual-viewport documentation (unchanged from previous review)

The three-image walkthrough (xr-dual-viewport-start.jpg, xr-dual-viewport-menu.jpg, xr-dual-viewport-result.jpg) remains as previously reviewed.

Findings

✅ No Issues Found

  • Cross-file consistency — The .. important:: network-requirements block is identical across all four workflow files. Good.
  • Language instruction — Updated in all three relevant locations (docs + both config YAMLs). No stale references remain.
  • RST structure — All additions are valid RST with correct indentation and directive syntax.
  • Link targets — The CloudXR network requirements URL points to a versioned (latest) docs page, which is appropriate for a living reference.
  • Recording flow — The updated Step 4 instructions are clearer about the auto-reset vs. manual-reset distinction, reducing operator confusion.
  • No broken cross-references — Old images removed, old inline network note removed; nothing left dangling.

Test Coverage

Documentation and config-only changes — no test coverage needed.

Verdict

No issues found — Well-structured update that consolidates prerequisites, simplifies the language instruction for better policy generalization, and clarifies the recording workflow. Ready to merge.

rwiltz and others added 2 commits June 1, 2026 15:44
Swap the two "Step 2b" screenshots for a three-image sequence -- the
default single viewport, the Viewport 2 camera selector, and the
resulting dual-viewport layout -- and restructure the section to walk
through it. The new captures come from a clean session that does not
expose the internal Nucleus server, so no cropping is needed; the
source PNGs are converted to JPEG to match the other doc assets.

Signed-off-by: Rafael Wiltz <rwiltz@nvidia.com>
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