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

Đồ án tốt nghiệp (chuyên ngành) robot tự Động gọi món và phục vụ trong quán cà phê

90 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
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 đề Robot Tự Động Gọi Món Và Phục Vụ Trong Quán Cà Phê
Tác giả Nguyễn Ngọc Lĩnh, Nguyễn Văn Bi, Nguyễn Xuân Hồi, Huỳnh Huy Hưng
Người hướng dẫn Giảng Viên Hướng Dẫn: Hoàng Đình Khôi
Trường học Trường Đại Học Công Nghiệp TP. HCM
Chuyên ngành Điều Khiển Và Tự Động Hóa
Thể loại Luận Văn Tốt Nghiệp
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 90
Dung lượng 17,79 MB

Nội dung

1 Tông quan hệ thống robot tự động di chuyên Một robot thông minh hiện nay có thê tự động di chuyển trong một môi trường nhất định là một hệ thống phức tạp bao gồm cả phần cứng và phần m

Trang 1

BO CONG THUONG TRUONG DAI HOC CONG NGHIEP TP HCM

KHOA CONG NGHE DIEN

BO MON DIEU KHIEN VA TU DONG HOA

GIAN VIEN HUONG DAN: HOANG DINH KHOI

SINH VIEN THUC HIEN:

HO VA TEN MSSV LOP

NGUYEN NGOC LINH 17106281 DHDKTD13C

NGUYEN VAN Bi 17073961 DHDKTD13B

NGUYEN XUAN HOATI 17036951 DHDKTD13B

HUYNH HUY HUNG 17077441 DHDKTD13B

TP Hồ Chí Minh, tháng II năm 2021

Trang 2

BO CONG THUONG TRUONG DAI HOC CONG NGHIEP TP HCM

KHOA CONG NGHE DIEN

BO MON DIEU KHIEN VA TU DONG HOA

TY oO œ6 x 4o

GIAN VIEN HUONG DAN: HOANG DINH KHOI

SINH VIEN THUC HIEN:

TP Hồ Chí Minh, thang 11 nam 2021

Trang 3

Luận văn tốt nghiệp Nguyễn Ngọc Lĩnh

PHIẾU GIAO NHIỆM VỤ KHÓA LUẬN TÓT NGHIỆP

1 Họ và tên sinh viên/ nhóm sinh viên được giao đề tài:

ROBOT TU DONG GOI MON VA PHUC VU TRONG QUAN CA PHE

3 Nhiém vụ (Nội dung và số liệu ban đầu):

* Tìm hiểu tông quan vẻ xe tự hành, hệ điều hành Ubuntu và Robot Operating System (ROS)

Lựa chọn các thiết bị cho xe tự hành

Thiét ké 3D vo robot cho xe bang phan mém Solid Work Lập trình diéu khién bang tay cho xe

Tiến hành định vị và điều hướng cho xe

v Thiết kế giao diện điều khién bang Matlab

4 Kết quả dự kiến (tóm tắt kết quả dự kiến đạt được):

vs Xe có thể tự chạy đến đích mà không cần con người tác động

*x Nắm được các khái niệm, cách lập trình với ROS

v Thiết kế được vỏ cho robot băng phần mềm Solid Work

* Nắm vững nguyên lý hoạt động của xe tự hành

Y Giao tiép và điều khiển thông qua giao điện người — máy

Tp HCM, ngày 20 tháng l1 năm 2021 Giảng viên hướng dẫn Sinh viên

Hoàng Đình Khôi ⁄⁄22-

Trưởng bộ môn

Nguyễn Ngọc Lĩnh

Trang 4

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

NHAN XET CUA GIANG VIEN HUONG DAN

Nhóm sinh viên đã hoàn thành đầy đủ các nhiệm vụ và mục tiêu đặt ra ban đầu của đồ án Phần cứng và mạch điều khiển được thi công hoàn thiện và vận hành tốt Các giải thuật điều khiến xe tự hành đã được nhóm SV nghiên cứu và áp dụng lên dé tai cua

mình một cách tương đối hoàn chỉnh Robot có thể vận hành và di chuyển một cách tự

động đồng thời có khả năng tránh vật cản tĩnh và động trên đường đi Nhóm SV cũng

đã lên kế hoạch triển khai hệ thống robot thử nghiệm trong môi trường quán cafe thực Tuy nhiên do lý do khách quan (dịch Covid 19) nên kế hoạch này không thể triển khai được như dự kiến

Trang 5

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

MỤC LỤC

1.1 Giới thiệu về Robot đi chuyên tự hành (autonomous đriving) 1 1.1.1 Kha năng nhận thức (Perception) - sec se 1 1.1.2 Lập bản đồ (Mapping)[2] và định vị robot (Localizication) - 2 1.1.3 Điều khiên chuyển động (Motion planning) -2-©227sz©csscsesr+ 3 1.1.4 Mục tiêu để tài -©2¿27c22c22k 2222212212221 211211211 11.1121 re 4 1.1.5 Đối tượng, phạm vi nghiên cứu . -¿2¿©2++c+++c++cx++rxezrxerxesre 4 1.1.6 Các bước thực thiện đề tài :+s+s+ESEtSE+ESEEE SE EEEEEEEEEEEEEEErErkererrree 4 1.2 Giới thiệu về Robot Operating System (ROS) -c¿-ccccccce 5 1.2.1 Cấp độ hệ thống tệp tin (ROS file System level) -2-5ccccs¿ 6

1.2.2 Cấp độ đồ thị tính toán (ROS Computation Graph Level) - §

1.2.3 Cấp độ cộng đồng -©-2©22+2E+EE221221121121121122121211211 2112111 10 CHƯƠNG 2 MÔ HÌNH ĐỘNG HỌC XE ROBOT 2 -2+©2c++cxz+cscee 11 2.1 )/0801051i0510i1-0i1 000577 11 CHƯƠNG 3 ĐỊNH VỊ VÀ ĐIÊU HƯỚNG (NA VION STACK) 5- 12 3.1 Chuyên đổi cầu hình -2¿- 2-22 +22EE+EE22EE+EEESEESEEerErvrxrrrrerkrsrxee 12 3.2 Thông tin cảm biến (Sensor information), 2+ s+ce+ce+ssrssrxsreees 15 3.3 Thông tin về trạng thái robot (Odometry information) - 15

3.4.1 BO Loc hat eeccecseessesssessssssesssesseesssssesseessesssessessesssssseessessesieesueeseesseeseeess 18 3.4.2 Thuat todin AMCL.n ecceeccessessessesssesseessesssessesssesseessesssesseesstssesseeseeseeneee 20 3.4.3 Thuật toán GmiappIng - S5 -S- se ke HH HH re 22

3.5 Bản đồ chỉ phi (Cost Map) .csscssessssssessessessesssssessesseesessessesseesseeseesees 25

3.6 Chuyên động (Move Base) .scsssssssessesssssssesssesssssesssessesssessscsueestessecsseeess 26 3.0.1 Phương Pháp Teb local pÏanner +5 ++<<S<xs+exssxseesereeesseesees 27 CHUONG 4: THIET KE ROBOT TU HANH HOAT DONG TRONG QUAN CA

PHÊ 22-22 2S 2S 21221521121122121121121121121111121121121121111111112112112111111212212 0111 re 33 4.1 Thiết lập robot tự động -2-©22-52¿22+22E22 E222 2EEEEESrkrrrrerkrsrvee 33 4.1.1 Bộ điều khiển trung tâm -22- 2: ©22+2+22EE+2EE+EESEEeEEESExrrrrerkrsrree 34

Trang 6

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

4.1.3 Các thành phần khác -¿-¿+©++2+++2EEtSEE+SEEESEEECEEErrrkrrrkrerkree 35 4.1.4 Thiết kế vỏ hộp cho robot -©2¿-5s¿ 52+ 2cxv2EESExSEEerkrsrkerrrerkrerree 36 4.2 Lập Trình tích hợp hệ thống . 2-22 +2 ©52+x22EE+EEE+EEerrrsrxesreee 40

4.2.2 Thiết lập bộ điều khiến bằng tay cho robot -2-©22©2s+5c++cxzsccee 41 4.2.3 Xây dựng bản đồ (mapping) -2- 22+¿2cx+cxe+ExecExerkrsrxerrrerkeerree 42 4.2.4 Điều hướng trên bản đồ đã dựng (navigation) . -cc-cce- 44 4.3 Thiết kế giao điện cho robot ¿22-552 22+S2++Cx2EEEEEESEkeErxerkrsrxrrrrees 41 4.3.1 Giới thiệu về phần mềm Matlab -22- 22 ©52©2S222++cE22Exvzxesrxesrxee 41 4.3.2 Giao điện và phương thức truyền nhận 2¿©-2©-2+2e+zx+zx+cxze- 50 CHUONG 5: KET QUA THUC NGHIEM 0.csccescsscsssssessessessessessesseestsseseseesseeseesens 56 3.1 Dữ liệu từ sensor laser Rplidar AÍ - 5-5 <S+s sexy 56 5.2 Quá Trình xây dựng bản đồ 2-22 ©5222S2EE2EEE2EEeEEEvrxrrrrrrrrsree 56 5.3 Đinh vị robot trên bản đồ -22- 5: ©22+Sx22EEvEEE2EEEEEeEEESrxrrrrerkerrvee 58 3.4 19180100ãx0 000 8N“ 58 3.3 Giao diện máy tính trung tâm va rObOI - - +5 -+<<£+s++skEseesessees 60 CHƯƠNG 6: TỎNG KẾT NHẬN XÉT VÀ HƯỚNG PHÁT TRIÉN 62

6.2 Hướng phát triển -©2++-+2EE+EESEEerErerkrsrrerkrsree 62 TÀI LIỆU THAM KHẢO -2-22- 222222222 2EE22EE2EE2221223127122112211211211 11.2112 xe 64

Trang 7

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

DANH MỤC HÌNH ẢNH

Hình I.1: Tông quan hệ thống robot tự động di chuyền . -2 5¿©2+55z5c+2 1

Hình 1.2: Ví dụ về tao lap ban d6 ctia robot (2D, 3D) c.cscsessessesssessessessessessesseeseeseeeees 3

