Phát triển công cụ mô phỏng robot di động trong môi trường gazebo ứng dụng giải thuật slam và urdf

  • 102 trang
  • file .pdf
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
LUẬN VĂN THẠC SĨ
Phát triển công cụ mô phỏng robot di động
trong môi trường Gazebo ứng dụng giải
thuật SLAM và URDF
PHẠM VĂN HÒA
Ngành Kỹ thuật cơ điện tử
Giảng viên hướng dẫn: TS. Nguyễn Xuân Hạ
Chữ ký của GVHD
Viện: Cơ khí
HÀ NỘI, 3/2021
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ
Họ và tên tác giả luận văn : Phạm Văn Hòa
Đề tài luận văn: Phát triển công cụ mô phỏng robot di động trong môi
trường Gazebo ứng dụng giải thuật SLAM và URDF
Chuyên ngành: Cơ điện tử
Mã số SV: CA180108
Tác giả, Người hướng dẫn khoa học và Hội đồng chấm luận văn xác nhận tác
giả đã sửa chữa, bổ sung luận văn theo biên bản họp Hội đồng ngày 29/04/2021
với các nội dung sau:
- Bổ sung nội dung chương 1, trong đó trình bày rõ hơn về tổng quan
robot tự hành, phân loại robot tự hành
- Cắt ngắn chương 2, trong đó đã bỏ một số hình ảnh ví dụ minh họa có
nội dung trùng với chương 3, các đoạn mã code cho vào phần phụ lục
- Bổ sung thêm kết luận sau mỗi chương
- Ngoài cảm biến lidar, tác giả đã tích hợp thêm cảm biến hồng ngoại
nhằm khắc phục nhược điểm của lidar khi robot gặp môi trương có vật
liệu bằng kính hoặc thủy tinh
- Bổ sung kết quả vẽ bản đồ của robot thực để đánh giá độ chính xác của
robot khi mô phỏng
- Thực hiện đúng format của luận văn thạc sỹ, cập nhật lại các chú thích
và tham chiếu tài liệu tham khảo
Ngày…..tháng…..năm 2021
Giáo viên hướng dẫn Tác giả luận văn
TS. Nguyễn Xuân Hạ Phạm Văn Hòa
CHỦ TỊCH HỘI ĐỒNG
Mẫu 1c
Lời cảm ơn
Lời đầu tiên em xin gửi tới thầy TS. Nguyễn Xuân Hạ lời biết ơn sâu sắc nhất vì
những chỉ dẫn, đánh giá, định hướng và những chia sẻ kinh nghiệm bổ ích của
thầy, tạo điều kiện để em có thể hoàn thành tốt luận văn này.
Bên cạnh đó, phải kể đến sự chỉ dạy tận tình, tâm huyết của các thầy cô đang giảng
dạy tại bộ môn Cơ sở thiết kế máy, tại Viện cơ khí, trường đại học Bách Khoa Hà
Nội. Cảm ơn các bạn sinh viên Đào Xuân Hiếu, Nguyễn Văn Huy, nhờ các bạn,
tôi mới được tiếp cận với những kiến thức mới hết sức bổ ích và những ứng dụng
thực tiễn thú vị. Ngoài ra, còn có bạn bè, đồng nghiệp luôn sẵn sàng đồng hành
giúp đỡ chúng tôi khi khó khăn về học tập và cuộc sống.
Cuối cùng, tôi xin cảm ơn Vợ cùng gia đình đã luôn ủng hộ, động viên và tạo điều
kiện cho tôi trong suốt quá trình học tập và nghiên cứu vừa qua.
Tóm tắt nội dung luận văn
Robot tự hành là robot có khả năng tự di chuyển bằng bánh xe hoặc bánh xích, có
khả năng tự thực hiện các hành động thông qua hệ thống điều khiển mà không cần
sự tác động của con người. Robot tự hành được ứng dụng rộng rãi trong các lĩnh
vực như công nghiệp, y tế, logitics. Tuy nhiên, để một robot có khả năng tự thiết
lập đường đi đến vị trí mục tiêu hay robot có khả năng tự tránh chướng ngại vật
trên đường đi lại là một thách thức trong quá trình nghiên cứu. Chính vì vậy, mục
đích chính của đề tài là nghiên cứu, phát triển công cụ mô phỏng robot di động
trong môi trường Gazebo ứng dụng giải thuật SLAM và URDF để giải quyết bài
toán trên.
Bài luận văn, cơ bản đã dẫn dắt và trình bày đầy đủ các khái niệm liên quan
đến robot tự hành, cơ sở lý thuyết và các công cụ cần thiết để xây dựng, mô phỏng
robot tự hành như lý thuyết về SLAM, giới thiệu hệ điều hành được dùng trên
robot phổ biến hiện nay – hệ điều hành ROS, trình bày khái niệm và cách xây dựng
mô phỏng robot URDF trên hệ điều hành ROS, trình bày và giới thiệu các công cụ
hỗ trợ trong mô phỏng robot như Gazebo và RViz.
Bằng việc ứng dụng công cụ URDF và giải thuật SLAM, bài toán định
hướng của robot tự hành cơ bản đã được giải quyết. Robot có khả năng tự định
hướng, thiết lập đường đi đến vị trí mục tiêu và tránh chướng ngại vật trên quãng
đường di chuyển. Ngoài ra, với sự tích hợp của các loại cảm biến, như cảm biến
Lidar, robot đã vẽ lại bản đồ môi trường làm việc tương đối chính xác.
Tóm lại, trong luận văn này đã trình bày một cách khái quát về giải thuật
SLAM, ứng dụng giải thuật SLAM trong mobile robot. Tác giả đã mô phỏng thành
công mô hình mobile robot trong việc tái tạo bản đồ, hoạch định đường đi và tránh
chướng ngại vật trong quá trình di chuyển
HỌC VIÊN
Ký và ghi rõ họ tên
MỤC LỤC
DANH MỤC HÌNH VẼ .................................................................................... viii
CHƯƠNG 1. TỔNG QUAN VỀ ROBOT TỰ HÀNH ...................................... 1
1.1 ROBOTICS VÀ ROBOT .......................................................................... 1
1.2 ROBOT TỰ HÀNH THÔNG MINH ........................................................ 1
1.2.1 Robot tự hành thông minh .......................................................... 1
1.2.2 Đặc trưng của robot tự hành thông minh .................................... 2
1.2.3 Đặc điểm của robot tự hành thông minh .................................... 2
1.2.4 Phân loại robot tự hành ............................................................... 3
1.2.5 Ứng dụng Robot tự hành thông minh ......................................... 5
1.3 Những thách thức trong nghiên cứu Robot tự hành thông minh ............... 7
1.3.1 Điều khiển và khả năng tự điều hướng của Robot ..................... 7
1.3.2 Tích hợp và đồng bộ cảm biến trên robot tự hành ...................... 8
1.3.3 Hệ điều hành robot ...................................................................... 8
1.3.4 Mô hình hóa và mô phỏng robot trong môi trường ảo ............... 9
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT ................................................................. 12
2.1 Robot Operation System – ROS và ứng dụng trong mô phỏng robot ..... 12
2.1.1 Tổng quan hệ điều hành ROS ................................................... 12
2.1.2 Cấu trúc trong ROS .................................................................. 14
2.2 Các bài toán trong mobile robot .............................................................. 19
2.2.1 Bài toán động học ..................................................................... 19
2.2.2 Bài toán động lực học ............................................................... 27
2.2.3 Simulation Localization And Mapping (SLAM)...................... 31
2.2.4 Điều hướng trong robot ............................................................ 34
2.3 URDF ....................................................................................................... 41
2.3.1 Khái niệm URDF ...................................................................... 41
2.3.2 Cấu trúc URDF ......................................................................... 42
2.3.3 URDF và SDF ........................................................................... 43
2.3.4 Ví dụ tạo URDF với một chi tiết .............................................. 44
2.3.5 Ví dụ tạo URDF với một cụm chi tiết ...................................... 49
2.4 RViz ......................................................................................................... 54
2.4.1 Cài đặt Rviz .............................................................................. 54
2.4.2 Các thành phần trong giao diện Rviz ........................................ 54
2.5 Gazebo...................................................................................................... 57
2.5.1 Các tính chất của Gazebo [6] .................................................... 57
2.5.2 Gazebo và Plugin ...................................................................... 57
CHƯƠNG 3. XÂY DỰNG GÓI CÔNG CỤ MÔ PHỎNG ROBOT AIR-HUST
TRONG GAZEBO ............................................................................................. 59
3.1 Giới thiệu robot AIR-HUST .................................................................... 59
3.1.1 Các thành phần cơ khí cấu tạo robot AIR-HUST ..................... 59
3.1.2 Cấu tạo phần cứng robot ........................................................... 60
3.1.3 Phần mềm robot ........................................................................ 61
3.2 Mô hình hóa và mô phỏng robot .............................................................. 61
3.2.1 Các thành phần cơ khí trong mô phỏng robot ........................... 62
3.2.2 Xây dựng các gói mô phỏng robot trong môi trường gazebo ... 67
3.2.3 Xây dựng chương trình mô phỏng tự động điều hướng của robot
67
3.3 Kết quả và đánh giá .................................................................................. 69
3.3.1 Kết quả ...................................................................................... 69
3.3.2 Đánh giá .................................................................................... 79
CHƯƠNG 4. KẾT LUẬN .................................................................................. 83
4.1 Kết luận về đề tài...................................................................................... 83
4.2 Hướng phát triển đề tài............................................................................. 83
TÀI LIỆU THAM KHẢO ................................................................................. 84
PHỤ LỤC ............................................................................................................ 85
DANH MỤC HÌNH VẼ
Hình 1.1: Robot tự hành Vibot hỗ trợ điều trị bênh nhân Covid-19...................... 2
Hình 1.2: Robot có khả năng tự tìm vị trí sạc pin .................................................. 2
Hình 1.3: Robot Kuka ............................................................................................ 5
Hình 1.4: Ứng dụng robot tự hành thông minh trong sản xuất máy bay Boeing .. 5
Hình 1.5: Robot lau nhà ......................................................................................... 6
Hình 1.6: Robot dịch vụ ......................................................................................... 6
Hình 1.7: Robot tự hành NASA thám hiểm vũ trụ ................................................ 7
Hình 1.8: Mô phỏng robot trên XDE ................................................................... 10
Hình 1.9: Mô phỏng robot trên ODE ................................................................... 10
Hình 1.10: Mô phỏng robot trong Gazebo ........................................................... 10
Hình 1.11: Mô phỏng robot trên V-Rep .............................................................. 11
Hình 2.1: Sơ đồ truyền tin trong ROS [1] ............................................................ 12
Hình 2.2: Cộng đồng các trung tâm tham gia, đóng góp phát triển ROS trên thế
giới [2].................................................................................................................. 13
Hình 2.3: Các hệ điều hành hỗ trợ ROS [2]......................................................... 13
Hình 2.4: So sánh khối lượng công việc phải làm khi dùng và không dùng ROS
.............................................................................................................................. 14
Hình 2.5: Cấu trúc file hệ thống ROS [3] ............................................................ 15
Hình 2.6: Sơ đồ ROS computation graph [3] ...................................................... 16
Hình 2.7: Trao đổi thông tin giữa ROS Master và các Node [2] ......................... 16
Hình 2.8: Trao đổi thông tin giữa các topic [2] ................................................... 17
Hình 2.9: Mô hình truyền tin trong service [2] .................................................... 18
Hình 2.10: Mô hình giao tiếp cơ bản trong ROS [3]. .......................................... 18
Hình 2.11: Hệ trục tọa độcủa robot trong mặt phẳng [1]..................................... 20
Hình 2.12: Minh họa về quá trình định vị theo phương pháp xác suất, phân bố xác
suất được biểu diễn ở dạng rời rạc [4] ................................................................. 24
Hình 2.13: Minh họa mô hình xác suất của phương trình động học [4] .............. 25
Hình 2.14: Mô hình Odometry mô tả chuyển động của robot [4] ....................... 25
Hình 2.15: Giải thuật motion_model_odometry [4] ............................................ 26
Hình 2.16: Mô hình theo Odometry với các thông số thiết lập khác nhau [2] .... 27
Hình 2.17: Mô hình robot trong mặt phẳng Oxy ................................................. 29
Hình 2.18: Hình ảnh mô tả giải thuật SLAM xác định tư thế robot [5] .............. 31
Hình 2.19: Kalman filter [5] ................................................................................ 32
Hình 2.20: Scan và TF [6].................................................................................... 34
Hình 2.21: Mô tả điều hướng [2] ......................................................................... 34
Hình 2.22: Minh họa tư thế của robot [2] ............................................................ 35
Hình 2.23: Dead Reckoning [2] ........................................................................... 36
Hình 2.24: Cấu hình costmap [6] ......................................................................... 37
Hình 2.25: Sơ đồ chức năng của costmap [2] ...................................................... 38
Hình 2.26: Minh họa AMCL trong robot [2] ....................................................... 39
Hình 2.27: Vận tốc của robot trong không gian và Dynamic Window [2] .......... 40
Hình 2.28: Quan hệ giữa vận tốc tịnh tiến và vận tốc quay [2] ........................... 40
Hình 2.29: Sơ đồ các thành phần URDF [7] ........................................................ 41
Hình 2.30: Quy tắc bàn tay phải [7] ..................................................................... 42
Hình 2.31: Link [8] .............................................................................................. 42
Hình 2.32: Khớp [8] ............................................................................................. 43
Hình 2.33: Màn hình hiển thị Rviz....................................................................... 54
Hình 2.34: Các công cụ trong display của Rviz ................................................... 55
Hình 3.1: Mô phỏng robot AIR-HUST ................................................................ 59
Hình 3.2: Cấu tạo trong robot AIR-HUST ........................................................... 59
Hình 3.3: Hình dạng bên ngoài robot ................................................................... 60
Hình 3.4: Cấu tạo phần cứng của robot................................................................ 60
Hình 3.5: Đế của robot ......................................................................................... 61
Hình 3.6: Sơ đồ phần mềm của robot AIR-HUST ............................................... 61
Hình 3.7: Mô hình robot AIR-HUST ................................................................... 62
Hình 3.8: Các thành phần cơ khí của robot .......................................................... 63
Hình 3.9: URDF Export ....................................................................................... 63
Hình 3.10: Xuất file ra URDF .............................................................................. 64
Hình 3.11: Đặt trục tọa độ cho robot ................................................................... 64
Hình 3.12: Export file sang URDF ...................................................................... 65
Hình 3.13: Sơ đồ chương trình điều khiển trong gazebo ..................................... 68
Hình 3.14: Sơ đồ thuật toán Gmapping với Gazebo ............................................ 68
Hình 3.15: Sơ đồ thuật toán Navigation với Gazebo ........................................... 69
Hình 3.16: Folder dashgo_gazebo........................................................................ 69
Hình 3.17: TF_Tree của Robot ............................................................................ 71
Hình 3.18: Hình dạng của Robot trong Rviz ....................................................... 71
Hình 3.19: World stage1 ...................................................................................... 72
Hình 3.20: World stage2 ...................................................................................... 72
Hình 3.21: World stage3 ...................................................................................... 73
Hình 3.22: World house ....................................................................................... 73
Hình 3.23: Mô hình 3D của world house trong Gazebo ...................................... 74
Hình 3.24: Màn hình khởi tạo Rviz ..................................................................... 74
Hình 3.25: Màn hình điều khiển Robot................................................................ 75
Hình 3.26: Tạo bản đồ ......................................................................................... 76
Hình 3.27: Sau khi tạo bản đồ xong..................................................................... 76
Hình 3.28: Pose estimate Robot ........................................................................... 77
Hình 3.29: Path Navigation ................................................................................. 78
Hình 3.30: Robot sau khi đến vị trí mục tiêu ....................................................... 78
CHƯƠNG 1. TỔNG QUAN VỀ ROBOT TỰ HÀNH
1.1 ROBOTICS VÀ ROBOT
Robotics là một ngành kỹ thuật và khoa học liên ngành bao gồm kỹ thuật cơ khí,
kỹ thuật điện tử, kỹ thuật thông tin, khoa học máy tính và các ngành khác. Robotics
bao gồm thiết kế, xây dựng, vận hành và sử dụng robot, cũng như các hệ thống
máy tính để nhận thức, kiểm soát, phản hồi cảm giác và xử lý thông tin của họ.
Mục tiêu của robot là thiết kế những cỗ máy thông minh có thể giúp đỡ và hỗ trợ
con người trong cuộc sống hàng ngày và giữ cho mọi người được an toàn.
Ngày nay, robotics được chia ra làm 3 loại chính: robot công nghiệp, robot tự hành
và robot con người. Thực tế đã chứng minh, robot công nghiệp có khả năng làm
việc với tốc độ cao, chính xác và liên tục làm năng suất lao động tăng nhiều lần.
Chúng có thể làm việc trong các môi trường độc hại như hàn, phun sơn, các nhà
máy hạt nhân, hay lắp ráp các linh kiện điện tử tạo ra điện thoại, máy tính.v.v. Một
công việc đòi hỏi sự tỉ mỉ, chính xác cao. Tuy nhiên những robot này có một hạn
chế chung đó là hạn chế về không gian làm việc. Không gian làm việc của chúng
bị giới hạn bởi số bậc tự do tay máy và vị trí gắn robot. Robot con người là loại
robot có hình dáng, cử chỉ, hành động như con người, là loại robot di chuyển kiểu
chân. Đặc điểm của robot này là không gian làm việc rộng lớn, có thể di chuyển
trên địa hình gồ ghề như cầu thang, đồi núi.v.v. Tuy nhiên, robot con người có cấu
trúc cũng như phương pháp điều khiển phức tạp, chi phí lớn. Robot tự hành là loại
robot có khả năng tự di chuyển bằng bánh xe hoặc bánh xích, không gian làm việc
rộng lớn, tuy không di chuyển được trên các địa hình gồ ghề như robot con người
nhưng robot tự hành có cấu trúc đơn giản, chi phí thấp. Cho nên robot tự hành
được ứng dụng rộng rãi trong đời sống con người như logitics, xe tự lái, máy hút
bụi, máy lau nhà.v.v.
1.2 ROBOT TỰ HÀNH THÔNG MINH
1.2.1 Robot tự hành thông minh
Robot tự hành thông minh là robot có khả năng tự di chuyển bằng bánh xe hoặc
bánh xích, có khả năng tự thực hiện các hành động thông qua hệ thống điều khiển
mà không cần sự tác động của con người. Robot tự hành thông minh được ứng
dụng rộng rãi trong các lĩnh vực như công nghiệp, y tế, logistics.
1
Hình 1.1: Robot tự hành Vibot hỗ trợ điều trị bênh nhân Covid-19
1.2.2 Đặc trưng của robot tự hành thông minh
Robot tự hành thông minh có các đặc trưng sau:
 Có khả năng nhận biết được môi trường xung quanh
 Làm việc trong thời gian dài mà không cần sự can thiệp của con người
 Có khả năng tự di chuyển đến vị trí mục tiêu mà không cần sự can thiệp của
