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

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

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

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên cứu và xây dựng mô hình robot phục vụ quán cà phê
Tác giả Pham Quoc Dang, Vien Minh Tan
Người hướng dẫn ThS Nguyen Thanh Thien
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Kỹ thuật máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 83
Dung lượng 47,11 MB

Nội dung

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 2

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

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

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

4.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 6

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

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

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

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

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

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 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 12

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

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

thứ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 16

giả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 18

củ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 19

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

Costmap 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 21

robot đ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 22

Vị 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 23

Gó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 24

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

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

Khi 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 28

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

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

quanh 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 31

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

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

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

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

di 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 37

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

6.072863 m

0.206742 m

Hình 3.5: Kích thước của robot (mặt chiếu ngang)

27

Trang 39

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

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

Ngày đăng: 02/10/2024, 08:32