Điều khiển cánh tay robot bằng Arduino

Điều khiển cánh tay robot bằng Arduino

Uniduc JSC - 2020-08-25 23:39:03 | 7409 lượt xem

Mục lục

Hệ điều hành Robot (ROS) là phần mềm điều khiển robot hàng đầu. Hệ sinh thái ROS hoàn chỉnh cung cấp tất cả các công cụ cần thiết để triển khai các thuật toán cho chuyển động học của robot, động lực học, điều khiển chuyển động, lập kế hoạch chuyển động, nhận thức và mô phỏng. 

Bài viết này hướng dẫn chúng ta chế tạo và điều khiển cánh tay robot bằng Arduino và ROS để điều khiển và chuyển động robot trong thời gian thực.

I. Thiết kế và chế tạo cánh tay robot.

1. Thiết kế.

Trước tiên, chúng ta chế tạo một cánh tay robot 5 bậc tự do. Robot chỉ có các khớp quay vòng được cung cấp bởi mô-men xoắn thấp SG90 và động cơ servo giá rẻ. Các động cơ này được điều khiển theo vị trí và cần tín hiệu PWM để chuyển động. Để kiểm soát cấp thấp của servo, Arduino Uno được sử dụng.

cánh tay robot là gì

Các thành phần phần cứng được sử dụng bao gồm:

Động cơ servo SG90

Ban phát triển Arduino Uno R3

Giấy các tông để chế tạo liên kết cánh tay robot

Trước tiên, bạn cần xây dựng một mô hình 3D CAD của robot để đo và in 3D. 

2. Xây dựng phần cứng robot.

Để dễ chế tạo, bạn hãy sử dụng các bìa cứng có sẵn. Có một số phần được cắt ra và ghép lại bằng keo siêu dính. Bạn có thể tham khảo các tệp CAD để đo.

dieu-khien-canh-tay-robot-bang-arduino-02

Động cơ servo SG90 được sử dụng ở đây có phạm vi góc 0-200°. Các giới hạn góc khớp trong tệp URDF được đề cập là ± 90° ở trung tâm phần gốc. Sự bù đắp phần gốc được thực hiện trong mã Arduino.

Lưu ý: Khi lắp các liên kết vào servo, hãy đảm bảo bạn lái các servo về vị trí chính ở góc 90° sao cho các liên kết có chuyển động ± 90° theo một trong hai chiều quay.

3. Giao diện cánh tay robot với Arduino.

Động cơ servo cần tín hiệu PWM cho chuyển động và một số chân kỹ thuật số trên Arduino Uno có khả năng tạo tín hiệu PWM. Các chân kỹ thuật số này được sử dụng để kết nối các servo. 

4. Thiết lập cơ sở hạ tầng.

Gói ROS robot-arm-control-ros có cấu trúc tệp sau:

cad - Tất cả các tệp STL cho mô hình robot 3D.

CMakeLists.txt - Tập lệnh cho hệ thống xây dựng meta CMake

robot-arm-control-arduino - Mã Arduino trò chuyện với các nút ROS

khởi chạy - Chứa các tệp khởi chạy cho trình mô phỏng Rviz

src - Chứa nút xuất bản các hướng dẫn chung cho Arduino

urdf - Chứa mô hình URDF của rô bốt

rviz - Chứa các cấu hình mặc định cho trình mô phỏng Rvix

II. Điều khiển cánh tay robot bằng Arduino.

1. Khởi chạy tệp.

Tệp khởi chạy tương tự như tệp được sử dụng trong bài viết trước. Nó khởi chạy nút robot_state_publisher và hiển thị mô hình URDF trên Rviz. Nó cũng khởi chạy nút Joint_state_publisher tạo ra một GUI với các thanh trượt để điều khiển từng khớp của servo. Các hướng dẫn chung này được xuất bản cho chủ đề Joint_states được sử dụng bởi robot_state_publisher cũng như Arduino (để biết cách sử dụng các góc khớp mong muốn cho robot) thông qua serial_node, tạo điều kiện giao tiếp để điều khiển robot thực.

2. Mã Arduino.

Dưới đây là một số gợi ý dành cho những người muốn gia hạn mã Arduino:

dieu-khien-canh-tay-robot-bang-arduino

Bên trong hàm loop (), lệnh gọi đến node_handle.spinOnce () được thực hiện để đảm bảo rằng ROS xử lý tất cả các tin nhắn, các cuộc gọi lại của thuê bao và các bộ đệm khác. Người đọc có thể sử dụng node_hanlde.spin () cho một vòng lặp vô hạn bên ngoài phương thức Arduino loop ().

