Cánh tay robot chi phí thấp
(github.com/AlexanderKoch-Koch)- Kho lưu trữ Low-Cost Robot Arm cung cấp các tệp để chế tạo và điều khiển một cánh tay robot với chi phí khoảng $250, và nếu thêm một leader arm riêng thì có thể điều khiển follower arm với tổng cấu hình khoảng $430
- follower arm sử dụng kết hợp servo Dynamixel XL430 và XL330; XL430 được dùng cho hai khớp đầu tiên, còn XL330 nhẹ chỉ 18g nên được dùng để giúp cánh tay nhẹ và nhanh hơn
- Bộ U2D2 adapter của Dynamixel đắt và có độ trễ cao, vì vậy bản dựng này dùng bo Waveshare Serial Bus Servo Driver Board rẻ hơn và vẫn có thể điều khiển bằng Dynamixel SDK
- Quá trình chế tạo cần in 3D, đặt baudrate 1M cho từng động cơ, gán servo ID và điều chỉnh bộ giảm áp; điện áp đầu vào XL330 được kiểm tra trong Dynamixel Wizard rồi chỉnh về 5V
- leader arm chỉ dùng động cơ 5V nên lắp ráp đơn giản hơn; có thể kiểm tra hai cánh tay bằng
teleoperation.pyvà chạy môi trường mô phỏng MuJoCo cơ bản bằngsimulation.py
Tổng quan dự án
- Kho lưu trữ Low-Cost Robot Arm chứa các tệp để chế tạo và điều khiển cánh tay robot chi phí thấp
- Chi phí cơ bản của follower arm là khoảng $250; nếu thêm leader arm thì tốn thêm khoảng $180, thành cấu hình tổng $430
- Danh sách chờ để nhận tất cả linh kiện trong một gói có tại https://tau-robotics.com/robots
- Thiết kế leader arm lấy cảm hứng từ GELLO project, nhưng đã được đơn giản hóa để dễ chế tạo hơn
- Cánh tay robot này phù hợp cho robot learning, và nếu dùng hai chiếc thì còn có thể gấp quần áo
Servo và cách điều khiển
- follower arm sử dụng động cơ servo Dynamixel XL430 và Dynamixel XL330
- XL430 mạnh gần gấp đôi XL330 và được dùng cho hai khớp đầu tiên
- XL330 yếu hơn nhưng nhẹ 18g mỗi chiếc, giúp cánh tay nhẹ và nhanh hơn
- Dynamixel bán U2D2 adapter để kết nối servo với máy tính, nhưng bản dựng này dùng một bo adapter rẻ hơn do vấn đề chi phí và độ trễ
- Cánh tay robot có thể được điều khiển bằng Dynamixel SDK
- Lệnh cài đặt:
pip install dynamixel-sdk
- Lệnh cài đặt:
Cấu hình Follower Arm
- Tổng chi phí linh kiện của follower arm được tính là $258
- Các linh kiện chính gồm
- 2x Dynamixel XL430-W250: $100
- 4x Dynamixel XL330-M288: $96
- XL330 Idler Wheel: $10
- XL430 Idler Wheel: $7
- Waveshare Serial Bus Servo Driver Board: $10
- Voltage Reducer: $10
- 12V Power Supply: $12
- Table Clamp: $6
- Wires: $7
- Trên cửa hàng Robotis thường có mã giảm giá 10%
- Việc thêm grip tape vào gripper có thể hữu ích
- Cần cáp USB-C để kết nối servo driver board với máy tính
Quy trình lắp ráp Follower Arm
- Video lắp ráp có tại https://youtu.be/RckrXOEoWrk
- Tất cả các bộ phận đều được in bằng máy in 3D
- Các tệp STL nằm trong
hardware/follower/stl - Các bộ phận được thiết kế để dễ in, và chỉ các bộ phận chuyển động của gripper mới cần support
- Các tệp STL nằm trong
- Quy trình quét động cơ như sau
- Kết nối driver board với máy tính; thiết bị này sẽ hoạt động trên Linux và MacOS
- Kiểm tra tên thiết bị bằng
ls /dev/tty.*như trong ví dụ trên MacOS - Dùng Dynamixel Wizard để quét từng động cơ riêng lẻ
- Đặt baudrate của tất cả động cơ về 1M
- Đặt servo ID từ 1 đến 5 theo thứ tự từ vai đến gripper; nếu dùng elbow-to-wrist extension thì đặt đến 6
- Ở bước lắp ráp, cố định servo theo cùng vị trí như trong CAD, và servo horn phải ở vị trí mặc định khi siết bằng vít
- Ở phần cấp nguồn, hàn vào voltage reducer, cố định nó vào driver board và phần đế rồi kết nối
- Đầu vào của voltage reducer nối vào cổng V và G của driver board
- Đầu ra và cổng D còn lại trên driver board nối vào elbow servo
- Sau khi kết nối với servo XL330, kiểm tra điện áp đầu vào trong Dynamixel Wizard rồi chỉnh vít của voltage reducer về 5V
Leader Arm và mô phỏng
- Tổng chi phí linh kiện của leader arm là $183
- Các linh kiện chính gồm
- 6x Dynamixel XL330-M077: $144
- XL330 Frame: $7
- XL330 Idler Wheel: $10
- Waveshare Serial Bus Servo Driver Board: $10
- 5V Power Supply: $6
- Table Clamp: $6
- leader arm có cách lắp ráp đơn giản hơn vì tất cả động cơ đều dùng 5V
- gripper được thay bằng handle và trigger
- Khi sử dụng, có thể áp một mô-men xoắn nhỏ lên trigger để nó mặc định ở trạng thái mở
- Thiết kế GELLO dùng lò xo cho việc này, nhưng việc lắp ráp khó hơn nhiều
- Có thể kiểm tra cánh tay bằng script
teleoperation.py- Tuy nhiên có thể cần điều chỉnh tên thiết bị
- Chạy
simulation.pysẽ sử dụng môi trường mô phỏng MuJoCo cơ bản
1 bình luận
Các ý kiến trên Hacker News
Tôi đã bắt đầu làm một cánh tay robot có kích thước tương tự. Tôi có một người bạn lâu năm là nghệ nhân thủy tinh, nên đang nghĩ đến việc dùng nó để làm mặt dây chuyền thủy tinh cắt nhiều mặt
Bạn tôi có máy cắt nhiều mặt, nhưng là loại vận hành thủ công
Phần khó là độ chính xác lặp lại. Dung sai phải rất chặt, và mỗi khớp của cánh tay càng xa đế thì càng khuếch đại sai số. Nếu đế rung 1mm, ở đầu cánh tay dài 20cm sẽ rung 4mm, và đoạn tay phía sau nữa còn lớn hơn
Với ứng dụng cắt nhiều mặt, cần độ phân giải tinh hơn rất nhiều so với servo không có hộp giảm tốc. Giảm tốc thì khá khó: để giữ khớp thật cứng thì cần có backlash, nhưng không được đến mức ma sát quá lớn khi chuyển động. Bánh vít thì chậm và quá cứng nên không hay lắm, còn với bánh răng bên trong cánh tay thì hộp giảm tốc cycloidal có vẻ là tốt nhất. Việc kẹp kính khá nguy hiểm, nên cũng cần servo thật sự có một mức phản hồi nhất định
Tôi ước tính chi phí chế tạo khoảng 1.000–2.000 USD, phần lớn là chi phí hộp giảm tốc
Ngay cả sau khi bằng cách nào đó làm cho phần cứng chạy được, việc khiến bộ giải động học hoạt động đúng cũng là một thách thức khổng lồ. Có rất nhiều trường hợp ngoại lệ, phải xử lý phản hồi thời gian thực, và còn phải cân bằng giữa tính dễ dùng với độ tin cậy. Đó là chỗ các công ty robot tính giá cao, và cũng đáng như vậy
Nếu có thể tránh làm cánh tay robot và thay bằng một cơ cấu chuyển động đơn giản hơn, thì nên làm thế. Dù vậy, nếu bạn làm được nó thì thật sự rất ấn tượng
Để tham khảo, đó là thiết kế cố gắng mô phỏng phần nào cánh tay người, đạt độ chính xác lặp lại khoảng 1mm với tải 2,5kg ở tầm với khoảng 80cm
Cụ thể, tùy yêu cầu tải của đầu công tác, có thể dùng kết hợp NEMA34, 24, 17. Các khớp phía trước dùng động cơ lớn hơn. Nếu có ngân sách thì dùng hộp giảm tốc cycloidal hoặc harmonic; nếu không, mỗi actuator (động cơ + driver + hộp giảm tốc + khớp nối trục) vào khoảng 100–200 USD tùy nhà cung cấp và yêu cầu. Hệ thống closed-loop thêm khoảng 50 USD. Xét về giá thì không quá tệ. Khớp đế cần hộp giảm tốc dạng trụ rộng để phân bổ tải tốt hơn
Nếu có thể hợp tác với xưởng gia công, tôi nghĩ có thể làm ra sản phẩm chất lượng khá cao. Dưới đây là vài ví dụ tham khảo thiết kế; một số trông còn tốt hơn những gì tôi, với tư cách người làm hobby, từng có thể chế tạo
https://www.youtube.com/watch?v=7z6rZdYHYfc Cái này rất xuất sắc. Nếu làm một phiên bản nhỏ và nhẹ hơn, di chuyển chậm, độ rung ở đế sẽ còn giảm nữa
https://www.youtube.com/shorts/II8gdIXPgaE Giống bài gốc hơn
https://www.youtube.com/shorts/_x7P9eZCkVM
https://www.youtube.com/watch?v=g9AfhqOd-_I Đây là cái chuyên nghiệp nhất tôi từng thấy, và BOM này gần như chắc chắn dưới 3.000 USD, ở Trung Quốc có lẽ dưới 1.000 USD. Quá hay nên tôi định gửi email hỏi công ty này xem họ có bán mẫu nhỏ hơn không
https://www.youtube.com/watch?v=iB2NAgfVjIs Chris Annin cũng rất đáng xem. Tôi nghĩ ông ấy là một trong những kỹ sư robot ở Mỹ làm robot động cơ bước mã nguồn mở giá rẻ tốt nhất
Ý tưởng tôi từng nghĩ đến là để các chuyển động lớn do một cánh tay làm từ linh kiện rẻ và “rung lắc” đảm nhiệm, rồi gắn thêm ở đầu một stage có phạm vi di chuyển nhỏ nhưng điều khiển được cực kỳ chính xác
Cuối cùng, thêm một cách theo dõi rất chính xác vị trí thực của dụng cụ lệch bao nhiêu so với vị trí mục tiêu. Ví dụ có thể là camera gắn trên dụng cụ
Khi đó vòng lặp phản hồi phần mềm có thể theo dõi độ lệch của dụng cụ và dùng stage “bù” ở đầu để triệt tiêu nó
Tuy nhiên tôi không biết thực tế có làm được không. Thời gian cần để “bù” cũng là vấn đề. Trường hợp như gắp-đặt, chỉ cần cuối đường đi rốt cuộc đến đúng vị trí mục tiêu, khác với các trường hợp như khắc ăn mòn hay hàn, nơi phải giữ sai lệch tối đa dưới ngưỡng trong suốt toàn bộ quỹ đạo
Trong tình huống này, dùng động cơ bước giảm tốc mạnh qua hộp giảm tốc cycloidal thì sao? Trong đầu tôi, cách đó có vẻ sẽ khiến vị trí rất dễ điều khiển và có tính lặp lại, còn backlash chủ yếu do hộp giảm tốc xử lý
Nếu tôi sai thì tôi muốn biết. Như đã nói, tôi là dân phần mềm đang thử bước chân vào phần cứng
Thật ngạc nhiên là vẫn chưa có công ty nào nổi bật trong việc sản xuất hàng loạt cánh tay robot rẻ, chất lượng cao và được tiêu chuẩn hóa ở mức độ nào đó. Những thứ như máy in 3D hay máy CNC đã hạ xuống mức giá cho người tiêu dùng/người chơi nghiệp dư, nhưng lĩnh vực này có vẻ vẫn còn chưa được khai phá nhiều
Có vẻ có tiềm năng cỡ Arduino hay Raspberry Pi, nhưng tôi vẫn chưa nghe đến một cái tên hay hệ sinh thái nào nổi tiếng đến mức đó
Phần lớn mọi người nghịch vài giờ rồi đặt nó lên kệ
Mỗi use case lại hoàn toàn khác nhau và khối lượng công việc cũng lớn. Ngay cả khi đã làm cho thứ gì đó chạy được, chỉ cần vô tình làm rung bàn hoặc cánh tay va vào thứ gì đó là toàn bộ tọa độ bị lệch và phải bắt đầu lại
Cấu trúc cơ khí thực tế cũng thật sự phức tạp. Để nâng được tải trọng có ý nghĩa ở tầm với 50 cm, khớp đế phải chịu mô-men xoắn rất lớn, đồng thời cũng cần độ chính xác cực cao. Muốn vậy cần bánh răng và động cơ đắt tiền, mà chẳng thứ nào rẻ cả
Cũng có vấn đề an toàn. Một cánh tay nâng được tải trọng hữu dụng sẽ khá nặng, và khi một khối lượng như vậy vung lên thì cần hệ thống an toàn. Cái này cũng không rẻ
Nó hơi giống no-code phiên bản phần cứng. Lập trình cánh tay robot vốn dĩ khó, nên rất khó tạo ra một cánh tay robot dễ dùng. Tôi nghĩ thứ duy nhất có thể thay đổi điều này là AI thật sự tốt
Mọi người nghĩ họ có thể tự làm rẻ hơn cánh tay robot “thật”, nhưng không tính đến độ rung lắc và độ chính xác lặp lại
Tôi tôn trọng người đã đăng thiết kế cánh tay robot làm bằng RC servo lên HN, nhưng tôi muốn xem số đo độ chính xác lặp lại. Ý tôi là hãy để nó vẽ cùng một mẫu lên giấy mỗi ngày trong một tuần, rồi cho thấy 7 đường đó chồng lên nhau đến mức nào. Tôi thậm chí còn nghi ngờ liệu nó có vẽ nổi không. Nó có thể làm rách giấy, hoặc bị kẹt vì còn không đủ lực để xé giấy
Cơ sở của tôi là tôi đã làm robot hobby từ thập niên 1980, nghiên cứu robot trong thập niên 1990, gồm cả luận văn thạc sĩ, và dành phần lớn 10 năm qua để giảng dạy robotics
Một điểm quan trọng nữa là robot không có phần mềm động học thật tốt thì gần như không dùng được. Ngoài cánh tay, còn cần hộp điều khiển truyền điện và lệnh theo thời gian thực một cách ổn định, và chi phí này cũng cộng thêm khá nhiều
Khi đã định nghĩa xong, trong hầu hết mọi trường hợp bạn sẽ nhanh chóng nhận ra có giải pháp đơn giản và rẻ hơn rất nhiều so với cánh tay robot 6 bậc tự do
Nếu thật sự cần loại cánh tay robot đó, thì xét mọi yếu tố, 10.000–20.000 USD là khá rẻ
Nếu hạ tham vọng xuống một chút, bắt đầu từ một nền tảng robot giá rẻ biết đi theo người, chở đồ và tránh chướng ngại vật thì sao? Không cần có tay, việc đặt đồ lên và lấy đồ xuống có thể dùng tay của tôi cũng được
Khi tôi bị thương ở chân và phải dùng nạng, việc mang đồ đột nhiên trở thành vấn đề. Có rất nhiều người gặp khó khăn trong di chuyển. Kể cả không phải trường hợp đó, tôi cũng thường để đồ lung tung sai chỗ, và nó cũng có thể hữu ích trong những tình huống như vậy
Trên AliExpress có nhiều nền tảng khung gầm robot đồ chơi, nhưng kích thước lớn nhất chưa tới 20 cm nên quá nhỏ để thực dụng
Tuy nhiên chúng không được bán với giá 250 USD, nên việc mod ROS cho Roomba thật hoặc bản nhái Segway “hoverboard”[3] có thể hiệu quả về chi phí hơn
0: https://www.youtube.com/watch?v=l1hQ5YTMJEw
1: https://www.youtube.com/watch?v=SdVglHOJgiA
2: https://github.com/hoverboard-robotics/hoverboard-driver/tre...
https://www.aristavault.com/products/follow-me-smart-luggage
Ngạc nhiên là chưa ai chỉ tới cái này
https://github.com/peng-zhihui/Dummy-Robot
Tuy nhiên có thể hơi khó đọc
Với dân mê vọc thì đúng là thèm nhỏ dãi, nhưng đã có ai tìm được cách dùng cánh tay robot thực sự hữu ích trong nhà chưa? Hack lúc nào cũng vui hơn khi có một dự án hay
Cũng không cần phải quá nhanh. Cứ để nó chạy qua đêm là được
Chắc cũng đã có ai đó viết một bài báo thú vị về thuật toán phân loại lý tưởng. Ví dụ như nên làm theo thứ tự từ miếng lớn đến miếng nhỏ, hay chỉ nhặt và chuyển miếng gần nhất. Cá nhân tôi muốn nó phân loại thành các bộ cơ bản, rồi làm ơn đặt khay lại đúng ngăn kéo ban đầu
Một cái nữa là cánh tay khuấy mì pasta trong bếp
Tôi cũng từng gắn thêm cảm biến phản hồi lực tự chế bằng chuột 3D. Ý tưởng thì ổn, nhưng nó không đủ cứng cho mục đích đó
https://news.ycombinator.com/item?id=39903953
http://roboexotica.at/
Nếu thấy cái này thú vị, bạn cũng có thể thích cái này. Không phải DIY, mà là sản phẩm hoàn chỉnh giao tới
https://www.waveshare.com/roarm-m2-s.htm
Tôi có một cái, và xét theo tầm giá thì chất lượng hoàn thiện thật sự ấn tượng
Thật tiếc là không có phiên bản 6 bậc tự do. Muốn cầm nắm thứ gì đó đúng cách trong bán kính quanh cánh tay thì cần cái đó
Có ai biết nó nâng được vật nặng cỡ nào không?
Tôi muốn dùng theo dõi mắt để điều khiển quạt khi tập trong phòng gym tại nhà, để gió thổi vào mặt, nhưng cái quạt nặng vài pound
Ngoài ra cũng muốn xin gợi ý phần cứng motor cho dự án kiểu này
Với một chiếc quạt nặng, cũng đừng quên phản lực của luồng không khí đang chuyển động. Tốt hơn là đặt nó trên một loại ổ bi nào đó rồi chỉ dùng motor để xoay, thay vì gắn lên cánh tay. Khi đó motor không phải liên tục chống lại trọng lực
Cánh tay robot được liên kết ở đây dùng servo Dynamixel; bạn có thể chỉ dùng một cái trong số đó để xoay quạt trên bệ xoay. Rẻ hơn và ít phức tạp hơn nhiều
Tôi đang làm cánh tay in 3D Thor, nhưng dự án này trông hay hơn nhiều. Chắc phải đổi hướng
Nói thêm thì, các servo này là thứ làm thay đổi cuộc chơi
Là người dùng Dynamixel lâu năm, tôi đồng ý rằng adapter U2D2 đắt hơn các lựa chọn khác. Tuy nhiên, tuyên bố “độ trễ rất cao” có lẽ cần được định lượng ở mức nào đó
Tôi từng cảm thấy đây là lựa chọn ổn định, có thể kỳ vọng độ trễ luôn thấp trên nhiều nền tảng, khoảng mức 1ms
Mong là mọi người thôi gắn 3 cái servo lại với nhau rồi tuyên bố đã tạo ra robot :D
Chuyển động của servo khá giật cục, nên mới không có video cho thấy “robot” này hoạt động
Mỗi motor XL330 chỉ nặng 18g. Vì vậy nó rất phù hợp cho điều khiển từ xa và học robot
Tôi tò mò không biết với thuật toán điều khiển tốt, một cánh tay robot dùng servo giá rẻ có thể chuyển động mượt đến mức nào