con người
 Có khả năng tự tìm đường, tránh vật cản, chướng ngại vật trong quá trình
di chuyển đến vị trí mục tiêu
1.2.3 Đặc điểm của robot tự hành thông minh
 Khả năng tự bảo trì: Robot tự hành thông minh có khả năng tự tìm đến
các vị trí sạc và tự kết nối với cổng sạc để thực hiện sạc pin khi pin yếu.
Hình 1.2 mô tả robot tự hành có khả năng tự tìm đến vị trí sạc khi hết pin
Hình 1.2: Robot có khả năng tự tìm vị trí sạc pin
 Cảm nhận được môi trường xung quanh:
2
Robot tự hành được trang bị các loại cảm biến khác nhau như cảm biến nhiệt độ,
cảm biến khoảng cách, cảm biến siêu âm, cảm biến hóa chất.vv. vì vậy chúng có
khả năng nhận biết được môi trường xung quanh như vật cản, nhiệt độ, âm thanh.
 Khả năng tự động điều hướng:
Điều hướng môi trường indoor. Được trang bị các loại cảm biến, cùng với các thuật
toán, robot tự hành thông minh có thể tự xác định vị trí của nó trong môi trường
và vẽ lại bản đồ trong môi trường đó. Với môi trường indoor, không gian hẹp cùng
với môi trường ít có sự biến động, vì vậy robot tự hành thông minh hoàn toàn có
khả năng tự động điều hướng đến vị trí đích
Điều hướng trong môi trường outdoor. Robot tự hành thông minh không những tự
điều hướng được trong môi trường indoor mà còn tự điều hướng trong môi trường
uotdoor. Tuy nhiên, môi trường uotdoor có nhiều sự biến động như địa hình gồ
ghề, nên việc tự động điều hướng thường được nghiên cứu với môi trường trên
không như máy bay không người lái, hoặc ở những nơi địa hình bằng phẳng như
oto không ngời lái.
1.2.4 Phân loại robot tự hành
Robot tự hành được chia làm 2 loại chính đó là loại robot tự hành chuyển động
bằng chân và robot tự hành chuyển động bằng bánh.Ngoài ra một số loại robot
hoạt động trong các môi trường đặc biệt như dưới nước hay trên không trung thì
chúng được trang bị cơ cấu di chuyển đặc trưng.
 Robot tự hành di chuyển bằng chân (Legged robot)
