| name | run-teleop | |||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| description | Launch the geniesim_teleop VR / Pico teleoperation loop (or the in-process image bridge) using the `geniesim teleop` CLI verb, typically inside the Genie Sim GUI Docker container. Trigger: When the user asks to "start teleop", "run teleop", "启动遥操作", "VR 采集", "遥操作采集", "drive the robot with the VR headset", "launch the teleop loop", or wants to run anything under `geniesim_teleop`. | |||||||||||||||||||||||||||||||||||||||||||
| license | MPL-2.0 | |||||||||||||||||||||||||||||||||||||||||||
| metadata |
|
|||||||||||||||||||||||||||||||||||||||||||
| prerequisites |
|
|||||||||||||||||||||||||||||||||||||||||||
| inputs |
|
|||||||||||||||||||||||||||||||||||||||||||
| outputs |
|
- User wants to teleoperate the simulated robot with a VR device (Pico) and optionally record episodes.
- User references
geniesim_teleop,teleop.py, or the teleop bridge.
Do not use for:
- Running a benchmark task →
run-benchmark. - Verifying an inference server →
check-inference.
- The runtime needs ROS 2 + Isaac Sim on the host. Inside the
Genie Sim Docker image (
geniesim docker up→geniesim docker into) that's already set up. Outside the container, source your ROS overlay and have Isaac Sim available. - A VR device must be reachable. The teleop loop opens a VR server
(default port
8080) and waits for the Pico headset to connect. - Working directory: anywhere under the repo works — the CLI uses
find_specto locate thegeniesim_teleoppackage. - Confirm before launching. Teleop holds a GPU and a live device connection; ask before kicking it off if there's any ambiguity.
Ask via AskUserQuestion (all optional — sensible defaults exist):
- Device type (default
pico). - VR port (default
8080). - Robot config (default
G2_omnipicker.json). - gRPC client host (default
localhost:50051).
Inside the GUI container (geniesim docker into):
geniesim teleop run --device_type=pico --port=8080With explicit overrides:
geniesim teleop run \
--client_host=localhost:50051 \
--port=8080 \
--robot_cfg=G2_omnipicker.json \
--device_type=picoIf the user needs the in-process image pub/sub bridge:
geniesim teleop bridge --mode inprocess# Terminal A — host (start GUI container)
cd /path/to/main
./scripts/start_gui.sh
# Terminal B — host, then container
cd /path/to/main
./scripts/into.sh
# inside container:
geniesim teleop run --device_type=pico --port=8080- If
geniesimisn't on$PATH, substitutepython3 -m geniesim_cli teleop …— same args. - Any unknown
--flagafter the subcommand is forwarded verbatim togeniesim_teleop.teleop/geniesim_teleop.bridge. - Robot init states are loaded from the
geniesim_benchmarkpackage when it's installed; if it isn't, teleop still runs (init-state loading is skipped with a warning).