Trong phương thức setup (), điều quan trọng là phải đặt tốc độ truyền trước khi gọi init () trên node_handle () nếu không tốc độ truyền không được đặt chính xác và gây ra các vấn đề liên lạc.

Lệnh gọi writeServos () để cập nhật vị trí servo trực tiếp đặt vị trí servo để sử dụng các giá trị mong muốn dẫn đến chuyển động giật. Người đọc có thể thực hiện chuyển động nội suy hoặc cấu hình để chuyển động mượt mà hơn.

Arduino Uno được sử dụng ở đây có bộ đệm và bộ nhớ thấp gây ra các vấn đề về hiệu suất khi sử dụng nhiều thông báo tiêu thụ bộ nhớ. Chuyển sang Arduino Mega để tránh những trường hợp như vậy.

3. Thực hiện chương trình.

Kết nối Arduino Uno với máy tính xách tay qua cáp USB và xác nhận rằng bo mạch xuất hiện trong danh sách các cổng nối tiếp có sẵn trong Arduino IDE. Biên dịch mã, chọn loại bảng và tải nó lên bảng.

dieu-khien-canh-tay-robot-bang-arduino

Sau khi mã được tải lên, hãy thực hiện đồng thời các lệnh sau trong nhiều thiết bị đầu cuối trên máy.

Khởi động ROS Master - roscore

Chạy ứng dụng khách rosserial trên máy - rosrun rosserial_python serial_node.py _port: =/dev/tty<USB# hoặc ACM#>_baud:=115200

Cổng nối tiếp được xác định tại thời điểm chạy cho ttyUSB hoặc ttyACM. Số cổng chính xác có thể được tìm thấy từ Arduino IDE hoặc sử dụng dmesg | grep tty.

Chạy tệp khởi chạy để mô phỏng và điều khiển rô bốt. - roslaunch robot-arm-control-ros simulate.launch

Arduino hiện có thể xem chủ đề Joint_states và dữ liệu được GUI xuất bản lên nó, từ đó điều khiển các servo trên robot.

III. Kết luận.

Giao diện Arduino và ROS cho các ứng dụng trong thế giới thực rất thú vị và mở ra cơ hội khám phá sự phát triển phần mềm nghiêm ngặt trong ROS. Cho đến bài viết này, chúng tôi đã điều khiển cánh tay robot bằng Arduino ở trạng thái khớp để điều khiển từ xa nhưng bản chất thực sự của điều khiển cánh tay robot nằm ở việc sử dụng động học và động lực học của hệ thống.

Bạn có thể tham gia cộng đồng robotic để đặt câu hỏi cũng như tìm hiểu về robot tại: Cộng đồng Robotic Việt Nam

Giới thiệu sản phẩm

Chúc bạn thành đạt trong công việc và hạnh phúc trong cuộc sống !

Hotline / Zalo: 0903 666 014

Website: https://uniduc.com/vi

-------------////--------------------------------------------////------------

HUMANOID ROBOT CỦA CÔNG TY UNIDUC SẢN XUẤT PHÁT TRIỂN.

Đăng kí nhận tin mới



Đánh giá bài viết

0%

0 Tổng người đánh giá
5
0%
4
0%
3
0%
2
0%
1
0%
THÔNG TIN LIÊN HỆ

Công ty Cổ phần Uniduc

Địa Chỉ: 22 Đường Số 54, Phường Thảo Điền, Quận 2

Hotline: 086 567 7939 (Phòng Kinh Doanh / HTKT)

Email: [email protected]

Website: https://uniduc.com/vi

 

 
TỔNG QUAN

Công ty Cổ Phần Uniduc chuyên cung cấp các loại robot phục vụ, Agv Robot, hệ thống tự động. Với kinh nghiệm nghiên cứu lâu năm và đội ngũ kỹ sư năng động sáng tạo. Hi vọng Uniduc là điếm đến công nghệ là nơi khách hàng luôn gửi trọn niềm tin. Chúng tôi sẽ luôn luôn phấn đấu cung cấp cho bạn giải pháp, máy móc, dịch vụ tốt nhất.

TIN MỚI
ĐĂNG KÝ NHẬN TIN

Nhận bản tin thường xuyên để cập nhật giá bán và các chương trình khuyến mãi.


©2018 - 2022 Copyright Uniduc., Jsc. Sitemap