LeRobot documentation

SO-101

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

SO-101

SO-101 SO-101

Trong các bước bên dưới, chúng tôi giải thích cách lắp ráp robot chủ lực của chúng tôi, SO-101.

Tìm nguồn cung cấp linh kiện

Hãy làm theo README này. Tài liệu này chứa danh sách vật liệu, kèm liên kết để tìm mua linh kiện, cũng như hướng dẫn in 3D các bộ phận. Nó cũng có lời khuyên nếu đây là lần đầu bạn in 3D hoặc nếu bạn chưa sở hữu máy in 3D.

Cài đặt LeRobot 🤗

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

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

pip install -e ".[feetech]"

Hướng dẫn lắp ráp từng bước

Cánh tay follower sử dụng 6 động cơ STS3215 với tỷ số truyền 1/345. Tuy nhiên, cánh tay leader sử dụng ba động cơ có tỷ số truyền khác nhau để đảm bảo nó có thể tự duy trì trọng lượng của mình và có thể được di chuyển mà không cần tốn nhiều lực. Bảng dưới đây cho thấy động cơ nào được sử dụng cho khớp nào.

Trục Leader-ArmMotorTỷ số truyền
Cơ bản / Vai11 / 191
Nâng vai21 / 345
Uốn khuỷu tay31 / 191
Wrist Flex41 / 147
Wrist Roll51 / 147
Gripper61 / 147

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 kết nối MotorBus với máy tính của bạn qua USB và nguồn điện. Chạy script sau và ngắt kết nối MotorBus khi được yêu cầu:

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ó thể cũng cần thực hiện bước này vì các id và baudrate có thể không khớp.

Video bên dưới cho thấy trình tự các bước để thiết lập các id động cơ.

Video cài đặt động cơ

Người theo dõi

Kết nối cáp usb từ máy tính và bộ nguồn vào bo mạch điều khiển của cánh tay theo dõi. 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 theo dõi của mình bằng tham số id.

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

Bạn nên 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 có thể để nó vẫ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 chính.

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

Các phần sạch

Loại bỏ tất cả vật liệu hỗ trợ khỏi các chi tiết in 3D. Cách dễ nhất để làm điều này là sử dụng một chiếc tua vít nhỏ để luồn vào bên dưới vật liệu hỗ trợ.

Nên lắp một cáp 3 chân vào động cơ sau khi đặt chúng trước khi tiếp tục lắp ráp.

Liên kết 1

  • Lắp cả hai còi động cơ. Cố định còi trên bằng một vít M3x6mm. Còi dưới không cần vít.
  • Đặt động cơ đầu tiên vào đế.
  • Gắn chặt động cơ bằng 4 vít M2x6mm (vít nhỏ nhất). Hai vít từ phía trên và hai vít từ phía dưới.
  • Trượt qua giá đỡ động cơ đầu tiên và cố định nó bằng hai vít M2x6mm (một ở mỗi bên).
  • Gắn phần vai.
  • Siết chặt phần vai bằng 4 vít M3x6mm ở phía trên và 4 vít M3x6mm ở phía dưới
  • Thêm giá đỡ động cơ vai.

Liên kết 2

  • Lắp cả hai còi động cơ. Cố định còi trên bằng một vít M3x6mm. Còi dưới không cần vít.
  • Trượt động cơ thứ hai từ trên xuống.
  • Gắn chặt động cơ thứ hai bằng 4 vít M2x6mm.
  • Gắn cánh tay trên bằng 4 vít M3x6mm ở mỗi bên.

Liên kết 3

  • Lắp cả hai còi động cơ. Cố định còi trên bằng một vít M3x6mm. Còi dưới không cần vít.
  • Lắp động cơ 3 và siết chặt bằng 4 vít M2x6mm.
  • Kết nối cẳng tay với động cơ 3 bằng 4 vít M3x6mm ở mỗi bên.

Liên kết 4

  • Lắp cả hai còi động cơ. Cố định còi trên bằng một vít M3x6mm. Còi dưới không cần vít.
  • Trượt giá đỡ động cơ 4.
  • Trượt vào động cơ 4.
  • Siết chặt động cơ 4 bằng 4 vít M2x6mm.

Liên kết 5

  • Chèn động cơ 5 vào giá đỡ cổ tay và cố định bằng 2 vít trước M2x6mm.
  • Chỉ lắp một còi động cơ vào động cơ cổ tay và cố định bằng vít còi M3x6mm.
  • Cố định cổ tay vào động cơ 4 bằng 4 vít M3x6mm ở cả hai bên.

Tay gắp / Tay cầm

Người theo dõi
Trưởng nhóm
  • Gắn kẹp vào động cơ 5, sau đó gắn nó vào sừng động cơ trên cổ tay bằng 4 vít M3x6mm.
  • Chèn động cơ kẹp và cố định bằng 2 vít M2x6mm ở mỗi bên.
  • Lắp cả hai sừng động cơ lên động cơ kẹp. Cố định sừng phía trên bằng một vít M3x6mm; không cần vít cho sừng phía dưới.
  • Lắp càng kẹp và cố định bằng 4 vít M3x6mm ở cả hai bên.

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=so101_follower \
    --robot.port=/dev/tty.usbmodem58760431551 \
    --robot.id=my_awesome_follower_arm

Video bên dưới cho thấy cách thực hiện hiệu chuẩn. Trước tiên, bạn cần di chuyển robot đến vị trí mà tất cả các khớp đều nằm ở giữa phạm vi chuyển động của chúng. Sau đó, sau khi nhấn enter, bạn phải di chuyển từng khớp qua toàn bộ phạm vi chuyển động của nó.

Video hiệu chuẩn

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=so101_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