RobotConfig options¶
Workflow: Data collection; errors: Troubleshooting.
| Option | Default | What it does |
|---|---|---|
robot.id |
required | Station number (0 / 1 ...); leaving it out fails when the command line is parsed; the prefix from robot.type gives taccap_0 / bi_taccap_0 / xtac_umi_g1_0 → --robot.id and the hardware manifest |
robot.side |
auto | left/right; required in single-gripper mode when both are plugged in |
robot.role |
leader |
follower binds the follower gripper; firmware must be ≥ 1.2.5 (below 1.2.11 it warns to upgrade), see Firmware OTA upgrade |
robot.enable_tracker |
true |
Off records tactile + gripper only |
robot.tracker_serial |
unset | Pin a tracker by SN, bypassing the side rule, unvalidated; a typo reports not found at connect |
robot.enable_wrist_camera |
true |
Turns the wrist camera off |
robot.wrist_camera_width/_height/_fps |
— | Wrist camera resolution / frame rate |
robot.wrist_camera_fourcc |
MJPG |
MJPG saves USB bandwidth for the tactile sensors; YUYV is uncompressed, only when bandwidth allows |
robot.wrist_undistort / _balance |
false / 0.0 |
Wrist camera fisheye undistortion and its field-of-view setting, see Optional: wrist camera fisheye undistortion |
robot.enable_head_camera |
false |
Single gripper only: records the headset first-person view + pose; bimanual uses --robot.type=xtac_umi_g1, see Optional: head camera |
robot.head_camera_eyes |
both |
both one key per eye; left / right records only that eye |
robot.head_camera_width/_height |
640 / 480 |
Size per eye; only 640x480 / 1024x768 / 1280x960, must match the headset output |
robot.head_camera_fps |
30 |
Headset frame rate |
robot.head_camera_pair_max_skew_ms |
20.0 |
Largest gap between the two eyes still treated as one exposure |
robot.head_camera_startup_timeout_s |
5.0 |
Seconds connect waits for the first frame |
robot.head_camera_stale_after_s |
0.2 |
A cached frame older than this warns as stale |
robot.enable_tactile |
true |
Off means no tactile discovery and nothing written. Diagnostic only |
robot.tactile_fps |
30 |
Tactile frame rate |
robot.tactile_output_types |
["rectify"] |
The tactile stream written to disk; exactly one, more is an error |
robot.tactile_display_output_types |
["rectify"] |
Rerun display stream, same as recorded by default (empty list likewise); ["difference"] adds a display-only stream |
robot.tactile_diff_gain |
1.0 |
Linear gain on the difference image, inert by default; None uses the factory value |
robot.expected_tactiles_per_side |
2 |
Tactile sensors per side; a mismatch is an error |
robot.enable_gripper / robot.enable_imu |
true / false |
The gripper's own readings / the IMU channel |
robot.gripper_stream_hz |
100 |
Leader encoder (incl. IMU) push rate; 0 polls every frame; on stream failure it falls back and warns |
robot.gripper_open_rad |
1.7 |
Follower only; a leader uses the measured travel limit in its firmware and is refused if uncalibrated, see Gripper calibration (zero + travel) |
robot.tracker_to_ee_pos |
None |
Override the tracker-to-gripper-tip translation; None = built-in value (matches XTac-UMI-Description) |
robot.tracker_to_ee_quat |
None |
Override the tracker-to-gripper-tip rotation |
robot.tracker_wait_timeout |
10.0 |
Seconds to wait for tracker data |
The table is written for a single gripper; the full field list is in the main repo's device notes. On bi_taccap_gripper, enable_wrist_camera, tracker_serial, enable_gripper, enable_imu, gripper_open_rad and tracker_to_ee_pos/_quat are per side with a left_ / right_ prefix (for example --robot.left_enable_wrist_camera); the rest are shared by both sides, see Parameters.
Terms are in the Glossary; feedback in Support and feedback.