Ưu điểm lớn nhất của loại robot này là có thể thích nghi và di chuyển trên các địa
hình gồ ghề. Hơn nữa chúng còn có thể đi qua những vật cản như hố, vết nứt sâu.
Nhược điểm chính của robot loại này chính là chế tạo quá phức tạp. Chân robot là
kết cấu nhiều bậc tự do, đây là nguyên nhân làm tăng trọng lượng của robot đồng
thời giảm tốc độ di chuyển. Các kĩ năng như cầm, nắm hay nâng tải cũng là nguyên
nhân làm giảm độ cứng vững của robot. Robot loại này càng linh hoạt thì chi phí
chế tạo càng cao. Robot tự hành di chuyển bằng chân được mô phỏng theo các loài
động vật vì thế mà chúng có loại 1 chân, loại 2,4,6 chân và có thể nhiều hơn. Dưới
đây là một số loại robot điển hình chuyển động bằng chân.
3
b) robot 4 chân c) robot 6 chân
a) robot 2 chân
 Robot tự hành di chuyển bằng bánh (Wheel robot)
Bánh xe là cơ cấu chuyển động được sử dụng rộng rãi nhất trong công nghệ Robot
tự hành. Vấn đề cân bằng thường không phải là vấn đề được chú ý nhiều trong
robot di chuyển bằng bánh. Ba bánh là kết cấu có khả năng duy trì cân bằng nhất,
tuy nhiên kết cấu 2 bánh cũng có thể cân bằng được. Khi robot có số bánh nhiều
hơn 3 thì thông thường người ta phải thiết kế hệ thống treo để duy trì sự tiếp xúc
của tất cả các bánh xe với mặt đất. Vấn đề của robot loại này là về lực kéo, độ ổn
định và khả năng điều khiển chuyển động
b) Robot 3 bánh
a) Robot 4 bánh
c) Robot 2 bánh truyền động, một bánh lái phía trước
4
1.2.5 Ứng dụng Robot tự hành thông minh
 Ứng dụng trong công nghiệp:
Robot tự hành được ứng dụng rộng rãi công nghiệp. Như hình 1.3 mô tả robot tự
hành Kuka sử dụng trong các nhà máy để vận chuyển những tấm dầm có tải trọng
lớn lên đến 11 tấn với độ chính xác minimet
Hình 1.3: Robot Kuka
Hay như hình 1.4, mô tả robot tự hành được sử dụng trong nhà máy sản xuất máy
bay của Boeing để vận chuyển các thiết bị, cấu kiện nặng và cần độ chính xác cao
Hình 1.4: Ứng dụng robot tự hành thông minh trong sản xuất máy bay Boeing
 Ứng dụng trong đời sống, dịch vụ
Ngày nay robot tự hành được ứng dụng rộng rãi trong lĩnh vực đời sống, dịch vụ,
chúng có thể thay thế con người để làm những công việc mang tính lặp đi lặp lại
nhiều lần nhàm chán như robot lau nhà (Hình 1.5), chúng cũng có thể làm những
công việc thay thế con người như robot bồi bàn phục vụ trong các quán cafe (Hình
1.6)
5
Hình 1.5: Robot lau nhà
Hình 1.6: Robot dịch vụ
 Ứng dụng trong nghiên cứu
Robot tự hành, ngoài khả năng thay thế con người làm những công việc nặng nhọc,
trong môi trường nguy hiểm và phục vụ đời sống dịch vụ con người chúng còn
được ứng dụng trong việc nghiên cứu khoa học, thám hiểm vũ trụ, thám hiểm đáy
biển, những nơi mà con người khó có thể đặt chân đến. Hình 1.7 mô tả một robot
tự hành của NASA phục vụ công việc thám hiểm ngoài vũ trụ
6
Hình 1.7: Robot tự hành NASA thám hiểm vũ trụ
1.3 Những thách thức trong nghiên cứu Robot tự hành thông minh
Mục tiêu của robot tự hành là một robot có khả năng tự di chuyển, tự vận động (có
thể lập trình lại) dưới sự điều khiển tự động để thực hiện tốt những công việc được
giao. Môi trường hoạt động của robot có thể là mặt đất, nước, không khí, không
gian hay là sự tổ hợp của các môi trường đó. Các mô hình robot di động khác nhau
được nghiên cứu theo môi trường robot chuyển động, ví dụ như xe tự hành trên
mặt đất AGV (Autonomous Guided Vehicles), robot tự hành dưới nước AUV
(Autonomous Underwater Vehicles), robot tự hành trên không UAV (Unmanned
Arial Vehicles) và robot vũ trụ (Space Robot). Những khả năng cần có của một
robot tự hành là dự trữ năng lượng đảm bảo cho robot tự hành trong thời gian yêu
cầu, khả năng phát hiện và nhận biết vật cản, tránh va chạm với các vật thể và khả
năng xử lý, tính toán các chương trình giải thuật phức tạp trong thời gian thực để
đáp ứng kịp thời với những tác động của môi trường .v.v. Xuất phát từ mục tiêu
trên, việc nghiên cứu Robot tự hành có một số khó khăn, thách thức sau:
 Điều khiển và khả năng tự điều hướng trong robot tự hành
 Vấn đề tích hợp và đồng bộ các cảm biến trên robot tự hành
 Mô hình hóa và mô phỏng robot trong môi trường ảo
