LeRobot documentation

Koch v1.1

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Koch v1.1

Trong các bước bên dưới, chúng tôi giải thích cách lắp ráp robot Koch v1.1.

Đặt hàng và lắp ráp các bộ phận

Làm theo các hướng dẫn tìm nguồn và lắp ráp được cung cấp trong README này. Các bước này sẽ hướng dẫn bạn thiết lập cả cánh tay follower và cánh tay leader, như được minh họa trong hình bên dưới.

Để xem hướng dẫn trực quan về quy trình lắp ráp, bạn có thể tham khảo video hướng dẫn này.

Kể từ khi video này được sản xuất, chúng tôi đã đơn giản hóa giai đoạn cấu hình. Vì lý do này, có hai điểm khác biệt so với các hướng dẫn trong video đó:

  • Đừng cắm tất cả các cáp động cơ ngay lập tức và chờ đến khi được hướng dẫn thực hiện trong Cấu hình các động cơ.
  • Đừng vặn chặt bảng mạch điều khiển (PCB) vào đế ngay mà hãy chờ đến khi được hướng dẫn thực hiện trong Cấu hình động cơ.

Cài đặt LeRobot 🤗

Để cài đặt LeRobot, hãy làm theo Hướng dẫn cài đặt của chúng tôi

Ngoài các hướng dẫn này, bạn cần cài đặt Dynamixel SDK (nếu bạn đã cài đặt LeRobot từ PyPI, hãy chạy pip install 'lerobot[dynamixel]' thay thế):

pip install -e ".[dynamixel]"

Cấu hình các động cơ

1. Tìm các cổng USB liên quan đến mỗi cánh tay

Để tìm cổng cho mỗi bộ điều khiển servo bus, hãy chạy script này:

lerobot-find-port
Mac
Linux

Ví dụ về kết quả đầu ra:

Finding all available ports for the MotorBus.
['/dev/tty.usbmodem575E0032081', '/dev/tty.usbmodem575E0031751']
Remove the USB cable from your MotorsBus and press Enter when done.

[...Disconnect corresponding leader or follower arm and press Enter...]

The port of this MotorsBus is /dev/tty.usbmodem575E0032081
Reconnect the USB cable.

Cổng được tìm thấy là: /dev/tty.usbmodem575E0032081 tương ứng với cánh tay leader hoặc follower của bạn.

2. Đặt các id và baudrate của động cơ

Mỗi động cơ được xác định bằng một id duy nhất trên bus. Khi mới mua, động cơ thường có id mặc định là 1. Để việc truyền thông giữa các động cơ và bộ điều khiển hoạt động chính xác, trước tiên chúng ta cần đặt một id duy nhất, khác nhau cho từng động cơ. Ngoài ra, tốc độ truyền dữ liệu trên bus được xác định bởi baudrate. Để giao tiếp với nhau, bộ điều khiển và tất cả các động cơ cần được cấu hình với cùng một baudrate.

Để làm được điều đó, trước tiên chúng ta cần kết nối với từng động cơ riêng lẻ thông qua bộ điều khiển để thiết lập các thông số này. Vì chúng ta sẽ ghi các tham số này vào phần bộ nhớ nội bộ không bay hơi (EEPROM) của các động cơ, nên chúng ta chỉ cần thực hiện thao tác này một lần.

Nếu bạn đang tái sử dụng động cơ từ một robot khác, bạn cũng sẽ cần thực hiện bước này, vì các id và baudrate có thể không khớp.

Người theo dõi

Kết nối cáp usb từ máy tính và nguồn điện 12V vào bo mạch điều khiển của cánh tay follower (cánh tay leader sử dụng nguồn điện 5V). Sau đó, chạy lệnh sau hoặc chạy ví dụ API với cổng bạn đã nhận được từ bước trước. Bạn cũng cần đặt tên cho cánh tay follower của mình bằng tham số id.

Để có tham khảo trực quan về cách thiết lập các id động cơ, vui lòng xem video này, trong đó chúng tôi thực hiện quy trình cho cánh tay SO101.

Lệnh
Ví dụ API
lerobot-setup-motors \
    --robot.type=koch_follower \
    --robot.port=/dev/tty.usbmodem575E0031751 # <- paste here the port found at previous step

Bạn sẽ thấy hướng dẫn sau.

Connect the controller board to the 'gripper' motor only and press enter.

Theo hướng dẫn, cắm motor của kẹp. Đảm bảo đây là motor duy nhất được kết nối với bo mạch, và bản thân motor chưa được nối dây daisy-chain với bất kỳ motor nào khác. Khi bạn nhấn [Enter], script sẽ tự động đặt id và baudrate cho motor đó.

Troubleshooting

Nếu bạn gặp lỗi ở bước đó, hãy kiểm tra các cáp và đảm bảo chúng được cắm đúng cách:

  • Nguồn điện
  • Cáp USB giữa máy tính của bạn và bảng điều khiển
  • Cáp 3 chân từ bo mạch điều khiển đến động cơ

Nếu bạn đang sử dụng bo mạch điều khiển Waveshare, hãy đảm bảo rằng hai cầu nối được đặt ở kênh B (USB).

Sau đó, bạn sẽ thấy thông báo sau:

'gripper' motor id set to 6

Tiếp theo là hướng dẫn tiếp theo:

Connect the controller board to the 'wrist_roll' motor only and press enter.

Bạn có thể tháo cáp 3 chân khỏi bảng điều khiển nhưng vẫn có thể để nó cắm vào động cơ kẹp ở đầu kia vì nó đã ở đúng vị trí. Bây giờ, cắm một cáp 3 chân khác vào động cơ xoay cổ tay và kết nối nó với bảng điều khiển. Giống như động cơ trước, hãy đảm bảo rằng đây là động cơ duy nhất được kết nối với bảng và bản thân động cơ không được kết nối với bất kỳ động cơ nào khác.

Lặp lại thao tác cho mỗi động cơ theo hướng dẫn.

Kiểm tra dây cáp ở mỗi bước trước khi nhấn Enter. Ví dụ, cáp nguồn có thể bị lỏng khi bạn thao tác trên bo mạch.

Khi hoàn tất, script sẽ tự động kết thúc, lúc này các động cơ đã sẵn sàng để sử dụng. Bạn có thể cắm cáp 3 chân từ mỗi động cơ sang động cơ tiếp theo, và cắm cáp từ động cơ đầu tiên (‘shoulder pan’ với id=1) vào bo mạch điều khiển, bo mạch này giờ có thể được gắn vào phần đế của cánh tay robot.

Trưởng nhóm

Thực hiện các bước tương tự cho cánh tay leader nhưng điều chỉnh lệnh hoặc script cho phù hợp.

Lệnh
Ví dụ API
lerobot-setup-motors \
    --teleop.type=koch_leader \
    --teleop.port=/dev/tty.usbmodem575E0031751

Hiệu chuẩn

Tiếp theo, bạn cần hiệu chuẩn robot để đảm bảo rằng cánh tay dẫn và cánh tay theo có cùng giá trị vị trí khi chúng ở cùng một vị trí vật lý. Quá trình hiệu chuẩn rất quan trọng vì nó cho phép một mạng nơ-ron được huấn luyện trên một robot có thể hoạt động trên một robot khác.

Người theo dõi

Chạy lệnh hoặc ví dụ API sau để hiệu chuẩn cánh tay follower:

Lệnh
Ví dụ API
# Use the port of your follower arm, and give the arm a unique name with --robot.id
lerobot-calibrate \
    --robot.type=koch_follower \
    --robot.port=/dev/tty.usbmodem58760431551 \
    --robot.id=my_awesome_follower_arm

Chúng tôi đã thống nhất phương pháp hiệu chuẩn cho hầu hết các robot. Do đó, các bước hiệu chuẩn cho cánh tay Koch này giống hệt với các bước cho SO100 và SO101. Trước tiên, chúng ta phải di chuyển robot đến vị trí mà mỗi khớp nằm ở giữa phạm vi chuyển động của nó, sau đó nhấn Enter. Tiếp theo, chúng ta di chuyển tất cả các khớp qua toàn bộ phạm vi chuyển động của chúng. Một video về cùng quy trình này cho SO101 để tham khảo có thể tìm thấy tại đây.

Trưởng nhóm

Thực hiện các bước tương tự để hiệu chuẩn cánh tay chính, chạy lệnh hoặc ví dụ API sau:

Lệnh
Ví dụ API
# Use the port of your leader arm, and give the arm a unique name with --teleop.id
lerobot-calibrate \
    --teleop.type=koch_leader \
    --teleop.port=/dev/tty.usbmodem58760431551 \
    --teleop.id=my_awesome_leader_arm

Chúc mừng 🎉, robot của bạn đã sẵn sàng để tự học một tác vụ. Bắt đầu huấn luyện nó bằng cách làm theo hướng dẫn này: Bắt đầu với robot thực tế

Nếu bạn có bất kỳ câu hỏi nào hoặc cần hỗ trợ, vui lòng liên hệ trên Discord.

Update on GitHub