Franka Panda with the right HandUMI

Franka Panda with the right HandUMI#

The franka_emika_panda embodiment uses one arm and the right HandUMI only. It supports robot-free recording, QA, conversion, Viser replay, and simulated teleoperation with the Google DeepMind Menagerie model. Physical Franka teleoperation and replay-real are not implemented.

Configure the wearable#

Use the normal machine-local configs/rig.yaml, with a right wrist camera, right encoder port/ID, and your tracking connection. No left camera, encoder, or tracked controller is required. For example:

recording:
  robot: franka_emika_panda
  device: pico
  cameras: [right_wrist, workspace]
  fps: 30
feetech:
  baudrate: 1000000
  protocol_version: 0
  right:
    port: /dev/ttyACM0  # replace with the actual local port
    servo_id: 1

Declare selected cameras under cameras as usual. The workspace camera is optional for capture, but needed for the dataset direction check. PICO and Meta Quest remain supported; use the device and calibration for your rig.

handumi calibrate grippers --side right

Controller-to-TCP calibration describes the wearable tool, not the Panda. The profile references the existing PICO/Piper-tip and Meta/ARX5-tip calibrations. Reuse them only for that physical assembly; otherwise pass its measured calibration with --controller-tcp-calibration. Follow setup for camera and session/table calibration.

Record#

handumi record --robot franka_emika_panda --device pico \
  --cameras right_wrist,workspace \
  --output-dir outputs/panda-demo --task "pick and place" \
  --session-calibration outputs/calibration/session.yaml --dry-run

Use your actual session calibration path, then remove --dry-run to record. Panda selects the right side automatically; --side right is equivalent. Implicit camera defaults omit the left wrist. Only the right encoder is opened, and only right tracking gates recording. Start/save using the right double-squeeze or voice; use voice restart to discard/repeat without a left gripper.

Raw captures retain the standard 16D schema. The absent side has a neutral pose, zero width and false tracking flags; handumi.active_sides records ["right"]. QA ignores that absent side but still checks right tracking, pose freezes and enabled sensors. Resume preserves the selection; merge refuses different active sides. Legacy datasets remain bilateral.

Review, convert and replay#

handumi dataset qa outputs/panda-demo --robot franka_emika_panda --deployment-profile sim
handumi convert outputs/panda-demo --robot franka_emika_panda --output outputs/panda-joints
handumi replay-joints outputs/panda-joints --robot franka_emika_panda

For a pilot without workspace video or enough episodes for the direction check, add --skip-direction to QA. Review remaining warnings before conversion. The converted vector has eight columns: seven joint angles in radians and one logical opening in meters. A bilateral recording can also be retargeted to Panda; its left trajectory is ignored. The normal reviewed trajectory cache and provenance checks still apply.

If QA rejects episodes, remove them before conversion and use the curated dataset as input. Curation requires at least one exclusion; skip it when every episode is accepted:

handumi dataset curate outputs/panda-demo --output outputs/panda-clean --exclude-rejected
handumi convert outputs/panda-clean --robot franka_emika_panda --output outputs/panda-joints

Preview the raw recording directly:

handumi replay outputs/panda-demo --robot franka_emika_panda --episode 0 \
  --deployment-profile sim --strict-ik

Table-calibrated captures automatically use absolute-table. The shipped simulation placement uses the base as table origin (+X forward, +Y left, +Z up). Demonstrations must lie within reach; use an appropriate deployment calibration for a different placement. --retarget-mode local-relative provides a motion preview anchored at home when absolute scene placement is not required.

Live simulation#

handumi teleop --robot franka_emika_panda --device pico --side right

Viser shows one Panda. Its Menagerie contact model is available with a supported --scene. Maximum opening is 80 mm; replay/conversion preserve physical aperture, so a 40 mm HandUMI opening becomes 40 mm on Panda.

The pinned model revision, license and derivations are documented in assets/franka_emika_panda/README.md. Synthetic tests validate software and model geometry; they do not establish physical calibration or hardware tracking accuracy.