Hình 1.3: Tao lap duong di cho robot tién t6i dich .c ceccccccccecsesseessessessessessessteseeeeeeees 3 Hình 1.4: Minh họa các nội dung trong filesystem level -cc+ccsexexee 6 Hình 1.5: Cầu trúc packagee -¿-2¿+- 5222x223 2E1222122112112112111211211121121 11.2 xe 7

Hình 1.6: Folder vi du vé không gian làm việc của hệ thong xe tu hanh 8

Hình 1.7: Cac node nói chuyện với nhau thong qua Topic 0 eee 10 Hinh 2.1: Hé thong cơ học và hệ thong điều khiển của mô hình xe omni 11 Hình 3.1: Tông quan về navigation stack [3] - . c-c 2 .-+- 12

Hình 3.2: Ví dụ minh họa cho robot - << 1200002 112311111111 xnxx xa 13 Hình 3.3: Cấu trúc cây biến đổi khung tọa độ của robot tự hành, và sự biến đổi giữa

các khung tọa độ Tọa độ gốc của hệ thong sẽ được đặt ở khung toa d6 “base link”

Xyz, rpy là các nhánh biến đổi - 2-22 +222++EE22EE2EEESEESEEEEEESEEEEEEerkrrrrrrrrees 14 Hình 3.4: Cầu trúc cây chuyên đôi giữa robot và map được tạo - 14 Hình 3.5: Ví dụ về xác định vị trí robot trong tọa độ "odometry” 16 Hình 3.6: Bộ mã hóa đo quãng đường bánh xe di chuyển được (Cấu trúc encoder và

hi; visa 011107575 17 Hình 3.7: Bản đồ lưới thu được từ gói gmapping -2 2 s¿©cs+cxz+cxecccees 18

Hình 3.9: Ví dụ về các hoạt động tính toán vị trÍ CỦa Xe -SccSSSSSssiseeeeree 19 Hình 3.10: Hàm mật độ xác suất vị trí của xe ( phan phối Gauss ),xe cé thê ở các vị tri trong phân phối xác suất -¿- 2-22 +¿++++E+++EE+2EE+EE+SEEEEEESEEESEEEEEESEEEEEEErkrrrrrrrreeg 20 Hình 3.11: Ví đụ về robot trong một bản đỗ gồm 4 bức tường (bên phải là khởi tạo

ngần nhiên vị trí tượng trưng) . - ¿5-52 5222222 2E+2E2EE2EE23321212212112112112111 1 22ee2 21 Hình 3.12: Khu vực co thé có vi trí robot sau khi lược bỏ các hạt có thông tin laser sai

và khởi tạo lại các hạt trong các khu Vực này . -SĂ SH, 21

Hình 3.13: Di chuyên robot đồng thời di chuyền tất cả các hạt - 22

Hình 3.14: Qua nhiều lần cập nhập thì mật độ hạt sẽ tập trung tại một khu vực 22

Trang 8

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

Hình 3.15: Mô tả về quỹ đạo đi chuyên của robot khi có bản đồ chỉ phí Vì có bản đỗ

chi phí nên robot sẽ tránh tiêp xúc gân với các vật cản, giúp nó di chuyên an toàn va ta

có thé dé dàng tính toán 2-22 2+ ©22+S+22EE+EEE2EE22EE2EEE2EE21127112112112112211 11.2112 25 Hình 3.16: Ví dụ về cost map trong ROS ¿22-222 2S2 22k 2EEEEEkrrrrerkrrrrree 26 Hình 3.17: Ví dụ về đường di chuyên và quĩ đạo chuyên động của robot (Đường xanh

lá là đường đi toàn cục, đường mảu đỏ là quỹ đạo cục bội) c.c sec 26

Hình 3.18: Đường dẫn toàn cục của robot (thuật toán DIiJkstra, A*) 27

Hình 4.1: mô hình cơ khí phần khung robot tự hành 33 Hình 4.2: Mô hình xe robot sử dụng bánh xe đa hướng - -c«c+x++e+seeeres 34 Hình 4.3: Bộ điều khiến trung tâm . 22- 2:22 S22EE+2EESEESEEEEEESExEErrrkrsrrrrrrees 34 Hình 4.4: Cảm biến laser Rplidar AI ¿-5¿©22+2S+2EEvEEE2EEvEEEerksrxerkrerrerrree 35

Hình 4.5: Phần mềm Solidworks 2019 ¿22k 36