1.3.1 Điều khiển và khả năng tự điều hướng của Robot
Khả năng định hướng của robot được định nghĩa là sự kết hợp của ba khả năng
- Định vị bản thân – Self –localization
- Lập lộ trình – Path Planning
- Dựng và diễn dịch bản đồ - Map building and interpretation
Self-localization là khả năng robot nhận biết tọa độ và định hướng không gian
(orientation) của mình trong một hệ tọa độ. Path-planning là việc xác định các tọa
7
độ hiện thời và các tọa độ tiếp theo mà robot cần đạt được để đi đến tọa độ mục
tiêu. Map building là công việc nhận diện môi trường qua từng phép đo đạc từ cảm
biến và kết hợp các phép đo này thành một mô hình trong hệ tọa độ của robot từ
đó làm cơ sở cho việc định vị và lập lộ trình.
Bài toán định vị và lập bản đồ đồng thời (Simultaneous Localization and Mapping
– SLAM) là một bài toán đặc biệt luôn đi kèm với bài toán định hướng. SLAM
được định nghĩa là việc xây dựng hoặc cập nhật liên tục một bản đồ, đồng thời
định vị vị trí của robot trong bản đồ đó. Trong SLAM, hai tác vụ này không thể
tách rời, khi biết chính xác vị trí của mình thì robot mới có thể đưa các cập nhật
mới vào bản đồ một cách hợp lý. Đồng thời khi bản đồ được cập nhật chính xác,
robot mới có thể đánh giá được sự dịch chuyển của mình so với môi trường
Trong bài toán định hướng, robot sẽ phải có khả năng thực hiện SLAM ở nhiều
mức độ. Nếu ta cung cấp cho robot một bản đồ được đo đạc chính xác, robot vẫn
phải sử dụng SLAM tại những vị trí có vật cản chưa biết trước hoặc những vị trí
mà giá trị cảm biến trả về không đủ xác định vị trí của robot, ví dụ như tại một
hành lang dài có bối cảnh không thay đổi. Các vấn đề lý thuyết định hướng và
SLAM sẽ được đề cập sâu hơn trong phần sau.
1.3.2 Tích hợp và đồng bộ cảm biến trên robot tự hành
Cảm biến là một thiết bị không thể thiếu trong robot tự hành, vấn đề tích hợp và
đồng bộ các cảm biến cũng là một thách thức trong việc nghiên cứu robot tự hành.
Làm thế nào để kết hợp tất cả các tín hiệu cảm biến đầu vào, của các hãng khác
nhau như cảm biến khoảng cách, cảm biến hình ảnh, cảm biến nhiệt độ….để đồng
bộ, tạo thành một mô hình hoặc hình ảnh duy nhất. Và robot tự hành sẽ làm thế
nào để sử dụng thông tin được cung cấp thông qua phản ứng tổng hợp cảm biến để
hỗ trợ các hành động thông minh hơn
Mỗi loại cảm biến có điểm mạnh và điểm yếu riêng. Radar rất mạnh mẽ trong việc
xác định chính xác khoảng cách và tốc độ - ngay cả trong thử thách điều kiện thời
tiết - nhưng không thể đọc các biển báo đường phố hoặc nhìn thấy màu của đèn
giao thông. Cảm biến hình ảnh làm rất tốt các dấu hiệu đọc hoặc phân loại các đối
tượng, chẳng hạn như người đi bộ, người đi xe đạp hoặc các phương tiện khác.
Tuy nhiên, chúng có thể dễ dàng bị hạn chế bởi bụi bẩn, nắng, mưa, tuyết hoặc
bóng tối. Các LIDAR có thể phát hiện chính xác các đối tượng, nhưng có hạn chế
là không xác định được chính xác đối tượng có vật liệu trong suốt như gương, kính.
Vì vậy việc tích hợp và đồng bộ các loại cảm biến này với nhau thông qua các
thuật toán, phần mềm để cung cấp một hình ảnh môi trường toàn diện nhất và chính
xác nhất cho robot. Từ đó, robot sẽ hoạt động hiệu quả và chính xác hơn
1.3.3 Hệ điều hành robot
Một vấn đề có ý nghĩa vô cùng to lớn và quan trọng khi nghiên cứu robot tự hành
là hệ điều hành. Ngày nay với sự phát triển của công nghệ thông tin, có rất nhiều
hệ điều hành trên thị trường. Việc nghiên cứu, lựa chọn hệ điều hành robot hết sức
quan trọng, đặc biệt khi thương mại hóa. Hệ điều hành phải đảm bảo dễ sử dụng,
có cộng đồng sử dụng rộng lớn, mang tính toàn cầu để có thể hỗ trợ lẫn nhau. Và
8
ROS (Robot Operating System) là hệ điều hành được ưa chuộng số một hiện nay
được sử dụng trong robot tự hành.
ROS đã đạt được rất nhiều thành tựu. Kể từ khi thành lập, hơn 600 người đã viết
hơn 2000 gói phần mềm và hiện tại vẫn được duy trì. Gần 80 loại robot thương
mại đã sử dụng hệ điều hành ROS và hàng ngàn bài báo nghiên cứu [6]
ROS bao gồm bộ trình điều khiển đa dạng, cho phép người dùng đọc dữ liệu từ
các cảm biến, điều khiển cơ cấu chấp hành. Một số lượng lớn các thuật toán xây
dựng bản đồ, điều hướng robot, thu thập dữ liệu và hoạch định đường đi. ROS
cũng có một cộng đồng rộng rãi các nhà nghiên cứu robot
1.3.4 Mô hình hóa và mô phỏng robot trong môi trường ảo
Trong lĩnh vực nghiên cứu và phát triển robot, việc mô hình hóa và mô phỏng
robot là hết sức cần thiết. Mô hình hóa và mô phỏng robot giúp ta tiết kiệm chi phí
về thời gian và tiền bạc. Mô hình hóa và mô phỏng robot càng chi tiết càng giúp
ta đánh giá tính chính xác và độ ổn định của robot so với thực tế. Việc mô hình
hóa và mô phỏng robot có thể là xây dựng mới mô hình, hoặc cũng có thể là dựa
trên những mô hình robot đã có sẵn để chỉnh sửa, thêm dữ liệu đầu vào, hoặc thêm
các yếu tố tác động để từ đó đánh giá độ hoạt động ổn định của robot.
Ngày nay, với sự phát triển của công nghệ thông tin, có rất nhiều công cụ hỗ trợ
việc mô phỏng robot trong môi trường ảo. Có thể liệt kê một số công cụ như sau:
- Gazebo: Là công cụ mô phỏng robot đa dạng, nó là mã nguồn mở và được phát
triển bởi Open-Source Robotics Foundation. Gazebo là công cụ chủ yếu để mô
phỏng mobile robot, dùng trên hệ điều hành ROS và rất được ưa chuộng tại Mỹ
- ARGoS: Là công cụ mô phỏng robot đa dạng, có thể mô phỏng tính chất, hình
dạng vật lý của robot, và có thể mô phỏng năng lượng tiêu hao của robot trong quá
trình hoạt động. Tuy nhiên ARGoS không phải là mã nguồn mở. Nó được phát
triển bởi dự án Swarmanoid. Chủ yếu được dùng ở thị trường Bỉ và Italy
- ODE: (Open Dynamics Engine): Là công cụ mô phỏng mã nguồn mở. Giống
như Gazebo, ODE chủ yêu mô phỏng tính chất động học của robot, được dùng chủ
yếu ở Pháp
- Bullet: Bullet cũng là một công cụ mô phỏng mã nguồn mở, có thế mạnh mô
phỏng về đồ họa, vì vậy tương thích với máy tính cấu hình cao.
- V-Rep: Là phần mềm mô phỏng robot được phát triển bởi Coppelia Robotics.
Giống như Gazebo, ODE hay Bullet, V-Rep hỗ trợ mô phỏng tính chất động học
như hình dáng, tính chất vật lý của robot, sử dụng trong mobile robot, human robot
hay thiết kế kết cấu cơ khí.
- Webots: là công cụ mô phỏng, hỗ trợ và phát triển mô hình cũng như các chương
trình giành cho robot. Nó được phát triển bởi Cyberbotics Ltd.
- XDE: là công cụ phần mềm hỗ trợ mô phỏng toàn diện về cấu trúc, mô hình động
học, động lục học của robot được phát triển bởi CEA LIST. Sản phẩm chủ yếu
được phân phối và sử dụng tại Pháp.
9
Dưới đây là một số hình ảnh mô phỏng robot trong môi trường ảo của các công cụ
trên
Hình 1.8: Mô phỏng robot trên XDE Hình 1.9: Mô phỏng robot trên ODE
Hình 1.10: Mô phỏng robot trong Gazebo
10
Hình 1.11: Mô phỏng robot trên V-Rep
Qua đây ta thấy ý nghĩa và tầm quan trọng của việc mô hình hóa và mô phỏng
robot. Việc nghiên cứu mô phỏng robot trong môi trường ảo là hết sức cần thiết và
mang tính cấp bách. Do đó, đề tài trong bài luận văn này tập chung phát triển công
cụ mô phỏng robot di động trong môi trường Gazebo ứng dựng giải thuật SLAM
và URDF
Kết luận chương I
Trong chương này tác giả đã trình bày được các đặc điểm cơ bản của robot tự
hành, ý nghĩa và phạm vi ứng dụng của robot tự hành trong cuộc sống, cũng như
tính cấp thiết của đề tài.
11
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
2.1 Robot Operation System – ROS và ứng dụng trong mô phỏng robot
Phần này mô tả tổng quan về hệ điều hành ROS, các khái niệm, thành phần trong
ROS cũng như ý nghĩa và tầm quan trọng của ROS trong việc mô phỏng robot
2.1.1 Tổng quan hệ điều hành ROS
ROS là một hệ điều hành mã nguồn mở, dùng cho các ứng dụng trên robot. Về cơ
bản, ROS cũng có những khả năng cần thiết cho một hệ điều hành cơ bản như khả
năng thực hiện các tác vụ (task) song song, giao tiếp, trao đổi dữ liệu giữa các tác
vụ bằng thông điệp và quản lý dữ liệu. Bên cạnh đó, để có thể ứng dụng trong lĩnh
vực robotics, ROS đã phát triển các khái niệm, thư viện và công cụ chuyên biệt
dành cho việc thu thập dữ liệu, xử lý, hiển thị và điều khiển. Ngoài ra, ROS còn
có thể tương tác và kết hợp với nhiều framework khác như player (một software
tool cho robot và các ứng dụng về cảm biến), Orocos (điều khiển thông minh trong
robot và tự động hóa), Carmen (Robot Navigation Toolkit), Orca (các đối tượng
cho robot) [7].
ROS có nhiều khái niệm dựa trên graph, biểu diễn mối quan hệ giữa các thành
phần trong hệ điều hành như stack, package, node, topic, message, service, cũng
như các khái niệm hệ tọa độ và phép chuyển đổi hệ tọa độ.
Về khía cạnh trao đổi dữ liệu và giao tiếp, ROS có tích hợp sẵn một vài chuẩn giao
tiếp đồng bộ theo chuẩn RPC qua các services, truyền dữ liệu bất đồng bộ qua
topics và lưu trữ dữ liệu trên Parameter Server. Như hình 2.1 mô tả sơ đồ truyền
tin trong ROS
Hình 2.1: Sơ đồ truyền tin trong ROS [1]
ROS cũng được sử dụng rộng rãi trong các trường đại học và có rất nhiều đóng
góp. ROS có một cộng đồng rộng lớn, có rất nhiều dự án được hỗ trợ, có một môi
trường hệ thống thân thiện với hệ thống phát triển robot khác.
12