Teleoperation#
HandUMI produces robot-agnostic live tool poses and gripper commands. A selected robot embodiment maps those commands to its kinematics; an optional hardware backend sends them to physical arms. Start in simulation and connect hardware only after tracking, calibration, and motion mapping behave correctly.
Live Simulation#
Select any supported robot model through --robot:
handumi-teleop-sim --device meta --robot <robot_id> \
--workspace-camera --space-start
For example, using the currently supported Piper embodiment:
TARGET_ROBOT=piper
handumi-teleop-sim --device meta --robot "$TARGET_ROBOT" \
--workspace-camera --space-start
OpenArm v1 uses the same command and starts from its configured home_q:
handumi-teleop-sim --device meta --robot openarmv1 \
--space-start
This opens Viser with the live robot model and Rerun with tracking, TCP trails,
gripper widths, and the left wrist, workspace, and right wrist cameras. Nothing
is recorded. Use --device pico for PICO.
Add a task scene with:
handumi-teleop-sim --device meta --robot "$TARGET_ROBOT" --scene cube_in_box
--context-camera is an alias for --workspace-camera. The devices come from
cameras.left_wrist, cameras.workspace, and cameras.right_wrist in
configs/rig.yaml. When using --cam-ids, provide three IDs in that order.
Viser shows the robot and Rerun shows tracking and camera trails. Use --no-rerun or --no-viser when a viewer is not needed.
Start and Reset#
Double clap starts the enabled, tracked arms from home.
Another double clap clears anchors and returns them home.
With
--space-start, Space starts any idle enabled arm.Tracking loss cancels pending motion and holds the latest command.
Real Robot Teleoperation#
The HandUMI tracking and control flow remains the same for every robot. Physical teleoperation additionally requires a backend for the selected manufacturer and model; simulation or replay support alone does not imply hardware support.
The general interface is:
handumi-setup-hardware --robot <robot_id> --device meta
handumi-teleop-real --robot <robot_id> --device meta
Robot |
Live simulation |
Real teleoperation |
|---|---|---|
Piper |
Supported |
Supported |
OpenArm v1 |
Supported (kinematic) |
Supported through optional |
TRLC-DK1 |
Supported (kinematic) |
Not yet supported |
Axol |
Supported |
Not yet supported |
Other robots |
Add an embodiment |
Add a hardware backend |
See Add a New Robot Embodiment for the common interface used to add future manufacturers and models without changing the HandUMI capture workflow.
Complete the hardware-specific preparation before commanding a physical robot:
Both guides start with single-arm validation before enabling both arms.
To stream the context and wrist cameras into a PICO headset independently of the selected robot, see PICO Remote Vision.
Safety#
Keep the workspace clear and an emergency stop accessible. Enforce joint, velocity, acceleration, workspace, and collision limits. Run handumi-teleop-real --help for backend-specific options.
To inspect an existing recording rather than live motion, continue with Replay a Local Recording in Simulation, then run the checks in Quality Assurance.