Hình 4.6: Phần khung rOboOI - 2-22 22 ©22SS22EE+2EE+EEE2EE2EEEEEEE2EEE2EEEE2EEEE.EEcrrreeg 38 Hình 4.7: Nắp đậy (mặt bên) phần khung robot 2 2¿22+©2++cx+2zxvrxesrxerrrees 38 Hình 4.8: Hộp đựng pin (nguồn) 2-2: 22 ©2S2 22x 22EEEEEE2EEEEEEEEEEEEerkrrrrrrrees 39 Hình 4.9: Ngan chia tầng giữa tầng chứa pin và tầng đặt PC mini - 39 Hình 4.10: Tầng trên cùng nơi đặt laser và phần không gian đặt thức uống 39 Hình 4.11: Phần nắp đậy laser 2+ 2 ©52+2x2EE+EE22EE22EE2EE2EE21E211211 11.11 xe 40 Hình 4.12: Mô hình hoàn thiện phần vỏ được thiết kế cho robot 40 Hình 4.13: Sơ đồ điều khiên robot bằng PS2 2-©22-55222cc2EzvExEErerkrsrrrrrre 41 Hình 4.14: Sơ đồ khối các bước dựng bản đỗ ¿22 ©52©2x2c++cxSrxerxrsrxerrrees 42 Hình 4.15: Sơ đồ làm việc của Rpdidar A [ 2 2¿©2255z2cxv2xe+rxsrxerxesrxerrrees 42 Hình 4.16: Tín hiệu của cảm biến Rplidar A1 2 2¿©2c25z+cxsccesrxesrxere 43 Hình 4.17: Robot dì chuyền bằng tay trong môi trường thực ẲỄ c2ccccciccec, 43 Hình 4.18: Hình ảnh bản đồ sau khi đựng . -2- 2-22 S¿22++2E++Extzrxvrxesrxerrrees 44 Hình 4.19: Lưu đồ giải quyết bài toán điều hướng robot . ¿-¿©2z+cx+5ceee- 44 Hình 4.20: Hình ảnh robot đang được định vị trên bản 0 45

Hình 4.21: Vị trí ban đâu và vị trí robot đến -cccccccrrrrrrteerrrrrrrrred 46

Hình 4.22: Giai thuat Trajectory Rollout/Dynamic Window Approach [10] 47

Hình 4.23: Phần mềm matlab, -.-22 2222+22E22++2EEEEE+tEEEEEErttEEkkrrttrrrrrrrrriie 47

Hinh 4.24: Giao dién matlab Gut 0.0.0 48

Hình 4.25: Một số thuộc tính của bảng thiết kế giao điện 2-©22-552©55+e: 50

vi

Trang 9

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

Hình 4.26: Giao diện settIng - - Ác St S SH HH HT H1 1 HH HT HH Hệ 51 Hình 4.27: Giao digén Robotic Control System cecececceeceeseeseeeeeeceeeeeseeeeneenaeeaes 52 Hình 4.28: Lưu đồ và phương thức truyền nhận 2-2 2+ ©2222222<+£E+zxerxree 54 Hinh 5.1: Két quả tín hiệu laser Rplidar AI thu được Ó Hình 5.2: Không gian thực tế đê dựng bản đồ .-2 2222+©5222x2cxvcxrsrxerrrees 57 Hình 5.3: Kết quả bản đồ được dựng . 2-22- 2+ ©2222 2ExtEEESEESrxerkrrkrsrrerrre 57 Hình 5.4: Bản đồ được dựng trong môi trường có nhiều vật cản 5sss+s+esss 58 Hình 5.5: Robot được định VỊ, - - G S22 111123011 112311 1H 11111 KH kg 58 Hình 5.6: Global planner hoạch định đường đi cho robot -5<<<<<<<<<<<<s2 59 Hình 5.7: Robot đi theo đường đi đã hoạch định 552255 *S<**+<xs+scsseexss 59 Hình 5.8: Robot phát hiện vật cản và hoạch định lại đường đi mới - 59 Hình 5.9: Giao diện giao tiếp giữa máy tính trung tâm và robot . - 61 Hinh 5.10: Màn hình điều khiển robot từ máy tính trung tâm . . - 61

Trang 10

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

DANH MỤC CÁC BẢNG

Bang 1: Bang thong sé cau trúc một messager cho cảm biến :- 2+: 15 Bảng 2: Bảng thông số cầu trúc odommetry của rObol -2 -¿©s2©sz+cx+5scse- 18 Bảng 3: Bảng thông sỐ robot 2-22 ©52©22S222EE2EE2EE22EE223127112212112111211 1122112 xe 34 Bảng 4: Bảng các thành phần khác của robot -2- 2¿©2+2++cx+2rxvrxesrxerrrees 36 Bảng 5: Kiểu truyền đữ liệu của emd_ vel -22- 5: ©2++2xz2Exv2xterksrxerkrsrxerrres 40

220188 vip TƯ ẽ" 41

vili

Trang 11

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

LOI CAM ON

Lời đầu tiên em xin gửi lời cảm ơn chân thành đến thầy Hoàng Đình Khôi đã tận tình chỉ dẫn, giúp đỡ và định hướng cho em trong suốt quá trình lam dé án và luận văn, tạo điều kiện thuận lợi để em hoàn thành đề tài này

Em cũng xin chân thành cảm ơn đến trường Đại Học Công Nghiệp TP.HCM và

đặc biệt là quý thầy cô trong khoa Điện, bộ môn Điều Khiên và Tự Động Hóa đã trang

bị cho em các kiến thức nền tảng, bô ích trong khoảng thời gian học tập tại trường

Do chưa có nhiều kinh nghiệm làm để tài cũng như những hạn chế về kiến thức, trong bài tiêu luận chắc chắn sẽ không tránh khỏi những thiếu sót Rất mong nhận được

sự nhận xét, ý kiến đóng góp, phê bình từ phía Thầy đề bài tiêu luận được hoàn thiện

hơn

Lời cuỗi cùng, em xin chúc quý Thây, Cô thật nhiều sức khỏe, luôn giữ được ngọn lửa nhiệt huyết với nghề đê tiếp tục truyền đạt kiến thức cho các thế hệ sinh viên Sau này

Chúng em xin chân thành cảm ơn!

Sinh viên thực hiện

Nguyễn Ngọc Lĩnh Nguyễn Xuân Hoài Nguyễn Văn Bỉ Huỳnh Huy Hùng

TP.Hồ Chi Minh, 21 thang 11 nam 2021

Trang 12

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

LỜI MỞ ĐẦU

Xu hướng của thế giới hiện nay là cuộc cách mạng công nghệ về robot, AI Các

robot thông minh ngày cảng ra đời nhiêu hơn và robot tự hanh (autonomoust robot) 1a một trong những loại robot không thê thiếu trong nhiều lĩnh vực(vận chuyền hàng hóa, dịch vụ,.v.v ) Ngày nay robot tự hành ngày càng phổ biến hơn vả càng thông minh hơn

để có thé giải quyết và thay thế con người làm nhiều việc (robot xếp hàng vào kho, robot lau nhà, sắp xếp đồ vật, quân sự, khám phá môi trường con người khó tiếp cận v.) Robot tự hành là một công nghệ phức tạp và tích hợp nhiều công nghệ con như kỹ thuật điện, cơ khí, giao thông vận tải, công nghệ thông tin, v.v Một trong những công nghệ cốt lõi của robot tự hành là các thuật toán điều khiển thông minh để nó có thê tự đưa ra các quyết định hoạt động hoặc quyết định đi chuyên phù hợp mà không cần hoặc ít can đến con người Những thuật toán này giúp cho robot vận hành linh hoạt hơn trong các môi trường, linh hoạt khi có những tha đổi về bản đồ, vật cản,.v.v Từ đó đưa ra các robot có những hành vi, di chuyền thông minh và tinh tế hơn Nhiều phần mềm, chương trình và các gói công cụ đề nghiên cứu vẻ robot được sử dụng rộng rải, Robot Operating System (ROS) là một hệ điều hành mã nguồn mở được các nhà nghiên cứu về Robot sử dụng rất nhiều Nó cung cấp cho chúng ta rất nhiều phần mềm, công cụ, workshop về robot đã được các nhà nghiên cứu xuất bản và phát triển mà tốn rất nhiều thời gian dé

viết lại, từ đó ø1úp việc nghiên cứu thuận lợi và mạch lạc hơn Các phần mềm mô phỏng

được tích hợp trên ROS có lợi ích rất lớn trong việc nghiên cứu và phát triển Nhằm từng bước tiếp cận và nghiên cứu trong ngành công nghệ robot tự hành, và những lợi ích của ROS Em xin chọn đề tài: “robot tự động gọi món và phục vụ trong quán cà phê” Mục tiêu là xây dựng thành công mô hình robot phục vụ trong quán cà phê hoạt động một cách hiệu quả thông qua các hệ điều hành ROS, Ubuntu, cũng như các giải thuật điều khiến robot và một số phần mém nhu solidwork, matlab, Arduino IDE.,

Trang 13

Luận văn tốt nghiệp Nguyễn Ngọc Lĩnh

CHUONG 1 TONG QUAN

1.1 Giới thiệu vé Robot di chuyén ty hanh (autonomous driving)

Knowledge, Mission Data Base Commands

\

Localization “Position” Perret Map Building Global Map > [RL Eg Environment Model

Path Serene Actuator Commands

{ |

Information Extraction and 4

Interpretation `

Raw data Sensing |

Real World Environment

Perception Motion

Acting

Hình 1 1 Tông quan hệ thống robot tự động di chuyên

Một robot thông minh hiện nay có thê tự động di chuyển trong một môi trường nhất định là một hệ thống phức tạp bao gồm cả phần cứng và phần mềm bao gồm hai phần: Khả năng nhận thức được môi trường xung quanh (Pereeption) thông qua các thiết bị nhận diện và các thuật toán xử ly tín hiệu thu được, và thứ hai là từ các dữ liệu thu thập được nó có thé tự đi chuyên một cách khéo léo đến vị trí mong muốn đồng thời tránh các vật cản thông qua các thuật toán lập trinh chuyén déng (Motion planing) san

cho robot mà không cần đến bất kì tác động nào của con người Mỗi vấn đề được nêu trên đều đã được nghiên cứu và phát triển từ lâu và có rất nhiều cách thức tiếp cận mỗi

vấn đề khác nhau đề tạo nên một robot tự hành

1.1.1 Khả năng nhận thức (Perception)

Robot tự hành thông qua các thiết bi cảm biến môi trường (sensing) mà nó đang hoạt động như: Cảm biến âm thanh, ánh sáng, laser, Hoặc các loại camera Thông qua các thiết bị cảm biến, các dữ liệu về môi trường được gửi về bộ não trung tâm dé tính toán va dùng trong các tác vụ khác nhau Tùy thuộc vào robot và ứng dụng của nó, các dữ liệu về môi trường sẽ được thu về đơn giản hay phức tạp theo mỗi loại cảm biến khác nhau Đôi với các loại robot đơn giản như di chuyên theo đường màu sắc hoặc di

Trang 14

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

chuyên ngẫu nhiên khi bị chặn chuyên động, chúng chỉ cần các cảm biến về màu sắc

hoặc cảm biến khi gặp vật cản Tuy nhiên đa số các robot thông minh hiện nay việc nhận

thức môi trường rất rõ ràng thông qua nhiều thuật toán xử lí tín hiệu và các cảm biến thường là các loại cảm biến laser khoảng cách, hoặc ngay cả camera

1.1.2 Lập bản đồ (Mapping)[2] và định vị robot (Localizication)

Đối với các loại robot tự hành thông qua bản đồ, sau khi Robot thu thập thông tin

thông qua các thiết bị cảm biến, nhận diện Từ các dữ liệu thu thập được thông qua các

thuật toán tạo lập bản đồ chúng ta có thé thu duoc bản đồ toàn cục của môi trường mà

các thiết bị cảm biến thu được Vấn đề trong việc xây dựng bản đồ với đữ liệu thu thập

được là làm thế nào đề lưu trữ đữ liệu và dùng nó đề thể hiện một bản đồ hữu ích về

không gian bị chiếm dụng và không gian có thể sử dụng cũng như về độ chính xác đại

diện cho môi trường hoạt động Tùy thuộc vào mỗi ứng dụng khác nhan, robot cần phải nam bat rõ hay đơn giản những thông tin môi trường xung quanh nó Dựa vào đó, nhiều thuật toán ra đời giúp việc tạo lập bản đồ từ đơn giản cho tới chỉ tiết ra đời (2D, 3D) Dạng bản đồ thường được sử dụng nhiều là dạng lưới (ví dụ hình 2) vì khả năng tính toán ứng dụng rộng rãi và linh hoạt, ít tốn không gian bộ nhớ máy tính, giúp các thuật toán hoạt động trơn tru hơn

Việc định vị robot là việc xác định xem robot đang ở đâu trên bản đồ, vị trí và hình dáng của nó so với môi trường xung quanh Mỗi môi trường mà robot hoạt động thường sẽ được đặt hệ tọa độ gốc dé lay lam méc trong việc tính toán vị trí robot dé dang hon

Việc tạo lập ban đồ thường đi song song với việc định vị vị trí của robot trong ban dé, vì đây là hai khía cạnh phụ thuộc vào nhan, vấn đề này có tên là SLAM (xem thêm các thuật toán ở OpenSlam) Đề xây dựng một bản đồ của môi trường robot phải

tự biết vị trí của nó, đề biết được vị trí của nó tiếp theo robot cần phải có một bản đồ đã được tính toán Ngoài ra việc định vị vị trí có thê đạt được thông qua GPS hoặc các thuật toán định vị khác (AMCL, MCL, .)

Trang 15

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

trí mong muốn trên bản đồ hoặc thực hiện các nhiệm vụ mong muốn giải quyết các vẫn

dé Dùng các thuật toán điều khiên, ta có thê điều khiển chuyên động của robot di chuyên theo ý muốn Thông thường trong các robot tự hành thông minh, một đường đi toàn cục

sẽ được đưa ra đê hướng tới vị trí cuối cùng (path planning[8]) qua các thuật toán khởi

tạo đường đi như A*, DiJkstra[7], v v Và thông qua các thuật toán điều khiển chuyền

động, robot sẽ được điều khiển bám theo đường đi đã được đưa ra Lập kế hoạch chuyên động phụ thuộc nhiều vào mô hình chuyên động của robot hơn là lập kế hoạch đường

đi Mỗi đạng robot khác nhau sẽ có các mô hình toán học khác nhau từ đó thông qua các thuật toán điều khiến như PID, hoặc các thuật toán điều khiến thông minh như mờ, LỌR, neuron v v đê điều khiến các tín hiệu như vận tốc hoặc bánh lái của xe

Hình 1 3 Tạo lập đường đi cho robot tiến tới dich

Trang 16

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

Một hệ thong robot lớn thường sẽ được chia ra làm hai tầng điều khiển khác nhau

Một là tầng tính toán cấp cao thường sẽ hoạt động đề tính toán các thuật toán phức tạp trên (tạo lập bản đồ, data process, giao điện người máy, điều khiển thông minh) va tang điều khiến cấp thấp thường hoạt động trên các bo mạch nhúng để điều khiển các cơ cấu máy móc, cấu trúc điện tử cơ học của robot (motor, servo)

Để xây dựng một hệ thống hoàn thiện thì đây là một đề tài khá rộng và cần có những chuyên gia có kiến thức, kinh nghiệm để có thể phát triển một hệ thong ôn định, hoạt động trôi chảy trên nhiều điều kiện môi trường khác nhau Trong luận án này chúng

ta sẽ tiễn hành thiết kế và xây dựng một robot hoạt động ôn định trong thực tế

1.1.4 Mục tiêu đề tài

e©_ Tìm hiểu cách để tạo ra một robot tự hành và cấu trúc đề thực hiện robot

tự hành, có được hiểu biết về mô hình động học của robot dưới dạng xe bốn bánh với bánh omni và ROS

e©_ Thiết lập chuyên động của robot dưới dạng xe bốn bánh trong chương

trình mô phỏng trên nền tang ROS, str dung cdc thuật toán robot tự hành

và năm bắt cơ bản các thuật toán

e_ Xây dựng được một robot giao coffee hoàn chỉnh từ việc xây dựng bản

đồ, hoạch định đường di ngắn nhất, đi theo quỹ đạo đã hoạch định đồng thời phát hiện và tránh các vật cản trên đường di

1.1.5 Đối tượng, phạm vi nghiên cứu

e Nên tảng Robot Operating system (ROS)[1]

e_ Các phần mềm và các nội dung thuộc về ROS

e Mô hình động học cua robot xe bồn bánh với bánh lái omni

e Cac thuat toán tạo lập ban dé va dinh vi song song (SLAM), thuat toan diéu khién chuyển động (TEBỊ[1I])

e Phan mém matlab

e Phan mém solidword

1.1.6 Các bước thực thiện đề tài

e Timhiéu vé ROS va co cau dong hoc cua xe bốn bánh omni

e_ Thiết kế hình mau xe omni và động học trong phần mềm thiết kế và tạo

robot thực tế

Trang 17

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

e©_ Tìm hiểu các thuật toán để tạo nên một robot xe tự hành trong một môi

trường chưa biết trước và triển khai các gói phần mềm trong mô hình

e - Viết giao diện robot kết nối với hệ thống máy tính trung tâm

e_ Điều chỉnh hiệu số các thông số tối ưu đề đạt được quỹ đạo di chuyền tối

ưu

1⁄2 Giới thiệu về Robot Operating System (ROS)

Các thuật toán robot tự trị đa số là các thuật toán phúc tạp và yêu cầu mức độ xử

lý tính toán cao và cần một hệ thống phần mềm và phần cứng mạnh mẽ để xử lý chúng

Vì thế các robot tự trị thường có phản lõi xử lý cấp cao thường là một máy tính có hệ

điều hành và ROS[1] là một nền tảng phan mém manh mé giúp kết nối các cơ cấu hoạt

động vật lý và các thuật toán Nó hoạt động trên hệ điều hành linux, mã nguồn mở và là một bộ khung phần mềm trung gian sử dụng cho việc nghiên cứu và phát triển robot

ROS được tạo ra đề kết hợp các phần mềm robot với nhau, là một môi trường chung cho

các nhà nghiên cứu phát triển một phần mềm, chức năng cho robot và xuất hành trên ROS Các phần mềm, chức năng này sẽ có thê được sử dụng trên các ứng dụng robot nêu các robot ấy có cài đặt ROS Nó được thiết kế để các nhóm phát triển robot cộng tác và xây dựng dựa trên công việc của nhau

Bên cạnh tất cả các công cụ và gói mà ROS cung cấp, một trong những tính năng quan trọng nhất của ROS là khả năng trừu tượng hóa một số khía cạnh cơ bản và cấp thấp của phát triển phần mềm ROS cung cấp một hệ thống giao tiếp giữa các quy trình

có thê dễ đàng sử dụng đề thực hiện một hệ thống phân tán với nhiều quy trình Sử dụng khung giao tiếp đã triển khai, hệ thống dựa trên một biểu đồ giống như kiến trúc Bao gồm các node chịu trách nhiệm xử lý và các node này có thể nhận, gửi và ghép kênh thông tin cảm biến và các cơ cấu chấp hành, lập kế hoạch, trạng thái và các thông báo khác

ROS cho phép nhiều ngôn ngữ lập trình được sử dụng trong sự phát triển của hệ thống Python, C++ hiện đang là các ngôn ngữ phố biến nhất Một hệ thống dựa trên ROS được chia làm ba cấp độ khái niệm : the filesystem level, the computation graph level, và the comunity level

Cấp đâu tiên là cấp Hệ thống tệp tin (Filesystem) Trong cấp độ này, một nhóm các khái niệm được sử dụng dé giải thích cách một hệ thống trong ROS hoạt động, cầu

trúc thư mục và sô lượng tệp tôi thiêu mà nó can đê hoạt động

5

Trang 18

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

Cấp thứ hai là mức Đồ thị tính toán (Computer Graph) nơi xảy ra giao tiếp giữa các quy trình và hệ thống Trong phân này, chúng ta sẽ thay tất cả các khái niệm và cơ chế mà ROS có đề thiết lập hệ thống, xử lý tắt cả các quy trình tính toán và giao tiếp với

nhiều hơn một máy tính, v.v

Cấp thứ ba là cấp Cộng đồng (Community), bao gồm một tập hợp các công cụ và khái niệm để chia sẻ kiến thức, thuật toán và mã giữa các nhà phát trién Mức độ này có

tầm quan trọng lớn; như với hầu hết các dự án phần mềm mã nguồn mở, việc có một

cộng đồng lớn mạnh không chỉ giúp cải thiện khả năng của những người mới đến hiểu

sự phức tạp của phần mềm cũng như giải quyết các vấn đề phổ biến nhất, mà nó còn là

động lực chính thúc đây sự phát triển của nó

1.2.1 Cấp độ hệ thống tệp tin (ROS file System level)

ROS File System Level

Mục tiêu chính của Hệ thống tệp ROS là tập trung hóa quá trình xây dựng của một dự án đồng thời cung cấp đủ tính linh hoạt và công cụ để phân cấp các phụ thuộc của nó Khi một dự án được tạo và phát triên, chúng ta cần phải chia nhỏ và đóng gói thành các tệp và thư mục để có thê đễ đàng quản lí dự án của chúng ta tốt hơn Nó giúp

việc quan sát tiến trình và kiểm tra, phát triển hệ thống để dàng và nhanh chóng Tương

tự như hệ điều hành, chương trình ROS được chia thành các thư mục và các thư mục này có các tệp mô tả các chức năng của chúng:

Workspaee: là folder đầu tiên khởi tạo và chứa các gói (packages), tất cả mọi

thứ về dự án robot Ta có thể dùng catkin make được cung cấp bởi ROS đê biên dịch cho cdc source file python hoặc C++ Giúp quản lí dự án để dàng và rõ ràng hơn Tạo

Trang 19

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

một thư mục tên workspace chứa dự án muốn quản lý (robot_ws trong Hình 2 là một

workspace chứa toàn bộ dự án)

Packages: Các gói tạo thành hạt nhân của một hệ thống Một gói có cầu trúc và

nội dung tối thiểu để tạo một chương trình trong ROS Nó có thể có các quy trình thời

gian chạy ROS (nú0, tệp cầu hình, v.v (trong Hình 2 my_robot là một package) Thông thường, khi chúng ta nói về gói, chúng ta đề cập đến cấu trúc điện hình của tệp và thư mục

xếp điều hướng

Metapackage manifests: Tép kê khai siêu gói (package.xml) tương tự như một gói thông thường, nhưng có thẻ xuất trong XML Nó cũng có những hạn chế nhất định trong cầu trúc của nó

Message (msg) types: Mô tả thông báo là thông tin mà một quy trình gửi đến các quy trình khác ROS có rất nhiều loại mô tả thông báo tiêu chuẩn như geometry_msgs, nav_msgs Chúng ta có thể tự tạo các định dạng message riêng và lưu trong các folder

cá nhân my_ package / my_ msgs / MyServiceType.msg

7

Trang 20

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

Service (srv) types: Cac mé ta dich vu, được lưu trữ dudi dang my_package / srv/MyService Type.srv, xác định câu trúc dữ liệu các dịch vụ yêu cầu và phản hồi cho các dịch vụ được cung cấp bởi mỗi quá trình trong ROS

› vscode

ae Melts) devel

3 CMakeLists.txt package.xml

= man ; [1 ,catkin_workspace Hình 1 6 Folder vi du vé không gian làm việc của hệ thông xe tự hành

1.2.2 Cấp độ đồ thị tính toán (ROS Computation Graph Level)

Cấp đồ thị tính toán là nơi ROS xử lý đữ liệu và tạo ra một mạng lưới hệ thống nơi tất cả quá trình được kết nối Đây là cấp quan trọng nhất trong ROS vì nó là nơi các hoạt động, cơ chế của robot được tính toán và tạo ra Các yếu tố cơ bản của mức đồ thị

tinh todn cua ROS 1a nodes, messages, topics, services, bags, Master, and Parameter

Server Bat ki node nao trong hé théng ciing déu có thé truy cập mạng này, tương tác với các nút khác

Nodes: Nơi các quá trình tính toán được thực hiện Thông thường, một hệ thong

sẽ có nhiều node khác nhau và hoàn thành mỗi chức năng của hệ thong(vi du robot tu

trị sẽ gồm cảm biến (sensor), tao ban d6 (mapping), diéu khién (control), .) Các quá trình tính toán được khởi tạo trên các nodes sau đó kết nối với nhau để tạo ra một hệ thông hoàn hảo Việc chia nhỏ các node đề thực hiện các chức năng là cần thiết và giúp

quản lý hệ thông robot đễ dàng và rõ ràng hơn

The master: The master (roscore) quản lí tất cả các node, cung cấp tên đăng kí

và dịch vụ tra cứu tất cả các nodes còn lại trong mạng, tat cả các node cần master đề có

thé kết nối và làm việc với nhau Trong các hệ thống phân tán, các node có thể trên các máy tính khác nhau Luôn luôn có một tab chạy master (roscore) thì các chương trình ROS mới họat động được

Trang 21

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

Parameter Server: Parameter Server cho phép chúng ta lưu trữ các parameter toàn cục của toàn hệ thong như là thông số cầu hình các đặc tính của robot Chúng ta có thể lưu chúng dưới file dạng yaml và sử dụng chung cho toàn bộ hệ thống

Messages: Các node giao tiếp với nhau qua messages Một message chứa dữ liệu cung cấp thông tin cho các node khác ROS có nhiều loại messages riêng và bạn cũng

có thê tự phát triển loại riêng của bạn

Topics: Messages được định tuyến thông qua hệ thống vận chuyên, trong đó được phân loại thành publish và subscribe Các node không thể trao đổi trực tiếp các

messages với nhau mà phải thông qua các topics Topics được xem như là tiêu đề của các messages chứa dữ liệu mà ta đã truyền đi Tên các topics phải độc lập và không

trùng với nhau

Serviees: Mô hình publish/subscribe thì rất linh hoạt trong việc giao tiếp nhưng đặc điểm là truyền được đa đối tượng và một chiều Nhưng đôi khi lại không thích hợp cho việc truyền theo dạng request/reply, thường được dùng trong kiêu hệ thống phân bỏ

Do đó, việc truyền nhận theo dạng request/reply được dùng thông qua services Service

được định nghĩa một cặp cầu trúc dữ liệu: một cho request và một cho reply Một node

cung cấp một service thông qua một thuộc tính name, và một client sử dụng service bằng việc gửi một request message và đợi phản hồi Là một cách khác để truyền tải các message chứa đữ liệu giữa các node

Bags: Là một định dạng đề lưu và phát lại dữ liệu trong quá trình hoạt động của

hệ thống

Trang 22

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

Các bản phân phối ROS tương tự như vai trò của các bản phân phối Linux Họ là một bộ sưu tập các ngăn xếp ROS đã được phiên bản hóa, cho phép người dùng sử dụng các phiên bản khác nhau của các khung phần mềm ROS Ngay cả khi ROS tiếp tục được cập nhật, người dùng vấn có thể duy trì dự án của họ với các phiên bản cũ hơn, ôn định

hơn và có thể để dàng chuyền đổi giữa các phiên bản tại bất cứ lúc nào

ROS không duy trì một kho lưu trữ duy nhất cho các gói ROS; đúng hơn là ROS khuyến khích người dùng và nhà phát triên lưu trữ kho lưu trữ của riêng họ cho các gói

mà họ đã sử dụng hoặc tạo ROS chỉ đơn giản cung cấp một chỉ mục của các gói, cho phép các nhà phát triển duy trì quyền sở hữu và kiểm soát phần mềm của họ Các nhà phát triển sau đó có thể sử dụng ROS Wiki đề quảng cáo và tạo các hướng dẫn đề chứng mỉnh việc sử dụng và chức năng của các gói ROS Wiki là diễn đàn cung cấp tài liệu thông tin về ROS, nơi các nhà nghiên cứu và nhà phát triển đóng góp tài liệu, cập nhật, liên kết đến kho của họ, và hướng dẫn cho bất kỳ phần mềm nguồn mở nào mà họ đã sản xuất ROS Answer là một trang web hướng tới cộng đồng đê giúp trả lời các câu hỏi liên quan đến ROS mà người dùng có thê có

10

Trang 23

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

CHƯƠNG 2 MÔ HÌNH ĐỘNG HỌC XE ROBOT

2.1 Mo hinh dong hoc

Ô tô có bánh xe là một phương tiện di chuyền rất hiệu quả và là nguyên mẫu cho hau hét cdc robot di chuyên trên mặt đất Trong bài luận văn này chúng ta sẽ tập trung

đến mẫu robot hoạt động với loại truyền động mới (Ominidirectional mobile robot-

OMR) được quan tâm lớn của nhiều người trong những năm gần đây Khác với loại robot di động sử dụng bánh truyền thông, robot di động sử dụng bánh đa hướng có nhiều

ưu điểm vượt trội như: khả năng thay đổi vị trí và định hướng hoạt động, độ chính xác cao , bởi vì chúng có khả năng di chuyên va quay đồng thời hoặc độc lập, vì vậy robot

di động đa hướng đã thu hút được nhiều sự chú ý hơn Trong kỹ thuật điều khiển chuyển động của OMR, vấn đề bám quỹ đạo và tác động nhanh là rất cần thiết Có nhiều phương pháp điều khiến robot nhưng có rất ít công trình nghiên cứu dung điều khiến trượt cho

robot đa hướng

H:80mm Weight: 1.7kg

Hình 2 1 Hệ thống cơ học và hệ thống điều khiển của mô hình xe omni

Sự khác biệt giữa robot Ommi và robot Ackerman là mô hình động học của mỗi loại xe, nên từ đó mỗi loại robot được ứng dụng vào thực tế một cách khác nhau Ở loại robot Ackerman là loại robot có cầu trúc của những loại oto đang sử dụng hiện nay, nên

khi sử dụng ở những khu vực chật hẹp và đòi hỏi tính linh động cao thì khó áp dụng vào

đúng mục địch, bên cạnh đó những robot Ommi lại có tính linh động cao, dé dang di

chuyén trong môi trường chật hep, nhiều vật cản Bên cạch đó, robot omni hoạt động mỗi bánh độc lập và cầu tạo của bánh xe không cho phép robot hoạt động ở tốc độ cao như robot Ackerman Từ những đặc điểm nổi bật của loại robot Omni nên nhóm đã chọn loại robot này đề nghiên cứu và phát triển đề tài

11

Trang 24

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

hiked vận tôc/góc quay

Đối tượng điều khiến

(robot mang cà phê)

Hình 3 1 Tông quan về navigation stack [3]

Đề một robot có thể tự di chuyền trong một môi trường nhất định, ta cần phải đáp ứng đủ các yếu tố đã được nêu ở mục 1.1 Và navigation stack [3] có thê được xem như

là tên gọi của toàn bộ quá trình mà một robot tự điều hướng di chuyền Sơ đồ trên cho thấy tống quan về cấu hình này thông qua các node có thể khởi tạo thông qua viết mã

lệnh thông qua ROS Các điều kiện tiên quyết của ngăn xếp điều hướng, cùng với hướng

dẫn vẻ cách thực hiện từng yêu cầu, được cung cấp trong các phần bên dưới Mỗi thành phần là mỗi node thực hiện mỗi chức năng và gửi các dữ liệu thông qua các topics

3.1 Chuyến đỗi cấu hình

Mỗi bộ phân trong một hệ thong déu mang một khung tọa độ Nhiều gói ROSTLI]

yêu cầu cây biến déi (tree transform ) của robot được xuất bản bằng thư viện phần mềm

tỉ Ở mức trừu tượng, cây biến đôi xác định các hiệu số về cả địch và quay giữa các khung tọa độ khác nhau của mỗi bộ phận hoặc mỗi thành phần trong hệ thông robot hay giữa robot với môi trường xung quanh

Để làm rõ điều này, chúng ta sẽ xem xét một ví dụ về một robot đơn giản với một phần để và một laser đặt trên đứng trước một bức tường Chúng ta sẽ đặt cho mỗi bộ phận của robot một hệ tọa độ Oxyz có tên là “base link” và “base_ laser” và gốc tọa độ năm ở điểm chính giữa của mỗi bộ phận

Trang 25

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

Hình 3 2 Ví dụ minh họa cho robot

Khi đó, giả sử ta có được dữ liệu khoảng cách thu được từ laser và được thể hiện thông qua tọa độ “base laser” là (0.3, 0.0, 0.0) thể hiện cho khoảng cách từ laser đến bức tường là 0.3 met theo phương x Giả sử ta muốn robot hoạt động trong môi trường thông qua phần thân robot, đầu tiên ta cần phải đặt hệ tọa độ gốc của là “base link” Sau

đó chúng ta cần phải xác định mối quan hệ giữa hai hệ tọa độ “base link” và

“base laser” Ta co dữ liệu răng tia laser gắn trên để robot cao hơn phần tâm điểm của

nó 0.2m theo phương z và lệch về phía trước theo phương x 0.1m Ta có d =(x: -0.1m, y: 0.0m, z: -0.2m) được xem như là độ lệch tịnh tiến của hai khung tọa độ nảy Để biến đổi một điểm trong hệ tọa độ “base_ laser” sang hệ tọa độ “base_ link” chúng ta phải áp dụng một biến đổi tịnh tiến trên điểm đó Pbase_link = Pbase_laser + d và có được két qua (0.2, 0.0, -0.2)

Trong các ứng dụng robot lớn hơn, robot va hệ thong sẽ có nhiều khung tọa độ hơn, các biến đôi giữa các hệ tọa độ sẽ phức tạp hơn và thường là các ma trận biến đổi

Affine bao gồm cả phép tịnh tiến và phép xoay (x’y’z’ = Amanix * xyz)

dị ức 3 ax _ [đai 422 a3 dy matrix = | đại 432 433 az

0 0 0 1 ROS cung cấp cho ta công cụ /ƒlà một công cụ đề viết và quản lí các cầu hình chuyên đội hệ tọa độ này Trong /ƒ đê định nghĩa và cầu hình các chuyên đổi ta cần phải thêm chúng vào một “cây chuyên đôi” Mỗi nút trong cây là một khung tọa độ và mỗi

đường nối tương ứng phép biến đôi cần được áp dụng dé chuyên đổi từ nút này sang nút khác Ví dụ dưới đây là một cầu trúc cây của hệ thống xe tự hành

Trang 26

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

“Kye: 000.2 [we 0.1675 0.1525 -0.023 yz: -0.1675 0.1525 -0.0235 xyz: 0.1675 -0.1525 -0.0235 xyz: -0.1675 -0.1525 +0.0235

daa rpy: 0-00 rpy: 0 rpy: 0-00 rpy:0-00

HỆ, ca .—_ —— = vn ten — —— ns

CC taser joint) Cleft tront_shock > C_left_war_shock > CC right_from_shock > < rear_shock >

Laser link | | left steering link | left_rear_axle_carrier | right steering link | | right_rear_axle_carrier |

be 000 xyz 000 kyz: 000 xyz 000 py: 0-00 py: 1.5708 -0 0 py: 0-0 0 py: 1.5708 -0 0

Hình 3 3 Cầu trúc cây biến đổi khung tọa độ của robot tự hành, và sự biến đổi giữa các khung tọa độ Tọa

độ gốc của hệ thông sẽ được đặt ở khung tọa độ “base_ link” Xyz, rpy là các nhánh biến đôi

Hình 3 4 Cấu trúc cây chuyên đôi giữa robot và map được tạo

Việc viết các chuyên đôi giữa các khung tọa độ được thực hiện thông qua công

Trang 27

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

3.2 Thông tíncảm biến (Sensor information)

Mợi robot tự đi chuyền cần phải biết mọi thứ về môi trường xung quanh nó Để

có thể sử dụng các gói tạo lập bản đỏ, thông tin cảm biến là thứ đâu tiên phải được xác

nhận

Trong hệ thống mô phỏng của chúng ta chỉ sử dụng cảm biến Laser về khoảng cách giữa các vật cản và chính nó Ta có thể mô phỏng cảm biến này trong Gazebo và laser sr dung 1a Rplidar model A1

Các dữ liệu được đưa truyền qua các node thông qua messages đã được định dạng trước là sensor_ msgs/LaserScan hoặc sensor_msgs/PointCloud

Vi ta chỉ sử dụng laser nên ta chỉ su dung message sensor_msgs/LaserScan

Những dữ liệu cảm biến này sẽ được thu thập và truyền tới các node khác đề thực hiện tính toán thông qua các sensor topics (thông thường tên topic là “scan”) Cầu trúc của

một mess

sensor_msgs/LaserScan

# Laser scans angles are measured counter clockwise, with 0 facing forward

# (along the x-axis) of the device frame

#

Header header

float32 angle_min # start angle of the scan [rad]

float32 angle_max # end angle of the scan [rad]

float32 angle_increment # angular distance between measurements [rad]

float32 time_increment # time between measurements [seconds]

float32 scan_time # time between scans [seconds]

float32 range_min # minimum range value [m]

float32 range_max # maximum range value [m]

float32[] ranges # range data [m] (Note: values < range_min or > range_max should be discarded)

float32[] intensities # intensity data [device-specific units]

Bảng 1 Bảng thông số cấu trúc một messager cho cảm biến

3.3 Thông tin về trạng thái robot (Odometry information)

Trong robot học, thông tin về trạng thái của robot là thông tin vé vị trí ước tính của robot (xt, yr, t) tai mét thoi điểm cụ thê sau khi di chuyển liên quan đến vị trí bắt đầu của nó Ví dụ với robot xe bốn bánh tự hành, thông thường chúng ta sẽ đặt một khung tọa độ 2D Oxy tên là “odometry” tại nơi robot sẽ bắt đầu thực hiện di chuyền Sau đó

dựa vào thông tin vận tốc của robot đề ước tính được vị trí của robot trong khung tọa độ

“odometry” nay Xem hinh 3.5, robot bắt đầu tại một ví trí cụ thê trong môi trường Tại

15

Trang 28

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

vị trí bắt đầu nảy, đặt hệ tọa độ “odometry” có sốc tại trung tâm cua robot Gia su robot

di chuyên theo phương thăng x với vận tốc 0,2 m/s và di chuyên trong vòng 10s, khi đó robot sẽ kết thúc quãng di chuyền tại vị trí x bằng 2 (kết quả bằng vận tốc nhân thời gian

di chuyển)

Hình 3 5 Ví dụ về xác định vị trí robot trong tọa độ "odometry”

Thông thường trong robot thực tế, việc tính toán thời gian di chuyển của robot sẽ được tính bằng bộ đếm thời gian của bộ xử ly như máy tính nhúng hoặc bo mạch nhúng, việc tính toán quãng đường đã di chuyền của robot có thể dựa vào bộ mã hóa (encoder) được đặt ở bánh xe của chúng Đề triển khai bộ mã hóa này, một thiết kế phố biến là một đèn LED đi-ôt phát sáng và cảm biến ánh sáng khi bánh xe đi chuyên, và một đĩa

mã hóa được gắn song song Khi bánh xe đi chuyển mỗi lần ánh sáng đi qua lỗ cảm biến

sẽ tiếp nhận thông tin ánh sáng và gửi tín hiệu số về bộ xử lí Chu vi của bánh xe là 27r, với r là bán kính bánh xe, với mỗi lần xoay hoàn toàn l chu kì hình tròn, ta có quãng đường của bánh xe là ø2zr Số lỗ trên đĩa mã hóa sẽ tương ứng với độ phân giải của bộ

mã hóa Ví dụ như hình 3.6.b với 8 lỗ trên đĩa mã hóa, quãng đường đi được của bánh

xe robot là n271/8 Ngoai ra tốc độ còn có thể tính băng các đặc tính của động cơ

Trang 29

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

LED sensor

Hình 3 6 Bộ mã hóa đo quãng đường bánh xe di chuyên được (Cấu tric encoder va dia encoder)

Đối với phần mềm mô phỏng ta có thé ding cau trúc động học của robot (chương

2) đề tính thông tin về trạng thái của robot

Việc xác định thông tin odometry thường bị nhằm lẫn với việc định vị robot Trong các vấn đề định vị robot, thường một bản đồ của môi trường “map” bao gồm tất

cả các vật cản và khu vực chiếm đóng sẽ được tính toán, yêu cầu và thông qua các thuật toán ta sẽ định vị robot trên bản đồ mà nó đã tính toán trước đó, vấn đề này thường được gọi là SLAM Thông tin odometry thông thường được sử dụng trong việc định vị vị trí robot này, nó thường được kết hợp với thông tin laser đề tính toán

Ta có thể dùng Services để lấy các thông tin trạng thái robot từ phần mềm mô phỏng, và xuất bản thông tin này bằng dữ liệu dưới định dạng messages

nay_msgs/Odometry.msg qua các topic ⁄4ƒ⁄odom Câu trúc của message :

Trang 30

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

geometry_msgs/Vector3 linear float64 x loat64 y float64 z

geometry_msgs/Vector3 angular float64 x float64 y float64 z

float64[36] covariance

Bang 2 Bảng thông số cầu trúc odommetry của robot

3.4 Tạo lập bản đồ và định vị robot trong bản đồ (SLAMI4])

Hình 3 7 Bản đồ lưới thu được từ gói gmapping

Dữ liệu cảm biến được thu thập được sẽ được sử dụng để tạo lập bản đồ hữu ích cho việc đi chuyền của robot Có nhiều thuật toán tạo lập bản đồ tuy nhiên các thuật

toán hiệu quả hiện nay thường đi chung với định vị vị trí của robot trong chính bản đồ

đã được tạo vấn dé này thường được gọi là SLAM (tạo lập bản đồ đồng thời định vi vi trí robot) Dé robot xây dựng được bản đồ, robot cần ước tính vị trí chính xác của nó và

dé có được điều đó, robot cần phải có một bản đồ nhất quán Nếu chúng ta có thông tin

về bản đỗ trước đó, ta có thê thực hiện định vị robot trên bản đồ này riêng lẻ qua các

thuật toán khác Trong luận văn này, chúng ta sẽ sử dụng thuật toán Gmapping để tạo lập bản đồ và AMCL đề định vị vị trí cho robot

3.4.1 Bộ lọc hạt

Đề hiểu rõ về các thuật toán trên, chúng ta cần phải biết về bộ lọc hạt (Practice

Eilter) đặc biệt là kalman filter Bộ lọc hạt (Practice Eilter) là một thuật toán ước lượng

tối ưu Nó được dung trong việc ước lượng trạng thái của một hệ thống khi trạng thái

này không thê đo lường, tính toán trực tiếp Ví dụ với một chiếc xe đi chuyên trên đường

và fa cân xác định vị trí của nó trong một quảng đường cho trước

Trang 31

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

Chúng ta có thé tính toán được vị trí của nó như cách tính thông tin odometry là

tính dựa vào quãng đường mà nó di chuyên được thông qua vận tốc đo đạc được từ các

thiết bị cảm biến bánh xe cùng với đó có thê kết hợp với việc tính toán thông qua GPS

để xác định vị trí của nó trên mặt phăng Các việc tính toán này thường được xem là

động lực học của xe Mặc khác, ta cũng có thê tính toán ước lượng vị trí của xe thông

qua mô hình toán học động học của xe (như chương 2), cả hai cách tính toán này đều có sai số ảnh hưởng tới vị trí của robot Việc sử đụng GPS hoặc tính toán thong tin odometry thường sẽ có nhiễu và việc tính toán thông qua mô hình toán chỉ xem như là việc ước tính vị trí vì bỏ qua các tác động lực như lực quán tính, ma sát v.v

Thuật toán bộ lọc hạt cho phép chúng ta kết hợp hai mô hình này để ước tính vị

trí gần như chính xác của xe trên quãng đường Vì việc tính toán chính xác vị trí của xe

là không có thật nên bải toán này đưa về bài toán xác suất, với xác suất vị trí của xe tại một điểm được dựa vào hàm mật độ p(y) VỊ trí của xe tại một thời điểm được phân bố theo một nhóm xác suất phân bố chuẩn Gauss (như hỉnh), với mỗi đường cong mật độ

xác suất hình chuông sẽ tương ứng với mỗi xác suất vị trí tính toán được của xe, đường

cong xanh tương ứng với xác suất vị trí tính được thông qua mô hình toán p(y^), đường

19

Trang 32

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh cong cam tương ứng với xác suất vị trí tính được thông qua đo đạc, động lực học /(yk)

và mảu xám tương ứng với xác suất vị trí tối ưu Mỗi vị trí của xe trong khu vực mật độ xác suất được gọi là hạt (vị trí xe), thuật toán bộ lọc hạt sẽ lượt bỏ các hạt (vị trí xe) có

xác suất thấp chính xác cập nhập chon lọc cho tới khi đạt được hat (v1 tri xe) tối ưu

' ' lực học ( đo đạc 9 )

l \ ` l -

v^ y_k Vi tri cua xe ( y)

Hình 3 10 Hàm mật độ xác suất vị trí của xe ( phân phối Gauss ),xe có thể ở các vị trí trong phân phối xác

suat

Thuật toán bộ lọc Kalman được mô tả thông qua hai bước tính toán bao gồm :

Ước tính lần đầu và cập nhập việc ước tính dựa vào ước tính trước đó

Ước tính lần đầu (Piori estimate):

I, = Ay#_+ + Buy Py= Ayg-+A + Q

Đây xem như là việc tính toán không chắc chắn dựa trên mô hình toán học, với P¿ là phương sai của hàm mật độ xác suất Việc tính toán này thông qua đầu vào của vị

trí tối ưu trước đó y¿_¡ và phương sai trước đó

Và thông qua việc kết hợp giữa việc ước tính lần đầu và ước tính từ động lực học của xe Ta sẽ cập nhập thông tin (Update) tính toán K„ và phương sai P„ của xác suất

vị trí tối ưu y„„ từ đó tính được vị trí tối ưu y„ dựa vào tính toán xác suất lớn nhất

Pct

CP, C'+R

Kk, =

Vị trí tối ưu của xe tiép theo: yy = „+ Ky x (w„— € x„)

Av cir thé ta sẽ lại dùng vị trí và phương sai vừa tính toán y#k và Pk để tính toán

tiếp cho việc Ước tính lần đầu tiếp theo P¿¿¡ và Øya¡

3.4.2 Thuật toán AMCL

Quay trở lại bài toán định vị vị trí của robot trong một bản đồ đã có sẵn (có thể bằng phát họa tay), bộ lọc Kalman thường được dùng đê kết hợp thông tin thu được từ

Trang 33

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh cảm biến khoảng cách (Laser) để ước tính lần đầu và thông tin odometry thu được sẽ

dùng dé cập nhập bộ lọc Đầu tiên chúng ta sẽ khởi tạo các vị trí ngẫu nhiên của robot

trong bản đồ (giống như việc xe hơi có thể nằm đâu đó trong đoạn đường đã cho)

Dựa vào thông tin laser thu được (màu đỏ) ta có thé lọc đi các vị trí ngẫu nhiên

đã tạo không có cùng thông tin mà nó thu được (như vị trí ngẫu nhiên 1 sẽ bị lược bỏ vì

vị trí 2 thu được thông tin gần giống với thông tin robot) và xem xét các vị trí không pham lỗi sẽ có xác suất chính xác hơn, các vị trí này sẽ được tong hop lai thanh mot mat

độ xác suât và ta sẽ lại khởi tạo một số lượng các hạt ngâu nhiên trên chính các vị trí

láo

Hình 3 12: Khu vực co thể có vị trí robot sau khi lược bỏ các hạt có thông tin laser sai và khởi tạo lại các

hạt trong các khu vực này

này

Tiếp đó, ta sẽ di chuyển robot đồng thời di chuyền tất cả các hạt vị trí ngẫu nhiên

đã tạo trước đó đề có thê thu thập được thông tin về odometry của robot, từ đây ta lại dung thông tin laser dé cập nhập lại các vị trí thu được thông tin laser giống nhau như trên và lọc tiếp các hạt không trùng

Trang 34

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

Hình 3 13: Di chuyển robot đồng thời di chuyén tất cả các hạt

Và cứ lặp đi lặp lại việc này cho tới khi mật độ xác suất tập trung lại một điểm

đó chính là vị trí tối ưu nhất của robot sau khi qua bộ lọc kalman, đây được gọi là thuật toan Monte Carlo Localizication (MCL) =

Hinh 3 14 Qua nhiều lần cập nhập thì mật độ hạt sẽ tập trung tại một khu vực

3.4.3 Thuật toán Gmapping

Tiếp theo ta sẽ nói về bài toán tạo lập bản đồ thông qua thuật toán Gmapping Thuật toán này sẽ giúp chúng ta tạo nên một bản đồ luới chiếm đóng từ thông tin cảm

biến khoảng cách laser và là một thuật toán bộ lọc hạt Rao-Blackwellized hiệu quả

Thuật toán cung cấp hai cach dé tang higu nang cua viéc tao lap ban đồ là: Đưa ra một phân phối đề xuất xem xét độ chính xác của các cảm biến đo lường robot và cho phép

vẽ các hạt với độ chính xác cao, theo sau là kỹ thuật lây mẫu thích ứng, giúp duy trì số lượng lớn hạt và giảm nguy cơ cạn kiệt hạt

Y tưởng chính của thuật toán bộ lọc Rao-Blackwellized cho bai toan SLAM là

ước tính một xác suất hậu kì p(¡„,1n|Z4¿, Uo:t) vé qui dia tiém nang x,., dwa trên các thông số đo đạc theo miễn thời gian kí hiệu là z¡„và tín hiệu thông tin odometry rạ„

và dùng xác suất hậu kì này để tính toán một xác suất hậu kì cuối cùng về bản đồ và quỹ đạo

Trang 35

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

P(Xi¿,1f.|Z1¿,o„¿) = P(m x10, Z1 P(e Ze Uo)

Đề ước tính xác suất hậu nghiệm Đ(Xi¿|Z1„, tạ) trên các quỹ đạo tiềm năng,

thuật toán tạo lập bản dé Rao-Blackwellized sử dụng một bộ lọc hạt trong đó một bản

đồ lẻ được liên kết với mọi mẫu Méi map được xây dựng dựa trên tín hiệu cảm biến Z¡„ và quï đạo x¡„¿ tượng trưng cho mỗi hạt tương ứng Một trong những thuật toán bộ lọc hạt phô biến nhất là bộ lọc Sampling Importance Resampling (SIR) Thuật toán bộ loc Rao-Blackwellized SIR cho tao lập bản đỗ từng bước xử lý các tín hiệu quan sát (cảm biến) và thông tin odometry nếu chúng có săn Việc này có thê hoàn thành bởi việc

cập nhập mội tập mẫu đại diện cho xác suất và qui dao cua robot Thuật toán này bao

Ước tính bản đồ: Với mỗi mẫu dáng xt, một bản đồ ước tính tương ứng mi duoc tính dựa trên qui dao và sự quan sát (cảm biến) trong quá khứ dựa theo p(mlx:¿, Zit) Phân phối đề xuất được tính toán trong bước lấy mẫu phải xấp xỉ với phân phối thật p(x |Z1¿, Uo:t) và có thể được chọn tùy ý Theo Doucet lựa chọn tối ưu của phân phối đề xuất 7 đối với phương sai của trọng số hạt và theo giả định Markov là

p(Z(ITty—1 ,Z¿)p(xilx¿Et ue)

[p(Z¿Im‡S1 ,X”)p(Œ'Ix£+,1)dxr

P(X:[fftt—1,X¿—1, 2e, u,) = Trong hé thong thuật toán này, ta sé xap Xi p(x; |xi_1, u;) bởi k trong một khoảng !Ý dựa trên

U = [xIp(z.lmj_.*)Ì> £:

23

Trang 36

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

Với công thức này ta cd

P(xilml-,x)-,20,) xạ THÊ) See hPL ue) ax

Sau do, uéc tinh xap xi cuc b6 phan phéi nay xung quanh ham kha nang Ion nhất

bé Gauss

p(x: [mi , Xv Zt, ur) = N(u, >)

Voisu xap xi nay, ta được một dạng đóng phù hợp đề lay mẫu Với mỗi hạt hai tham số có thể được xác định bởi sự đánh giá bởi hàm khả năng cho một tập hợp các

điểm { } được lấy mẫn xung quanh sự tướng ứng cục bộ lớn nhất được tim bởi quá trình

Trong đó n = yet D((2,|m¿È 4 1%) là một chuẩn hóa Việc tính hai giá trị trên

cũng như quá trình quét đối xưng được thực hiện với mỗi hạt Giá trị ở được chọn đề bao phủ một khu vực phụ thuộc vảo độ không chắc chắn khi đọc giá trị odometry cuối cùng và mật độ phụ thuộc vào độ phân giải của bản đồ luới Trọng số quan trọng có thê tính gần đúng bằng công thức :

WE = wi-1P(Z, Mi_1, Up) = wky

Một khía cạnh khác có ảnh hưởng lớn tới hiệu suất của bộ lọc hạt là bước lay

mau lại Trong quá trình lẫy mẫu Trong quá trình lấy mẫu lại, các hạt với trọng số w‡

nhỏ sẽ bị thay thế bởi các hạt có trọng số wi lớn Một mặt việc lay mẫu là cần thiết vì

chỉ có một số lượng hữu hạn hạt có thê sử dụng Mặt khác, bước lay mẫu lại có thể xóa

đi các hạt mẫu tốt, gây sự suy giảm hạt Một cách lấy hạt hiệu quả đó là

N= 1

eƒƒ — ĐÀ (wi)?

Giá trị này giúp đánh giá xem tập hợp hạt hiện tại đại điện cho xác suất hậu kì tốt

như thế nào Nếu các mẫu được lay từ xác suất hậu kì thực sự, thì trọng số quan trọng

w‡ của các mẫu sẽ bằng nhau Sự gần đúng càng xấu thì phương sai của các trọng số càng lớn Vì Nuz; có thê được coi là thước đo độ phân tán cảu các trọng số quan trọng, nên nó là thước đo hữu ích để đánh giá xem tập hợp hạt hậu kì thực sự như thế nào

24

Trang 37

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

an toàn, tránh các vật cản Gói costmap_ 2d sử dụng sử dụng dữ liệu cảm biến và thông

tin tir ban dé tinh thu được từ trước để lưu trữ đữ liệu và cập nhập thông tin về môi trường và những vật cản xung quanh robot Gói costmap_2d cung cấp đữ liệu thông tin dưới dạng 2D(x, y) về thông tin chiếm đóng dạng lưới của các vật cản Nó đăng kí thông tin từ các chủ đề cảm biến đề tự cập nhập các thông tin này trên bản đỗ tĩnh ( xóa, vẽ các vật cản trên bản đồ)

Việc thể hiện màu trên đỗ luới sẽ thêm hoặc xóa bớt các ô màu trên bản đồ tương đương với tín hiệu cảm biến Mỗi ô thông tin trên bản đồ có thể là không gian bị chiếm đóng, không gian trống và không gian chưa biết Mỗi loại thường tương ứng với một giá trị màu cụ thé (0 -255) dé thé hiện rõ ràng trên bản đỗ tĩnh (ta có thé tùy chỉnh đề có màu khác nhau) Như hình duới ta có khôi đa giác đỏ là vị trí robot, các dải ô đỏ là thông tin về vật cản thu được từ tín hiệu laser (không gian bị chiếm đóng), màu xám nhạt ở trong tượng trưng cho vị trí trống (không gian trồng) và màu xám đậm là những thông tin chưa biết về môi trường (không gian chưa biết)

25

Trang 38

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

wd

Hình 3 16 Ví dụ vé cost map trong ROS

Có hai loại bản đồ chỉ phí chính được khởi tạo thông qua ROS đó là: Bản dé chi phí toàn cục (global cost map) va ban đồ chỉ phí cuc bé (local cost map) Ban d6 chi phí

toàn cục được xây dựng trên bản đồ tĩnh lúc đầu Trong khi đó, bản dé chi phí cục bộ sẽ

tập trung vào lúc di chuyên của robot, lầy thông tin về một bản đồ nhỏ xung quanh robot khi nó đi chuyên, và tạo bản đồ chỉ phí trong khu vực bản đỗ nhỏ này

3.6 Chuyễn động (Move Base)

Việc robot chuyên động hoặc đi chuyên cần phải thông qua các thuật toán lập kế

hoạch chuyển động của robot Thông thường đối với vấn đề điều hướng robot, sẽ có hai

công đoạn để tính toán ra các tín hiệu điều khiển cho các thiết bị truyền dong (motor)

đó là: Lập kế hoạch đường đi (Path planning) thường là một vấn đề toàn cục, nó sẽ tạo

ra một con đường cho phép robot đi chuyền từ điêmmr này đến điểm mong muốn, tiếp sau đó là lập kế hoạch chuyển động (motion planning) thường là một vấn đề cục bộ, dùng để tính toán các lệnh hoạt động cần thiết để bán vào đường đi thu được từ lập kế hoạch đường đi Việc lập kế hoạch chuyên động phụ thuộc vào mô hình chuyển động của robot (Chương 2) kết hợp với các thuật toán điều khiên tối ưi và các yếu tố tác động của môi trường, từ đó tính toán các don vi điều khiển robot như vận tốc, góc xoay bánh lái, hoặc gia tôc, v.v Đê điêu khiên hoạt động cua robot

Hình 3 17 Ví dụ về đường đi chuyên và quï đạo chuyên động của robot (Đường xanh

lá là đường đi toàn cục, đường màu đỏ là quỹ đạo cục bộ)

26

Trang 39

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

Đầu tiên ta sẽ nói đến việc lập kế hoạch đường di cho robot, thông thường là con đường ngắn nhất đê dẫn đến vị trí mong muốn Các thuật toán tìm đường ngắn nhất phổ biến như Djikstra sẽ giúp ta khám phá toàn bộ tất cả tuyến đường có thê có trong biéu

đồ cho đến khi tìm thấy đường dẫn tới nút mục tiêu, sau đó tiếp tục cố gằng tìm tuyến

đường ngắn nhất Một trong những thuật toán dựa trên Djikstra và thường được sử đụng trong lập kế hoạch đường di chuyên là A*, việc khám phá bản đồ của thuật toán dựa trên hàm heuristic Với heuristic, việc khám phá biểu đồ hiệu quả hơn vì thuật toán có thể mở rộng đầu tiên các nút có giá trị heuristic thấp hơn Xem xét điều này, có nhiều khả năng tìm thay con đường ngắn nhất đến mục tiêu mà không phải thực hiện tìm kiếm qua tât cả các nút trên ban do

, CeBPBeeeeeeeed - *“w«w.ww*%x%*s%*%đ

aed eee eee eee eee eae e -_

Hình 3 18: Đường dẫn toàn cục của robot (thuật toán Dijkstra, A*)

Node move_base tạo một đường dẫn toàn cầu thông qua gói global planner Gói

global_planner có thể sử dụng một số thuật toán lập kế hoạch đường dẫn khác nhau

Ta có thể lựa chọn đường dẫn toàn cục bằng cách set tham số

Gói base_local_planner phát triển một quỹ đạo cục bộ thông qua các gói thuật toán như TEB, DWA, EBEND và cung cấp lại tín hiệu điều khiển dx, dy và d6 cho gói move_base dé gui toi lam chuyên động robot base_loeal_planner là một phần quan

trọng của hệ thông nó thưc hiện các quỹ đạo di chuyên ngắn tối ưu bám theo đường dẫn

toàn cục (path planning) dé di chuyên tới vị trí mong muốn

3.6.1 Phuong Phap Teb local planner

TEB local planner 1a một thuật toán trién khai cong cu lap ké hoach quy dao cuc

bộ tối ưu trực tuyến đề điều hướng và điều khiến robot di động như một plugin cho gói

điều hướng ROS giúp suy ra các tính hiệu điều khiển Quỹ đạo ban đầu được tạo bởi trình lập kế hoạch toàn cầu được tối ưu hóa trong thời gian chạy thực giảm thiêu thời gian thực hiện quỹ đạo (mục tiêu tối ưu về thời gian), tách biệt khỏi các chướng ngại vật

và tuân thủ các ràng buộc cơ học như thỏa mãn vận tôc và gia tốc tôi đa

27

Trang 40

Luan Van Tét Nghiép Nguyễn Ngọc Lĩnh

Mục tiêu tông thể là điều khiển robot từ một điểm s, đến vị trí mong muốn Sp

trong một thời gian ngăn nhất ( diéu khién tối ưu) Vấn đề tối ưu hóa cơ bản được xác

định trong các thuật ngữ của một vectơ tham số hữu hạn chiều bao gồm trình tự tùy ý của z: câu hình robot (s;,) , = 1,2,3 Phuong phap TEB kết hợp thông tin tam thời trực

tiếp vào vấn đề tối ưu hóa và do đó giải quyết việc giảm thiêu thời gian chuyên đổi theo

hạn chế cơ học Đặt kí hiệu (ATy)„ = 1,2, n-I biểu thị mỗi chuỗi thời gian dương

nghiêm ngặc Mỗi A7, mô tả thời gian cần thiết dé đi chuyên từ trạng thái s„ tới Sự„¡

Tập hợp các thông số đề tối ưu hóa được xác định bởi :

Bài toán tối ưu hóa TEB được xây dựng dưới dạng phi chương trình tuyến tinh: Với các ràng buộc :

S51, = So, $s, = Sy , 0< ATy < ATi nax

hy ( Sit, Sk) = 0, Fi, (Spit) Sx) >0

vô cùng Trường hợp này là được xem xét riêng trong việc triển khai bộ giải cụ thê

Giới hạn vận tốc và gia tốc : vận tốc tịnh tiến của cầu hình S, tại bước thời gian rời rạc k được ký hiệu là 0y Robot bao gồm khoảng cách Rk giữa s„ đến s„„¡ được cho bởi øy (chương 2) và R:= pxAfx Do đó, vận tốc vx của nó được xác định bởi :

Ngày đăng: 01/01/2025, 21:30

HÌNH ẢNH LIÊN QUAN

Hình  1.  2  Ví  dụ  về  tạo  lập  bản  đồ  của  robot  (2D,  3D)  1.1.3.  Diéu  khién  chuyén  déng  (Motion  planning) - Đồ án tốt nghiệp (chuyên ngành) robot tự Động gọi món và phục vụ trong quán cà phê
nh 1. 2 Ví dụ về tạo lập bản đồ của robot (2D, 3D) 1.1.3. Diéu khién chuyén déng (Motion planning) (Trang 15)
Hình  1.  7  Các  node  nói  chuyện  với  nhau  thông  qua  Topic  1.2.3.  Cấp  độ  cộng  đồng - Đồ án tốt nghiệp (chuyên ngành) robot tự Động gọi món và phục vụ trong quán cà phê
nh 1. 7 Các node nói chuyện với nhau thông qua Topic 1.2.3. Cấp độ cộng đồng (Trang 22)
Hình  3.  3  Cầu  trúc  cây  biến  đổi  khung  tọa  độ  của  robot  tự  hành,  và  sự  biến  đổi  giữa  các  khung  tọa  độ - Đồ án tốt nghiệp (chuyên ngành) robot tự Động gọi món và phục vụ trong quán cà phê
nh 3. 3 Cầu trúc cây biến đổi khung tọa độ của robot tự hành, và sự biến đổi giữa các khung tọa độ (Trang 26)
Hình  3.  4  Cấu  trúc  cây  chuyên  đôi  giữa  robot  và  map  được  tạo. - Đồ án tốt nghiệp (chuyên ngành) robot tự Động gọi món và phục vụ trong quán cà phê
nh 3. 4 Cấu trúc cây chuyên đôi giữa robot và map được tạo (Trang 26)
Hình  3.  9  Ví  dụ  về  các  hoạt  động  tính  toán  vị  trí  của  xe - Đồ án tốt nghiệp (chuyên ngành) robot tự Động gọi món và phục vụ trong quán cà phê
nh 3. 9 Ví dụ về các hoạt động tính toán vị trí của xe (Trang 31)
Hình  3.  13:  Di  chuyển  robot  đồng  thời  di  chuyén  tất  cả  các  hạt. - Đồ án tốt nghiệp (chuyên ngành) robot tự Động gọi món và phục vụ trong quán cà phê
nh 3. 13: Di chuyển robot đồng thời di chuyén tất cả các hạt (Trang 34)
Bảng  3  Bảng  thông  số  robot - Đồ án tốt nghiệp (chuyên ngành) robot tự Động gọi món và phục vụ trong quán cà phê
ng 3 Bảng thông số robot (Trang 46)
Bảng  4.  Bảng  các  thành  phần  khác  của  robot - Đồ án tốt nghiệp (chuyên ngành) robot tự Động gọi món và phục vụ trong quán cà phê
ng 4. Bảng các thành phần khác của robot (Trang 48)
Hình  4.  17  Robot  di  chuyển  bằng  tay  trong  môi  trường  thực  tế. - Đồ án tốt nghiệp (chuyên ngành) robot tự Động gọi món và phục vụ trong quán cà phê
nh 4. 17 Robot di chuyển bằng tay trong môi trường thực tế (Trang 55)
Hình  4.  19  Lưu  đồ  giải  quyết  bài  toán  điều  hướng  robot - Đồ án tốt nghiệp (chuyên ngành) robot tự Động gọi món và phục vụ trong quán cà phê
nh 4. 19 Lưu đồ giải quyết bài toán điều hướng robot (Trang 56)
Hình  4.  21  Vị  trí  ban  đâu  và  vị  trí  robot  đến. - Đồ án tốt nghiệp (chuyên ngành) robot tự Động gọi món và phục vụ trong quán cà phê
nh 4. 21 Vị trí ban đâu và vị trí robot đến (Trang 58)
Hình  4.  25  Một  số  thuộc  tinh  của  bảng  thiết  kế  giao  diện. - Đồ án tốt nghiệp (chuyên ngành) robot tự Động gọi món và phục vụ trong quán cà phê
nh 4. 25 Một số thuộc tinh của bảng thiết kế giao diện (Trang 62)
Hình  5.  1  Kết  quả  tín  hiệu  laser  Rplidar  A1  thu  được - Đồ án tốt nghiệp (chuyên ngành) robot tự Động gọi món và phục vụ trong quán cà phê
nh 5. 1 Kết quả tín hiệu laser Rplidar A1 thu được (Trang 68)
Hình  5.  2Không  gian  thực  tế  để  dựng  bản  đồ - Đồ án tốt nghiệp (chuyên ngành) robot tự Động gọi món và phục vụ trong quán cà phê
nh 5. 2Không gian thực tế để dựng bản đồ (Trang 69)
Hình  5.  5  Robot  được  định  vị - Đồ án tốt nghiệp (chuyên ngành) robot tự Động gọi món và phục vụ trong quán cà phê
nh 5. 5 Robot được định vị (Trang 70)