TÓM TẮT KHÓA LUẬNĐề tài “Nghiên cứu và xây dựng mô hình robot phục vụ quán cà phê” xây dựng một hệ thống bao gom một robot và một website được kết nối với nhau dé thực hiện côngviệc của
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TÍNH
PHAM QUOC DANG - 19520036
VIÊN MINH TÂN - 19520928
KHÓA LUẬN TÓT NGHIỆP
NGHIÊN CỨU VÀ XÂY DỰNG
MÔ HÌNH ROBOT PHỤC VỤ QUÁN CÀ PHÊ
RESEARCH AND IMPLEMENT
SERVING ROBOT FOR COFFEE SHOP
KỸ SƯ KỸ THUẬT MAY TÍNH
GIẢNG VIÊN HƯỚNG DAN ThS NGUYEN THANH THIỆN
TP HÒ CHÍ MINH, 2023
Trang 2LỜI CẢM ƠN
Để hoàn thành khóa luận tốt nghiệp này, chúng em xin chân thành cảm ơn các thầy cô trường Đại học Công nghệ Thông tin, Đại học Quốc gia Thành phố
Hồ Chí Minh nói chung và các thầy cô khoa Kỹ thuật máy tính nói riêng đã cho
chúng em kiến thức và kinh nghiệm quý báu trong 4 năm qua.
Xin gửi lời cảm ơn chân thành nhất đến Thạc sĩ Nguyễn Thanh Thiện đã
dành thời gian và kinh nghiệm quý báu của mình đã tận tình hướng dẫn chúng em
hoàn thành khóa luận tốt nghiệp này Xin chân thành cảm ơn sự giúp đỡ của bạn
bè đã giúp chúng tôi tìm kiếm và thu thập thông tin trong quá trình thực hiện khoá
luận Một lần nữa xin cảm ơn mọi người đã dành thời gian và công sức đề hỗ trợ chúng tôi hoàn thành khóa luận tốt nghiệp Kính mong quý thầy cô và các bạn
thông cảm, bỏ qua các sai sót trong quá trình thực hiện khoá luận.
Sinh viên thực hiện
Phạm Quốc Đăng
Viên Minh Tân
Khoa Kỹ thuật máy tính - KTMT2019
Trang 3MỤC LỤC Chương 1 TONG QUAN ĐÈ TÀI 2 22222¿222222 2222212222111 2221 1
1.1 Lý do thực hiện khóa luận - - + ++++t+E+EvEkEekeksEtrrkekrkererkrkekerrke 1 1.2 Muc ti€u kha 1uann oo eee ececccceseseeseeecseeseseeseeeseeessessesesseeeseeseeaesaseesaeeeeaeees 1
1.3 Phương pháp thực hiỆn - + St vn ri 2
Chương 2 CƠ SỞ LÝ THUYÉT
2.1 Tổng quan về ROS 22222222++22222221112122222211111 212111 cerrrri, 3
2.1.1 ROSlà gì?
2.1.2 Đặc điểm của ROS -2cccccccctEcrrtrrrrrrrrrrrrrrrrrrrrrrii 4
2.1.3 Các khái niệm trong ROS
2.2 ROS Navigation StACK cành HH He 6
2.2.1 _ Tổng quan về Navigation Stack
2.2.2 CostmffD 2l SE , qạ , c cec ec 8
2.2.3 Ước lượng vị trí của robot dùng Adaptive Monte Carlo Localization
(AMCL)
2.2.4 Bo lap ké hoach va diéu hướng (MOve_base) oo eects 1
2.2.5 _ Thuật toán Dijkstra cho global planner: - eects 3
2.2.6 Thuật toán Dynamic Window Approach dé tránh vật cản cho local
pỈanner cá Sà tt HH HH 4
2.3 Công nghệ Light Detection and Ranging (LIDAR) -. - 5
2.4 Phương pháp Simultaneous Localization and Mapping (SLAM) 7
2.5 Phần cứng -cccc 222222 2 2222212111110 ri §
2.5.1 Máy tính nhúng Nvidia Jetson Nano ¿+ s«c+csxsxexrrer 8 2.5.2 RPLIDAR AIMB 2 eccececceeeesteseesesneseesessesesesseseseessensseesssnesseesessees 8
Trang 42.5.3 Arduino Mega - «che 20 2.5.4 Động cơ JGB37 encoder
2.5.5 IMU MPU6050 SẶ c2 the 2
Chương 3 PHAN TÍCH VÀ THIET KE HE THONG
3.1 Tổng quan hệ thong sssccessscscsssssseseccesssseesececssssuneesscecesssneeseecessnnneeeeeee 23
3.2 Phân tích và thiết kế phần cứng robot.
3.2.1 Cơ sở di chuyển của rObot -222¿+22++zteEEEEerrerrxerrrrrrseee 24 3.2.2 Thiết kế khung cơ khí
3.2.3 Kết nối phần cứng mô hình -¿-+z22++z++22vvvz+zzvscee 29 3.3 Phân tích và thiết kế website quản lý - ¿-cc+2cvsvcsccvscrsrr 31 3.3.1 Phân tích và thiết kế giao diện -cccccessrrrrrreeerrrrrrer 31
3.3.2 Cơ sở đữ liệu it 32
3.3.3 Thiết kế giao digm cccccccscsssssesssssesssssssessssssesesssseeessssseesssssuessessseeseessees 33 3.3.4 Kết nối robot với website quản lý -. c -ccc-ssec 3Õ 3.4 Lập trình bộ điều khiển và tính toán Odometry 32
3.4.1 Thiết lập giao tiếp giữa các thiết bị nhúng .-: + 39 3.4.2 Lập trình bộ điều kién của robot trên Arduino Mega - 40
3.4.3 Tính toán Odometry cập nhật vị trí của robot -‹ + 4I
3.5 Thiết lập Navigation Stack trên bản d6 đã có cc:©cccsccecc2 44
3.5.1 Cấu hình move_base trong Navigation Staek - 44 3.5.2 Cấu hình gói phần mềm amcl cho ước lượng vi trí trong ROS 48
3.5.3 Tổng hợp các gói phần mềm đã dùng khi thực hiện Navigation Stack
Trang 54.1 Cài đặt môi trường -. tt Hư 54
4.1.1 Thiết lập môi trường multiple machine với ROS.
4.1.2 Thiết lập tự khởi động hệ thống Navigation Stack khi robot được cấp nguồn -22222c22222222222EEEEEEErrtErktrrrrrrtrrrrrrrrvee 54 4.2 Đánh giá bản đồ 2D.
4.3 Đánh giá quá trình Navigation Stack của rObOt «+ c+c+c++ecxcxe 58 4.3.1 Thực nghiệm trên môi trường không có vật cản
4.3.2 Thực nghiệm trên môi trường có vật cản - ¿+ + <+x+x++ 6l
4.4 Thực nghiệm đặt món va điều khiển robot thông qua website.
4.4.1 Đặt món và nhận thông báo trên giao diện điều khiền 63 4.4.2 Thực nghiệm trên giao diện điều khién
4.4.3 Thực nghiệm điều khiển robot - 2c se s2 x+Ee2EetExerrxerree 66
Chương 5 KET LUẬN VÀ HƯỚNG PHAT TRIEN - s2 69
5.I Kết luận cc2222222222122E22221122221112.121112.111 E11 69 5.2 Hướng phát triỀn 2c22+c+22222E E2 70
Trang 6DANH MỤC HÌNH
Hình 2.1: Tính ứng dụng của ROS ¿5-5-5 +22 S+ St xen 3
Hình 2.2: Khả năng kết nối trong hệ sinh thái của ROS .-¿-©cc5ccc+¿ 4 Hình 2.3: Sơ đồ hoạt động của topic và node trong ROS - : -c-+ 6 Hình 2.4: Sơ đồ hoạt động của một service trong ROS .c:+cccsccce¿ 6 Hình 2.5: Thanh phan cơ bản của Navigation Stack trong ROS [3] - 7 Hình 2.6: Bản đồ chi phí trong ROS -¿¿©2222++2222++22EESErettrvvrrerrrrrcree §
Hình 2.7: Miêu tả ảnh hưởng của giá trị chỉ phí đến hoạt động cua robot [4] 9
Hình 2.8: Mô phỏng quá trình AMCL ước lượng vị trí của robot - 1
Hình 2.9: Các thành phan chính trong gói phần mềm move_base - 1
Hình 2.10: Trạng thái R€COV€TY - ¿+ - + + SE 112 1212121 1311112101 1 11101 tê 2
Hình 2.11: Sơ đồ nút và trọng số trong đồ thị mẫu cho thuật toán Dijkstra [6] 3
Hình 2.12: Mô phỏng hoạch định đường di dùng thuật toán Dijkstra trong ROS 14 Hình 2.13: Minh họa ý tưởng của thuật toán DWA eee +©+5++c+c+ccrcrzvecer 5
Hình 2.14: Hình anh minh họa công nghệ LIDAR -. ¿ - - 55+5+5++<+> 6
Hình 2.15: Ban đồ 2D được xây dựng bằng phương pháp Hector_SLAM 7
Hình 2.16: Nvidia Jetson Nano - cv HH HH it 8
Hình 2.17: Thông số kỹ thuật của RPLIDAR AIMB : -c:55sc+2 9
Hình 2.18: RPLidar A IM8 - ¿t2 2122 1221210 12121212101 re 9
Hình 2.19: Arduino Mega 2560 - 22:22 121212 2212121112111 E1 cư 20
Hình 2.20: Động cơ JGB37 có encoder ¿- - ¿5+5 S+tk‡x‡EvEkrkekerekrkrkrkeree 21
Hình 2.21: IMU 6050 - ¿5 S21 1212192232121 2121212101 111.121 H11 rrưên 2
Hình 3.1: Sơ đồ khối hệ thống robot phục vụ quán cà phê -. -¿ 23 Hình 3.2: Mô hình tổng quát robot bánh xe vi sai c-cc:c+22cccvvecccee 24
Hình 3.3: Mô hình động học của robot bánh xe Vi sai [9] -¿- 5-5 +c+s++ 25
Hình 3.4: Kích thước mặt đáy của TOOI + +5 S St #vEvxeErketsrrrrrrrrreree 27
Hình 3.5: Kích thước của robot (mặt chiếu NANG) nước 27
Hình 3.6: Mô hình 3D của rObOI - - - ¿5:6 1k E1 1 12101 11110101 re 28
Hình 3.7: Kết quả khung cơ khí của robot sau khi lắp ráp.
Trang 7Hình 3.8: Sơ đồ khối miêu tả kết nối phần cứng của robot - . - 29
Hình 3.9: Sơ đồ kết nối của bộ điều khiển động cơ -2- 2: 5©5z+s+cx+zxzsz 30 Hình 3.10: Chi tiết kết nối thành phan phần cứng của robot - -: s- 30 Hình 3.11: Mô hình hoàn thiện của rObOt - +22 eeee 31 Hình 3.12: So đồ tong quan của hệ thống website quản lý . - 555552 31 Hình 3.13: Thiết kế tổng quan của giao diện điều khiến 2- 5552552 34 Hình 3.14: Thiết kế của giao điện đặt món 2-2 2¿++++++x++rxezrxrrxeeree 35 Hình 3.15: Thiết kế của giao diện quản lý đơn hàng -2- ¿55255552 35 Hình 3.16: Quy trình thực hiện một đơn hang - 5c Sc* + s+strssexeerseerrrs 36 Hình 3.17: Vị trí của rosbridge trong việc kết nối giữa các lớp App và robot [11] 37
Hình 3.18: Lưu đồ hoạt động trên Arduino Mega 2-2 2 se x+cx+z+zszse2 41 Hinh 3.19: M6 hinh chuyén động của robot [ Í4] -«+++ss+++sex++eex+eee+zeess 42 Hình 3.20: Mô hình cập nhật vi trí và góc của rObO( «s++sss+++sex+sesessss 43 Hình 3.21: Sơ đồ kết nối của các Node va Topic khi thực hiện Navigation Stack 52
Hình 3.22: Cấu trúc frame khi thực hiện Navigation Stack -z-sz=s+ 52 Hình 4.1: Trạng thái service tự khởi động hệ thống Navigaiton -. 56
Hình 4.2: Kết quả dir liệu thu được từ laser SCan - +55 + ++sssesserseereeres 56 Hình 4.3: Ban đồ 2D tạo từ không gian thực nghiệm -¿- 2 2 5 s2 s+£+2 5+2 57 Hình 4.4: Kết quả bản đồ khi lưu ở dang tệp pgm 2-2 5©5z2s+cx+zxzsz 57 Hình 4.5: Thông tin vi trí của robot trong hệ tọa độ của bản đỒ ccecccrerrrees 58 Hình 4.6: Công thức chuyên đổi Quaternion sang góc Euler - 59
Hình 4.7: Lộ trình của robot trong trường hop di chuyền thăng - 59
Hình 4.8: Lộ trình của robot trong trường hợp di chuyển có góc rẽ -. 60
Hình 4.9: Lộ trình của robot trong trường hợp có vật cản xuất hiện - 61
Hình 4.10: Thực hiện đặt món trên giao điện đặt món - 5+5 + £+<++++ 63 Hình 4.11: Thông báo khi người dùng đặt món thành công - - «- 63
Hình 4.12: Tổng quan giao diện điều khiễn 2-2-2 52+ £2£E+£E+zE+zEzrxerxezez 64 Hình 4.13: Thông báo khi nhấn vào nút “Table Ï” 2-2 2+2 s+x+zx+zzzszse2 65 Hình 4.14: Giao diện điều khiển hiển thị có đơn mới từ Table 1 -. -: 65
Trang 8Hình 4.15: Giao diện hiển thị danh sách các đơn i0 66Hình 4.16: Vị trí của robot trên bản đồ -¿- + ++2x+2£x++txxrzrxeerxrerrrrrres 66
Hình 4.17: VỊ trí của robot trên ÏÑVIZ - - Ă 2 c1 1312211111 21111 9111118511 11511 tre 67
Hình 4.18: Mô phỏng lộ trình di chuyển của robot trên Rviz -: 5 67
Hình 4.19: Thông báo khi robot di chuyên đến mục tiêu -:-5:5+ 68
Trang 9DANH MỤC BANG
Bảng 3.1: Mô tả chi tiết của các tập hợp trong cơ sở dit liệu của hệ thống 33
Bang 3.2: Các lớp trong thư viện Roslibjs được sử dụng dé kết nối với robot 37
Bảng 3.3: Các phương thức được sử dụng dé kết nối với robot - - 38
Bảng 3.4: Các gói phần mềm hỗ trợ giao tiếp giữa các phần cứng 39
Bảng 3.5: Tệp costmap_common_params yam -‹- + £++£+se+se+sessessxs 44 Bảng 3.6: Tép local_costmap_params.yamll ‹-s s + + s*+++seexeeeeeeeeseeers 46 Bảng 3.7: Tép global_costmap_ pararms.8TmÌ - - «+ + + + +seeseeeeeeeeereers 47 Bảng 3.8: Tép base_local_planner_params yam .- s+-s + xsessessersee 48 Bảng 3.9: Tép cấu hình khởi chạy amcl.launch -¿- ¿+2 sz2zx2z++zs+szsz 49 Bang 3.10: Chi tiết các gói phần mềm đã dùng trong Navigation Stack 50
Bảng 3.11: Chi tiết các chủ đề publish và subscribe của các gói phan mềm 51
Bảng 4.1: Thiết lập môi trường giao tiếp ROS trên máy tính cá nhân 54
Bang 4.2: Thiết lập môi trường giao tiếp ROS trên Jetson Nano -. 54
Bảng 4.3: Tép shell script chứa các lệnh khởi động Navigation - 55
Bang 4.4: Tệp service thực thi shell script khởi động Navigation .- 55
Bảng 4.5: Kết qua thực nghiệm trên môi trường không có Vat cản - 60
Bảng 4.6: Kết quả thực nghiệm trên môi trường có vật cản -:-s: 62
Trang 10DANH MỤC TỪ VIET TAT
AMCL Adaptive Monte Carlo Localization
API Application Programming Interface
DWA Dynamic Window Approach
IMU Inertial Measurement Units
LiDAR Light Detection and Ranging
PID Proportional Integral Derivative
ROS Robot Operating System
SLAM Simultaneous Localization and Mapping
TF Transform
Trang 11TÓM TẮT KHÓA LUẬN
Đề tài “Nghiên cứu và xây dựng mô hình robot phục vụ quán cà phê” xây dựng một
hệ thống bao gom một robot và một website được kết nối với nhau dé thực hiện côngviệc của một nhân viên phục vụ truyền thống trong các quán cà phê ở thời điểm hiệntại Robot sẽ đảm nhận việc mang thức ăn, nước uống đến vị trí bàn của thực khách
theo sự kiểm soát và điều khiển từ website Website sẽ có một số chức năng dé phục
vụ việc quản lý như nhận thông báo, thống kê hoá đơn, kiểm soát, theo dõi và có thểđiều khiển robot một cách thủ công
Robot sẽ được xây dựng dựa trên máy tính nhúng Nvidia Jetson Nano Development
Kít và RPLIDAR Jetson Nano sẽ đóng vai trò là bộ não của robot, bên cạnh đó
RPLIDAR sẽ hỗ trợ việc lập bản đồ, xác định vị trí của robot, cung cấp các thông tinđầu vào dé xây dựng các giải thuật hoạch định đường di cho robot Một encoder được
sử dụng để tính toán vận tốc của động cơ, số vòng quay của bánh xe từ đó cho biếtđược trang thái di chuyền hiện tại của robot, cung cấp các số liệu cho các giải thuật
tự hành, giúp robot di chuyên đến vị trí chỉ định một cách an toàn và chính xác
Đề kết hợp và đảm bảo các thành phan của hệ thống hoạt động một cách chính xác,hoàn thiện và đồng bộ cần có một hệ điều hành đảm bảo được tính linh hoạt, dễ dàngcấu hình, xây dựng chương trình điều khiển cho robot ROS là một lựa chọn phù hợp,đáp ứng được các yêu cau nêu trên Website của hệ thống được xây dựng dựa trên
Node.js, ReactJS và MongoDB.
Trang 12Chương 1 TONG QUAN DE TÀI
1.1 Ly do thực hiện khóa luận
Ý tưởng về một robot phục vụ trong các nhà hàng, quán ăn đã không còn xa lạ trong
thời đại phát triển mạnh mẽ của khoa học công nghệ Thực tế các công ty công nghệ
đã bước chân vào nghiên cứu, phát triển và tung ra thị trường một số dòng sản pham.Các dòng sản phầm như: Dinerbot T8, T5, T1 của KEENON Robotics Co, Ltd; CIOT
Restaurant robots cua Shenzhen Intelligent Guardforce Robot Technology Co, Ltd;
Dexter Intelligent Transporting Robots của Service Robots, đã dược đưa vào sử
dụng tại một số quốc gia như Anh, Canada, Trung Quốc va Việt Nam Tại khoa Kỹthuật máy tinh cũng đã có một số đề tài nghiên cứu liên quan như: dé tài “Xay dựng
rohot tự hành quét ban đồ trong nhà và tránh vat cản” của nhóm sinh viên Lê Chí Bảo
— Phan Anh Kiệt (2021), đề tài “Robot tránh vật cản sử dụng công nghệ Lidar” củanhóm sinh viên Võ Anh Tuấn — Tran Hoàng Phương (2021), Tuy nhiên vẫn chưa
có đề tài nghiên cứu trực tiếp xây dựng một robot đáp ứng các yêu cầu cho một môi
trường cụ thé như môi trường trong các quán cà phê Các sản pham hiện tại có trên
thị trường dù đã được đưa vào sử dụng nhưng mức độ phô biến không cao, hay phát
sinh lỗi và không phù hợp với môi trường thực tế ở nước ta, do đó nhóm chọn thựchiện đề tài “Nghiên cứu và xây dựng mô hình robot phục vụ quán cà phê” để ứngdụng cụ thé các lợi ích mà Lidar mang lại, tận dụng các giải thuật tự hành đã được
xây dựng và sử dụng rộng rãi để xây dựng robot hoạt động trong môi trường phức
tạp như các quán cà phê hiện tại.
1.2 Mục tiêu khóa luận
Khoá luận được thực hiện với mục tiêu được xác định như sau:
- Xây dựng mô hình robot có kết cấu phù hợp, robot sẽ thực hiện việc vận
chuyên thức ăn, nước uống đến vị trí chỉ định dựa trên bản đồ đã được nạpsẵn, có khả năng tránh các vật cản (trong tầm hoạt động của Lidar) trên đường
di chuyền
Trang 13- Website cung cấp giao diện cho người quản ly dé theo dõi, điều khiển robot
theo thời gian thực; cung cấp các tác vụ như: nhận, thông báo đơn hàng, quản
lý các hoá đơn, quản lý việc thực hiện và theo dõi robot,
1.3 Phương pháp thực hiện
Bộ khung của robot sẽ được xây dựng băng phương pháp in 3D và mica, bao gồmphan dé dé chứa động co, IMU, MCU, encoder; phan thân trên sẽ được thiết kế dé cóthể đặt được một lượng nhỏ thức ăn, nước uống và chứa Lidar
Sử dung ROS dé làm hệ điều hành cho Robot, Lidar để quét bản đổ, các vật cản xungquanh, cung cấp thông tin đầu vào cho các thuật toán SLAM để thực hiện vẽ lại bản
đồ, lưu trữ ban đồ; nghiên cứu ứng dụng thuật toán AMCL và hoạch định đường đi
cho robot.
Tìm hiểu về giao thức rosbridge dé thực hiện kết nói giữa robot và website Rosbridgecung cấp các API cho phép giao tiếp giữa các chương trình không thuộc ROS và máychủ ROS Rosbridge_suite là một gói được cung cấp bởi ROS chứa rosbridge, các
API và các gói hỗ trợ khác.
Xây dựng một website với các chức năng cơ bản đã được nêu ở phan 1.2 với ReactJS
và Node.js Node.js là một mã nguồn mở được xây dựng dựa trên nền tang JavaScriptV8 Engine, có thê chạy được trên nhiều nền tảng khác nhau, cung cấp các thư viện ở
dang JavaScript mô đun giúp đơn giản hoá công việc lập trình Các thư viện được
cung cấp bởi cộng đồng phát triển ROS cũng được viết dựa trên JavaScript nên việc
lựa chọn Node.js cho phần website là lựa chọn phù hợp
Trang 14Chương 2 CƠ SỞ LÝ THUYET
2.1 Tổng quan về ROS
2.1.1 ROS là gì?
ROS (Robot Operating System) là hệ điều hành mã nguồn mở cung cấp các thư viện
và công cụ dé giúp các nhà phát triển ứng dụng cho robot ROS cung cap các phầncứng ảo, trình điều khiên thiết bị, thư viện, hiển thị trực quan việc gửi, nhận, quan lý
các gói và nhiều hơn nữa ROS được cấp phép theo giay phép mã nguồn mở BSD [1]
Hình 2.1: Tinh ứng dụng cua ROS
ROS cung cấp các chức năng cần thiết dé phát triền phan mềm ứng dụng dành cho
robot Một số ứng dụng của ROS được mô tả ở hình 2.1 như điều khiển robot, môphỏng robot, điều hướng, ROS có một cộng đồng hỗ trợ lớn và một hệ sinh tháivới nhiều tài liệu, thư viện hỗ trợ Hệ thống được xây dựng trên ROS có thể chạy trên
những máy chủ khác nhau, được kết nối thông qua kiến trúc mạng ngang hàng (peer
to peer), kiến trúc này yêu cầu các cơ chế dé các tiến trình trên mỗi máy chủ tim thay
nhau, chúng được gọi là các dịch vụ (service) hoặc máy chủ (master) ROS hỗ trợ việc kết nối nhiều thiết bị chạy ROS khác nhau thành một mạng thông qua các giao
Trang 15thức và công cụ được cung cấp sẵn (hình 2.2) ROS cũng cung cấp nhiều công cụ,thư viện khác nhau để xây dựng chương trình cho nhiều loại máy tính nhúng khácnhau, ROS hỗ trợ nhiều ngôn ngữ lập trình như C++, Python,
Workstation ROS Network
một nền tảng cung cấp các công cụ dé tạo ra ứng dụng dành cho robot bằng cách tận
dụng những công cụ sẵn có, tạo ra những thứ mới và không cần phải tốn thời gian dé
làm lại những thứ đã có sẵn [2].
Nhiều hệ thống robot hiện nay chạy trên nhiều máy tính khác nhau, yêu cầu kết nối
giữa các tiến trình trên mỗi máy tính, ROS cung cấp các phương thức và công cụ dé
Trang 16giải quyết van dé này ROS cho phép việc sử dụng lại các mã nguồn đã có san và các
công cụ kiểm thử, mô phỏng trong quá trình phát triển robot
Một số điểm hạn chế của ROS có thể kế đến như: ROS không phù hợp với những hệthống yêu cầu phải hoàn thành tác vụ một cách chính xác theo những thời gian quyđịnh, nếu quá các khoảng thời gian này sẽ gây ra lỗi nghiêm trọng, ROS cũng yêu
cầu một cấu hình máy tính đủ mạnh dé đạt được hiệu suất tốt nhất và việc quản lý các
gói (package) trong ROS cũng đang gặp phải các vấn đề cần được giải quyết
2.1.3 Các khái niệm trong ROS
- Packages: tất ca các phần mềm trong ROS được tổ chức thành các gói Một
ROS Package là một tập hợp có tổ chức của các tệp, cơ bản bao gồm các tệp
thực thi và các tệp hỗ trợ cho nó dé thực hiện một mục tiêu cụ thé Một ví dụcho ROS Package là: package turtlesim sẽ bao gồm turtlesim node và
turtlesim_teleop_ key.
- ROS master cung cấp dịch vụ đặt tên và đăng ký cho các node khác trong hệ
thống ROS Nó theo dõi các publisher và subscriber cho các topics va services.Vai trò của Master là cho phép các node ROS cá nhân tìm thấy nhau Sau khicác node này đã tìm thấy nhau, chúng giao tiếp với nhau theo mô hình ngang
hang (peer-to-peer).
- Node: một node không khác biệt nhiều so với một tệp thực thi trong ROS
package ROS node sử dụng thư viện ROS client dé kết nối với các node khác.Mỗi node có thê gửi hoặc nhận gói tin từ một hoặc nhiều topic Node cũng cóthé cung cấp hoặc sử dụng các ROS services
- Topics và messages: cơ chế chính được các ROS node sử dụng dé kết nối với
nhau là việc gửi các messages Các message trong ROS được sắp xếp và tôchức được gọi là topics Một node muốn chia sẻ thông tin sẽ gửi một messagetới một topic mà nó quan tâm, một node khi muốn nhận thông tin cũng sẽ gửi
message tới topic mà nó quan tâm (hình 2.3) ROS master sẽ quản lý va dam bảo răng các node muôn gửi và nhận có thê tìm thay và kết nôi được với nhau.
Trang 17- ROS Service: là một phương thức khác đê truyén dữ liệu giữa các Node
Service cho phép một node gọi một hàm và thực thi nó trên một node khác.
Máy chủ sẽ cung cap các service và các máy khách sẽ gọi đên các service va truy cập vào các service đó Cách thức hoạt động của một service được mô tả
7 Public to topic name `"
topic name NON
SN
Request for topic message
ee AB ————————————— | Subscriber
Node Ros messag message Ros topic Ros message Node
Hình 2.3: Sơ đô hoạt động của topic va node trong ROS
ROS Node
| response
request
ROS Node
Hình 2.4: Sơ đồ hoạt động của một service trong ROS
2.2 ROS Navigation Stack
2.2.1 Tổng quan về Navigation Stack
Navigation Stack là một phan mém hoat động trên các hệ thống robot tự hành đề điềuhướng và điều khiển chuyển động trong môi trường 2D Nó là một phan quan trọng
Trang 18của hệ thống điều khiên robot và thường được sử dụng trong các ứng dụng như robot
di động, xe tự hành và robot dịch vụ.
Navigation Stack là một tập hợp các thuật toán và công cụ dé xác định vi trí hiện tạicủa robot, tạo bản đồ môi trường xung quanh, tính toán đường đi an toàn và hiệu quả
từ vị trí hiện tại đến vị trí đích được chỉ định Nó sử dụng thông tin từ các cảm biến
như cảm biến VỊ trí, cảm biến laser, cảm biến tiếp xúc và/hoặc máy ảnh dé thu thập
dữ liệu về môi trường
Với Navigation Stack, robot có thé tự động di chuyền trong môi trường, tránh vật cản
và đáp ứng các yêu cầu điều hướng từ người điều khiển hoặc từ các nhiệm vụ đượcgiao Nó có thể được triển khai trên các nền tảng phần cứng khác nhau, bao gồm cả
robot có bánh xe, robot có chân, drone,
be meguitaasetamped Navigation Stack Setup
y y nav_msgs/GetMap eee
amel ¬ global_planner = global_costmap
1]
sensor transforms +" _,| interna ‘ | a sensor sources
| tí/tfMessage fav_msgs/Path recovery behaviors neo Tag foiIACioud |
platform specific node
Hình 2.5: Thanh phan cơ ban của Navigation Stack trong ROS [3]
Hình 2.5 cho thay được cái nhìn tổng quan về các thành phan chính trong NavigationStack như: bộ phận xác định vi trí (Localization - amcl), bộ phận bản đồ (Mapping —map_server) và bộ phận lập kế hoạch và điều hướng (Planning and Navigation —move_base) Đồng thời, nó cũng liên kết với các phần mềm điều khién robot khác dé
thực hiện các thao tác di chuyên (base_controller) và các cảm biên (sensor source).
Trang 192.2.2 Costmap 2D
Bản đồ chi phí là một khái niệm quan trong trong Navigation Stack, được sử dung déđại diện cho một bản đồ của môi trường xung quanh robot Nó ghi lại thông tin vềcác vùng an toàn và các rào cản trong môi trường, giúp robot điều hướng di chuyển
Trang 20Costmap 2D được cập nhật liên tục dựa trên dữ liệu từ cảm biến như cảm biến laserhoặc máy ảnh, dé phản ánh sự thay đổi về môi trường xung quanh robot Khi robot
di chuyền, costmap 2D cũng được cập nhật dé đảm bảo rang các thông tin về rào cản
và vùng an toàn là chính xác và được phản ánh đúng trong quá trình điều hướng
cell cost
lint]
“lethal" or "W-space" obstacle
2.9 cost_lethal=254 range of costs meaning
definitely in collision
"inscribed" or *C-space" obstacle
e.g, cost_inscribed=253 range of costs meaning
possibly in collision
“circumscribed” obstacle (depends on orientation)
2.9 cost_possibly_circumscribed=128
range of costs meaning
definitely not in collision
also the range where (most) user
lowest non-freespace preferences should be expressed
cost=1
freespace
cost=0
circumscribed inflation ‡ distance from
radius radius ¡ closest W-space
; obstacle cell
[double]
buffer zone created by costmap_2d around
obstacles, in order to make the robot prefer
paths that keep some minimum clearance (this is a sort of default user preference)
exact (non-pixelized) footprint
Hình 2.7: Miêu tả anh hưởng cua giá trị chi phi đến hoạt động của robot [4]
Hình 2.7 cho thấy được giá trị chi phí ảnh hưởng đến hoạt động của robot như thế
nào:
- Cost_lethal là giá tri của một cell chứa vật cản Nếu trọng tâm của robot đi vào
vùng này thì chắc chăn robot sẽ bị va chạm
- Cost_inscribed là giá trị của một cell từ vật cản đến bán kính nội tiếp của robot
Nếu tâm của robot nằm trong vùng này thì robot chắc chắn sẽ bị va chạm vào
vật cản.
- Cost_possibly_circumscribed là giá tri của chi phí tương tự như cost_inscribed
nhưng đó là giá tri từ vật cản đên bán kính ngoại tiép của robot Nêu tâm của
Trang 21robot đi vào vùng nay thì khả năng robot va chạm vật cản phụ thuộc vào hướng
đi của robot.
- Cost_freespace có giá trị bằng 0, thé hiện rằng không có vật cản nơi này; robot
có thé di chuyển tự do trong vùng nay
- Cost_unknow là những cell chưa có thông tin về giá trị của chi phí
2.2.3 Ước lượng vị tri của robot ding Adaptive Monte Carlo Localization
(AMCL)
AMCL là một thuật toán phô biến trong lĩnh vực trí tuệ nhân tạo và robot học để ướclượng vị trí của robot trong môi trường không gian 2D AMCL kết hợp phương phápMonte Carlo Localization (MCL) và một cơ chế thích ứng để tăng hiệu suất
AMCL sử dụng một bộ các hat (particles) dé đại diện cho các ước lượng vi trí khácnhau của robot trong môi trường Ban đầu, các hạt được phân bố ngẫu nhiên trong
không gian và có khả năng bao phủ toàn bộ khu vực ước lượng Mỗi hạt có một trạng
thái, bao gồm tọa độ và hướng của robot [5]
Quá trình AMCL bao gồm các bước sau:
- Khởi tạo: Ban đầu, các hạt được phân bố ngẫu nhiên trong không gian ước
lượng.
- Du đoán: Dựa trên các lệnh điều khiển của robot, các hạt được di chuyền và
cập nhật tọa độ và hướng tương ứng.
- Cap nhật: Dựa trên thông tin từ các cảm biến (ví dụ: lidar, camera), các hạt
được cập nhật với xác suất thích ứng dựa trên sự phù hợp giữa dữ liệu cảmbiến và bản đồ môi trường đã biết trước Các hạt có xác suất thấp sẽ bị loại bỏ
và các hạt có xác suất cao sẽ được nhân bản dé duy trì sỐ lượng hạt ồn định
- Thich ứng: AMCL sử dụng kỹ thuật thích ứng dé điều chỉnh số lượng hạt dựa
trên hiệu suất ước lượng Nếu ước lượng không chính xác, số lượng hạt sẽđược tăng lên dé tăng độ chính xác Ngược lại, nếu ước lượng chính xác, số
lượng hạt sẽ được giảm xuống dé giảm chi phí tính toán
10
Trang 22Vị trí thực tế của robot
Loại bỏ các hạt có xác suất thấp
`.
Hình 2.8: Mô phỏng quá trình AMCL ước lượng vị trí của robot
Qua mỗi vòng lặp của quá trình trên, vị trí ước lượng của robot sẽ được cải thiện dần
dựa trên dữ liệu cảm biên và các lệnh điêu khiên Khi sô lượng hạt đủ lớn và được cập nhật một cách hiệu qua, AMCL có thê đưa ra ước lượng vi trí chính xác của
robot trong môi trường như hình 2.8.
2.2.4 Bộ lập kế hoạch và điều hướng (move_base)
Trong Navigation Stack, move_base là một gói phần mềm phổ biến nó cung cấp một
bộ công cụ điều hướng cho các robot di động tự hành Move_base thường được sửdụng dé lập kế hoạch đường đi và tránh vật cản
Trang 23Gói move_base tích hợp nhiều thành phần khác nhau để cho phép robot điều hướng
từ một vị trí đến một mục tiêu trong môi trường đã xác định (hình 2.9) Các thànhphần này bao gồm:
- Global Planner: Tạo ra một lộ trình toàn cầu, thường sử dụng một thuật toán
lập kế hoạch đường đi như A* hoặc Dijkstra, dé xác định một đường đi không
va chạm từ vị trí hiện tại của robot đến vị trí đích mong muốn
- Local Planner: Xử lý tránh vat cản cục bộ va điều chỉnh vận tốc và quỹ đạo
của robot dựa trên di liệu cảm biến nhận được từ môi trường xung quanh.Local planner đảm bảo robot có thê di chuyên an toàn trong phạm vi gần
- Costmap: Duy trì một biểu diễn của môi trường, chỉ ra các khu vực bị chiếm
dụng hoặc tự do Costmap được sử dụng bởi cả global và local planner dé tao
ra cac duong di khong va cham.
Việc va chạm đột ngột khi robot đang di chuyển (người chạy, vat thé roi, ) là
nguyên nhân chính gây ra việc tính toán odom sai Khi laser_ scan bi lệch so với global
map khi đã đến điểm navigation, robot sẽ tiến hành vào mode recovery Trong moderecovery (hình 2.10), robot tiền hành xoay vòng đến khi laser scan có thé trùng với
global map nhiều nhất
“Conservative <3 ) l4 (ages Clearing
Reset Rotation Reset Rotation
\ Res et / \ Rotation J I Rt ion J
12
Trang 242.2.5 Thuật toán Dijkstra cho global planner:
Thuật toán Dijkstra được sử dụng mặc định cho global planner trong move_base là
một trong những thuật toán đơn giản giúp robot tạo ra lộ trình di chuyền tối ưu nhất
từ vi trí bat dau đên vi trí mong muôn.
Vi dụ cho thuật toán Dijkstra với đồ thị như hình 2.11:
(ø°
14
Hình 2.11: Sơ do nút và trọng số trong đồ thị mẫu cho thuật toán Dijkstra [6]
Trong vi du hình 2.11, chúng ta cần tim đường đi ngắn nhất từ điểm a đến điểm b Dé
có được đường đi ngắn nhất từ a đến b bằng cách áp dụng thuật toán Dijkstra ta cần
thực hiện các bước sau:
- Bước 1: Gán mỗi nút với một giá trị khởi tạo băng 0 đối với nút bắt đầu và vô
cùng cho tất cả các nút còn lại
- Bước 2: Tạo một tập hợp Q dé đại diện cho các nút trong đồ thị
- _ Bước 3: Đối với nút hiện tai, lần lượt tính khoảng cách dự kiến từ nút hiện tại
đến các nút xung quanh Nếu giá trị dự kiến nhỏ hơn giá trị hiện tại của nút đó
thì gán lại giá trị của nút đó bằng giá trị dự kiến
- _ Bước 4: Thực hiện đánh dấu nút hiện tại sau khi đã xem xét với các nút xung
quanh Đối với mỗi nút đã xét, ta loại bỏ nút này khỏi tập Q dé không cần phải
xét lại.
13
Trang 25- Bước 5: Lần lượt kiểm tra các nút trong tập Q Nếu nút đích đã được kiểm tra
thì dừng lại và kết thúc thuật toán
- Bước 6: Nếu không, chọn một nút chưa được xét trong tập hợp Q, đặt nút đó
làm nút hiện tại và quay lại bước 3.
Global_planner sẽ sử dụng các thông tin về bản đồ và thông tin về môi trường xungquanh dé áp dung thuật toán Dijkstra và lap kế hoạch đường di từ một vi trí hiện taiđến một vị trí đích như hình 2.12
Hình 2.12: Mô phỏng hoạch định đường di dùng thuật toán Dijkstra trong ROS
2.2.6 Thuật toán Dynamic Window Approach để tránh vật cản cho local
planner
Thuật toán Dynamic Window Approach (DWA) là một phương pháp được sử dụng
trong lập trình điều khién robot di động dé tránh vật cản và tìm đường đi an toan trongmôi trường và là thuật toán sử dụng cho local planner trong move_base của đề tài
Cơ bản, DWA xác định một cửa số động (dynamic window) trong không gian tốc độ
và tốc độ góc của robot, và kiểm tra từng bước thời gian trong cửa số này dé tìm ra
hành động tốt nhất cho robot Quá trình này được lặp lại liên tục dé đảm bảo robot di
chuyên một cách an toàn và hiệu quả.
14
Trang 26Hình 2.13: Minh họa ý tưởng của thuật toán DWA
Y tưởng cơ bản của thuật toán DWA [7] (hình 2.13) như sau:
- Lay các mẫu riêng trong không gian điều khién của robot (dx, dy, dtheta)
- _ Đối với mỗi vận tốc được lay mau, thực hiện mô phỏng di chuyên từ trạng thái
hiện tại của robot dé dự đoán điều gi sẽ xảy ra nếu vận tốc lay mẫu được áp
dụng trong một khoảng thời gian (ngắn) nào đó
- _ Đánh giá (cho điểm) từng quỹ đạo do mô phỏng di chuyền tạo ra, sử dụng số
liệu kết hợp các đặc điểm như: gần chướng ngại vật, gần mục tiêu, gần quỹ
dao của global_planner và tốc độ Loại bỏ các quỹ đạo bat hợp lý (những quỹ
đạo gây va chạm với chướng ngại vật).
- Chon quỹ đạo có đánh giá cao nhất và gửi vận tốc liên quan đến bộ di chuyền
Và tiếp tục lặp lại các thao tác cho trạng thái kế tiếp
2.3 Công nghệ Light Detection and Ranging (LIDAR)
LIDAR là một phương pháp dé xác định khoảng cách đến mục tiêu bằng cách chiếu
các tia laser từ cảm biến đến mục tiêu và đo các xung phản xạ lại Các thông số vềthời gian và bước sóng được thu lại có thể được sử dụng để tạo ra các mô hình 3 chiều
của đôi tượng.
15
Trang 27Khi LIDAR quét môi trường xung quanh, nó tạo ra một tập hợp các điểm trong khônggian 3D (hình 2.14), mỗi điểm đại diện cho vị trí và độ phản xạ của vật thé hoặc bềmặt trong khu vực quét Một bộ cảm biên LIDAR cơ bản bao gồm một thiết bi phát,
một thiết bị nhận và một bộ thu nhận GPS có thê được tuỳ biến LIDAR thường được
ứng dụng vào những hệ thống lớn về địa lý, lâm nghiệp, khảo cổ, xây dựng bản đồ,
hàng không.
Hệ thống LIDAR được chia thành hai loại dựa trên chức năng của từng loại: LIDAR
sử dụng trên không (Airborne LIDAR) là một hệ thống LIDAR sử dụng các xunglaser được phát ra từ cảm biến được gắn trên các thiết bị bay và hướng xuống mặtđất, dược sử dụng trong các lĩnh vực địa lý dùng để tạo bản đồ độ cao hoặc một môhình địa lý, thành lặp bản đồ ở các khu vực rộng lớn; LIDAR sử dụng trên mặt đất(Terrestrial LIDAR) là các thiết bị LIDAR được đặt trên mặt đắt, thường được ứngdụng trong các phương tiện di chuyền trên mặt dat Terrestrial LIDAR có hai loại là
Mobile LIDAR và Static LIDAR.
16
Trang 282.4 Phuong pháp Simultaneous Localization and Mapping (SLAM)
SLAM là phương pháp định vị và xây dựng bản đỗ trong lĩnh vực robot Trongphương pháp SLAM, robot di chuyên trong một môi trường không quen thuộc và sửdụng các cảm biến như camera, laser để thu thập thông tin về môi trường Dựa trên
dữ liệu đầu vào từ các cảm biến, robot phải xác định vị trí của nó trong không gian
và đồng thời xây dựng một bản đồ của môi trường xung quanh nó
Hector_SLAM là một phương pháp cụ thể của SLAM, tập trung vào việc sử dụng
cảm biến laser dé xây dung bản đỗ trong môi trường không xác định và là phươngpháp được sử dụng dé xây dựng bản đồ cho robot của đề tài
Khi robot di chuyền trong môi trường, cảm biến laser sẽ quét các đối tượng trong
phạm vi của nó, từ đó thu thập các điểm dữ liệu liên quan đến khoảng cách và hướng
đến các đối tượng đó Thuật toán sẽ sử dụng các điểm dit liệu nay dé tính toán vị trí
và hướng đi chuyên của robot, đồng thời cập nhật bản đồ cũ
Hector_SLAM sử dụng phương pháp scan matching [8] đề đối chiếu các dữ liệu quétlaser mới nhất với bản đồ hiện có và cập nhật bản đồ khi robot di chuyên, giúp cho
bản đô được tạo ra có độ chính xác và tin cậy cao.
17
Trang 292.5 Phần cứng
2.5.1 May tính nhúng Nvidia Jetson Nano
NVIDIA Jetson Nano Developer Kit là một máy tính AI nhỏ dành cho những người
mới học tập và những nhà phát triển phần mềm nhúng và robot Jestson Nano được
lựa chọn nhiều cho việc xây dựng robot nhỏ nhờ sức mạnh của nó Jetson Nano chophép nhiều mạng nơ ron chạy song song với nhau cho các ứng dụng như xử lý ảnh,
tìm kiếm vật thé, hoặc các tác vu tốc độ cao Khoá luận này sử dụng NVIDIA Jetson
Nano Developor Kit BO1 với thông số như sau:
- GPU: 128-core Maxwell
- CPU: Quad-core ARM A57 @ 1.43 GHz
- RAM: 4GB 64-bit LPDDR4
- Luu trữ: microSD
- USB: 4x USB 3.0, USB 2.0 Mirco-B
- Giao tiếp: GPIO, I2C, I2S, SPI, UART
- Kich thước: 69mm x 45 mm, 260-pin connector
2.5.2 RPLIDAR A1M8
Cảm biến khoảng cách RPLIDAR A1MB8 360 Laser Range Scanner được sản xuấtbởi hãng SLAMTEC sẽ là cảm biến chính, đảm nhận việc quét môi trường xung
18
Trang 30quanh cho hệ thống robot RPLIDAR A1M§ sử dụng giao tiếp UART dé kết nối vớimáy tính nhúng, có khả năng quét với khoảng cách 0.15 đến 12m, tốc độ quay 5.5Hz
và tần số lay mau 8000 điểm trên giây Thông số kỹ thuật của RPLIDAR A1M8 như
Distance ah sẽ <0.5 nis <1.5 meters
Resolution <1% of the distance All distance range*
A | 5H : t nqular — nhà <1 nis 5.5Hz scan rate
Hình 2.17: Thông só kỹ thuật của RPLIDAR AIM8
19
Trang 312.5.3 Arduino Mega
Arduino Mega 2560 CH340 (Arduino Mega 2560 Compatible) là bản nâng cap củaArduino Uno Arudino Mega sẽ đóng vai trò là driver trong hệ thống robot của khoáluận nay Thông số kỹ thuật của Arduio Mega 2560 như sau:
- - VỊ xử lý chính: Atmega2560
- _ IC nạp và giao tiếp: UART CH340
- _ Nguồn: 5VDC từ cổng USB hoặc nguồn ngoài 6-9VDC
- _ Số chân Digital I/O: 54 (15 chân có khả năng xuất xung PWM)
- _ Số chân Analog input: 16
- Cuong độ dòng điện trên mỗi chân I/O: 20mA
- Cuong độ dòng điện trên chân 3.3V: 50mA
Trang 322.5.4 Động cơ JGB37 encoder
1
JGB-529 <
DC: 12V 178Rp,, |
Động cơ DC servo giảm tốc JGB37 là loại động cơ có hộp số va encoder, các bánh
răng trong hộp số đều làm bằng kim loại, chỗi than có độ bền cao Động cơ có men xoắn cao và tiếng ôn thấp, phù hợp với các ứng dung mô hình robot, xe tự hành.Thông số kỹ thuật của động cơ như sau:
Trang 332.5.5 IMU MPU6050
Cảm biến GY-521 6DOF IMU MPU6050 được sử dung dé do 6 thông số bao gồm 3trục góc quay (Gyro), 3 trục gia tốc hướng (Accelerometer), là loại cảm biến gia tốcđược sử dụng pho bién trén thi trường hiện nay, được ứng dụng trong các mô hình
như con lắc động, xe tự cân bằng,
Thông số kỹ thuật như sau:
- _ Điện áp sử dụng: 3-5VDC
- _ Điện áp giao tiếp: 3-5VDC
- Chuan giao tiếp: I2C
- Gia trị trục góc quay trong khoảng +250, 500, 1000, 2000 °/sec
- _ Giá trị trục gia tốc hướng trong khoảng +2g, 4g, 8g, 16g
Trang 34Chương 3 PHAN TÍCH VA THIET KE HE THONG
3.1 Tong quan hệ thống
Hệ thống robot phục vụ quán cà phê bao gồm hai thành phần chính: robot phục vụ vàwebsite quản lý, kết nối giữa hai thành phần chính được mô tả như trong hình 3.1.Website quản lý sẽ nhận thông tin về các đơn hàng được đặt từ khách hàng, gửi cáclệnh điều khiến đến robot Robot sẽ nhận các lệnh từ điều khiển từ website và mangthức uống đến bàn của thực khách
Hệ Thống Cảm biến
Môi trường
xung quanh Lidar
Encoder Thuật toán tong hợp
- dữ liệu cảm biên
[ |
Website đặt món L IMU
Website quan ly Hé théng diéu khién
4 | AMCL & Giải thuật
Nút điều khiển | L điều khiển
MCU
Giao diện quản |
SCT
Hệ thống chuyền động
Board điều khiển
Giao diện theo động cơ
dõi robot Ỷ
Hình 3.1: Sơ đô khối hệ thống robot phục vụ quán cà phê
Robot của hệ thống sẽ hoàn toàn tự động với các khả năng:
- Khoi động hệ thống Navigation Stack khi cấp nguồn
- _ Thực hiện điều hướng đến vị trí mong muốn trên bản đồ đã có
- _ Nhận lệnh điều khiển từ website quản lý
- _ Tránh các vật cản khi thực hiện điều hướng.
23
Trang 35'Website quản lý là công cụ mà các nhân viên tương tác chính với các vai trò như sau:
- _ Hiên thị và thông kê các đơn hàng.
- Gửi lệnh điêu khiên robot di chuyên đên ban cu thê.
- Giám sát vị trí robot thông qua bản đồ
3.2 Phân tích và thiết kế phần cứng robot
3.2.1 Co sở di chuyển của robot
Cơ sở di chuyền của robot được thiết kế dựa trên mô hình robot bánh xe vi sai
(differential wheeled robot) Robot bánh xe vi sai là một loại robot di động có chuyênđộng dựa trên hai bánh xe dẫn động riêng biệt được đặt ở hai bên thân robot Hệ thốngnày bao gồm hai bánh xe chủ động đặt ở hai bên cua robot có thể quay độc lập và mộtbánh xe điều hướng phía trước (hình 3.2)
`”
Motor
Free Turning wheel
Đặc điểm chính của robot bánh xe vi sai là khả năng quay và di chuyên trên mặtphẳng Khi hai bánh xe quay cùng chiều và với tốc độ giống nhau, robot di chuyển
thang điều Khi hai bánh xe quay ngược chiều và với tốc độ bang nhau, robot xoay
quanh trung tâm của trục kết nối hai bánh xe
Hệ thống robot bánh xe vi sai cho phép robot di chuyển một cách linh hoạt và thực
hiện nhiêu chức năng khác nhau Đôi với việc di chuyên trên mặt phăng, robot có thê
24
Trang 36di chuyền thăng, quay trái/phải, thực hiện các đường cong và định vị chính xác trong
không gian Loại robot này thường được sử dụng trong nhiều ứng dụng như robot tự
hành, robot hút bụi, robot trong công nghiệp và robot nghiên cứu.
Hình 3.3: Mô hình động hoc cua robot bánh xe vi sai [9]
Trong hình 3.3, các biến được ký hiệu: X và Y là hệ trục tọa độ Sử dụng điểm namgiữa hai bánh xe làm điểm sốc của robot với Xp va Yp là hệ tọa độ của robot Bán
kính bánh xe là r, khoảng cách giữa hai bánh xe là b ICR (Instantaneous Center of
Rotation) là tâm quay tức thời Tốc độ tiếp xúc với mặt đất bánh xe trái là v, và bánh
xe phải là vp, van tôc góc của robot là w Theo định nghĩa của van toc góc, thu được:
Trang 373.2.2 Thiết kế khung cơ khí
Khung robot trong đề tài được thiết kế thành 3 tầng: tầng một là khung cơ sở dichuyên của robot chứa động cơ, bánh xe điều hướng; tầng hai chứa máy tính nhúng;
tầng ba dùng chứa vật phẩm đưa đến khách hàng và trên tầng ba là cảm biến Lidar
Bộ khung của robot được tham khảo theo các robot đã được tung ra trên thị trường.
Thiết kế của robot bao gồm phần thân trên được đặt lên mặt đáy của robot Thiết kếtổng thé mặt đáy của robot có hình chữ nhật với kích thước 20 x 25cm (rộng x dài).Mặt đáy có hai khoảng khuyết 5cm đề làm không gian cho 2 bánh xe của robot Tông
thé chiều cao của robot là 20cm với thiết kế 3 tang, bao gồm tang đáy cao 5cm, tanggiữa cao Sem va phần khoang chứa món ăn cao §em được mô tả như hình 3.5 Các
mặt của robot có độ dày 3mm, thiết kế rỗng ruột, dùng dé chứa các linh kiện: Jetson
Nano, Arduino Nano, RPLiDAR, nguồn và động cơ của robot
26
Trang 386.072863 m
0.206742 m
Hình 3.5: Kích thước của robot (mặt chiếu ngang)
27
Trang 39Hình 3.6: Mô hình 3D cua robot
Hình 3.4, 3.5, 3.6 lần lượt thể hiện các thông số thiết kế và mô hình 3D của robot,hình 3.7 là kết quả sau khi thực hiện in 3D, cắt mica va lắp ráp khung của robot
28
Trang 403.2.3 Kết nối phần cứng mô hình
Các thành phần phần cứng sẽ được kết nối và giao tiếp với nhau (hình 3.8, 3.9, 3.10)
như sau:
- Mach cầu H điều khiển động cơ được cấp nguồn từ pin lipo 3cell (12V) và
nhận tín hiệu điều khiển từ Arduino Mega
- Arduino Mega sẽ kết nối và được cấp nguồn từ Jetson Nano thông qua serial
dùng dé nhận yêu cầu vận tốc từ move_base
- IMU kết nối với Jetson Nano thông qua chuẩn giao tiếp I2C
- RPLidar được cấp nguôồn 5V và giao tiếp với Jetson Nano thông qua
micro-USB.
- Jetson Nano là nơi chạy ROS Master và được cấp nguồn từ pin lipo 2 cell
(thông qua hạ áp xuống 5V)