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: Robot tránh vật cản sử dụng công nghệ Lidar

73 1 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

Nội dung

Với hệ thống Lidar, robot sử dung Rplidar AI từ thương hiệu SLAMTEC được pháttriển dé sử dụng vào các ứng dụng phát hiện vật can, lập ban đồ bằng tia laser, hỗ trợ Đề Robot hoàn thiện và

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TÍNH

TRAN HOANG PHUONG

VÕ ANH TUẦN

KHÓA LUẬN TÓT NGHIỆP

ROBOT TRÁNH VẬT CÁN SỨ DỤNG CÔNG NGHỆ

LIDAR

OBJECT AVOIDANCE LIDAR ROBOT

KỸ SƯ KỸ THUẬT MÁY TÍNH

TP HO CHÍ MINH, 2021

Trang 2

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KỸ THUẬT MÁY TÍNH

OBJECT AVOIDANCE LIDAR ROBOT

KỸ SƯ NGÀNH KỸ THUẬT MÁY TÍNH

GIẢNG VIÊN HƯỚNG DẪN THẠC SĨ PHAN ĐÌNH DUY

PHO GIAO SƯ TIEN SĨ VŨ ĐỨC LUNG

TP HO CHÍ MINH, 2021

Trang 3

THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP

Hội đồng bảo vệ luận văn tốt nghiệp được thành lập theo quyết định vào ngày

"——— eeeen een eneee bởi hiệu trưởng trường Dai hoc Công nghệ Thông tin.

Trang 4

LOI CAM ON

KHOA KĨ THUAT MAY TÍNH TRUONG DAI HQC CONG NGHE THONG TIN- DHQG TP HO CHi MINH

Đề 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 thay

cô trường Đại học Công nghệ Thông tin-Dai học Quốc gia Thành phố Hồ Chí Minh

nói chung và các thầy cô giáo 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,5 năm qua.

Xin gửi lời cảm ơn chân thành nhất đến Thạc sĩ Phan Đình Duy, Phó giáo sư Tiến

sĩ Vũ Đức Lung, những người đã 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 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 luận văn Một lần nữa xin cảm ơn mọi người đã dành thời gian và

tâm 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 bỏ qua, tha thứ trong quá trình thực hiện luận văn chắc chắn có những sai

Trang 5

MỤC LỤC

Chương 1 TONG QUAN DE TÀI 2.st.rettttetrErrrerrrrrtrerrrrre

1.1 Lý do thực hiện khóa luận -.-cccccceckrkrtrtrtrtiiiiiiiiiiiiiiiiiiiiirrrkr

1.2 Mục tiêu khóa luận c.-+veeeeeeeirEEtiiirirriiiiiiiiirriiririiiiserrie

1.3 Phương pháp thực hiện cvceeerertiiiiirrriiiiiiiiiririiiiirisri

1.3.1 Tim hiểu lý thuyết:

1.3.2 Van dụng thực ~Ô 1.3.2.1 Dữ liệu đầu vào:

1.3.2.2 Quá trình xử lý: eeerrririiririrririiiiiiiiiriiriiiiiirrrie

1.3.2.3 Dữ liệu đầu ra:

Chương 2 CƠ SỞ LÝ THUYẾT 2+ e2ttrztttrEtttrrrtrrtrrrrrrre 2.1 Tổng quan về ROS sisstretteriirrtrertrrtrirrrrrtrrrrrrrrrrrre

2.1.1 ROS 1A gi Pecccssstssetccsssssesesssessssssnsensssssessevessossseesseseesssnsseeneseessesnsassesesesseeseesesee 2.1.2 Chức năng của ROS cày

2.1.4 Mô hình ROS eeeeririiiririrriiiiiiiiriririiirrrree

2.1.4.1 Tầng ROS FEilesystem -eerererrrrrrrrrrrrrrrrree 2.1.4.2 Tầng ROS Computation graph ce-eeererersrrr

2.1.4.3 Tang ROS community -srtereererererrrrerererrrre

2.1.5 Két luận cho việc sử dung ROS -ecceerriiriiriirriree

2.2 Laser Imaging, Detection And 2.2.1 Simultaneous Localization And Mapping(SLAM)

Ranging(LIDAR) -2.2.2 GM appiing vassscscssssssssesssessssssssavsesssesssssssssnesssessssssssaeesseesesssssseeseeseesesssssseeeenenseessy

13 13 13

22 24

25

26 27

28

Trang 6

2.4.1 Nvidia Jetson Nano e-c-cccerrrrrirrritkirtiriiirirerirrrree 37

2.4.1 RPLidar AIM8 ii 38

2.4.3 Mạch nguỒn -ecssrecerrieererrrertrrrrrrrirrrrrrrrerre 422.4.4 Mạch thứ cấp e -eecsrreeerrieeerrirerrrrerrrirrrrrreerre 43

3.1.2.1 Phan mềm trên máy tính cá nhân -+-s2:cc+t 493.1.2.2 Phần mềm trên Arduino Mega -s-.+-estrccesrrccerrre 53

3.2 Tính toán Odometry, thuật toán Dijkstra và Dynamic Window Approach.

54 3.2.1 _ Tính toán Odome(ry -e c-<-ceeersrkseikkrrkkrtikirriiiiririerie 54

3.2.2 _ Thuật toán Dijkstra ceccceecrieerieekiitkriitriiriirirrrrririee 58

Trang 7

3.2.3 _ Thuật toán Dynamic Window Approach oes 59

3.2.3.1 Không gian tìm kiếm -2 +ccsteeverreretrrrrrrrrrrrrrrrerre 603.2.3.2 TOi 5 61

Chương 4 THỰC NGHIỆM VÀ ĐÁNH GIÁ ccccriirrceeeevvvvvrrrrrrrree 63

le 6 cố số 63

4.1.1 Quy trình cài đặt ĂĂccekikiieiikiiiirrree 63

4.1.1.1 Cài đặt ROS ccccccrreeeeerirerrrrrrirrrrrrrrrtrrrrrrrrrrrrrerrre 63

4.1.1.2 Cài đặt my_ robot metapackage và my_ robot_ base 63

4.1.1.3 Thiết lập môi trường ROS cho máy tính cá nhân và Jetson Nano

63

4.1.1.4 Thứ tự các lệnh để chạy SLAM và Navigation 64

4.2 Đánh giá map 2Ì) css-ccsxccrrxrtrrkerrrrkrtrrietrrrkrtrrirrrrkrrrrierrrrrrrrrkerrrrerrir 65

4.3 Đánh giá Navigation Oal -e ccscccrrererrrtrrirtrriirtrrirrrrirrrrrrrrierrrrree 66

4.3.1 Thực nghiêm không vật cản « -estskseekrikkrierirrirriee 67

4.3.2 Thực nghiệm có vật Cản -«-5s+ccs+scereerrrrrsrrerrrrrrrrrrrrrreee 68

Chương 5 KET LUẬN VÀ KIẾN NGHỊ, -s2.ecetreectrrrerrrrerrrrreerre 70

5.1 Két qua dat ẽ 705.2 Ưu điểm-Nhược điểm khóa luận -:::ccececvEttiiiieeesvevvvvvrrrrrrrie 705.3 Hướng phát triển và công việc tiếp theo -cecccccerrrreceevrrrrrrree 71

Trang 8

1.1: Sơ đồ thiết kế tổng quan của rObOt ccce-cccvvveeecvvvvvserrerrrvee 14

1.2: Sơ đồ hoạt động Của TObOI -+ccccresrrirtrirtrrirtiiriiiiiririiirriee 16

2.1: Hệ điều hành ROS -cc2cveeerrrkrkriirrttrrriiirrrtriiiirrrriirirrrrree 17 2.2: Các robot sử dụng hệ điều hành ROS, burger và waffle 19

2.3: Cấu trúc Package trong ROS ccc-eccrrrriiiiiirrrrrriiiiiirrrree 20

2.4: Cấu trúc Stack trong ROS -cc-cccccrreeerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrree 21

2.5: Mô hình Server - Client trong ROS cecceeekreerierrrisrrerrrrrrer 21 2.6: ROS Computation Grapph - «sec 22 2.7: Quan hệ giữa các node trong ROS -csiieiiiiie 24 2.8: Lich sử các phiên bản của ROS [6] -c-ecceeecceexeeeerseersee 25 2.9: Hình ảnh minh họa LIDAR cccccsccvserxeerrterrtrrtrssrrrsrsrrrrrrsrree 26

2.10: Bản đồ 2D được xây dựng bằng phương pháp SLAM 28 2.11: Bản đồ 2D được xây dựng bằng phương pháp GMapping 28

2.12: Camera KÏT€CE - sec Hit 29

2.13: Cảm biến HC-SR04 c cc 22222 HH 29

2.14: Mô hình Navigation stack trong ROS [7] -.«e c-ecceeecseexsee 31

2.15: Bản đồ costmap trong ROS .cccc -esccrrrkkkerrrrrrrrriirrrree 31

2.16: Giá trị chi phí ảnh hưởng đến hoạt động của robot [4] 32

2.17: Nvidia Jetson Nano ssssssssssssssssssssessesssssssssssssssssessecsacsecsscsessacssessessessassuesasseseasess 38

2.18: Thông số hoạt động RPLidar A1M8 -.ccccccccccveceerccccvee 39

2.19: RPLidar A1M8 -. c-ccc+ccrrrrrrrrrrirrrrrrrrrrrrirrrrririrrrrrrrrrre 39

2.20: Khung 3D trên phần mềm SolidWork - ccccccc-ssccccveccee 41

2.21: Khung cắt mica được vẽ bằng AutoCAD -cccccccccccrre 41

2.22: Mạch nguồn trên Altium Design ccc-c-ccccvveerecevvveeerrerrrree 42

2.23: Mạch cầu H XY-160D c -+cccxxeeritrrrrtrrrrtttrrrrrirrrrrrirrrrrrrrrrree 43

2.24: Arduino Mega 2560 -cccHHHHHH HH 43

r2 9000010100077 44

Trang 9

Hình 2.26: Động cơ JGB 37 EncOer -« csssccxererxsrrrxerrrrrtrrrertrrrrrrrerrrreree 44

Hình 3.1: Hình ảnh bố trí trọng tâm rODOL cccee+ccccvveereerrrvveererrrrvee 46

Hình 3.2: Robot Waffle Pi, -ceehHHọnHHHHHHHH HH Hàng 47

Hình 3.3: Sơ đồ nguyên lý mạch thứ cấp -ccecceeserrrrrrrriierrrrrrrrriie 48 Hình 3.4: Sơ đồ nguyên lý mạch nguồn cc vvcee+eccvvveerrerrrrveeerrrrrrree 48

Hình 3.5: Sơ đồ input và output toàn hệ thống -c ccceccrrrerrre 49

Hình 3.6: Sơ đồ kiết nối các Node và Topic khi hệ thống Navigation hoạt động 52

Hình 3.7: Lưu đồ thuật toán trên Arduino Mega -+ccecerrreccerrrree 53

Hình 3.8: Qua một khoảng thời gian rất nhỏ, chuyên động robot có thé gần bằng

một cung tròn [ Ï 3] -+++esc+xs+rx++ret+tsrrtrrrtrrstrtrrrtrrrrrrrrrrrrrrrrirrrrrrrrrrrrrerrreee 55

Hình 3.9: Hai đường cung tròn tạo bởi bánh trái và phải [13] 56

Hình 3.10: Sơ đồ nút và trọng số trên mỗi cạnh trong đồ thị [9] 58

Hình 3.11: Hoạch định đường di dùng thuật toán Dijkstra 59

Hình 3.12: Vận tốc cho phép Va trong DWA -cccecccveeteerveeierrreesrrrrreeree 60 Hình 3.13: Vận tốc trong cửa sổ động Vd trong DWA c -ccce 61

Hình 3.14: Heading của robot trong DWA -c-cckickkiiieiiiriie 61

Hình 4.1: Trình tự thực thi khóa luận -csccecsccsxeerseesreersrtsresrsrrsrssrrrrsrree 64 Hình 4.2: Map 2D căn hỘ s ccsxcsrktrtrkketrrtirtrriirtrriirrrrrrrirrierrrrrrrrrirrrrrerie 65

Hình 4.3: Map 2D phòng lab được vẽ từ hệ thống -cc ec-ccceex 66

Hình 4.4: Robot đang được Estimate và chạy Navigation Stack 68

