LeRobot documentation
OMX
OMX
Đặt hàng và lắp ráp các bộ phận
Đầu tiên, lắp ráp phần cứng OMX theo hướng dẫn lắp ráp chính thức.
Hướng dẫn lắp ráp OMX: https://ai.robotis.com/omx/assembly_guide_omx.html
Robot OMX được xuất xưởng với cấu hình sẵn. ID động cơ, thông số liên lạc và độ lệch khớp đã được thiết lập, do đó không cần thiết lập hoặc hiệu chuẩn động cơ bổ sung trước khi sử dụng LeRobot.
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 hỗ trợ động cơ Dynamixel:
pip install -e ".[dynamixel]"Kết nối robot
Để tìm cổng cho mỗi bộ điều khiển servo bus, hãy chạy script này:
lerobot-find-port
Lệnh này sẽ được thực thi và khi được yêu cầu, hãy ngắt cáp USB khỏi cánh tay leader hoặc follower rồi nhấn Enter. Đầu ra sẽ hiển thị ‘The port of this MotorsBus is [port]’. Điều này xác định cổng cho cánh tay đã bị ngắt kết nối. Lặp lại với cánh tay còn lại để xác định cả hai cổng.
Ví dụ về kết quả đầu ra trên macOS:
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.
Trên Linux, chúng tôi khuyến nghị mạnh mẽ việc sử dụng quy tắc udev để gán tên thiết bị bền vững và dễ đọc cho cánh OMX leader và follower. Điều này giúp tránh các vấn đề xảy ra khi tên thiết bị như ttyACM0 và ttyACM1 thay đổi khi robot bị rút ra, cắm lại, hoặc khi hệ thống khởi động lại.
1. Tìm số sê-ri thiết bị của bạn
Bạn nên đã lấy được các số cổng như ../../ttyACM? cho thiết bị leader và follower bằng lerobot-find-port. Bạn có thể đối chiếu các kết quả đó với số serial bằng lệnh ls -l /dev/serial/by-id/.
Để tạo các quy tắc udev, bạn cần số serial duy nhất cho mỗi thiết bị OMX. Cách dễ nhất là liệt kê các thiết bị dưới:
ls -l /dev/serial/by-id/Bạn sẽ thấy kết quả tương tự như:
usb-ROBOTIS_OpenRB-150_228BDD7B503059384C2E3120FF0A2B19-if00 -> ../../ttyACM0 usb-ROBOTIS_OpenRB-150_67E1ED68503059384C2E3120FF092234-if00 -> ../../ttyACM1
Trong mỗi dòng, số sê-ri là chuỗi dài nằm sau usb-ROBOTIS_OpenRB-150_ và trước -if00.
Chuỗi người theo dõi: 228BDD7B503059384C2E3120FF0A2B19
Chuỗi leader: 67E1ED68503059384C2E3120FF092234
2. Tạo quy tắc udev
Tạo một tệp quy tắc udev mới:
sudo nano /etc/udev/rules.d/99-omx.rulesDán các dòng sau, thay thế các số serial bằng các giá trị bạn đã tìm thấy ở trên:
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{serial}=="228BDD7B503059384C2E3120FF0A2B19", SYMLINK+="omx_follower"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{serial}=="67E1ED68503059384C2E3120FF092234", SYMLINK+="omx_leader"Lưu tệp và nạp lại các quy tắc udev:
sudo udevadm control --reload-rules
sudo udevadm triggerBây giờ hãy rút và cắm lại cả hai thiết bị một lần.
3. Xác minh các liên kết biểu tượng
Kiểm tra xem tên thiết bị bền vững có tồn tại hay không:
ls -l /dev/omx_follower /dev/omx_leaderBạn nên thấy chúng trỏ đến các thiết bị ttyACM*:
/dev/omx_follower -> ttyACM* /dev/omx_leader -> ttyACM*
Các tên này vẫn ổn định qua các lần khởi động lại và kết nối lại.
Điều khiển từ xa
Sau khi xác định các cổng chính xác, bạn có thể trực tiếp điều khiển tay follower bằng tay leader.
Điều khiển từ xa mà không cần camera
lerobot-teleoperate \ --robot.type=omx_follower \ --robot.port=<your_follower_port> \ --robot.id=omx_follower_arm \ --teleop.type=omx_leader \ --teleop.port=<your_leader_port> \ --teleop.id=omx_leader_arm
Trong quá trình điều khiển từ xa, các chuyển động của cánh tay dẫn được cánh tay theo sao chép lại theo thời gian thực. OMX đã được cấu hình sẵn, việc điều khiển từ xa có thể bắt đầu ngay lập tức mà không cần bất kỳ bước hiệu chuẩn nào.
Điều khiển từ xa bằng camera
Bạn cũng có thể bật đầu vào camera trong quá trình điều khiển từ xa bằng cách cung cấp cấu hình camera cho cánh tay theo dõi.
lerobot-teleoperate \
--robot.type=omx_follower \
--robot.port=<your_follower_port> \
--robot.id=omx_follower_arm \
--robot.cameras="{front: {type: opencv, index_or_path: '/dev/video0', width: 640, height: 480, fps: 30}}" \
--teleop.type=omx_leader \
--teleop.port=<your_leader_port> \
--teleop.id=omx_leader_arm \
--display_data=trueKhi camera được bật, luồng video từ camera sẽ được hiển thị theo thời gian thực và đồng bộ với trạng thái của robot. Cấu hình này hữu ích cho việc giám sát trực quan và có thể được tái sử dụng sau đó cho việc ghi lại bản demo và học bắt chước.
Điều khiển từ xa mà không cần camera
lerobot-teleoperate \ --robot.type=omx_follower \ --robot.port=/dev/omx_follower \ --robot.id=omx_follower_arm \ --teleop.type=omx_leader \ --teleop.port=/dev/omx_leader \ --teleop.id=omx_leader_arm
Trong quá trình điều khiển từ xa, các chuyển động của cánh tay dẫn được cánh tay theo sao chép lại theo thời gian thực. OMX đã được cấu hình sẵn, việc điều khiển từ xa có thể bắt đầu ngay lập tức mà không cần bất kỳ bước hiệu chuẩn nào.
Điều khiển từ xa bằng camera
Bạn cũng có thể bật đầu vào camera trong quá trình điều khiển từ xa bằng cách cung cấp cấu hình camera cho cánh tay theo dõi.
lerobot-teleoperate \
--robot.type=omx_follower \
--robot.port=/dev/omx_follower \
--robot.id=omx_follower_arm \
--robot.cameras="{front: {type: opencv, index_or_path: '/dev/video0', width: 640, height: 480, fps: 30}}" \
--teleop.type=omx_leader \
--teleop.port=/dev/omx_leader \
--teleop.id=omx_leader_arm \
--display_data=trueKhi camera được bật, luồng video từ camera sẽ được hiển thị theo thời gian thực và đồng bộ với trạng thái của robot. Cấu hình này hữu ích cho việc giám sát trực quan và có thể được tái sử dụng sau đó cho việc ghi lại bản demo và học bắt chước.
Chúc mừng 🎉, robot của bạn đã sẵn sàng để tự học một tác vụ.
Update on GitHubNế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.