LeRobot documentation

OpenArm

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

OpenArm

OpenArm là cánh tay humanoid 7DOF mã nguồn mở được thiết kế cho nghiên cứu và triển khai AI vật lý.

Để có được OpenArm của bạn, dù là đã lắp ráp sẵn hay tự lắp ráp, và tham gia vào cộng đồng toàn cầu, hãy tìm hiểu các nhà sản xuất được xác minh và chứng nhận trên toàn thế giới tại openarm.dev.

Điểm khác biệt?

  • Thiết kế theo tỷ lệ con người: OpenArm được thiết kế với các tỷ lệ giống con người, được thu nhỏ để phù hợp với người cao khoảng 160-165cm. Điều này mang lại sự cân bằng tối ưu giữa tầm với thực tế và quán tính có thể kiểm soát được, cho phép vận hành an toàn và phản hồi nhanh.

  • Kiến trúc đặt an toàn lên hàng đầu: Được xây dựng với động cơ QDD có khả năng đảo ngược và độ tuân thủ cao, OpenArm ưu tiên tương tác an toàn giữa con người và robot trong khi vẫn duy trì khả năng tải thực tế (đỉnh 6,0kg / danh định 4,1kg) cho các tác vụ thực tế.

  • Được thiết kế để bền bỉ: Các thành phần cấu trúc quan trọng được chế tạo từ nhôm và thép không gỉ, đảm bảo hiệu suất ổn định cho việc thu thập dữ liệu lặp đi lặp lại và sử dụng nghiên cứu liên tục.

  • Truy cập và chế tạo hoàn toàn: Mọi thành phần, từ các chi tiết CNC và vỏ in 3D đến hệ thống dây điện, đều được thiết kế để các nhà nghiên cứu và phòng thí nghiệm cá nhân có thể mua và chế tạo, kèm theo dữ liệu chế tạo đầy đủ.

  • Thực dụng & Chi phí hợp lý: Với giá 6.500 USD cho một hệ thống hai tay hoàn chỉnh, OpenArm mang lại khả năng cấp nghiên cứu với chi phí chỉ bằng một phần nhỏ so với các robot humanoid truyền thống.

Yêu cầu về nền tảng

**Linux Only**: OpenArm currently only works on Linux. The CAN bus USB adapter does not have macOS drivers and has not been tested on Windows.

Hướng dẫn An toàn

Trước khi vận hành OpenArm, vui lòng đọc hướng dẫn an toàn chính thức. Các điểm chính:

  • Cài đặt an toàn: Cố định cánh tay vào bề mặt phẳng, ổn định bằng ốc vít hoặc kẹp
  • Khoảng cách an toàn: Giữ các bộ phận cơ thể và vật thể nằm ngoài phạm vi di chuyển trong quá trình vận hành
  • Thiết bị bảo hộ: Luôn đeo kính bảo hộ; sử dụng thêm PPE khi cần
  • Giới hạn tải trọng: Không được vượt quá giới hạn tải trọng quy định (6,0kg đỉnh / 4,1kg danh định cho mỗi cánh tay)
  • Dừng khẩn cấp: Biết vị trí và cách vận hành thiết bị dừng khẩn cấp
  • Kiểm tra định kỳ: Kiểm tra các vít lỏng, giới hạn cơ khí bị hỏng, tiếng ồn bất thường và hư hỏng dây điện

Cấu hình phần cứng

Xem tài liệu phần cứng OpenArm chính thức để biết thêm về:

  • Danh sách vật tư và nguồn cung
  • Hướng dẫn in 3D
  • Lắp ráp cơ khí
  • Đường dây điện

Các kho phần cứng có sẵn tại github.com/enactic/openarm.

Cấu hình Bus CAN

OpenArm sử dụng giao tiếp CAN bus với động cơ Damiao. Sau khi bạn đã cắm bộ chuyển đổi CAN bus USB vào máy tính Linux, hãy làm theo hướng dẫn về động cơ Damiao và CAN bus để cấu hình giao diện.

Cài đặt nhanh:

# Setup CAN interfaces
lerobot-setup-can --mode=setup --interfaces=can0,can1

# Test motor communication
lerobot-setup-can --mode=test --interfaces=can0,can1

Cài đặt LeRobot 🤗

Theo Hướng dẫn cài đặt của chúng tôi, sau đó cài đặt hỗ trợ động cơ Damiao:

pip install -e ".[damiao]"

Cách sử dụng

Cánh tay theo dõi (Robot)

Lệnh
Ví dụ API
lerobot-calibrate \
    --robot.type=openarm_follower \
    --robot.port=can0 \
    --robot.side=right \
    --robot.id=my_openarm_follower

Cánh tay điều khiển (Teleoperator)

Cánh tay leader được sử dụng cho teleoperation - di chuyển thủ công để điều khiển cánh tay follower.

Lệnh
Ví dụ API
lerobot-calibrate \
    --teleop.type=openarm_leader \
    --teleop.port=can1 \
    --teleop.id=my_openarm_leader

Điều khiển từ xa

Để điều khiển OpenArm từ xa bằng phương pháp điều khiển leader-follower:

lerobot-teleoperate \
    --robot.type=openarm_follower \
    --robot.port=can0 \
    --robot.side=right \
    --robot.id=my_openarm_follower \
    --teleop.type=openarm_leader \
    --teleop.port=can1 \
    --teleop.id=my_openarm_leader

Sử dụng cùng --robot.id và --teleop.id như trong quá trình hiệu chuẩn để LeRobot tìm thấy các tệp hiệu chuẩn.

Điều khiển từ xa hai tay

Để điều khiển từ xa một hệ thống OpenArm hai tay với hai cánh tay dẫn và hai cánh tay theo:

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

Ghi Dữ Liệu

Để ghi lại một bộ dữ liệu trong quá trình vận hành từ xa:

lerobot-record \
    --robot.type=openarm_follower \
    --robot.port=can0 \
    --robot.side=right \
    --robot.id=my_openarm_follower \
    --teleop.type=openarm_leader \
    --teleop.port=can1 \
    --teleop.id=my_openarm_leader \
    --dataset.repo_id=${HF_USER}/my_openarm_dataset \
    --dataset.single_task="Describe your task here" \
    --dataset.fps=30 \
    --dataset.num_episodes=10

lerobot-record thêm ngày và giờ của phiên vào tên tập dữ liệu, do đó nó được lưu dưới dạng my_hf_username/my_openarm_dataset_YYYYMMDD_HHMMSS. Xem hướng dẫn ghi hình để biết về camera, điều khiển bàn phím và phần còn lại của quy trình.

Tùy chọn cấu hình

Cấu hình Follower

Tham sốMặc địnhMô tả
port-Giao diện CAN (ví dụ: can0)
sideNoneBên cánh tay: "left", "right", hoặc None cho các giới hạn tùy chỉnh
use_can_fdTrueBật CAN FD để đạt tốc độ truyền dữ liệu cao hơn
can_bitrate1000000Tốc độ bit danh định (1 Mbps)
can_data_bitrate5000000Tốc độ bit dữ liệu CAN FD (5 Mbps)
max_relative_targetNoneGiới hạn an toàn cho các vị trí đích tương đối
position_kpTheo từng khớpHệ số khuếch đại tỷ lệ cho điều khiển vị trí
position_kdTheo từng khớpHệ số lợi đạo hàm của điều khiển vị trí

Cấu hình Leader

Tham sốMặc địnhMô tả
port-Giao diện CAN (ví dụ: can1)
manual_controlTrueTắt mô-men xoắn cho chuyển động thủ công
use_can_fdTrueBật CAN FD để đạt tốc độ truyền dữ liệu cao hơn
can_bitrate1000000Tốc độ bit danh định (1 Mbps)
can_data_bitrate5000000Tốc độ bit dữ liệu CAN FD (5 Mbps)

Cấu hình động cơ

OpenArm sử dụng động cơ Damiao với cấu hình mặc định như sau:

Liên hợpLoại động cơGửi IDID nhận
joint_1 (Xoay vai)DM80090x010x11
joint_2 (Nâng vai)DM80090x020x12
joint_3 (Xoay vai)DM43400x030x13
joint_4 (Uốn khuỷu tay)DM43400x040x14
joint_5 (Xoay cổ tay)DM43100x050x15
joint_6 (Góc nghiêng cổ tay)DM43100x060x16
joint_7 (Xoay cổ tay)DM43100x070x17
gripperDM43100x080x18

Xử lý sự cố

Không có phản hồi từ động cơ

  1. Kiểm tra các kết nối nguồn điện
  2. Verify CAN wiring (CAN-H, CAN-L, GND)
  3. Chạy chẩn đoán: lerobot-setup-can --mode=test --interfaces=can0
  4. Xem hướng dẫn khắc phục sự cố Damiao để biết thêm chi tiết

Không tìm thấy giao diện CAN

Đảm bảo giao diện CAN được cấu hình:

ip link show can0

Tài nguyên

Update on GitHub