LeRobot documentation
reBot B601
reBot B601
reBot B601 adalah lengan robot open-source dari Seeed Studio untuk imitation learning dan embodied AI. Setup ini memasangkan lengan pengikut 6-DOF dengan gripper dan reBot Arm 102 sebagai pemimpin untuk teleoperation.
Follower tersedia dengan motor Damiao (DM) atau RobStride (RS). Kedua build menggunakan tipe robot LeRobot dan nama joint yang sama; pilih hardware dengan --robot.motor_family.
| Build | motor_family | Motor | Koneksi default |
|---|---|---|---|
| B601-DM | dm | Damiao (basis 4340P, pergelangan 4310) | Jembatan serial Damiao |
| B601-RS | rs | RobStride (basis rs-06, pergelangan rs-00) | CAN Native |
Panduan ini mencakup pengaturan perangkat keras, kalibrasi, teleoperasi, dan perekaman untuk setup lengan tunggal dan bimodal.

Ikutan B601 (kiri) dan pemimpin reBot Arm 102 (kanan). Ikutan DM dan RS memiliki tata letak send dan tampilan keseluruhan yang sama tetapi menggunakan motor yang berbeda. Gambar dengan izin dari Seeed Studio.
Perangkat keras dan keselamatan
Rakit, hubungkan, dan konfigurasikan motor menggunakan panduan Seeed Studio untuk pengikut Anda: B601-DM atau B601-RS.
Secure the follower to a stable surface and keep its workspace clear. Support the arm whenever torque is disabled or the program disconnects because it can move under gravity. If power or a data cable disconnects during operation, stop the program, return the leader and follower to their zero positions, then reconnect and restart.
Install LeRobot 🤗
Ikuti Panduan Instalasi, lalu instal dukungan reBot:
pip install -e ".[rebot]"Ini menginstal motorbridge untuk pengikut dan motorbridge-smart-servo untuk pemimpin reBot Arm 102.
Hubungkan perangkat keras
DM menggunakan serial bridge secara default dan dapat secara opsional menggunakan CAN native. RS memerlukan CAN native.
can_adapter | Gunakan | Contoh port |
|---|---|---|
damiao | Jembatan serial Damiao; hanya DM | /dev/ttyACM0 |
socketcan | MotorBridge native CAN; required for RS | can0 |
Keluarga motor memilih adapter default. Untuk menjalankan DM melalui CAN native, tambahkan --robot.can_adapter=socketcan dan gunakan kanal CAN-nya sebagai --robot.port.
Jembatan serial
Gunakan lerobot-find-port untuk mengidentifikasi port DM serial bridge dan leader. Hubungkan satu perangkat serial pada satu waktu jika nama-namanya sulit dibedakan.
lerobot-find-port
On Linux, remove `brltty` (`sudo apt remove brltty`) if it captures a serial device. You may also need temporary access with `sudo chmod 666 /dev/ttyACM* /dev/ttyUSB*`.
CAN Native
Nama konfigurasi socketcan dipertahankan di berbagai platform. Linux menggunakan SocketCAN. macOS memerlukan adapter PCAN yang kompatibel dan runtime MacCAN PCBUSB. Dukungan native-CAN pada Windows bersifat eksperimental dan memerlukan adapter PEAK PCAN serta PCAN-Basic. Lihat pengaturan platform MotorBridge untuk detail instalasi.
Pada Linux, konfigurasikan setiap antarmuka CAN native pada 1 Mbps sebelum menghubungkan pengikut RS:
sudo ip link set can0 down
sudo ip link set can0 type can bitrate 1000000
sudo ip link set can0 up
ip -details link show can0Ganti can0 dengan channel yang disediakan oleh backend CAN Anda. Setup native-CAN bimanual memerlukan channel terpisah seperti can0 dan can1 karena kedua lengan menggunakan ID motor yang sama.
Jenis perangkat
| Tipe | Perangkat |
|---|---|
rebot_b601_follower | Satu pengikut |
bi_rebot_b601_follower | Pengikut bimodal |
rebot_102_leader | Single reBot Arm 102 leader |
bi_rebot_102_leader | Bimanual reBot Arm 102 pemimpin |
motor_family secara default adalah dm. Dalam konfigurasi bimanual, setiap lengan memiliki pengaturan left_arm_config.* atau right_arm_config.* masing-masing dan dapat memilih keluarga motornya secara independen.
Kalibrasi
Calibration menetapkan pose fisik saat ini sebagai posisi nol motor dan menyimpan file kalibrasi LeRobot. Letakkan masing-masing lengan pada posisi nol yang ditunjukkan di bawah ini dengan gripper tertutup sepenuhnya, lalu tekan ENTER saat diminta.

Posisi nol pengikut (kiri) dan posisi nol pemimpin (kanan). Pengikut DM ditampilkan; pengikut RS menggunakan susunan sendi yang sama.
Gunakan kembali --robot.id dan --teleop.id yang sama di perintah berikutnya agar LeRobot memuat kalibrasi yang tersimpan. Jika kalibrasi sudah ada, perintah tersebut memungkinkan Anda untuk menggunakannya kembali atau memasukkan c untuk mengkalibrasi ulang.
Pengikut
lerobot-calibrate \
--robot.type=rebot_b601_follower \
--robot.motor_family=dm \
--robot.port=/dev/ttyACM0 \
--robot.id=followerlerobot-calibrate \
--robot.type=rebot_b601_follower \
--robot.motor_family=rs \
--robot.port=can0 \
--robot.id=followerKaliibrasi dijalankan untuk pengikut kiri dan kemudian pengikut kanan.
lerobot-calibrate \
--robot.type=bi_rebot_b601_follower \
--robot.id=bi_follower \
--robot.left_arm_config.motor_family=dm \
--robot.left_arm_config.port=/dev/ttyACM0 \
--robot.right_arm_config.motor_family=dm \
--robot.right_arm_config.port=/dev/ttyACM1Untuk dua pengikut RS, atur kedua keluarga ke rs dan gunakan saluran CAN native yang terpisah untuk dua port tersebut. File kalibrasi per lengan menggunakan sufiks _left dan _right.
Pemimpin
lerobot-calibrate \
--teleop.type=rebot_102_leader \
--teleop.port=/dev/ttyUSB0 \
--teleop.id=leaderlerobot-calibrate \
--teleop.type=bi_rebot_102_leader \
--teleop.id=bi_leader \
--teleop.left_arm_config.port=/dev/ttyUSB0 \
--teleop.right_arm_config.port=/dev/ttyUSB1Teleoperasi
Mulai dengan gerakan kecil dan verifikasi setiap arah sendi sebelum menggunakan seluruh ruang kerja.
lerobot-teleoperate \
--robot.type=rebot_b601_follower \
--robot.motor_family=dm \
--robot.port=/dev/ttyACM0 \
--robot.id=follower \
--teleop.type=rebot_102_leader \
--teleop.port=/dev/ttyUSB0 \
--teleop.id=leaderlerobot-teleoperate \
--robot.type=rebot_b601_follower \
--robot.motor_family=rs \
--robot.port=can0 \
--robot.id=follower \
--teleop.type=rebot_102_leader \
--teleop.port=/dev/ttyUSB0 \
--teleop.id=leaderlerobot-teleoperate \
--robot.type=bi_rebot_b601_follower \
--robot.id=bi_follower \
--robot.left_arm_config.motor_family=dm \
--robot.left_arm_config.port=/dev/ttyACM0 \
--robot.right_arm_config.motor_family=dm \
--robot.right_arm_config.port=/dev/ttyACM1 \
--teleop.type=bi_rebot_102_leader \
--teleop.id=bi_leader \
--teleop.left_arm_config.port=/dev/ttyUSB0 \
--teleop.right_arm_config.port=/dev/ttyUSB1Rekam dataset
Uji teleoperation sebelum merekam. Untuk menambahkan kamera, pertama identifikasi dengan:
lerobot-find-cameras opencv
Lengan tunggal
Contoh ini merekam lima episode DM secara lokal dengan satu kamera OpenCV:
lerobot-record \
--robot.type=rebot_b601_follower \
--robot.motor_family=dm \
--robot.port=/dev/ttyACM0 \
--robot.id=follower \
--robot.cameras='{"front": {"type": "opencv", "index_or_path": 0, "width": 640, "height": 480, "fps": 30}}' \
--teleop.type=rebot_102_leader \
--teleop.port=/dev/ttyUSB0 \
--teleop.id=leader \
--dataset.repo_id=your_username/rebot-dm-test \
--dataset.single_task="Pick up the object" \
--dataset.num_episodes=5 \
--dataset.episode_time_s=30 \
--dataset.reset_time_s=10 \
--dataset.push_to_hub=false \
--display_data=trueUntuk RS, ubah motor_family menjadi rs dan port robot ke kanal CAN native. Hapus argumen kamera untuk pengujian motor saja.
Bimanual
Contoh DM ini merekam satu kamera atas bersama dan satu kamera pergelangan tangan untuk setiap lengan. Kunci kamera dataset adalah top, left_wrist, dan right_wrist.
lerobot-record \
--robot.type=bi_rebot_b601_follower \
--robot.id=bi_follower \
--robot.left_arm_config.motor_family=dm \
--robot.left_arm_config.port=/dev/ttyACM0 \
--robot.right_arm_config.motor_family=dm \
--robot.right_arm_config.port=/dev/ttyACM1 \
--robot.cameras='{
top: {
type: opencv,
index_or_path: "/dev/video2",
width: 640,
height: 480,
fps: 30,
fourcc: "MJPG"
}
}' \
--robot.left_arm_config.cameras='{
wrist: {
type: opencv,
index_or_path: "/dev/video0",
width: 640,
height: 480,
fps: 30,
fourcc: "MJPG"
}
}' \
--robot.right_arm_config.cameras='{
wrist: {
type: opencv,
index_or_path: "/dev/video4",
width: 640,
height: 480,
fps: 30,
fourcc: "MJPG"
}
}' \
--teleop.type=bi_rebot_102_leader \
--teleop.id=bi_leader \
--teleop.left_arm_config.port=/dev/ttyUSB0 \
--teleop.right_arm_config.port=/dev/ttyUSB1 \
--dataset.repo_id=local/rebot-bimanual-dm-camera-test \
--dataset.root=/tmp/rebot-bimanual-dm-camera-test \
--dataset.single_task="Test coordinated movement of both reBot DM arms" \
--dataset.fps=30 \
--dataset.num_episodes=2 \
--dataset.episode_time_s=20 \
--dataset.reset_time_s=10 \
--dataset.push_to_hub=false \
--display_data=falseUntuk setup RS bimanual, atur kedua keluarga motor ke
rsdan gunakan kanal CAN native yang terpisah. Setup campuran dapat memilihdmuntuk satu lengan danrsuntuk lengan lainnya.
Lihat Imitation Learning for Robots untuk mengunggah, memutar ulang, melatih, dan mengevaluasi kebijakan.
Kontrol lanjutan
Kedua build tersebut mengekspos nama sendi dan posisi publik yang sama dalam derajat. LeRobot menerapkan tanda arah motor dari masing-masing keluarga ke aksi dan observasi, sehingga kebijakan dan teleoperator tidak perlu mengonversi tanda motor.
- DM menggunakan kontrol MIT untuk lengan dan
force_posuntuk gripper secara default.gripper_torque_ratiosecara default adalah0.07; DM juga mendukung--robot.control_mode=pos_vel. - RS menggunakan kontrol MIT dan gripper impedansi dengan batas gaya karena MotorBridge tidak menyediakan
force_posuntuk RobStride. Tergantung pada gerakan gripper yang diukur, torsi yang diperintahkan dibatasi pada3.5N·m saat bergerak atau1.0N·m saat menahan. Jika umpan balik gagal, LeRobot akan mencoba memerintahkan torsi gripper nol dan kemudian menonaktifkan lengan. mit_kp,mit_kd, danpos_vel_velocitymenerima satu skalar untuk setiap sendi atau pemetaan yang berkey sendi.max_relative_targetmembatasi perbedaan antara perintah dan posisi terukur terakhir. Sebagai contoh,--robot.max_relative_target=5.0membatasi setiap sendi yang diperintahkan agar hanya berubah sebesar lima derajat.joint_limitssecara opsional menimpa nilai default keluarga pada derajat sendi publik.
Arah motor pengikut dipilih secara internal dari keluarga motor. joint_directions dari motor pemimpin tetap dapat dikonfigurasi jika sendi teleoperasi bergerak ke arah yang salah.
DM and RS use the same coordinate convention, but their geometry, gains, and dynamics differ. Validate policies and datasets before transferring them between builds.
Pemecahan Masalah
| Masalah | Periksa |
|---|---|
| Perangkat serial tidak ada atau sedang digunakan | Hubungkan ulang satu perangkat pada satu waktu, jalankan ulang lerobot-find-port, periksa izin, dan hapus brltty di Linux. |
| CAN bawaan tidak dapat terhubung | Periksa runtime adapter, nama channel, bitrate 1 Mbps, daya motor, kabel CAN, dan terminasi. |
| Sendi teleoperasi bergerak ke arah yang salah | Hentikan program, konfirmasi motor_family, dan periksa joint_directions pemimpin. |
| Kalibrasi tidak digunakan kembali | Gunakan id robot atau teleoperator yang sama yang digunakan selama kalibrasi. |
Untuk perakitan, pengkabelan, dan diagnostik spesifik perangkat keras, lihat panduan Seeed Studio untuk B601-DM dan B601-RS.
Update on GitHub