LeRobot documentation
reBot B601
reBot B601
reBot B601 là cánh tay robot mã nguồn mở từ Seeed Studio dành cho học bắt chước và AI hiện thân. Một cấu hình kết hợp cánh tay theo dõi 6-DOF với kẹp và reBot Arm 102 làm cánh tay dẫn để vận hành từ xa.
Follower có sẵn với động cơ Damiao (DM) hoặc RobStride (RS). Cả hai cấu hình đều sử dụng cùng một loại robot LeRobot và tên khớp; hãy chọn phần cứng bằng --robot.motor_family.
| Xây dựng | motor_family | Động cơ | Kết nối mặc định |
|---|---|---|---|
| B601-DM | dm | Damiao (cơ sở 4340P, cổ tay 4310) | Cầu nối nối tiếp Damiao |
| B601-RS | rs | RobStride (cơ sở rs-06, cổ tay rs-00) | CAN bản địa |
Hướng dẫn này bao gồm việc thiết lập phần cứng, hiệu chuẩn, điều khiển từ xa và ghi hình cho các cấu hình một cánh tay và hai cánh tay.

Người theo dõi B601 (bên trái) và người dẫn đầu reBot Arm 102 (bên phải). Người theo dõi DM và RS có cùng bố trí khớp và ngoại hình tổng thể nhưng sử dụng các động cơ khác nhau. Hình ảnh do Seeed Studio cung cấp.
Phần cứng và an toàn
Lắp ráp, đấu nối và cấu hình các động cơ theo hướng dẫn của Seeed Studio cho thiết bị theo dõi của bạn: B601-DM hoặc 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.
Cài đặt LeRobot 🤗
Làm theo Hướng dẫn cài đặt, sau đó cài đặt hỗ trợ reBot:
pip install -e ".[rebot]"Lệnh này cài đặt motorbridge cho follower và motorbridge-smart-servo cho leader của reBot Arm 102.
Kết nối phần cứng
DM sử dụng cầu nối serial của nó theo mặc định và có thể tùy chọn sử dụng CAN native. RS yêu cầu CAN native.
can_adapter | Sử dụng | Ví dụ về cổng |
|---|---|---|
damiao | Cầu nối nối tiếp Damiao; chỉ dành cho DM | /dev/ttyACM0 |
socketcan | CAN bản địa của MotorBridge; bắt buộc đối với RS | can0 |
Họ motor chọn bộ điều phối mặc định. Để chạy DM trên CAN bản địa thay vào đó, hãy thêm --robot.can_adapter=socketcan và sử dụng kênh CAN của nó làm --robot.port.
Cầu nối tuần tự
Sử dụng lerobot-find-port để xác định các cổng cầu nối serial DM và leader. Nếu tên các thiết bị khó phân biệt, hãy kết nối từng thiết bị serial một.
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 bản địa
Tên cấu hình socketcan được giữ nguyên trên các nền tảng. Linux sử dụng SocketCAN. macOS yêu cầu bộ điều hợp PCAN tương thích và runtime MacCAN PCBUSB. Hỗ trợ native-CAN trên Windows là thử nghiệm và yêu cầu bộ điều hợp PEAK PCAN cùng PCAN-Basic. Xem cài đặt nền tảng MotorBridge để biết chi tiết cài đặt.
Trên Linux, hãy cấu hình mỗi giao diện CAN native ở tốc độ 1 Mbps trước khi kết nối một RS follower:
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 can0Thay can0 bằng kênh do backend CAN của bạn cung cấp. Các cấu hình CAN bản địa hai tay cần các kênh riêng biệt như can0 và can1 vì cả hai cánh tay đều sử dụng cùng các ID động cơ.
Các loại thiết bị
| Loại | Thiết bị |
|---|---|
rebot_b601_follower | Một người theo dõi |
bi_rebot_b601_follower | Người theo dõi hai tay |
rebot_102_leader | Đơn reBot Arm 102 leader |
bi_rebot_102_leader | Bimanual reBot Arm 102 leader |
motor_family mặc định là dm. Trong cấu hình hai tay, mỗi cánh tay có các cài đặt left_arm_config.* hoặc right_arm_config.* riêng và có thể chọn họ động cơ độc lập.
Hiệu chuẩn
Calibration đặt tư thế vật lý hiện tại làm vị trí zero của động cơ và lưu tệp hiệu chuẩn LeRobot. Đặt mỗi cánh tay vào vị trí zero như hình bên dưới với kẹp gắp đóng hoàn toàn, sau đó nhấn ENTER khi được yêu cầu.

Vị trí zero của follower (bên trái) và vị trí zero của leader (bên phải). Hình ảnh hiển thị follower DM; follower RS sử dụng cùng bố trí khớp.
Tái sử dụng cùng --robot.id và --teleop.id trong các lệnh sau để LeRobot tải hiệu chuẩn đã lưu. Nếu hiệu chuẩn đã tồn tại, lệnh cho phép bạn tái sử dụng nó hoặc nhập c để hiệu chuẩn lại.
Người theo dõi
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=followerQuá trình hiệu chuẩn được thực hiện cho người theo dõi bên trái trước, sau đó là người theo dõi bên phải.
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/ttyACM1Đối với hai người theo dõi RS, đặt cả hai họ thành rs và sử dụng các kênh CAN native riêng biệt cho hai cổng. Các tệp hiệu chuẩn cho từng cánh tay sử dụng hậu tố _left và _right.
Trưởng nhóm
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/ttyUSB1Điều khiển từ xa
Bắt đầu với các chuyển động nhỏ và kiểm tra hướng của từng khớp trước khi sử dụng toàn bộ không gian làm việc.
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/ttyUSB1Ghi lại một bộ dữ liệu
Kiểm tra điều khiển từ xa trước khi ghi hình. Để thêm một camera, trước tiên hãy xác định nó bằng:
lerobot-find-cameras opencv
Một cánh tay
Ví dụ này ghi lại năm tập DM cục bộ bằng một camera 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=trueĐối với RS, thay đổi motor_family thành rs và cổng robot thành kênh CAN native. Xóa đối số camera cho bài kiểm tra chỉ có động cơ.
Hai tay
Ví dụ DM này ghi lại một camera trên cùng dùng chung và một camera cổ tay cho mỗi cánh tay. Các khóa camera của bộ dữ liệu là top, left_wrist và 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=falseĐối với cấu hình RS hai tay, đặt cả hai nhóm động cơ thành
rsvà sử dụng các kênh CAN native riêng biệt. Cấu hình hỗn hợp có thể chọndmcho một cánh tay vàrscho cánh tay còn lại.
Xem Imitation Learning for Robots để tải lên, phát lại, huấn luyện và đánh giá một chính sách.
Kiểm soát nâng cao
Cả hai bản build đều hiển thị cùng các tên khớp và vị trí công khai tính bằng độ. LeRobot áp dụng các dấu hướng động cơ của từng dòng vào các hành động và quan sát, do đó các chính sách và người vận hành từ xa không cần phải chuyển đổi dấu động cơ.
- DM sử dụng điều khiển MIT cho cánh tay và
force_poscho kẹp gắp theo mặc định.gripper_torque_ratiocó giá trị mặc định là0.07; DM cũng hỗ trợ--robot.control_mode=pos_vel. - RS sử dụng điều khiển MIT và kẹp tay có trở kháng giới hạn lực vì MotorBridge không cung cấp
force_poscho RobStride. Tùy thuộc vào chuyển động đo được của kẹp tay, mô-men xoắn được lệnh sẽ bị giới hạn ở mức3.5N·m khi di chuyển hoặc1.0N·m khi giữ. Nếu phản hồi thất bại, LeRobot sẽ cố gắng lệnh mô-men xoắn kẹp tay bằng không và sau đó vô hiệu hóa cánh tay. mit_kp,mit_kdvàpos_vel_velocitychấp nhận một giá trị vô hướng cho mỗi khớp hoặc một ánh xạ theo khóa khớp.max_relative_targetgiới hạn sự khác biệt giữa một lệnh và vị trí đo được gần nhất. Ví dụ,--robot.max_relative_target=5.0giới hạn mỗi khớp được lệnh thay đổi tối đa năm độ.joint_limitstùy chọn ghi đè các mặc định của nhóm trong các bậc tự do khớp công khai.
Hướng của động cơ follower được chọn bên trong từ họ động cơ. joint_directions của leader vẫn có thể cấu hình nếu một khớp teleoperation di chuyển theo hướng sai.
DM and RS use the same coordinate convention, but their geometry, gains, and dynamics differ. Validate policies and datasets before transferring them between builds.
Xử lý sự cố
| Vấn đề | Kiểm tra |
|---|---|
| Thiết bị nối tiếp bị thiếu hoặc đang bận | Kết nối lại từng thiết bị một, chạy lại lerobot-find-port, kiểm tra quyền truy cập và gỡ bỏ brltty trên Linux. |
| CAN bản địa không thể kết nối | Kiểm tra thời gian chạy của adapter, tên kênh, tốc độ bit 1 Mbps, công suất động cơ, dây nối CAN và điện trở cuối. |
| Một khớp điều khiển từ xa di chuyển theo hướng sai | Dừng chương trình, xác nhận motor_family và kiểm tra joint_directions của leader. |
| Việc hiệu chuẩn không được tái sử dụng | Sử dụng cùng một robot hoặc id của người vận hành từ xa đã được dùng trong quá trình hiệu chuẩn. |
Đối với việc lắp ráp, đấu nối và chẩn đoán phần cứng cụ thể, hãy xem các hướng dẫn của Seeed Studio dành cho B601-DM và B601-RS.
Update on GitHub