中文 · Operations · Validation
Isaac Sim 5.1 / ROS 2 Jazzy / OCS2 framework for R1 dual-arm and gripper teleoperation, differential base control, three RGB-D cameras and local LeRobot exports.
Selected excerpts from the original demonstrations, cropped to the viewport and played at 4× speed. Click a preview to open the full video.
- Project introduction and layout: Overview
- Installation and operation: Getting started
- Command entry:
./run.shin the repository root (no arguments show help) - Documentation: Index
| Task | Command |
|---|---|
| Simulation only | ./run.sh start-isaac |
| Teaching and recording | ./run.sh sim1-session --name my_episode |
| Convert existing data | ./run.sh sim1-process outputs/sessions/my_episode/trace.csv --with-v21 |
git lfs install
git submodule update --init --depth 1
git lfs pull
git submodule foreach git lfs pull
python3 scripts/audit_checkout.py
python3 scripts/prepare_portable_urdf.py
export ISAAC_SIM_ROOT=/path/to/isaac-sim-standalone-5.1.0-linux-x86_64
source scripts/activate_sim1_conda.sh
./run.sh build
./run.sh preflight
./run.sh sim1-session --name my_episodeInstall/build prerequisites first: English,
中文, Conda/ROS dependencies.
The session starts Play, OCS2, pygame recording and all six camera previews.
Press Q in pygame to finalize. Outputs: outputs/sessions/my_episode/.
The simulator installation is external; asset and source paths are repository-relative.
The full scene and ROS Bridge run. Root USD metadata is Z-up/metres; bridge registration is completed before scene loading. Pygame is the only arm target publisher in a teaching session. Six RGB/depth streams and actual base/joint feedback were recorded. Small-motion OCS2 tracking and local LeRobot v2.1/v3.0 exports were checked; see the measured limits in the report. Depth is retained as lossless auxiliary arrays; the standard video features are three RGB streams. Official LeRobot training-loader integration and physical hardware transfer are not claimed.
The 2026-09-16 core is frozen with file hashes and a source snapshot. Both local export formats passed validation (131 frames, 20 FPS). The last automatic-base command fix was not re-recorded; its verification limit is retained in the report.
./run.sh sim1-process outputs/sessions/my_episode/trace.csv --with-v21| Directory | Purpose |
|---|---|
assets/ |
LFS scene and model assets |
projects/ros2_ws/src/ |
ROS / OCS2 source packages |
projects/teleoperation/sim1/ |
teaching, cleaning, export and replay |
projects/physics_parameters/ |
Optional physics parameter experiments |
run.sh |
Public command entry |
scripts/ |
stable launch, validation and asset preparation |
dependencies/ |
pinned external dependencies |
docs/, reports/ |
current operation, historical evidence and validation |
evaluations/omnisim/ |
isolated cross-simulator tests |
releases/ |
freeze manifest and integrity checks |
outputs/, .runtime/ |
ignored local data, logs and dependencies |
Canonical robot source: projects/ros2_ws/src/robot.
The ROS URDF uses package URIs; r1_fixed_portable.urdf uses relative mesh paths.
A source ZIP or LFS pointer is not a complete geometry asset. Use a hydrated clone.
Optional IsaacLab-Arena is not a core dependency. Historical notes remain labelled
and indexed; use the current operation guide for commands.
See the isolated evaluation. OmniSim 8.5.1 requires a fixed-parent compatibility variant; normal ROS/Isaac imports keep the original kinematic description. Fixed gripper-cycle measurements, contact queries, versions and limitations are reported there. Successful import or finger motion is not evidence of a completed object grasp. Measured gripper closing error was 1.803–1.859 mm. A cube/floor control also failed without R1, so object-contact and grasp validation remain unresolved in this build.
These historical demonstrations are separate from this machine's validation data.
Fresh-computer installation / 新电脑安装: complete clone and dependency steps.

