AD-SDL / AD-SDL/openarm_module

Configure & Test Jetson Thor for LeRobot Bimanual Teleoperation and Recording

Open
#7 6 comments 0 reactions 2 assignees View on GitHub

@gemblerz is already working on this.

Since Jul 8, 2026.

Dominant language
Python
Stars
0
Forks
0
Avg merge
7d 12h
Merged PRs (30d)
2

Description

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

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.