Skip to content

Feat/quest vr teleop#96

Open
freenaan wants to merge 6 commits into
mainfrom
feat/quest-vr-teleop
Open

Feat/quest vr teleop#96
freenaan wants to merge 6 commits into
mainfrom
feat/quest-vr-teleop

Conversation

@freenaan

Copy link
Copy Markdown
Contributor

Add Quest VR bimanual arm teleop pipeline (UDP bridge)

The CloudXR teleop path requires proprietary NVIDIA isaaclab_teleop/isaacteleop SDK packages not yet installed in the container, and the --external_callback flag used in run_bimanual_teleop.sh is not available in Isaac Lab 2.3.2. This PR implements a working alternative (Mode A) while leaving the CloudXR path stubbed for when those dependencies are available.

How it works:
Quest WebXR → WebSocket (port 9090, adb reverse) → ROS2 /quest_teleop → UDP bridge → Isaac Sim DiffIK

Both Docker containers share the host network so localhost:19090 is the same socket on both sides — no extra network config needed.

Changes:

  • bimanual_teleop_env_cfg.py — replaced broken isaaclab_teleop import with local stub dataclasses so module is importable; CloudXR functions left intact for future use
  • run_quest_bimanual_teleop.py — new standalone Isaac Sim script; controls both arms via wrist position/rotation deltas, - - DiffIK (relative mode), pinch-to-grip with hysteresis
  • quest_teleop_bridge.py — ROS2 node that forwards /quest_teleop messages as JSON UDP packets
  • run_quest_bimanual_teleop.sh / run_relay.sh — launcher scripts

Status: Both arms and grippers working. Elbow-dominant motion is a known IK tuning issue for follow-up.

full changelog + spinning up instructions:
full_changelog.txt

@freenaan freenaan requested a review from wilsonchenghy June 26, 2026 00:11
@freenaan freenaan force-pushed the feat/quest-vr-teleop branch 2 times, most recently from 863573a to d9783b2 Compare June 30, 2026 03:23
freenaan and others added 6 commits June 29, 2026 23:23
…ROS2

Eliminates the two-container UDP relay architecture (teleop + simulation_il).
ROS2 Humble is now built from source inside simulation_il against Python 3.11
(matching Isaac Sim 5.1's bundled interpreter ABI), so quest_teleop_node and
the IK script run in the same container communicating over ROS2 topics directly.

Removes quest_teleop_bridge.py and run_relay.sh (UDP middlemen no longer needed).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds ros2cli, ros2run, ros2topic, ros2node, ros2pkg to the ROS 2 from-source
build so that 'ros2 run', 'ros2 topic echo', etc. work inside the container.

README now covers full architecture rationale, the two-Python-3.11 design,
one-time setup steps, all 5 terminals with exact commands, debugging tips,
and a comprehensive troubleshooting table based on issues encountered.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.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.

1 participant