Hình 4.5: Trạng thái RÑ@COV€TV ccsscrrerrrketrrrirtrrrrrrrrrrrrirrrrrrrrierrrrirrrrierrrreree 69

Trang 10

File cOsSff1đD_ COMMOH_ DATGHS.VÏ, Series 34

File giobal_ costmap_ DATGITS.VTHÏ, e-scccereexesrrererrrrrrrrirrrrrrirrrrrrrrre 35

File local_ COSfINđD_ DATGTHS.VHÏ, c«ccvesckexteektttrttketkirkrrrkrrrkrerrrrree 36

File Dase_local_planner_Params yr cecc«cceeceexeekeeerrrkrrekrrerrrrrkee 37

Các packages dé sử dụng robot -ccse+eeeverrrrervvrrrrervrrrrreerrre 49

Cac packages được kế thừa lại để hiện thực hệ thống 50

Chi tiết các packages quan trọng trong hệ thống - 50Các lệnh dé sử dụng khóa luận -c<ccxesreeksekirtrrkirrrierrie 64Bảng kết quả dữ liệu lây từ terminal khi chạy xong navigation 66

Bảng thực nghiệm với môi trường đường Ít vật cản - 67

Bảng thực nghiêm với môi trường nhiều vật cản -s 68

Trang 11

DANH MỤC TỪ VIET TAT

ROS Robot Operating System

LiDAR Light Detection And Ranging

Laser Light amplification by stimulated emission of radiation DWA Dynamic Window Approach

SLAM Simultaneous Localization And Mapping

AMCL Adaptive Monte Carlo Localization

TF Transform

IMU Inertial Measurement Units

Trang 12

TÓM TẮT KHÓA LUẬN

Khóa luận “Robot Tránh Vật Can Sử Dụng Công Nghệ LIDAR” ứng dụng Lidar và

Navigation Stack dé thiết kết nên Robot có khả năng tránh vật cản và đi đến nơi chỉđiểm trên bản đồ Ung dụng các thuật toán tìm đường đi dé robot có thé di chuyển

đên nơi chi định chỉ với các thao tác đơn giản nhât.

Với hệ thống Lidar, robot sử dung Rplidar AI từ thương hiệu SLAMTEC được pháttriển dé sử dụng vào các ứng dụng phát hiện vật can, lập ban đồ bằng tia laser, hỗ trợ

Đề Robot hoàn thiện và hoạt động tốt các hệ thống riêng lẽ phải được kết hợp va đồng

bộ trên một hệ điều hành quy nhất Khi đó, ROS là một lựa chọn rất phù hợp với hệthống ROS là một hệ thống phần mềm giúp phát triển Robot với các thư viện và công

cụ được hỗ trợ dé truyền dit liệu giữa các chương trình, giữa Robot và máy tính nhờvào kiến trúc các gói trên hệ thống của Robot Hệ thong “Robot Tránh Vat Can SửDung Công Nghệ LIDAR” sẽ tập trung chủ yếu vào các gói đành cho Rplidar và các

gói phục vụ SLAM, định vi và hoạch định đường di cho Robot.

Cuối cùng, dé hoàn thiện hệ thống Navigation Stack Robot sẽ được chia làm ba phan.Phan thứ nhất là Nvidia Jetson Nano Developer Kit, trung tâm truyền nhận dữ liệu từmáy tính cá nhân (ROS Master) và tầng nền nơi cũng cấp thông tin của Robot Phần

thứ hai là máy tính cá nhân nơi thực thi các thuật toán định vị và hoạch định đường

đi Phần cuối cũng là tầng nền với Arduino Mega nhầm nhận dữ liệu từ các cảm biếnIMU và Encoder và tính toán trang thái của Robot, đồng thời điều khiển hai động cơ

DC dé Robot có thé di chuyên Ba phan chính sẽ được liên kết chặc chẻ với nhau trênmột hệ thống là Robot Operating System (ROS)

12

Trang 13

Chương 1 TONG QUAN DE TÀI

1.1 Lý do thực hiện khóa luận

Những năm gần đây tự động hóa và robotic phát triển rất nhanh và mạnh mẽ, conngười dần hướng đến những công cụ tự động trong nhiều lĩnh vực như nông nghiệp,

công nghiệp, dịch vụ, v.v Đặc biệt là Robot tự động được ứng dụng rộng rãi từ các

công việc quy mô lớn như thám hiểm vũ trụ[1], đến các công việc trong kho chứa

hàng, nhà xưỡng [2] hay trong căn hộ [3] v.v Trong đó Robot tự động hoạch định

đường đi là một dạng robot rất quan trọng được ứng dụng rộng rãi Hơn thế nữa với

cộng đồng người dùng, nghiên cứu và pháp trién Robot trên ROS lớn mạnh như ngàynay, chúng ta đã dé dàng tiếp cận và xây dựng cho mình nhưng con Robot từ dongiản đến phức tạp yêu cầu nhưng kiến thức chuyên sâu về kỹ thuật và động lực học

Trên thế giới các công trình nghiên cứu về Robot tự động hoạch định đường di(Navigation Robot) [4],[5] đã được thực hiện và cải tiến rất nhiều Tuy nhiên tìnhhình phát triển trong nước vẫn còn hạn chế Đặc biệt mới đây một số công trình Robotphục vụ nơi công cộng nhằm hạn chế sự tiếp xúc người với người, do dịch bệnhCovid-19 diễn biến phức tạp đã xuất hiện, nhưng phan lớn vẫn chưa 6n định và đápứng tốt Nên chúng em chọn nghiên cứu xây dựng Robot với khả năng diệt khuẩn vănphòng với đèn UV áp dụng kỹ thuật tự động tìm đường đi trên bản đồ dé đơn giản

các thao tác điêu khiên, từ đó tôi ưu việc thực hiện diệt khuân trong các văn phòng.

1.2 Mục tiêu khóa luận

Xây dựng robot theo định hướng navigation cho phép robot có thể hoạch định quỹ

đạo đường đi dựa trên bản đồ đã được vẽ trước bằng Lidar Robot sẽ được thực hiện

vẽ bản đồ bằng cách điều khién từ máy tính cá nhân Thuật toán SLAM sẽ được thựcthi dé có thé vẽ được ban dé của một khu vực, sau khi hoàn thành bản đồ sẽ được lưu

lại trong máy tính cá nhân phục vụ cho công tác navigation Người dùng sẽ có thực

hiện thao tác chỉ điểm trên bang đồ đã vẽ dé robot tự động di chuyền đến vị trí mong

muôn.

13

Trang 14

Bên cạnh đó, robot sẽ tùy chọn tích hợp thêm các bộ phận dén UV 3W thích hợp cho

việc diệt khuẩn và các khung đề đồ thuận tiện cho việc vận chuyên các đồ dùng, trang

thiết bị trong môi trường yêu cầu khắc khe về việc giữ khoảng cách

Cai thiện thuật toán và thử nghiệm dé đưa ra các thông số so sánh về thời gian thựcthi và độ chính xác của Robot chúng ta đối với các robot khác trên thế giới

1.3 Phương pháp thực hiện

Dé xây dựng một robot với chức năng navigation, khóa luận sẽ xây dựng một robotbằng khung mica có hai động cơ Đây là mô hình xe dễ tính toán vận tốc cũng như

góc quay hỗ trợ cho việc định vị và hoạch định đường đi chính xác Ngoài ra sử dụng

bánh xích sẽ giúp cho robot di chuyên ôn định hơn với bề mặt đường gồ gé Songsong đó dé robot hoạt động, bộ nguồn sẽ được thiết kế với pin lipo 3 cell và bộ ha áp20A, giúp cũng cấp một nguồn điện phù hợp và ồn định cho toàn hệ thống

defson Nano Arduino Mega

DC_Encoder DC_Encoder Wifi (ROS server)

Trang 15

Tìm hiểu các kiến thức về một hệ thong robot navigation Bắt đầu với việc tim hiéu

về SLAM dé vẽ ban đồ và lưu ban đồ, tim hiều về các thanh phan cần thiết cho một

hệ thống navigation như Odometry, Joint-State, TF Tiếp đến là các đầu vào cho thuậttoán định vi AMCL và hoạch định đường di Ngoài ra các kiến thực về dé sử dụngROS và làm việc trên môi trường Linux cũng là một nhân tố không thể thiếu trong

quá trình thực hiện khóa luận.

1.3.2 Vận dụng thực tế:

1.3.2.1 Dữ liệu đầu vào:

Dé có thể thực hiện chức năng navigation thi ban đồ là đầu vào không thé thiếu do

đó nhờ vào tin hiệu từ Rplidar Al gửi đến Jetson Nano ta sẽ thực hiện công việc vẽbản đồ bằng các thuật toán SLAM sau đó lưu bản đồ lại bang map_ server Dé vẽ bản

đồ ta cần một trình điều khiển robot trên máy tinh cá nhân, giúp điều khiến robot đihết diện tích phòng lần đâu tiên Tiếp đến, những đâu vào cần thiết cho một robot

navigation sẽ bao gồm Odometry (Vị trí và vật tốc ước tính của robot trong không

gian tự do), JointState(Bao gồm các thông số về vị trí các thành chuyển động củaRobot), TF( Sự thay đôi của Robot trong các khoản thời gian) Những dữ liệu này sẽđược tính toán nhờ vào Encoder và IMU (MPU6050) dé phục vu cho quá trình xử lý

của các thuật toán khác.

tiếp sẽ đến chức năng navigation, trên máy tính cá nhân (ROS Master) sẽ chạy hai

thuật toán định vị AMCL và hoạch định đường đi (Move_ Base) Song song đó Jetson

Nano sẽ gửi những dữ liệu Odometry, JointState, TF cũng như Scan (dữ liệu từ

Rplidar A1) đến ROS Master thông qua WIFI Tầng dưới cũng là Arduino Mega sẽ

thực hiện tính toán Odometry, JointState, TF dữa trên tín hiệu từ Encoder và IMU.

15

Trang 16

1.3.2.3 Dữ liệu đầu ra:

Dau ra sẽ là dit liệu điều khiển từ ROS Master thông qua Jetson Nano được chuyên

đến Arduino Mega dé điều khién Robot di chuyền theo thuật toán hoạch định đường

đi đã được thiết lập ở ROS Master Đồng thời ở máy tính cá nhân (ROS Master) sẽhiển thị bản đồ và Robot phục vụ cho việc quan sát và chỉ định địa điểm cho Robot

di chuyền đến

Personal Computer with ROS

Odometry, TF

Dữ liệu điều khién (Velocity)

Gmapping(Vé ban do)

map_server(lưu map)

Adaptive Monte Carlo Localization (dinh vi robot trén

ban do)

Path_planning(Hoach định đường di, tránh vật can)

Jetson Nano with ROS

Điều khién động cơ

Tinh toàn vi tri, trạng thai của

IMU 6050(I2C) Encoder fiboqÐilonicut; TF)

Odometry, TF UART(rosserial)

Hinh 1.2: So dé hoat d6ng cua robot

16

Trang 17

Chương2 CƠ SỞ LÝ THUYET

2.1 Tổng quan về ROS

2.1.1 ROSlàgì?

ROS (Robot Operating System) là một hệ điều hành mã nguồn mở cho rô bốt Nócung cấp các dịch vụ từ một hệ điều hành, bao gồm phần cứng được trừu tượng hóa,kiểm soát thiết bị hạ tang, triển khai chức năng thường được sử dụng, thông báo giữacác quy trình và quản lý gói Nó cũng cung cấp các công cụ và thư viện để xây dựng,viết và chạy trên nhiều máy tính nhúng khác nhau ROS là hệ điều hành tương tự các

hệ điều hành robot khác, chăng hạn như Player, YARP, Orocos, CARMEN, Orca,

MOOS va Microsoft Robotics Studio.

ROS chạy trên đồ thị thời gian là một mạng lưới quy trình peer-to-peer (có kha năngđược phân phối trên các máy) được kết nối bằng cách sử dụng cơ sở hạ tầng truyềnthông của ROS ROS triển khai một số giao tiếp khác nhau, bao gồm giao tiếp kiểuRPC đồng bộ qua các dịch vụ, truyền dữ liệu không đồng bộ theo các chủ đề và lưutrữ dữ liệu trên Máy chủ tham sô

Hình 2.1: Hệ điều hành ROS

17

Trang 18

2.1.2 Chức năng của ROS

Rất nhiều người hỏi, "ROS và các hệ điều hành robot khác nhau như thế nào?" Đó

là một câu hỏi khó trả lời vì mục tiêu của ROS không phải là một hệ điều hành cónhiều tính năng nhất Thay vào đó, mục tiêu chính của ROS là hỗ trợ tái sử dụng mã

nguồn trong nghiên cứu và phát triển robot ROS là một hệ điều hành phân tán của

các quy trình (hay còn gọi là Node) cho phép các tệp thực thi được thiết kế riêng vàkết hợp lỏng lẻo trong thời gian chạy Các quy trình này có thé được nhóm lại thànhcác Packages và Stacks, có thể dễ dàng chia sẻ rộng rãi ROS cũng hỗ trợ một hệthống liên kết các lưu trữ mã nguồn cho phép người dùng có thé chia sẻ

Trước các hệ điều hành robot, mọi nhà thiết kế robot và nhà nghiên cứu robot sẽ dànhthời gian đáng kê dé thiết kế phần mềm nhúng trong robot, cũng như chính phan cứng

Điều này đòi hỏi kỹ năng về kỹ thuật cơ khí, điện tử và lập trình nhúng Thông thường,

các chương trình được thiết kế theo cách này gần giống với lập trình nhúng, tương tựnhư điện tử, so với robot theo định nghĩa thông thường, như ngày nay chúng ta có thể

bắt gặp trong chế tạo robot dịch vụ Việc sử dụng lại các chương trình có hạn chế

đáng kể, vì chúng được liên kết chặt chẽ với nhau bằng phan cứng hạ tang.Y tưởngchính của ROS là tránh liên tục đi lại các vết xe đồ và cung cấp các chức năng đượctiêu chuẩn hóa dé thực hiện trừu tượng hóa phần cứng, giống như một hệ điều hành

thông thường cho máy tính.

Một lợi ích khác của các hệ điều hành robot như ROS là kết hợp kiến thức từ các banngành khác nhau Trên thực tế, thiết kế và lập trình robot có nghĩa là:

° Quản lý phan cứng bằng cách viết trình điều khiển

° Quản lý bộ nhớ và các quy trình

° Quản lý đồng thời, song song và hợp nhất dữ liệu

° Cung cấp các thuật toán lý luận trừu tượng, sử dụng trí tuệ nhân tạo

18

Trang 19

Robotics đòi hỏi các bộ kỹ năng rất khác nhau, thường vượt quá phạm vi kiến thức

của một cá nhân ban ngành bât kì.

: Waffle @ Burger

-ss

Hình 2.2: Các robot sử dung hệ điều hành ROS, burger va waffle

2.1.3 Môi trường

ROS chỉ chạy trên các nền tảng Unix Các phần mềm dành cho ROS chủ yếu kiểm

tra trên Ubuntu va MAC OS X, mặc dù cộng đồng đã phát triển thêm dé hỗ trợ choFedora, Gentoo, Arch Linux và các nền tảng Linux khác

2.1.4 Mô hình ROS

Mô hình ROS gồm có ba tang: Filesystem, Computation Graph, và Community Bêncạnh đó, ROS định nghĩa hai kiểu đặt tên (Names): Package Resource Names và

Graph Resource Names.

2.1.4.1 Tang ROS Filesystem

Filesystem chủ yếu là các nguồn tài nguyên ROS được thực thi trên bộ nhớ

lưu trữ hệ thống, bao gồm:

19

Trang 20

Packages: là đơn vị chính dé tô chức phần mềm trên ROS Một package có thé chứa

các nodes (ROS runtime processes), các thư viện đặc thù của ROS, các file cài đặt

hoặc bât cứ file nào cho việc tô chức.

Mục đích của package là để tạo ra tập hợp chương trình có kích thước nhỏnhất dé có thé dé dang sử dụng lại

Metapackages: là một package chuyên biệt, dùng dé phục vụ cho việc thé hiện mối

quan hệ một nhóm các package khác với nhau Metapackage thường được

dùng như nơi dé giữ các tương thích ngược cho việc chuyên đổi sang rosbuild Stacks

Package Manifests: là một bảng mô tả về một package như tên, version, mô tả, thông

tin license, Manifests được quản lý bởi một file tên là manifests.xml.

20

Trang 21

Stacks: khi chúng ta kết hợp các package với nhau với một vài chức năng thì đượcgọi là Stack Trong ROS, có rất nhiều stack với công dụng khác nhau Tương tựPackage, nơi chứa thông tin về stack gọi là Stack Manifests.

Mục tiêu của việc dùng Stack là dé đơn giản hóa cho quá trình chia sẻ chương trình

ứng dụng.

Message types: là mô tả của một thông điệp được gửi qua lại giữ các quá trình, được

lưu trữ dưới dạng my_package/msg/MyMessageType.msg Message định nghĩa cấu

trúc dữ liệu cho các thông điệp được gửi đi Trong ROS, có rất nhiều loại messagetiêu chuẩn phục vụ cho quá trình giao tiếp giữa các node với nhau Ngoài ra, ta cũng

có thê tự định nghĩa lại một kiểu message theo nhu cầu sử dụng của chúng ta

Service types: là mô tả một service, được lưu trữ dưới dạng

my_package/-msg/MyServiceType.srv Service định nghĩa cau trúc dữ liệu request và response giữa

các node trong ROS Dé gọi một service, ta cần phải sử dụng tên của service cùng

với tên của package chứa service đó.

Response

21

Trang 22

2.1.4.2 Tầng ROS Computation graph

“Computation Graph”, tạm gọi là lược đồ tính toán, là một mang peer-to-peer của

ROS trong đó các dữ liệu được xử lý với nhau Computation Graph cơ bản gồmcác thành phần: các nút (nodes), Master, Parameter Server, messages, services ,topics, va bags, tat cả các thành phan này đều cung cấp dit liệu cho Graph bằng những

Hình 2.6: ROS Computation Graph

Nodes: là don vi thực hiện các lệnh tính toán, xử lý dữ liệu Hệ điều hành ROS được

thiết kế mô-đun hoá, các mô-đun được xây dựng rất chỉ tiết và chuyên biệt, một hệthống điều khiển robot thường sẽ bao gồm nhiều nodes

Master: Các ROS Master cung cấp tên đăng ký và tra cứu đến phần còn lại củaComputation Graph Nếu không có Master, các node sẽ không thể tìm thấy nhau trao

đổi thông tin, hay gọi services đều không thực hiện được

Parameter Server: Parameter Server cho phép dữ liệu được lưu trữ bởi các từ khóa

trong một vị trí trung tâm Nó là một phần của Master

22

Trang 23

Với các biên này, nó có thê được câu hình các node trong khi nó đang hoạt động hoặc

dé thay đôi hoat động của node

Messages: Các node giao tiếp với nhau thông qua các message Một message chỉ

đơn giản là một cấu trúc dữ liệu, bao gồm các trường được định kiểu Các kiểu dữ

liệu chuẩn (như integer, floating point, boolean, ) và mảng (array) với kiểu chuẩn

đều được hỗ trợ Messages có thể bao gồm các cấu trúc và các mảng lồng nhau (giốngnhư kiểu structs trong ngôn ngữ C)

Topics: Messages được định tuyến thông qua một hệ thống trao đổi (transport

system), trong đó phân loại các thông điệp thành 2 dạng: publish (đưa tin) và subcribe

(đăng ký nhận thông tin) Một node gửi di một message bằng việc đưa thông tin tớimột topic (chủ đề) Tên của topic được dùng dé quy định nội dung cua message Mộtnode liên quan đến loại dữ liệu như thế nào sẽ đăng ký nhận tin từ topic tương ứng.Một topic có thể có nhiều đối tượng đưa tin (publishers) cũng như nhiều đối tượngđăng ký nhận tin (subcribers); và mỗi một node cũng có thé truyền tin nhiều topickhác nhau, cũng như có thé nhận tin từ nhiều topic Các nguồn truyền tin và các đối

tượng nhận tin nhìn chung không cân phải biệt về sự tôn tại của nhau.

Services: Mô hình truyền thông theo mẫu publish/subcribe như trình bày ở trên làmột mô hình rất linh hoạt, tuy vậy, đặc điểm của nó là thông tin được truyền đa đốitượng, một chiều (many-to-many, one-way) đôi khi lại không phù hợp với các trường

hợp cần tương tác theo kiểu request/reply (yêu cầu/đáp ứng), kiểu tương tác này

thường gặp trong các hệ thống phân phối

Bags: là một định dạng đề lưu và phát lại đữ liệu từ các ROS messages Bags là một

cơ chế quan trọng dé lưu trữ dữ liệu, chăng hạn như đữ liệu cảm biến, những dữ liệunày là cần thiết dé phát trién và thử nghiệm các thuật toán

23

Trang 24

/ — — —.

⁄ fred/depthvimage_rect_color lec fredidepthimage_to_laserscan >

4 ———————_

Hình 2.7: Quan hệ giữa các node trong ROS

2.1.4.3 Tang ROS community

Các khái niệm về ROS Community Level là các nguồn tài nguyên của ROS được

cộng đồng người dùng trao đối với nhau về phần mềm và kiến thức Các nguồn tài

nguyên đó là:

Distributions: là tong hợp các phiên bản của stack mà chúng ta có thé cài đặt ROS

Distributions có vai trò tương tự như Linux Distributions.

Respositories: là nguồn tài nguyên dựa trên cộng đồng mạng lưới các tổ chức khác

nhau phát triển và phát hành những mô hình riêng của họ.

The ROS Wiki: gồm nhiều tài liệu về ROS Bat cứ ai cũng có thé chia sẻ tài liệu,cung cấp các bản cập nhật, viết các bài hướng dan, bằng tài khoản mà họ đã đăng

ký.

24

Trang 25

Distro Release date Poster Tuturtle, turtle in tutorial EOL date

ROS Lunar Loggerhead May 23rd, 2077

2.1.5 Kết luận cho việc sử dụng ROS

Trước các hệ điều hành robot, mọi nhà thiết kế robot và nhà nghiên cứu robot sẽ dành

thời gian đáng ké dé thiết kế phần mềm nhúng trong robot, cũng như chính phan cứng.Điều này đòi hỏi kỹ năng về kỹ thuật cơ khí, điện tử và lập trình nhúng Thông thường,các chương trình được thiết kế theo cách này gần giống với lập trình nhúng, tương tựnhư điện tử, so với robot theo nghĩa nghiêm ngặt nhất, như ngày nay chúng ta có thégặp nó trong chế tạo robot dịch vụ Việc sử dụng lại các chương trình đáng ké, vì

chúng được liên kết chặt chẽ với phần cứng cơ bản

25

Trang 26

2.2 Laser Imaging, Detection And Ranging(LIDAR)

LIDAR là một phương pháp thu thập dữ liệu về khoảng cách của một vật thé với cambiến nhờ vào việc chiếu sáng vật thé đó bang tia Lazer va tính toán dựa vào các tiaphản xạ lại cảm biến Trên thế giới LIDAR thường được ứng dụng vào những hệthống lớn về địa tin học, lâm nghiệp, khảo cổ học, nông nghiệp để xây dựng bản đồ,vật thể ba chiều

Robot nhờ vào sự chính xác về khoảng cách mà LIDAR mang lại

LIDAR có thé phát ra tối đa 200.000 xung laser trong mỗi giây Một bộ lidar cơ bảnbao gồm một máy phát laser, một máy scan, một bộ thu nhận GPS được tùy biến Khi

một chùm laser được chiều vào một điềm trên mặt đất, chùm sáng này sẽ bị phản xạ

lại Một cảm biến sẽ thu nhận thông tin của chùm phản xạ để đo khoảng cách dựa

theo thời gian di chuyên của xung laser Kết hợp với dit liệu về vị tri và phương hướng

từ hệ thong GPS cũng như bộ do quan tính, bộ quét góc, dữ liệu sé được đưa ra thành

một tập hợp các điểm, gọi là "point cloud" Mỗi point cloud sẽ có tọa độ xác định

trong không gian ba chiều (bao gồm kinh độ, vĩ độ và cao độ) tương ứng với vị trí

của nó trên bề mặt Trái Đất Các điểm này sau đó được đem đi dựng thành mô hình

26

Trang 27

2.2.1 Simultaneous Localization And Mapping(SLAM)

SLAM là một phương pháp dé xây dựng va cập nhật ban đồ ở những nơi chưa biếttrước đồng thời xác định được vị trí của chủ thé Những thuật toán về SLAM thường

được sử dụng trong các lĩnh vực định vị, vẽ bản đồ, tính toàn khoảng cách và địnhhướng, ngoài ra SLAM còn được áp dụng vào thực tế ảo(virtual reality) và thực tế

tăng cường (augmented reality) Dé có thé thực hiện SLAM chúng ta cần có nhữngthiết bị ngoại vi như (camera, sona, radar, lidar) để nhận thông tin từ bên ngoài

Các kỹ thuật thống kê được sử dụng dé tính gần đúng các phương trình SLAM baogồm bộ loc Kalman và bộ loc Particle (hay còn gọi là phương pháp Monte Carlo).Chúng cung cấp ước tính của hàm xác suất cho tư thé của robot và cho các thông sốcủa bản đồ Các phương pháp tính gần đúng một cách bảo toàn mô hình trên bằng

cách sử dụng giao điểm phương sai có thê tránh phụ thuộc vào các giả định thống kê

độc lập dé giảm độ phức tạp của thuật toán cho các ứng dụng quy mô lớn Các phươngpháp xấp xi khác đạt được hiệu quả tính toán được cải thiện bang cách sử dung các

vùng giới hạn đơn giản.

Các kỹ thuật tập hợp thành phần chủ yếu dựa trên sự lan truyền khoảng giới hạn Họcung cấp một bộ bao gồm tư thé của rô bốt và một tập hợp gần đúng của bản đồ Điềuchỉnh và ước tính sau thử nghiệm (MAP), là một kỹ thuật phô biến khác cho SLAM

sử dụng dữ liệu hình ảnh, cùng ước tính các tư thế và vị trí mốc, tăng độ chính xác

của bản đồ và được sử dụng trong các hệ thống SLAM thương mại hóa như ARCore

của Google, thay thế dự án thực tế tăng cường trước đó 'Tango' MAP tính toán vềcác tư thế của robot và ban đồ cung cấp dữ liệu cảm biến, thay vì cố gắng ước tínhtoàn bộ xác suất

Các thuật toán SLAM mới vẫn là một lĩnh vực nghiên cứu mới, và thường được yêu

cầu và tạo ra giả định khác nhau về các loại bản đồ, cảm biến và mô hình như chi tiết

khác nhau.

27

Trang 28

ROS Time: |1402148262.96 ROS Elapsed: 31428 e: 140214826300 | Wall Elapsed: 314438

Hình 2.10: Ban đồ 2D được xây dựng bằng phương pháp SLAM

2.2.2 GMapping

Đây là một package của ROS đành cho OpenSlam’s Gmapping Gmapping cung cấpthông tin laser SLAM, vốn là node của ROS được gọi là slam_gmapping Chúng ta

có thé tạo ra bản đồ 2-D (gần giống với bản thiết kế mặt cắt sản nhà) được tạo ra từ

dir liệu laser va vi trí của robot.

Hình 2.11: Bản đồ 2D được xây dựng bằng phương pháp GMapping

28

Trang 29

2.2.3 Cac công nghệ khác

Camera Kinect RGB-D được cấu thành từ camera bình thường kèm với bộ thu phát

hồng ngoại Camera cung cấp các chỉ tiết RGB cho từng phân cảnh được quay cùng

với chiều sâu của từng pixel Có 2 phương pháp tính cho chiều sâu của từng pixel ,

Structured Light (SL) và Time-of-Flight(TOF), trong đó TOF đã được áp dụng lên

LIDAR Nhược điểm duy nhất của Kinect chính là sự linh hoạt của cảm biến khi cóyêu cầu quét bao quát 360 độ cũng như điều kiện ánh sáng tối

Cảm biến siêu âm sử dung 2 đầu thu phát siêu âm cho ra khoảng cách được tính

toán theo định lý Pythagoras Cảm biến thường được hay sử dụng là HC-SR04 với

giá thánh rẻ, độ chính xác ở 4m có sai số khoảng 3mm ở điều kiện lý tưởng Tuy

nhiên, cũng giống như camera Kinect, nhược điểm của cảm biến siêu âm nằm ở

việc không đáp ứng được yêu cầu quét 360 độ nếu không có các phần cơ khí khác

hỗ trợ.

Hình 2.13: Cảm biến HC-SRO4

29

Trang 30

có thé hoạt động ở một cấp độ cao hơn.

Mặc dù Navigation stack được thiết kế sao cho dùng trong mục đích chung nhất có

thê, nhưng vẫn có một sô yêu câu bat buộc về phân cứng như sau:

e Nó được thiết kế dành cho cả mô hình robot lái bằng hiệu tốc độ (differential

drive) va mô hình robot có bánh xe đa hướng (holonomic wheeled robots) Nó

chỉ việc gửi trực tiếp giá trị vận tốc xuống cho bộ phận điều khiển di chuyêncủa robot đề đạt được các giá tri của robot mong muốn như vận tốc theo trục

x, vận tôc theo trụ y và vận tôc xoay.

e Navigation stack cần phải được lắp một cảm biến laser scan được gắn lên

robot Laser scan này dùng để xây dựng bản đồ (mapping), định vị

(localization) và phát hiện vật cản.

e_ Nó được phát triển trên những robot có hình vuông vì thé dé được hiệu năng

tốt nhất thì hình dạng robot nên là hình vuông hoặc hình tròn Navigation stack

cũng làm việc được trên robot có hình dạng và kích thước bắt kỳ nhưng sẽ khó

khăn với những robot có kích thước lớn khi làm việc trong những không gian

hẹp

30

Trang 31

2.3.1 Tổng quan về Navigation Stack

ame!

sensor transforms —+

odometry source —

“At ti/tfMessaqe

optional provided node

platform specific node

Hinh 2.14: M6 hinh Navigation stack trong ROS [7]

Hình trên cho ta thấy được cái nhìn tong quan về cách cài đặt cũng như những thànhphần có trong Navigation stack Những thành phần bên trong move_base (màu trắng)

là những thành phan bắt buộc phải có Những thành phan như amcl, map_server(màu xám) là những thành phan tùy chọn Và những thành phan còn lại (màu xanh)

là những thành phan phải có tùy thuộc vào robot mà ta thiết kế

2.3.2 Costmap 2D

