1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu và xây dựng mô hình robot phục vụ nhà hàng

52 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên cứu và xây dựng mô hình robot phục vụ nhà hàng
Tác giả Nguyen Ngoc Thao, Danh Quoc Hao
Người hướng dẫn Th.S Phan Đinh Duy
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Kỹ thuật máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 52
Dung lượng 30,6 MB

Nội dung

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 2

LỜ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 3

MỤ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 4

3.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 5

DANH 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 6

Hì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 7

DANH 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 8

DANH 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 9

TOM 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 10

truyê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 11

Chươ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 12

hiệ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 13

chú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 14

Chươ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 15

2.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 16

Hì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 17

2.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 18

sau 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 19

SolidWorks 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 20

nhiề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 21

Hì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 22

Hì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 23

trao đô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 24

Trong 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 26

P(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

Ngày đăng: 02/10/2024, 04:00

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN