TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI BÁO CÁO BÀI TẬP LỚN ĐIỀU KHIỂN ROBOT TỰ HÀNH Mô phỏng và điều hướng Robot di động hai bánh trong ROS và Gazebo TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI BÁO CÁO BÀI TẬP LỚN ĐIỀU KHIỂN ROBOT TỰ HÀNH Mô phỏng và điều hướng Robot di động hai bánh trong ROS và Gazebo TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI BÁO CÁO BÀI TẬP LỚN ĐIỀU KHIỂN ROBOT TỰ HÀNH Mô phỏng và điều hướng Robot di động hai bánh trong ROS và Gazebo
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
BÁO CÁO BÀI TẬP LỚN
ĐIỀU KHIỂN ROBOT TỰ HÀNH
Mô phỏng và điều hướng Robot
di động hai bánh trong ROS và
Gazebo
NGUYỄN VĂN LINH
linh.nv170797@sis.hust.edu.vn
NGUYỄN ĐỨC TÙNG
tung.nd170983@sis.hust.edu.vn
PHẠM MẠNH CƯỜNG cuong.pm170674@sis.hust.edu.vn Ngành Kỹ thuật Cơ điện tử Giảng viên hướng dẫn: TS Bùi Đình Bá
Trang 2HÀ NỘI, 8/2022
Trang 3LỜI CẢM ƠN
“Trên thực tế không có sự thành công nào mà không gắn liền với những sự
hỗ trợ, giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác Lời đầu tiên, xin trân trọng gửi lời cảm ơn đến Thầy Bùi Đình Bá đã tận tình hướng dẫn nhóm chúng em trong suốt quá trình học tập cũng như hoàn thành bài tập lớn một cách tốt nhất
Bước đầu đi vào thực tế, tìm hiểu về lĩnh vực nghiên cứu khoa học, kiến thức của chúng em còn hạn chế và còn nhiều bỡ ngỡ Do vậy, không tránh khỏi những thiếu sót là điều chắc chắn, chúng em rất mong nhận được những ý kiến đóng góp quý báu của quý thầy và các bạn học cùng lớp để kiến thức của em trong lĩnh vực này được hoàn thiện hơn
Sau cùng, chúng em xin kính chúc quý thầy Bùi Đình Bá cùng toàn thể thầy
cô trong bộ môn cơ điện tử và các thầy cô trong trường Cơ Khí thật dồi dào sức khỏe, niềm tin để tiếp tục thực hiện sứ mệnh cao đẹp của mình là truyền đạt kiến thức cho thế hệ mai sau.”
Chúng em xin chân thành cảm ơn!
Trang 4MỤC LỤC
Trang 5DANH MỤC HÌNH VẼ
Trang 6DANH MỤC BẢNG BIỂU
Trang 7CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN
Robot phục vụ hay còn gọi là Robot dịch vụ là loại máy phục vụ con người,
nó hỗ trợ con người trong rất nhiều các công việc khác nhau từ đơn giản đến phức tạp Chúng ngày càng trở nên phổ biến hơn trong cuộc sống hàng ngày của chúng ta cũng như trong các lĩnh vực công nghiệp, chăm sóc sức khỏe, y tế, giáo dục, xây dựng, giải trí và hơn thế nữa Hầu hết các robot dịch vụ đều di động vì chúng có thể thực hiện các nhiệm vụ liên quan đến hỗ trợ con người hoặc máy móc Tính di động của robot cho phép chúng thực hiện tốt các nhiệm vụ mà chúng dự định mà không gặp khó khăn
Ngày nay có rất nhiều loại robot di động, tùy theo chuyển động của chúng người ta chia thành các loại robot có bánh xe, xích, chân, bay hay lặn Phạm vi của bài tập lơn này là robot di động có bánh xe Chúng là một trong những loại phổ biến nhất và tương đối dễ vận hành, không giống như rô bốt biết đi Robot di động có bánh xe được trang bị các loại bánh xe khác nhau - tiêu chuẩn, bánh xe omni, bánh xe mecanum và hơn thế nữa Có các cấu hình khác nhau của nền tảng
di động tùy theo vị trí và số lượng bánh xe Do đó, chúng có các bánh xe định vị khác biệt (chẳng hạn như bệ kiểu xe tăng) với một hoặc hai bánh xe, bệ bánh đa hình tam giác, bệ bốn bánh tiêu chuẩn với bánh mecanum và các loại cụ thể và độc đáo khác
Tất cả các nền tảng cấu hình cơ khí khi di động được đặc trưng bởi các đặc điểm động học và động lực học cụ thể Những chi tiết cụ thể này là trọng tâm của việc quản lý một robot di động Chúng xác định hành vi của nền tảng và bộ điều khiển Trong một mô hình mô phỏng, các đặc điểm này phải được thiết lập chính xác để gần với mô hình thực nhất có thể
Mô phỏng một robot di động có thể mang lại nhiều lợi ích Một mặt, có một
mô hình rô bốt trong môi trường mô phỏng có thể được nhiều người sử dụng mà không yêu cầu tất cả mọi người đều sở hữu một robot thật Mặt khác, một số thí nghiệm và nghiên cứu có thể được tiến hành mà không ảnh hưởng đến an ninh của con người, robot hoặc các đối tượng mà robot xử lý và tương tác Cuối cùng nhưng không kém phần quan trọng, thời gian chạy thông qua mô phỏng có thể giảm đáng kể, vì nhiều hoạt động như chuẩn bị cho các thí nghiệm hoặc khôi phục các thông số ban đầu của robot và các đặc tính của môi trường mà nó hoạt động được loại bỏ
Một vấn đề lớn khác với robot di động là chuyển động tự động của chúng Điều hướng tự động bao gồm bản địa hóa, lập kế hoạch đường đi và điều khiển chuyển động của nền tảng di động Tất cả những vấn đề này đều có một số giải pháp và có thể được nghiên cứu trong môi trường mô phỏng Bài báo cáo mô tả việc tạo mô hình mô phỏng thiết bị nền tảng di động truyền động vi sai với cảm biến laze và bộ điều khiển mô phỏng trong môi trường Gazebo Sau đó, mô tả việc sử dụng gói điều hướng ROS và các công cụ, chương trình cần thiết để triển khai nó
Trang 8CHƯƠNG 2 ROS và GAZEBO
Hệ điều hành robot (ROS) phổ biến và được sử dụng rộng rãi bởi tất cả những người dùng trong lĩnh vực robot Hệ thống cho phép sử dụng nhiều gói, công cụ, mô hình và thư viện có sẵn cho robot Và bởi vì nó là mã nguồn mở nên mỗi người dùng có khả năng sử dụng và sửa đổi các gói, công cụ hoặc thư viện của mình sao cho phù hợp
Trình mô phỏng Gazebo có thể kết nối trực tiếp với ROS thông qua các gói đặc biệt Các gói này cung cấp các giao diện cần thiết để mô phỏng rô bốt Gazebo bằng cách sử dụng các thông báo, dịch vụ ROS và cấu hình lại động lực học
Để robot làm việc chính xác, cần mô tả động học của robot trong ROS Bằng cách này, quỹ đạo, điều hướng và hơn thế nữa có thể được lập kế hoạch và thực hiện Cách ROS mô tả robot là chỉ định các thuộc tính của nó trong tệp URDF (định dạng mô tả robot chung) URDF hỗ trợ ngôn ngữ XML và XACRO (macro XML) Mã Xacro dễ triển khai, bảo trì hơn và có khả năng đọc tốt hơn
Để sử dụng tệp URDF trong Gazebo, một số thẻ bổ sung dành riêng cho mô phỏng phải được thêm vào để hoạt động bình thường với Gazebo
Mối quan hệ giữa ROS và Gazebo cũng giống như mối quan hệ giữa ROS
và phần cứng của robot thực Bộ điều khiển trong ROS nhận dữ liệu về một chủ
đề từ toàn bộ mô hình và xuất bản dữ liệu về chủ đề khác cho toàn bộ mô hình
Mô phỏng và điều khiển robot thực có thể được thực hiện cùng một lúc Bằng cách này, có thể dễ dàng so sánh hành vi và công việc của robot Trên thực tế, ROS không tạo ra sự khác biệt nào cho dù nó điều khiển một robot thật hay một
mô hình mô phỏng của robot Điều quan trọng ở đây là thực hiện các nút chính xác và có các chủ đề cần thiết cho giao tiếp
Hình 1 cho thấy cấu trúc của mô hình mô phỏng Gazebo Nó bao gồm một
mô hình với mô tả về robot, các plugin và thư viện Gazebo Mô hình nhận dữ liệu từ Giao diện chỉ huy chung và dưới dạng phản hồi sẽ gửi dữ liệu qua Giao diện trạng thái chung Điều tương tự cũng áp dụng cho mô hình phần cứng (Hình 2), được kết nối với bộ điều khiển ROS thông qua các giao diện giống nhau Sự khác biệt giữa hai mô hình là mô hình phần cứng bao gồm các thành phần như bộ điều khiển nhúng, bộ truyền động và cảm biến, trong Gazebo được thay thế bằng các thành phần mô phỏng bằng plugin và thư viện Bộ điều khiển ROS được thể hiện trong Hình 3 Nó xử lý dữ liệu nhận được từ bất kỳ mô hình nào và gửi các lệnh điều khiển tương ứng
Trang 9Hình 2.1 Sơ đồ chuyển đổi dữ liệu mô hình robot với ROS
Trang 10CHƯƠNG 3 THIẾT KẾ ROBOT DI ĐỘNG TRONG GAZEBO
Mô phỏng robot là trọng tâm của việc tạo và thử nghiệm các mô hình robot
Mô hình mô phỏng được thiết kế tốt cho phép thử nghiệm các thuật toán, bộ điều khiển, thiết kế rô bốt, đào tạo trí tuệ nhân tạo, … Nền tảng Gazebo cung cấp khả năng mô phỏng chính xác và hiệu quả robot trong các môi trường phức tạp, cả ngoài trời và trong nhà Gazebo cung cấp mô phỏng vật lý ở mức độ trung thực cao hơn nhiều, một bộ cảm biến và giao diện cho cả người dùng và chương trình Một số tính năng chính của Gazebo bao gồm:
‒ Nhiều động cơ vật lý,
‒ Một thư viện phong phú về các mô hình và môi trường rô bốt,
‒ Nhiều loại cảm biến,
‒ Giao diện đồ họa và lập trình thuận tiện
Việc tạo mô hình mô phỏng robot có thể thực hiện bằng cách sử dụng giao diện người dùng đồ họa của Gazebo hoặc bằng cách lập trình trực tiếp các thông
số và thuộc tính của robot trong các tệp Trong cả hai trường hợp, các tính năng
và quy tắc để tạo ra một robot và mô tả các thông số của các đơn vị của nó là giống nhau Có thể thực hiện một số bước để tạo nền tảng di động Dưới đây mô
tả số bước tối thiểu cần thiết để tạo mô hình hoạt động của rô bốt di động:
+ Tạo thân cơ bản (đế): xác định các thuộc tính – hình dạng, kích thước, khối lượng, mômen quán tính (tương ứng với các dạng: hình trụ, hình lập phương, hình bình hành), loại đơn vị – parent (cha mẹ);
+ Tạo bánh xe dẫn động: tùy theo loại bệ, số lượng bánh xe yêu cầu được tạo ra với các tính chất sau – hình dạng, kích thước, khối lượng, mômen quán tính, loại đơn vị – child (con);
+ Tạo bánh xe đẩy: chúng được đặt theo hình quả bóng với bán kính và vị trí xác định (áp dụng cho nền tảng dẫn động vi sai);
+ Đặt khớp giữa đế và bánh xe dẫn động: đặt loại khớp, đặt loại đơn vị – chân đế
là parent (cha mẹ), phần còn lại là child (con), đặt trục quay của bánh xe, định
vị các bộ phận con so với căn cứ;
+ Cố định các khớp nối giữa đế và bánh xe đẩy: vì chúng quay theo mọi hướng, chọn loại khớp là bi, sau đó đặt chúng vào đế;
+ Thêm cảm biến: cảm biến được mô tả giống như các đơn vị khác, điều quan trọng nhất là xác định kết nối của khớp nối với đế Sau đó, mô tả các thuộc tính của cảm biến được thêm vào như: tỷ lệ cập nhật, độ phân giải, phạm vi, góc quét;
+ Thêm các plugin: thêm các plugin gazebo để điều khiển vi sai và quét khu vực
Trang 11Kích thước và thông số của tất cả các bộ phận robot được trình bày trong Bảng 1 Các tệp thuộc loại xacro chứa thông tin về kích thước và vị trí của tất cả các khâu và khớp của robot Từng bộ phận của robot được biểu diễn dưới dạng một khâu có tên cụ thể Khâu được mô tả với các tính chất sau: collision (va chạm), visual (trực quan) và inertial (quán tính) Sau khi tất cả các khâu đã được
mô tả, các khớp nối phải được định nghĩa để có được sự kết nối giữa các khâu
Bảng 3.1 Kích thước các bộ phận robot
Bộ phận Hình dáng, kích thước Thông số
dài – 0.4m, rộng – 0.2m, cao – 0.1m khối lượng – 50kg left_wheel (bánh trái)
right_wheel (bánh phải)
hình trụ,
Tệp còn lại là một tiện ích mở rộng của gazebo, chứa thông tin về giao diện các bộ phận robot trong mô phỏng, các plugin được sử dụng để cài đặt thuộc tính của tất cả các cảm biến Plugin kết nối điều khiển gazebo với ros:
Plugin ‘differential_drive_controller’ được sử dụng để điều khiển robot di động Các thông số bộ điều khiển là:
Tham chiếu màu bánh xe và thân đế đã được thêm vào:
Sau đây là các thông số tham chiếu cho máy quét laser và các tính năng của nó:
Trang 12Sau khi hoàn thành tất cả các bước này, robot di động đã sẵn sàng để sử dụng Hình 1 cho thấy robot được thiết kế trong Gazebo
Trang 13nhất định với các thuộc tính của nó Để giúp các nhà phát triển dễ dàng hơn, Gazebo cung cấp một loạt các vật phẩm sẵn sàng sử dụng và thậm chí cả các tòa nhà Do đó, chúng ta có thể dễ dàng tạo ra thế giới của mình và lưu nó Thông tin thế giới đã tạo được lưu trong tệp twbot.world Cuối cùng, để khởi chạy robot trên thế giới, chúng ta phải khởi chạy cùng nhau mô hình robot và tệp thế giới trong một tệp launch (Hình 2)
Hình 3.3 Robot với môi trường thử nghiệm trong gazebo
Trang 14TÀI LIỆU THAM KHẢO
[1] D Chikurtev, "Mobile Robot Simulation and Navigation in ROS and
Gazebo," 2020
[2] S G Tzafestas, Introduction to Mobile Robot Control, 2013
[3] "ROS.org," [Online] Available: http://wiki.ros.org/
[4] "Gazebo ROS Control," [Online] Available: https://gazebosim.org/tutorials? tut=ros_control&cat=connect_ros