Costmap 2D là một package dé triển khai bản đồ chi phi (costmap) từ việc lay dữ liệu

của cảm biên từ môi trường, xây dựng một lưới các nơi bị chiêm chỗ và tăng vùng

chi phí trong bản đồ chi phí 2D dựa trên lưới các nơi bị chiếm chỗ và bán kính tăng

chi phí do người dùng định nghĩa.

v3

Hình 2.15: Bản đồ costmap trong ROS

31

Trang 32

Costmap 2D dùng đề chứa thông tin các vật cản cũng như những nơi mà robot không

thé tới được Costmap sử dụng dữ liệu của các cảm biến từ bản đồ đã được xây dựng

trước đó và cập nhật thông tin của vật cản vào costmap.

Các phương pháp cơ bản sử dụng dé ghi dữ liệu lên costmap được cấu hình day đủ,

mỗi bit chức năng nằm trên một lớp khác nhau Ví dụ, bản đồ tĩnh (bản đồ đã đượcdựng trước đó) được nằm trên một lớp, và các vật cản được nằm trên một lớp khác.Lớp chứa vật cản lưu trữ thông tin các vật thể theo ba hướng nhằm cho vấn đề xử lýcác vật cản trong bản đồ thông minh hơn

Costmap tự động đăng ký nhận dữ liệu từ các topic của cảm biến thông qua ROS vàcập nhật các thông tin cho chính costmap này một cách thích hợp Mỗi cảm biến được

sử dụng để đánh dấu các vật cản hoặc loại bỏ các vật cản trong costmap Nếu các vật

thé được lưu trữ thông tin ở dạng ba chiều thì được chuyền thành hai chiều khi đặt

Vào costmap.

cell cost

{int}

“lethal” or "W-space" obstacle

e.g cost_lethale254 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)

°.g 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)

inscribed

exact (now-pixelized) footprint

Hinh 2.16: Gia tri chi phi anh huong dén hoat động cua robot [4]

32

Trang 33

Hình trên chỉ cho chúng ta thay được giá trị chi phí ảnh hưởng đến hoạt động củarobot như thé nào.

e Cost_lethal là giá trị của một cell chứ vật cản Nếu trọng tâm của robot di vào

vùng này thì chắc chắn robot sẽ bị va chạm

e 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 thi robot chắc chan sẽ chị va

chạm vào vật cản.

e Cost_possibly_circumscribed là giá trị 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 robot đi vào vùng này thì khả năng robot va chạm vật cản phụ

thuộc vào hướng đi của robot.

e 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 này

Cost_unknow là những cell chưa có thông thin về giá trị của chi phí

2.3.3 Cấu hình costmap

Dé bắt đầu cấu hình, chúng ta cần biết mỗi costmap được dùng dé làm gì Robot sẽ

di chuyển trong map với hai định hướng đường đi là toàn cục (global) và cục bộ

(local): định hướng đường đi toàn cục (global navigation) được dùng dé tạo đường di

cho mục tiêu trong bản đồ hoặc đường đi có khoảng cách xa; định hướng đường đicục bộ (local navigation) được dùng dé tạo đường di trong khoảng cách gần va détránh vật cản khi robot di chuyền

Các module nay sử dung costmap dé giữ thông tin về bản đồ Định hướng đường đi

toàn cục thì dùng costmap toàn cục (global costmap) và costmap cục bộ (local

costmap) dùng cho định hướng cục bộ Mỗi costmap sẽ có những thông số riêng của

nó và cũng có những thông số dùng chung Chúng được cấu hình dựa vào các file:

costmap_common_ params.yaml, global_costmap_params-.yaml,

local_costmap_ params.yaml.

33

Trang 34

laser_scan_sensor: {sensor_frame: laser_base_link, data_type:

LaserScan, topic: /base_scan/scan, marking: true, clearing: true}

Doan chương trình trên năm trong file costmap_common_params.yaml dùng đề cầuhình các biến dùng chung cho cả local_costmap và global_costmap Thuộc tínhobstacle_range và được ding dé chỉ khoảng cách tôi đa ma cảm biến có thé đọc vàsinh ra thông tin mới về môi trường trong costmap Nếu robot phát hiện ra vật cản cókhoảng cách nhỏ hơn obstacle_range thì nó sẽ đặt một vật cản vào costmap Nếurobot di chuyên, nó có thể xóa costmap và cập nhật freespace Lưu ý rằng chúng ta

chỉ có thể cập nhật các giá trị được trả về từ thông tin laser trên bề mặt vật cản mà

không thê nhận biết được toàn bộ vật cản Nhưng với những thông tin này, ta đã cóthê xây dựng được bản đồ

Thuộc tinh footprint dùng dé chỉ cho Navigation stack nhận biết được hình thái củarobot Các thông số này dùng dé giữ khoảng cách giữa vật cản và robot dé không xảy

ra sự va chạm hoặc robot có thể di chuyên qua những nơi có khoảng cách hẹp

Thuộc tính inflation_radius là thông số dé giữ khoảng cách nhỏ nhất giữa tâm của

robot và vật cản.

Thuộc tính faser_scan_ sensor dùng đê khai báo các thông tin về loại cảm biên được

dùng (ở đây là dùng laser scan) và được dùng dé thêm/xóa vật cản trong costmap

34

Trang 35

Bang 2.2: File global_costmap_params.yaml

Thuộc tinh global_frame va robot_base_frame định nghĩa các frame toàn cục va

frame gắn với Mobile base

Thuộc tính update_frequency dùng dé khai báo tan số cập nhật cho costmap, ở đây

giá trị là 1Hz.

Thuộc tính static_map dé dùng khai báo có hay không dùng ban đồ đã dựng trước

đó.

35

Trang 36

Các thuộc tinh global_frame, robot_base_frame, update_frequency va static_map

giống với file global_costmap_params.yaml

Thuộc tinh publish_frequency dé xác định tần số cập nhật thông tin

Thuộc tính rolling_window dùng dé giữ costmap nam ở tâm của robot khi di chuyển

Các thuộc tinh width, height và resolution dé câu hình khoảng cách và độ phân giải

của costmap Các thông số này có đơn vị là mét

2.3.4 Cấu hình base_local_planner

Câu hình này dùng đê khai báo các thông sô khi tạo ra các giá tri của vận toc gửi

xuống cho robot di chuyền

36

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

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN