Skip to content

Configure & Test Jetson Thor for LeRobot Bimanual Teleoperation and Recording #7

@Dozgulbas

Description

@Dozgulbas

Jetson Thor has OS installed (ARM64) but dependency management is challenging due to architecture constraints. Most dependencies are working but full bimanual teleoperation + recording session needs to be validated end-to-end on the Thor.

Verify that both commands below run without errors on Thor with leader and follower arms connected simultaneously, along with all three cameras (chest RealSense + two wrist cameras). Any errors encountered are likely dependency-related and will require debugging on ARM64.

Step 1 — Set camera formats:

v4l2-ctl --device=/dev/video-wrist-left --set-fmt-video=width=640,height=480,pixelformat=MJPG
v4l2-ctl --device=/dev/video-wrist-right --set-fmt-video=width=640,height=480,pixelformat=MJPG

Step 2 — Test teleoperation:

lerobot-teleoperate \
    --robot.type=bi_openarm_follower \
    --robot.left_arm_config.port=can0 \
    --robot.left_arm_config.side=left \
    --robot.right_arm_config.port=can1 \
    --robot.right_arm_config.side=right \
    --robot.id=my_bimanual_follower \
    --teleop.type=bi_openarm_leader \
    --teleop.left_arm_config.port=can2 \
    --teleop.right_arm_config.port=can3 \
    --teleop.id=my_bimanual_leader \
    --robot.left_arm_config.position_kp="[240,240,120,40,24,31,25,5]" \
    --robot.left_arm_config.position_kd="[5,5,1.5,0.3,0.3,0.3,0.3,0.05]" \
    --robot.right_arm_config.position_kp="[240,240,120,40,24,31,25,5]" \
    --robot.right_arm_config.position_kd="[5,5,1.5,0.3,0.3,0.3,0.3,0.05]" \
    --teleop.left_arm_config.position_kp="[240,240,120,40,24,31,25,5]" \
    --teleop.left_arm_config.position_kd="[3,3,1.5,1.0,0.2,0.2,0.2,0.05]" \
    --teleop.right_arm_config.position_kp="[240,240,120,40,24,31,25,5]" \
    --teleop.right_arm_config.position_kd="[3,3,1.5,1.0,0.2,0.2,0.2,0.05]"

Step 3 — Test full recording session:


lerobot-record \
    --robot.type=bi_openarm_follower \
    --robot.left_arm_config.port=can3 \
    --robot.left_arm_config.side=left \
    --robot.left_arm_config.cameras="{ \
        chest: {type: intelrealsense, serial_number_or_name: 025222071898, width: 848, height: 480, fps: 30, use_depth: true}, \
        wrist_left: {type: opencv, index_or_path: /dev/video-wrist-left, width: 640, height: 480, fps: 30, fourcc: MJPG} \
    }" \
    --robot.right_arm_config.port=can2 \
    --robot.right_arm_config.side=right \
    --robot.right_arm_config.cameras="{ \
        wrist_right: {type: opencv, index_or_path: /dev/video-wrist-right, width: 640, height: 480, fps: 30, fourcc: MJPG} \
    }" \
    --robot.id=my_bimanual_follower \
    --teleop.type=bi_openarm_leader \
    --teleop.left_arm_config.port=can0 \
    --teleop.right_arm_config.port=can1 \
    --teleop.id=my_bimanual_leader \
    --teleop.left_arm_config.position_kp="[240,240,120,40,24,31,25,5]" \
    --teleop.left_arm_config.position_kd="[3,3,1.5,1.0,0.2,0.2,0.2,0.05]" \
    --teleop.right_arm_config.position_kp="[240,240,120,40,24,31,25,5]" \
    --teleop.right_arm_config.position_kd="[3,3,1.5,1.0,0.2,0.2,0.2,0.05]" \
    --robot.left_arm_config.position_kp="[240,240,120,40,24,31,25,5]" \
    --robot.left_arm_config.position_kd="[5,5,1.5,0.3,0.3,0.3,0.3,0.05]" \
    --robot.right_arm_config.position_kp="[240,240,120,40,24,31,25,5]" \
    --robot.right_arm_config.position_kd="[5,5,1.5,0.3,0.3,0.3,0.3,0.05]" \
    --dataset.repo_id=local/openarm_open_lab_door \
    --dataset.single_task="Open lab door handle" \
    --dataset.fps=30 \
    --dataset.num_episodes=100 \
    --dataset.episode_time_s=40 \
    --dataset.reset_time_s=10 \
    --dataset.push_to_hub=false \
    --display_data=true

Definition of Done

  • Leader + follower arms initialize without errors
  • All 3 cameras stream at configured resolutions
  • Full teleoperation and recording session runs cleanly
  • No dependency errors on ARM64

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions