TOM TAT KHÓA LUẬNKhóa luận “NGHIÊN CỨU VÀ XÂY DỰNG ROBOT PHỤC VỤ NHÀ HÀNG” ứng dụng công nghệ Lidar và ROS Navigation Stack vào dé thiết kế vàxây dựng nên robot có khả năng vẽ bản đồ khu
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
NGUYEN NGỌC THAO - 19520963
DANH QUOC HAO - 19520520
KHOA LUAN TOT NGHIEP
NGHIEN CUU VA XAY DUNG MO HINH ROBOT PHUC
VỤ NHÀ HÀNG
RESEARCH AND BUILD A RESTAURANT SERVING ROBOT
KY SU KY THUAT MAY TINH
GIANG VIEN HUONG DAN
Th.S PHAN ĐÌNH DUY
TP HO CHI MINH, 2023
Trang 2LỜI CẢM ƠN
Đầu tiên chúng em xin gửi lời cảm ơn đến toàn thể Khoa Kỹ thuật Máy tính đãtận tâm giảng dạy, đồng hành, giúp đỡ chúng em trong suốt thời gian học tập và
nghiên cứu tại Khoa Trong khoảng thời gian qua, chúng em đã nhận được sự
đồng hành và hỗ trợ rất lớn từ phía Khoa Nhờ sự tận tâm và am hiểu sâu sắc của
các giảng viên, đã giúp em có một môi trường học tập chất lượng và được
khuyến khích dé phát triển Sau bốn năm học chúng em đã trải qua một hành
trình đầy thách thức và cống hiến, tiếp thu và nắm được đủ kiến thức cũng như
kinh nghiệm quý báu, tạo nên nền tảng vững chắc để chúng em hoàn thành khóa
luận này.
Tiếp đến em xin gửi lời cảm ơn sâu sắc và lòng biết ơn chân thành đến thầygiảng viên hướng dẫn chúng em trong khóa luận này - Thạc sĩ Phan Đình Duy.Thay đã dành thời gian, tri thức và tâm huyết dé hướng dẫn chúng em từ giaiđoạn ban đầu cho đến khi hoàn thành khóa luận Thầy không chỉ là một ngườihướng dẫn, mà còn là người truyền cảm hứng và động viên chúng em vượt quanhững khó khăn và thách thức trong quá trình nghiên cứu Thầy luôn tạo điềukiện thuận lợi và tạo niềm tin cho chúng em, giúp chúng em tự tin hoàn thànhkhóa luận một cách tốt nhất Một lần nữa chúng em chân thành cảm ơn thầy vàchúc thay dồi dao sức khỏe
Cuối cùng em xin gửi lời cảm ơn chân thành đến gia đình, bạn bè và người thân
đã đồng hành, giúp đỡ và luôn ủng hộ chúng em trong quá trình học tập và hoàn
thành khóa luận này.
Trang 3MỤC LỤC
Chương 1 TONG QUAN -2222- SE SE2E2EEEEEEEEEEEEEEEE7171121121171 21.21 2Erxe 1
1.1 Ly do chon đề tài - s52 SE E2 EEEEEEE211211211271111211 21111111 xe 1
1.2 Mu tidu nghién CUU 2
1.3 Pham vi nghiÊn CỨU 5 << 1x11 TH HH nh 2
1.4 Đối tượng nghiên cứu :- + + £+S£+E£EE£EEEEEEEEEEEEEE2E121 7171212 3
1.5 Phuong pháp thực hiỆn - - 5 5+ 3k nh HH ng ng ni 3
1.6 Kết quả mong đợi của đề tài - ¿5c StEEE2E21212121 2171211 1.cyee, 3Chương 2 CÁC THÀNH PHAN CUA HE THONG 2- ©5552 52552 4
2.1 Phần cứng - 2.222 E212 12E12712112112117111.21111 111111 cxe 4
2.1.1 Jetson Nano Developer KT .- << * + sseEseeeeeereeeeres 4
2.1.2 Cảm biến Lidar +-cccccccktirrrrrirrrrrrrrririrrrrrie 5
2.1.3 Arduino Uno R3 cv HH ng nh Hy 6 2.1.4 Bộ điều khiển động cơ XY-160D 2- 2 22c£tc£E+EEerrrerreres 7
2.1.5 _ Động cơ DC va enCO(T - G5 SH ng ngư 7
2.1.6 Cảm biến gia tốc góc MPU6050 - 22 2+ s+£E+£EtzEzrssrxrred 8
2.2 Phần mềm c 2c5c 2c th Hee 9
2.2.1 RBUI S001 1 9
2.2.2 ATỎUITO Q9 nh Hi ch 9
2.3 Lý thuyết các thành phan trong hệ thống . -¿©22s+cx+>sz+z 10
2.3.1 Mô hình robot Vi Sa1 - Ă Ăn ng nếp 10 2.3.2 ROS cha 12 2.3.3 ROSSGTlal Ăn HH HH HH TH HH HH 13 2.3.4 SLAM và thuật toán Hector SLAM cccSSSScSeeres 14
2.3.5 ÌNaVIBALION LH HH HH TH HH ng Hệ 17
Chương 3 PHAN TÍCH VA THIET KE HỆ THÓNG . - +: 22
3.1 Phân tích phần cứng -¿- 2 ++©+++E£+EE+EE+EESEEEEEEEEEEEEEEEEEErrkrrkerreee 22
3.2 Phân tích phần mềm -¿- 2 2 2 £+E£+E£EE£EE#EE#EESEEEEEEEEEEEEEEEerkrrkrrree 24
Trang 43.2.1 _ Sử dụng gói tf để định nghĩa các khung cơ sở . - 25
3.2.2 Nguôn dữ liệu cảm biến (dữ liệu từ Lidar) -ccc:-cc+ 26
3.2.3 Nguồn dữ liệu odometry ¿2-2 ++S++E£+E++E++E££Eerkerxerxerseree 273.2.4 Bộ điều khiển động cơ 2¿-++22+c2x+SEkSrkrrrxerrrerkrerxee 29
3.2.5 — Map S€TV€T HH HH HH 30
3.2.7 Cau hình ACML 2-©c£+E2+EEEEEEEEEEEEEEEEEEEEEEEErrkrrkervee 32
3.2.8 Khởi động robot với Navigation Stack -cc+ccs<ssersees 33
3.2.9 Tạo giao diện web và sử dụng rosbridge dé giao tiếp với robot 33Chương 4 KET QUA THUC NGHIỆM 2- 22 5222++2£++£x+ezxezzxrsrxeee 34
4.1 Phan cứng + Sk+SkSEEE2E1211212111711121121111 21.11111111 ce 344.2 Pham mềm .:¿s2222:c22+v22EEE122E111 222 EEEtTrrtirrriiririrriro 34
4.2.1 — Quét và đánh giá map 2D của khu vực -‹ -<++s+<<x<xx 34
4.2.2 — Chay Navigation và đánh giá Navigation oal - -««-<-«+ 35
4.2.3 Điều khiến động cơ thông qua steering hoặc joystick trên web 364.2.4 Tạo được một giao diện web dé người dùng điều khiển robot 37
4.3 Thực nghiỆm - c1 1 HH ng tư 37
4.3.1 Môi trường không có vật cản stress 37
Chương 5 KẾT LUẬN VÀ HƯỚNG PHAT TRIỂN -¿2 s2 39
5.I KẾt luận cc che 39
5.2 Hạn chế và hướng phát triỂn - ¿2+ +s++k+EE+E++E++E£+Ee£EerEerxerkrrerreee 39TÀI LIEU THAM KHẢO - - - St +ESEESE+EEEEEE+EEEEEEEEEEEEEEEEESEEEEEESEEEEEEeErrkrkrree Al
Trang 5DANH MỤC HÌNH
Hình 2.1: Jetson Nano Developer K1( cv HH kg ky 5
Hình 2.2: Cảm biến RPLidar 5:22 vttttEEEvrrrttktrrrrttrtrrrrrrrrrrrrrrrrrree 6
Hình 2.3: Vi xử lý Arduino Uno R3 -. - c5 3311331138111 13 11 11k rrrey 6
Hình 2.4: Bộ điều khiển XY-160D .-¿-52¿222vt2EExttttEktrrtrrtrrrrrtrrrrrrrrrrrk 7
Hinh 2.5: 910,15ãuoi9 0n 4 8
Hình 2.6: Cảm biến gia tốc góc MPU6050 -2¿- 22 52+2+22Ex2E+v£E+erxesrxrrrxee 9
Hình 2.7: Robot dò line sử dụng mô hình robot Vi Sa1 555555 << +2 10
Hình 2.8: Robot phục vụ nhà hàng của KEENON - - Sài 11
Hình 2.9: Mô hình robot vi sai trong hệ trục tọa dO eee ceesceseeeseeeeteeeeeeeeseeeaes 12
Hình 2.10: Giao thức RÑOSS€TIAÌL - G1 93112111 v1 1 TH HH HH, 14
Hình 2.11: Qua trình tính toán và ước lượng vi trí cua robot và vat thể 15Hình 2.12: Quá trình xử lý dữ liệu dé vẽ map -.2 2¿25¿©5++2s+2cx>zxvzxesrss 17Hình 2.13: Sơ đồ các node của robot sử dụng Navigation -¿scscsc=sz 18Hình 2.14: Ví dụ về cấu hình khung tọa độ cho robot - ¿ s5 +++s<++s>+s>+ss2 19Hình 2.15: Dữ liệu của Lidar khi biểu diễn trên mặt phang - 5: 19Hình 2.16: Cấu tạo của động Cơ €nCO€T - - G2 3119 SH ng kg 20
Hình 2.17: Quá trình quét và vẽ Imap óc + 31v ng ng ngưng 21
Hinh 2.18: Vi du ban d6 da duoc quét dự trên Hector-SLAM 21Hình 3.1: Thiết kế 2D mặt giữa của robot o cecceecessesseessessessessessesseessessesseesessesseeseess 22
Hình 3.2: Thiết kế 2D mặt dưới của rObotL -¿ c++++c++ttrrxerrrrrkrrrrrkerrre 23
Hình 3.3: Hình anh mô phỏng 3D của TOOI - c5 2c 3+3 kSeeEeeerreeeereere 23
Hình 3.4: Sơ đồ khối cầu trúc của rObot : cc+++ccvttsrxxtrrrrtrrrrrrrrrrrkrrrre 24
Hình 3.5: Sơ đồ kết nối các frame -: +c++cttttrktrrrtrtrtirrrrrrirrrririrerrrieg 25
Hình 3.6: Sơ đồ cây ¢f trong thực tế của nhóm - 2-2 2 2+2+++£x+£x+zx+zszxez 26Hình 3.7: Sơ đồ kết nối dit liệu của gói robot_pose ekf -s-cs+cs+cs s2 27Hình 3.8: Sơ đồ rqt thực tế của NOM cecceeccccsseesssessessessessessesssssessesecsecsessessessesneaee 29Hình 4.1: Hình anh tổng quát của robot thực tẾ - 2-2 2 z+++£xezx+£x+rxzrszxez 34
Hình 4.2: Hình ảnh map 2D được vẽ bởi rODOtL - 5-5 25c s+*x+seexseeseeers 35
Trang 6Hình 4.3: Hình ảnh phần mềm Rviz khi chạy navigation -¿- 2-5552Hình 4.4: Giao diện web dé người dùng điều khiến robot -: -: -5¿
Trang 7DANH MỤC BANG
Bang 1 Bảng đánh giá kết quả thực nghiệm không vật cản -2 5¿Bang 2 Bảng đánh giá kết quả thực nghiệm có vật cản 22- 2 sc5cssz
Trang 8DANH MUC TU VIET TAT
AMD Core Math Library
Central Processing Unit
Direct Current
Electrostatic Discharge Giga Floating-point Operations Per Second General-purpose input/output
Graphics Processing Unit Inter-Integrated Circuit
Inertial Measurement Unit
Light Detection and Ranging
Proportional—Integral—Derivative controller
Pulse Width Modulation
Random Access Memory Remote Desktop Protocol Read Only Memory
Robot Operating System Round per minutes
Simultaneous Localization and Mapping Serial Peripheral Interfaces
Transform Transient Voltage Suppression Universal asynchronous receiver transmitter
Trang 9TOM TAT KHÓA LUẬN
Khóa luận “NGHIÊN CỨU VÀ XÂY DỰNG ROBOT PHỤC VỤ NHÀ
HÀNG” ứng dụng công nghệ Lidar và ROS Navigation Stack vào dé thiết kế vàxây dựng nên robot có khả năng vẽ bản đồ khu vực hoạt động, chọn được điểmtrong khu vực bản đồ (kịch bản ở đây là các bàn ở trong nhà hàng) sau đó robot
có thể tự hoạch định được đường đi cũng như là thực hiện đi đến điểm được chỉđịnh và tránh vật cản trong quá trình di chuyền
Mô hình robot vi sai là một mô hình điều khiển chính xác cho phép tính toánchính xác độ di chuyển của robot dựa trên dữ liệu từ động cơ encoder Sử dụng
encoder giúp lấy dữ liệu dịch chuyên của động cơ và tính toán chính xác hơn
trong node move_base, từ đó hệ thống có thé đưa ra quyết định truyền xung hợp
lý để robot di chuyển chính xác và mượt mà hơn Máy tính nhúng Jetson nanođược sử dung làm bộ não trung tâm điều khiển robot, với khả năng tính toán vàchạy các tác vụ cần thiết dé điều khién robot Board Arduino Uno R3 được sửdụng dé truyền nhận dữ liệu giữa động co, encoder và máy tính nhúng, đảm bao
việc giao tiép hiệu quả và truyên dan đữ liệu đáng tin cậy.
Hệ thống cảm biến của robot bao gồm cảm biến RP Lidar Al, được sử dụng dékết hợp với thuật toán Hector SLAM trong việc quét và xây dựng bản đồ khuvực Bên cạnh đó cảm biến còn hỗ trợ trong việc chạy Navigation, giúp pháthiện được các vật cản động cũng như các vật cản tĩnh không có trong bản đồ đãquét trước đó Đề robot tính toán và đưa ra đường đi tốt nhất trong từng lần lần
di chuyền Bên cạnh đó còn sử dụng thêm cảm biến gia tốc góc MPU6050 hỗ trợ
và cho biết hướng, góc quay của robot trong môi trường
Dé robot hoạt động và thực hiện được các chức năng kể trên, hệ điều hành ROS(Robot Operating System) đã được sử dụng ROS là một hệ điều hành dành cho
robot, nó cung cấp bộ thư viện phần mềm và công cụ hỗ trợ cho việc xây dựng
robot Thông qua ROS, nhà phát triển có thé xây dựng một hệ thống đường
Trang 10truyên dữ liệu giữa các chương trình và thực hiện giao tiép và các chức năng cân
thiết
Đề tương tác với robot, nhóm đã xây dựng một giao diện web cơ bản sử dụngFlask để chạy server, dùng các ngôn ngữ thông dung (javascript, css, html) dé
tạo được giao diện web Giao diện web này sử dung thư viện roslibjs và công cụ
rosbridge dé kết nối và giao tiếp giữa trình duyệt web và robot, cho phép ngườidùng tương tác và điều khiển robot từ xa
Trang 11Chương 1 TONG QUAN
1.1 Ly do chon dé tai
Robot Navigation là một lĩnh vực dang phat triển nhanh chóng va có ứng dụngrộng rãi trong nhiều lĩnh vực Hiện nay, các công nghệ điều khiển robot, pháthiện vật thé, định vị và xử lý thông tin đang phát triên mạnh mẽ, đưa đến sự tiễn
bộ đáng kế trong Robot Navigation
Các phương pháp machine learning, deep learning và reinforcement learning
đang được sử dung dé cải thiện khả năng điều hướng của robot trong môi trường
phức tạp Ngoài ra, các hệ thống robot đa robot và robot hợp tác cũng đang được
phát triển nhanh chóng để giải quyết các vấn đề điều hướng trong môi trường
phức tạp, các công nghệ định vị và xử lý thông tin như PointCloud và LIDAR
cũng được sử dụng đê cải thiện khả năng điều hướng của robot trong môi trường
động.
Robot Navigation có ứng dụng rất rộng trong các lĩnh vực như tự động hóa côngnghiệp, y tế, nông nghiệp, khai thác dầu khí, vũ trụ và nhiều lĩnh vực khác Cácứng dụng của Robot Navigation bao gồm tự động hóa kho lạnh, robot y tế, robotnông nghiệp, robot khám phá không gian, robot hộ vệ và nhiều ứng dụng khác
Tại Trường Đại học Công nghệ Thông tin, đã có những bài nghiên cứu, thực
nghiệm các đề tài liên quan đến Robot Navigation, trong đó phải kế đến là các
đề tài: “Xây dựng robot tự hành quét bản đồ trong nhà và tránh vật cản - năm
2020 - Lê Chí Bảo, Phan Anh Kiệt”, “Robot tránh vật cản sử dụng công nghệ
LiDAR - năm 2021 - Trần Hoàng Phương, Võ Anh Tuấn”
Trên quốc tế cũng đã có nhiều nghiên cứu, bài báo viết về chủ đề này, một bàiviết nghiên cứu và phát triển LIDAR robot để ứng dụng vào làm robot phục vụ
như “Development of a Robotic Waiter System — năm 2016 - A Cheong, MWS
Lau, E Foo, J Hedley, Ju Wen Bo” [1] Một bài viết khác cũng thực hiện nghiêncứu, so sánh các phương pháp dùng logic mờ (fuzzy logic) khác nhau dé thực
Trang 12hiện một robot phục vụ tránh chướng ngại vật: “WaiterBot: Comparison of Fuzzy Logic Approaches for Obstacle Avoidance in Dynamic Unmapped
Environments Using a Laser Scanning System (LiDAR) — nam 2020 - Jonathan
Cerbaro, Dieisson Martinelli, Andre Schneider de Oliveira and Joao Alberto Fabro” [2].
Các nghiên cứu da phan chỉ cải tiến chức năng tránh né vật cản tốt hơn cho robotnhưng lai ít có các nghiên cứu hướng đến một ứng dụng cụ thé nào đó Dé thiết
kế robot theo một kịch bản thực tế là một hướng đi khá mới cho sinh viên Vì lý
do đó, nhóm sẽ phát triển robot theo kịch bản robot phục vụ trong nhà hàng vớichức năng chính là vận chuyển thức ăn đến bàn ăn mong muốn, có thê điều
khiển thông qua Web server.
1.2 Mục tiêu nghiên cứu
Mục tiêu nghiên cứu của khóa luận tốt nghiệp là xây dựng một robot phục vụ
nhà hàng, sử dụng công nghệ ROS Navigation Stack Robot này có khả năng vẽ
bản đồ khu vực hoạt động, tự động chọn đường di và tránh vật cản trong quá
trình di chuyên Sử dụng mô hình robot vi sai, máy tính nhúng Jetson nano, cảmbiến Lidar, cảm biến RPLidar AI, dé tạo ra một hệ thống robot phục vụ nhàhàng (mang đồ ăn từ trong bếp đến các bàn đã được định sẵn) Xây dựng thêm
một giao diện web dé người dùng có thé dé dang sử dụng robot
1.3 Phạm vi nghiên cứu
Trong khóa luận này chúng em nghiên cứu việc điều khiển robot theo địnhhướng navigation, chỉ định một điểm trên bản đồ đã vẽ được để robot hoạchđịnh ra đường di và thực hiện di chuyển đến đó Robot có thé tự hoạch địnhđược quỹ đạo đường đi dựa trên bản đồ đã được vẽ trước bằng thuật toán HectorSLAM sử dụng cảm biến LiDAR, kết hợp với các dữ liệu lẫy được từ cảm biếnLIDAR theo thời gian thực, cảm biến gia tốc, dữ liệu encoder từ động cơ dé kết
hợp lại thực hiện navigation Sau khi thực hiện được chức năng navigation,
Trang 13chúng em sé sử dung Flask, thư viện roslibjs, công cụ rosbridge và các ngôn ngữ
cần thiết như javascript, dé xây dựng một giao diện web giúp người dùng dễ
dàng thao tác điều khiến robot hơn
1.4 Đối tượng nghiên cứu
Đôi tượng được nhăm dén trong việc nghiên cứu sử dụng trong khóa luận là các
nhà hang, quán ăn có bề mặt sàn phăng, không gỗ ghé, không bậc thang
1.5 Phương pháp thực hiện
e Sử dụng Jetson nano dev Kit để làm vi xử lý trung tâm
e Thiết kế robot theo mô hình robot vi sai
e Điều khiển động cơ bằng Bộ điều khiển XY-160D được cấp tín hiệu điều
khiển từ Arduino Uno R3, sử dụng các gói ros_control làm phần mềm
e Quét bản đồ với cảm biến RPLidar
e _ Vẽ bản đồ khu vực với Hector SLAM
e Tir ban đồ đã vẽ được, kết hop với dữ liệu từ các cảm biến, thực hiện chức
năng navigation.
e Sử dụng Flask, roslibJs, rosbridge, javascript, dé tạo một giao diện web
1.6 Kết quả mong đợi của đề tài
Trong khóa luận này, tụi em mong muốn xây dựng được một mô hình sử dụng
mô hình robot vi sai, máy tính nhúng Jetson nano, cảm biến Lidar, cảm biến
RPLidar Al, tạo được một mô hình robot chạy được ROS Navigation và tạo
được thêm một giao diện web dé điều khiến robot
Trang 14Chương2 CAC THÀNH PHAN CUA HE THONG
2.1 Phan cứng
2.1.1 Jetson Nano Developer Kit
NVIDIA Jetson Nano Developer Kit là một máy tính nhúng nhỏ, mạnh mẽ cho
phép chạy song song nhiều mạng neural dùng cho xử lý, phân loại hình ảnh,phát hiện đối tượng, phân đoạn và xử lý giọng nói Nền tảng này dễ sử dụng vàtiêu tốn ít nhất 5 watts Jetson Nano cung cấp 472 GFLOPS đề chạy các thuật
toán AI hiện đại với CPU quad-core 64-bit ARM, NVIDIA GPU 128-core tích
hợp trên board mạch và bộ nhớ 4GB LPDDR4 Nó có khả năng chạy đồng thờinhiều mạng neural và xử lý các cảm biến có độ phân giải cao Hỗ trợ bởiNVIDIA JetPack, Jetson Nano bao gồm các gói hỗ trợ board (BSP), CUDA,cuDNN và thư viện phần mềm TensorRT cho deep learning, computer vision,GPU computing, multimedia processing và nhiều ứng dụng khác SDK cũng chophép cài đặt các frameworks Machine Learning (ML) mã nguồn mở như
TensorFlow, PyTorch, Caffe / Caffe2, Keras và MXNet, giúp tích hợp các
model A1/ framework yêu thích vào sản phẩm dé dàng và nhanh chóng
Model nhóm sử dụng là Jetson Nano Developer Kit Carrier Board A02, được
trang bi GPU Maxwell 128 nhân và CPU quad-core ARM A57 hoạt động ở tốc
độ 1.43 GHz Với bộ nhớ RAM 4GB LPDDR4, Jetson Nano có khả năng mã
hóa và giải mã video 4K và nhiều luồng video Full HD Nó hỗ trợ kết nốicamera thông qua công MIPI CSI-2 DPHY lanes và cung cấp các giao diện nhưGigabit Ethernet, HDMI 2.0, USB 3.0 và nhiéu giao diện khác Kích thước co
học của board là 100 mm x 80 mm x 29 mm, giúp tích hợp và lắp đặt dé dàng
vào nhiều ứng dụng khác nhau Jetson Nano Developer Kit Carrier Board A02 là
một lựa chọn tuyệt vời cho các ứng dụng IoT, robotic và trí tuệ nhân tạo với hiệu năng cao và tích hợp đa dạng [3].
Trang 152.1.2 Cam biến Lidar
Cảm biến RPLIDAR AI là một thiết bi Lidar 360° Laser Range Scanner dohãng SLAMTEC sản xuất có kích thước nhỏ gọn 71 x 97mm Nó được ứngdụng rộng rãi trong phát hiện vật cản, lập bản đồ bằng tia Laser trong xe, robot
tự hành, hệ thống chống trộm và nhiều ứng dụng khác Cảm biến này có độ ồnđịnh và độ chính xác cao, hoạt động với điện áp chỉ S5VDC Với giao tiếpUART, nó dễ dàng liên kết với Vi điều khién, Máy tính nhúng hoặc kết nối máy
tính qua mạch chuyển USB-UART va phần mềm đi kèm RPLIDAR A1 có kha
năng quét xa lên đến 12m với góc quét 360°, Tốc độ lấy mẫu tối đa là 8000
samples per time và tần số quét tối da là 10Hz Với các thông số này, RPLIDAR
Al là một lựa chọn lý tưởng cho nhiều ứng dụng trong việc phát hiện và theo
dõi vat cản trong môi trường xung quanh [4].
Trang 16Hình 2.2: Cảm biến RPLidar.
2.1.3 Arduino Uno R3
Arduino Uno R3 là một board Arduino phổ biến và được ưa chuộng Được trang
bị chip vi điều khién ATmega328P 8-bit hoạt động ở tan số 16 MHz Board hỗtrợ 14 chân Digital I/O, trong đó có 6 chân hỗ trợ PWM và 6 chân Analog với
độ phân giải 10-bit Có khả năng xuất ra dòng tối đa 500mA ở chân 5V và50mA ở chân 3.3V Bộ nhớ flash 32 KB cho chương trình và 2 KB SRAM délưu trữ dữ liệu trong quá trình thực thi Ngoài ra, có 1 KB EEPROM để lưu trữ
dữ liệu không bi mat khi nguồn điện được cắt, cho phép dé dàng kết nỗi va
tương tác với nhiều linh kiện và cảm biến khác nhau Board này hỗ trợ giao tiếpthông qua USB và UART, giúp người dùng dễ dàng lập trình và phát triển các
ứng dụng điện tử và IoT [5].
Hình 2.3: Vi xử lý Arduino Uno R3.
Trang 172.1.4 Bộ điều khiến động cơ XY-160D
Mạch điều khiển động cơ DC Motor Driver XY-160D được dùng dé điều khiểnhai động cơ DC có công suất tối đa 160W cho mỗi động cơ với điện áp sử dụng
từ 7V đến 24VDC Tuy nhiên, dé đảm bảo ổn định và bền bỉ, nên hạn chế sửdụng tối đa 70% công suất tối đa theo hướng dẫn từ nhà sản xuất Mach này
được thiết kế theo chuan công nghiệp và sử dụng IC Driver MOSFET hiệu suấtcao, được tích hợp với Opto cách ly và các thiết kế chống nhiễu TVS, ESD, giúpđảm bảo hiệu suất 6n định và an toàn trong quá trình sử dụng Mạch hỗ trợ tín
hiệu điều khiển 3.3V/5V, với tín hiệu Logic High từ 3.0V đến 6.5V và Logic
Low từ 0V đến 0.8V Có 2 kênh dau ra điều khiển động co với dòng điều khiển
từ 3mA đến 11mA cho mỗi kênh Tần số điều khiển PWM có thể lên đến
10KHz với độ rộng tín hiệu Pulse tối thiêu là 5 microseconds Mạch có thé hoạtđộng trong nhiệt độ từ -25 đến 85 °C và có kích thước nhỏ gon là 55 x 55 x13mm, cùng trọng lượng nhẹ 32g, thuận tiện cho lắp đặt và sử dụng trong nhiềuứng dụng điều khién động cơ [6]
2.1.5 Động cơ DC và encoder
Động cơ JBG37 là một loại động cơ có điện áp định mức 12VDC va dòng tối đa3A Trước khi đi qua hộp số giảm tốc, động cơ đạt tốc độ 10.000 RPM, nhưng
Trang 18sau khi giảm tốc với tỉ số 1:33, tốc độ giảm xuống còn 303 RPM trên trục chính.
Động cơ có trục đường kính 6mm và được kết hợp với encoder sử dụng đĩa từ
11 xung với 2 kênh xung AB Encoder tạo ra 363 xung cho mỗi vòng quay saukhi áp dụng hộp số giảm tốc Điện áp cấp cho encoder là 3.3VDC và các châncấp nguồn cho động cơ là tối đa 12VDC Day là một động cơ mạnh mẽ và chínhxác, được sử dụng trong nhiều ứng dụng điều khiển động cơ và đo tốc độ quay
[7].
Hinh 2.5: Dong co DC.
2.1.6 Cam biến gia tốc góc MPU6050
Cảm biến GY-521 6DOF IMU MPU6050 được sử dung dé đo 6 thông số: 3 trụcGóc quay (Gyro), 3 trục gia tốc hướng (Accelerometer), là loại cảm biến gia tốcphô biến nhất trên thị trường hiện nay Là một thiết bị đa chức năng với điện áp
sử dụng và điện áp giao tiếp từ 3V đến 5VDC Giao tiếp với cảm biến thông qua
chuẩn I2C Cảm biến có khả năng đo giá trị Gyroscopes trong khoảng +/- 250,
500, 1000, 2000 degree/sec, cho phép đo chuyền động xoay với độ chính xác đa
dạng Ngoài ra, cảm biến cũng do giá trị Acceleration trong khoảng 2g,
+/-4g, +/- 8g, +/- 16g, cho phép đo gia tốc với các phạm vi khác nhau tùy theo yêucầu ứng dụng Đây là một cảm biến linh hoạt và hiệu quả, thường được sử dụngtrong các ứng dụng đo chuyên động và giám sát hướng [8]
Trang 19SolidWorks là phần đồ họa đang được ưa chuộng bậc nhất trên thế giới được sử
dụng rất nhiều không chỉ trong lĩnh vực cơ khí mà nó còn được mở rộng ra các
lĩnh vực khác như: Điện, khoa học ứng dụng, cơ mô phỏng,
Phân mêm cung câp cho người dùng các tính năng vô cùng hữu dụng trong việc
thiết kế đồ họa như:
© Chức năng thiết kế mô hình 3D và 2D song song
e_ Tính năng lắp ráp các chỉ tiết
e Xuất bản vẽ trên phần mềm
e Tinh năng gia công trên SolidWorks.
e Phân tích động lực học trên SolidWorks.
2.2.2 Arduino
Arduino IDE (Integrated Development Environment) là phan mềm mã nguồn
mở dùng dé lập trình va nạp mã vào board Arduino Được phat triển bởiArduino LLC, nó là một môi trường đơn giản, dé sử dụng và phô biến trongcộng đồng DIY (Do It Yourself) và loT (Internet of Things) IDE này cung capgiao dién đồ họa thân thiện, hỗ trợ ngôn ngữ lập trình Arduino dựa trên C++, vàcho phép nạp chương trình thông qua công USB Arduino IDE tương thích với
Trang 20nhiều loại board và hỗ trợ trên nhiều hệ điều hành như Windows, macOS và
Linux.
2.3 Lý thuyết các thành phan trong hệ thống
2.3.1 M6 hình robot vi sai.
Mô hình robot vi sai là một robot di động có chuyền động dựa trên hai điều
khiển riêng biệt của hai bánh xe được đặt ở hai bên của thân robot Do đó, nó có
thé thay đổi hướng bang cách thay đổi tốc độ quay tương đối của các bánh xe và
do đó không cần chuyền động lái bổ sung Dé giữ thăng bằng cho robot, có thé
thêm bánh xe hoặc bánh lăn bổ sung (hoặc không trong trường hợp xe tự cân
bằng)
Robot có bánh xe vi sai được sử dụng rộng rãi trong robot, vì chuyển động củachúng dễ lập trình và có thể được kiểm soát tốt Hầu như tất cả các robot tiêudùng trên thị trường hiện nay chủ yếu sử dụng lái vi sai vì chi phí thấp và đơngiản Ngày nay có nhiều robot sử dụng hệ thống bánh xe vi sai như: robot hút
Hình 2.7: Robot dò line sử dụng mô hình robot vi sai.
10
Trang 21Hình 2.8: Robot phục vụ nhà hàng của KEENONHai bánh xe được điều khiến có tốc độ quay được gọi là hai bánh xe chủ động,
còn bánh xe bị động là bánh xe được đặt ở trước/sau robot chỉ có nhiệm vụ giúp
xe cân bằng Vì thế, trạng thái chuyển động của robot chỉ phụ thuộc vào 2 bánh
xe chủ động Các bánh chủ động có cùng bán kính r và cách nhau một khoảng L.
Chúng được điều khiển độc lập bằng các mô tơ điện cho phép robot chuyềnđộng theo hướng bat kỳ (Nếu cả hai bánh xe được điều khiển theo cùng mộthướng và cùng tốc độ, robot sẽ đi trên một đường thăng Nếu cả hai bánh được
quay với tốc độ băng nhau theo các hướng ngược nhau, rô bốt sẽ quay quanhđiểm trung tâm của trục Nếu không, tùy thuộc vào tốc độ quay của 2 bánh xe,robot sẽ quay về hướng của bánh xe có tốc độ thấp hơn)
11
Trang 22Hình 2.9: Mô hình robot vi sai trong hệ trục tọa độ.
Ta có (X, Y) biểu diễn hệ tọa độ toàn cục, (Xp, Yạ) biểu diễn hệ tọa độ cục bộ
gan liền với robot Với (x, y) là tọa độ của robot, 9 là hướng của robot so vớitrục OX, v và @ lần lượt là vận tốc dài và vận tốc góc của robot [9]
(middleware) ROS không chỉ cung cấp các dịch vụ của một hệ điều hành tiêu
chuẩn (trừu tượng hóa phan cứng, quan lý tranh chấp, quản lý tiến trình, v.v.)
mà còn cung cấp các chức năng cấp cao (các cuộc gọi đồng bộ và bat đồng bộ,
cơ sở đữ liệu tập trung, hệ thông cấu hình robot, v.v.) [10]
Cách thức hoạt động: Sơ đồ cấu trúc của ROS được xây dựng dựa trên các node,
môi node được tạo ra có các nhiệm vụ và chức năng khác nhau Các thông tin
12
Trang 23trao đôi giữa các node được giao tiếp qua các tin nhắn, các thông tin truyền nhận
theo giao thức quy định trước và có chung một chuẩn dé phục vu cho việc giao
tiếp với các gói dữ liệu bên ngoài Bên cạnh đó, công cụ hỗ trợ việc kiểm tra các
giải thuật và theo dõi dữ liệu có tính trực quan, đảm bảo dữ liệu được xử lý theo
thời gian thực.
Các quy trình ROS được biểu diễn dưới dạng các nút trong cấu trúc biểu đồ,được kết nối bởi các cạnh được gọi là các chủ đề (topic) Các nút ROS có thétruyén tin nhắn cho nhau thông qua các chủ đề, thực hiện các cuộc gọi dịch vụđến các nút khác, cung cấp dịch vụ cho các nút khác hoặc truy xuất đữ liệu được
chia sẻ từ cơ sở dữ liệu chung được gọi là máy chủ tham số (parameter master)
Một quá trình được gọi là ROS Master làm cho tat cả những điều này có théthực hiện bằng cách đăng ký các nút với chính nó, thiết lập giao tiếp giữa cácnút cho các chủ dé và kiểm soát các cập nhật máy chủ tham số Tin nhắn và cuộcgọi dịch vụ không chuyển qua master, thay vào đó, master sẽ thiết lập liên lạcngang hàng giữa tất cả các nút sau khi chúng tự đăng ký với master Kiến trúcphi tập trung này hỗ trợ rất tốt cho robot, thường bao gồm một tập hợp con của
phần cứng máy tính nỗi mạng và có thê giao tiếp với các máy tính ngoài bang dé tính toán hoặc ra lệnh.
thể gửi và nhận dữ liệu với máy chủ ROS, giúp cho việc phát triển các hệ thống
robot trở nên dễ dàng hơn.
b) Rosserial_ Arduino
13
Trang 24Trong giao thức Rosserial thì chuẩn được sử dụng trong đồ án này là
rosserial_arduino Băng việc kết nối trực tiếp Arduino với công USB trên Jetson
nano, sau đó tạo một topic dé truyền dữ liệu qua lại giữa Arduino va Jetson nano
bang cách tạo một node gọi là Serial_node dé xử lý
Nvidia Jetson Nano
USB cable
Hình 2.10: Giao thức Rosserial
2.3.4 SLAM và thuật toán Hector SLAM
a) SLAM
SLAM (simultaneous localization and mapping) tam dịch là Xác định vi trí
và ánh xạ đồng thoi Nó là phương thức tinh toán dé xây dựng và cập nhật
bản đồ từ một môi trường không xác định, đồng thời theo dõi vị trí các tácnhân trong đó Nó sử dụng một số thuật toán phổ biến dé giải quyết van đềnhư particles filter, bộ lọc Kalman mở rộng, giao điểm hiệp phương sai, Các thuật toán SLAM được sử dụng trong điều hướng, đo hình cho thực tế
ảo hay thực tế ảo tăng cường [11]
Các thuật toán SLAM được điều chỉnh theo các tài nguyên có sẵn, đo đó nókhông nhằm mục đích đề hoàn thiện mà phải tuân thủ những phương thức
hoạt động bắt buộc Nó được sử dụng nhiều trong xe tự hành, máy bay không
người lái, phương tiện tự động dưới nước
14
Trang 25> m Robot ] Landmark
L
True 4 5 |
Hình 2.11: Quá trình tính toán và ước lượng vi trí của robot va vat thể
Xét một robot di chuyên trong một môi trường quan sát tương đối có một sốđiểm mốc chưa biết bằng cách sử dụng một cảm biến đặt trên rô bốt như hìnhtrên Tại thời điểm k, các đại lượng sau được xác định [11]:
e x„: Vector trạng thái mô tả vi trí và hướng của xe.
e© u,: Véc tơ điều khién, được áp dụng tại thời điểm k — 1 dé đưa xe đến
trang thái x, tại thời điểm k
e m,: Một vector mô tả vi trí thực của mốc thứ ¡ được giả định là không
thay đôi với thời gian
° Z„: Các quan sát góc nhìn của robot về vị trí của mốc thứ ¡ tại thời
điểm k
Các đại lượng cũng được xác định thành các tập hợp như sau:
© Xọ;y = {X9, X41, + Xe} = {Xo.g_1,„}: Lịch sử của các tọa độ của xe.
© Uo, = {u,u;, , ty} = {Uo.~-1, Ux}: Lịch sử của các tín hiệu đầu vào
điều khiển
e m= {m,rnạ, ,1n„}: Tập hợp của tat cả các điểm mốc
© Lo = ÍZ+,Z¿, Zw} = {Zo-n-1 Ze}: Tập hợp các điểm quan sát mốc của
xe
Qua đó, vân đê của SLAM cân giải quyét có dạng xác suât như sau:
15
Trang 26P(xz,TM | Zo.k, Uo:y, Xo)
Tính toán xác suất của vị trí robot (x) cũng như ban đồ (m) được diễn rađồng thời và chúng phụ thuộc vào tín hiệu điều khiển va tín hiệu đo được từ
cảm biên trên toàn thời gian cũng như điêm khởi đâu đâu tiên.
Dé tính toán cho dạng xác suât trên cân có 2 mô hình tính toán là mô hình di chuyên và mô hình giám sát.
Mô hình giám sát mô tả xác suât của giá tri giảm sát z_k khi đã biết vi trí của
xe và vi trí của các cột môc ở môi trường, hàm xác suât có dạng:
P(z„ |x„,m)
Cho nên, giá tri đo được phụ thuộc vào vi trí hiện tại của robot và bản đô
được biết trước
Mô hình di chuyển thì lại được dựa vào tín hiệu điêu khiên hiện tại và vi trí của robot trước đó, nó có dạng là:
PŒy |x—1, Ux)
Nghĩa là, quá trình chuyên đổi trạng thái được giả định là một quá trình
Markov trong đó trạng thái tiếp theo x„chỉ phụ thuộc vào x;,_ và điều khiển
được áp dụng 1, và độc lập với cả các quan sát và bản đô.
b) Thuật toán Hector SLAM
Hector SLAM là một thuật toán mã nguồn mở được sử dụng để xây dựngbản đồ lưới 2D cho môi trường xung quanh dùng cảm biến laser scan
(Lidar) Thuật toán Hector SLAM xác định vi trí robot dựa vào phương pháp
scan matching mà không sử dụng phép đo hình học (odometry) Do đó,
Hector SLAM rat phù hợp cho việc lập bản đồ trong điều kiện thông tin vềkhung tọa độ (odometry) của robot bị sai lệch, không thể đo được hoặc bịvượt quá dung sai Thuật toán này yêu cầu phải sử dụng một thiết bị quét tầm
xa có toc độ cao Trong dé tài sử dụng cảm biên laser scan RPLidar Al, có
16