30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
Nghiên cứu thuật toán tìm đường bao phủ một nhóm robot di động.pdf
1. i
LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứ ủa riêng tôi trong đó có sự
u c giúp
đỡ ấ ớ ủ ầy hướ ẫ
r t l n c a th ng d n .
TS Ngô Lam Trung
Các n i dung nghiên c u, s u và k t qu nêu trong lu
ộ ứ ố liệ ế ả ận văn là trung thực
và ch c ai công b trong b
ưa từng đượ ố ất kỳ công trình nào khác.
Trong lu n m t s tài li c li t kê t i ph n
ận văn, tôi có tham khảo đế ộ ố ệu đã đượ ệ ạ ầ
Tài li u tham kh o i lu . Các tài li u tham kh c trích d n trung
ệ ả ở cuố ận văn ệ ảo đượ ẫ
thực trong luận văn.
Hà Nội, ngày… tháng … năm 2016
Tác giả
Nguy n Thùy Linh
ễ
2. ii
LỜI CẢM ƠN
Trướ ảm ơn đ ờ
c tiên, tôi xin chân thành c TS Ngô Lam Trung ã dành th i gian
quý báu, t n tình h ng d n ch b o, góp ý cho tôi trong su t quá trình th c hi
ậ ướ ẫ ỉ ả ố ự ện
lu t nghi
ận văn ố
t ệp.
Tôi xin đượ ảm ơn sự giúp đỡ ệ ủ ầ
c c nhi t tình c a các Th y giáo, Cô giáo trong
trườ Đạ
ng i học Bách Khoa.
Đặ ệt, tôi xin đượ
c bi c bày t lòng bi c t i các Th y giáo, Cô giáo
ỏ ết ơn sâu sắ ớ ầ
trong Vi n Công ngh thông tin và Truy n thông ã tham gia gi ng d y tôi trong
ệ ệ ề đ ả ạ
quá trình h c t p t ng. Các th
ọ ậ ại Trườ ầy cô đã tậ ả ạ
n tình gi ng d y, truyền đạ ế
t ki n
thứ ạ ền đề ận văn. Tôi xin cám ơn các bạ
c, t o ti cho tôi hoàn thành lu n sinh viên
trong phòng Phòng thí nghi m H ng Máy tính c bi t v i hai b n sinh viên
ệ ệ thố và đặ ệ ớ ạ
Trần Đức Sơn và ễ ữ ạ ứu irobot đã hỗ ợ
Nguy n H u M nh trong nhóm nghiên c tr tôi
m i m tôi hoàn thành lu
ọ ặ ể
t đ ận văn.
Cuố ả
i cùng, tôi xin chân thành c m ơn các bạn bè, đồ ệ ấ
ng nghi p và nh t là gia
đình tôi đã quan tâm và tạ ọi điề ệ ố ất, độ ổ ũ ố
o m u ki n t t nh ng viên, c v tôi trong su t
quá trình h p và nghiên c hoàn thành t t nghi p này.
ọc tậ ứu để ốt luận văn tố ệ
Xin trân trọ ả
ng c m ơn!
Hà Nội, ngày 14 tháng 11 năm 2016
Tác giả
Nguy n Thùy Linh
ễ
3. iii
PHỤ LỤC
L I CAM ....................................................................................................... i
Ờ ĐOAN
L ............................................................................................................
ỜI CẢM ƠN ii
PHỤ Ụ
L C.................................................................................................................. iii
DANH MỤ Ẽ
C HÌNH V ............................................................................................ vi
DANH M VI
Ụ Ừ
C CÁC T ẾT T T NG
Ắ Ậ
T VÀ THU Ữ ......................................... viii
L U .............................................................................................................1
ỜI MỞ ĐẦ
CHƯƠNG 1: TỔNG QUAN.......................................................................................3
1.1. Lý do chọn đề ................................................................................................3
tài
1.2. Giới thiệu mộ ố ệ
t s khái ni m liên quan ...............................................................4
1.2.1. ch v là gì?...................................................................................4
Robot dị ụ
1.2.2. Các ng d ng c a robot d ................................................................4
ứ ụ ủ ịch vụ
1.2.3. ng bao ph là gì?..........................................................................5
Tìm đườ ủ
1.3.Các phương pháp giả ế ụ ế ậ ủ
i quy t và các công c ti p c n bài toán bao ph .............6
1.3.1. quy .................................................6
Phương pháp giải ết bài toán bao phủ
1.3.2. Các công c p c n bài toán ....................................................................7
ụ tiế ậ
1.4.N tài và k t qu c.........................................................7
ội dung đề ế ả thực hiện đượ
1.4.1. N ..........................................................................................7
ội Dung đề tài
1.4.2. K c..............................................................................7
ết quả thực hiện đượ
CHƯƠNG 2: PHƯƠNG PHÁP GIẢ Ế Ủ
I QUY T BÀI TOÁN BAO PH ....................9
2.1.Một số phương pháp giải quyết bài toán bao phủ với đơn robot .......................9
2.1.1. n .........................................9
Phương pháp phân chia vùng làm việc cổ điể
2.1.1.1. t toán phân chia theo hình thang............................................10
Thuậ
2.1.1.2. t toán phân chia Boustrophedon ............................................11
Thuậ
2.1.2. ........................................................12
Phương pháp dự ớ
a trên lư i ô vuông
2.1.2.1. t toán tràn sóng wavefront .....................................................13
Thuậ
2.1.2.2. ................................................................14
Thuật toán cây bao trùm.
4. iv
2.2.Phương pháp giải quyết sử dụng một nhóm robot ...........................................16
CHƯƠNG 3 Ế Ể Ậ
: LÝ THUY T VÀ PHÁT TRI N THU T TOÁN MSTC ................19
3.1.Các tiêu chí đánh giá ........................................................................................19
3.2.Thuậ ủ ớ
t toán bao ph v i mộ ự n môi trườ
t nhóm robot d a trên cây bao trùm trê ng
đã biết......................................................................................................................19
3.2.1. c bao ph ......................................................................................19
Khu vự ủ
3.2.2. t toán MSTC Offline........................................................................20
Thuậ
3.2.2.1. Xây d ng cây bao trùm..................................................................20
ự
3.2.2.2. MSTC Offline không quay lui .......................................................22
3.2.2.3. Phân tích các tiêu chí c t toán..............................................25
ủa thuậ
3.3.Thuậ ủ ớ ộ ới môi trường chưa rõ
t toán bao ph v i m t nhóm robot v ....................26
3.3.1. c bao ph ......................................................................................26
Khu vự ủ
3.3.2. t toán ORMSTC...............................................................................27
Thuậ
3.3.3. Phân tích các tiêu chí c t toán........................................................31
ủa thuậ
3.3.3.1. Tính m nh m ................................................................................31
ạ ẽ
3.3.3.2. toàn b .....................................................................31
Tính bao phủ ộ
3.3.3.3. a........................................................................32
Tính không dư thừ
3.4.Đề ấ ả ế ể ậ
xu t c i ti n và phát tri n thu t toán MSTC...............................................32
3.4.1. xu t và phát tri n thu t toán ORMSTC d a trên cách t o cây con trên
Đề ấ ể ậ ự ạ
MSTC-offline.....................................................................................................32
3.4.1.1. c bao ph ............................................................................32
Khu vự ủ
3.4.1.2. ng c n thu t toán.............................................................33
Ý tưở ải tiế ậ
3.4.1.3. Phát tri n thu t toán .......................................................................35
ể ậ
3.4.1.4. Phân tích các tiêu chí c t toán c n .................................38
ủa thuậ ải tiế
3.4.2. n khai thu t toán MSTC - ..........................................................40
Triể ậ Full
3.4.2.1. c bao ph ............................................................................40
Khu vự ủ
3.4.2.2. ng thu t toán .........................................................................41
Ý tưở ậ
3.4.2.3. Phát tri n thu t toán .......................................................................43
ể ậ
3.4.2.4. n .........................47
Phân tích các tiêu chí đánh giá thuật toán cải tiế
5. v
CHƯƠNG 4: CÀI ĐẶ Ử Ệ Ậ
T VÀ TH NGHI M CÁC THU T TOÁN MSTC...........50
4.1.Giới thi t s m s
ệu mộ ố ụ ầ ề
công c , ph n m ử ụ
d ng................................................50
4.1.1. u v ROS....................................................................................50
Giới thiệ ề
4.1.2. u v Gazebo...............................................................................51
Giới thiệ ề
4.1.3. u robot Kobuki...........................................................................51
Giới thiệ
4.1.4. u Hokuyo ...................................................................................52
Giới thiệ
4.2.Giả ế ế ữ
i quy t bài toán giao ti p gi a các robot.....................................................53
4.2.1. V phát sinh ......................................................................................53
ấn đề
4.2.2. ng l p trình socket v t toán MSTC.......................................54
Áp dụ ậ ới thuậ
4.3.V quay lui robot và gi i quy t tính m nh m khi th nghi m thu 57
ấn đề ả ế ạ ẽ ử ệ ật toán
4.3.1. V phát sinh ......................................................................................57
ấn đề
4.3.2. di chuy n cell c ..........59
Áp dụng phương pháp khoảng cách để ển đế ần đi
4.4.V trong tính m nh m c a thu t toán MSTC...........................................60
ấn đề ạ ẽ ủ ậ
4.5.K nghi m ..........................................................................................61
ết quả thử ệ
4.5.1. nghi ng mô ph ng: .................................................61
Thử ệm trên môi trườ ỏ
4.5.2. ng gi l p............................................68
Đánh giá thuật toán trên môi trườ ả ậ
4.5.3. nghi ng th .......................................................69
Thử ệm trên môi trườ ực tế
K N...............................................................................................................73
ẾT LUẬ
A. K n ............................................................................................................73
ết luậ
B. Những điể ưa hoàn thiệ
m ch n ...........................................................................73
C. H ng phát tri tài.....................................................................................74
ướ ển đề
TÀI LIỆ Ả
U THAM KH O.........................................................................................75
6. vi
DANH MỤC HÌNH VẼ
Hình 1.1: Một ứ ụ ự
ng d ng th c tế ủ ị ụ
c a robot d ch v .....................................................5
Hình 2.1: Bao ph m t cell hình ch ..........................10
ủ ộ ữ nhật bằng thao tác đi ziczag
Hình 2.2: Ví dụ ề ậ
v thu t toán phân chia hình thang .................................................11
Hình 2.3: Ví dụ ề ậ
v thu t toán BA* ...........................................................................12
Hình 2.4: Ví d i ô vuông v ng ng
ụ phương pháp phân chia dựa trên lướ ới hai chướ ại
v t..............................................................................................................................13
ậ
Hình 2.5: Gán có s cho các ô b ng cách lan truy c sóng v i ô b u (S) và
ố ằ ền bướ ớ ắt đầ
ô đích (G). .................................................................................................................14
Hình 2.6: K ho ch bao ph s d ng bi i kho ng cách v i thu t toán wavefront
ế ạ ủ ử ụ ến đổ ả ớ ậ
...................................................................................................................................14
Hình 2.7: Phân chia cell trong thuật toán cây bao trùm............................................15
Hình 2.8: Đườ ủ ủ ụ ậ –
ng bao ph c a robot khi áp d ng thu t toán Spiral STC...............16
Hình 2.9: Robot th c hi n bao ph m t cell theo thu t toán phân chia
ự ệ ủ ộ ậ
boustrophedon s d ng nhóm robot..........................................................................18
ử ụ
Hình 3.1: Xây dựng cây bao trùm.............................................................................22
Hình 3.2: Đường đi cho đa robot ..............................................................................23
Hình 3.3: Nhóm robot sử ụ ậ
d ng ORMSTC trên thu t toán Spiral- ....................34
STC
Hình 3.4: Nhóm robot s d ng MSTC- Offline........................................................35
ử ụ
Hình 3.5: (a): C nh có hai phía; (b): C nh có m t phía; (c): G cell m
ạ ạ ộ ấp đôi nút ở ất
k c b ............................................................................................................41
ết nối cụ ộ
Hình 3.6: V g p ph n MSTC-full................................................42
ấn đề ặ ải khi thực hiệ
Hình 3.7: Các subcell c ........................................................43
ủ ợ ịnh nghĩa
a cell đư c đ
Hình 3.8: V g p ph n i c ..............................................46
ấn đề ặ ải khi cell mất kế ố ục bộ
Hình 3.9: Vấn đề ặ ả
g p ph i khi cell m t k
ấ ế ố ụ
n i c c bộ ..............................................47
Hình 4.1: Robot Kobuki............................................................................................52
Hình 4.2: Laze Hokuyo.............................................................................................53
Hình 4.3: Mô hình client- d ng ..................................................................54
server sử ụ
7. vii
Hình 4.4: Tình huố ế
ng robot ch t n m gi
ằ ữa hai subcell.............................................58
Hình 4.5: Tình huố ố ể giúp robot đã chế
ng robot còn s ng không th t ........................61
Hình 4.6: Sơ đồ ệ ố ể khai trong môi trườ ỏ
h th ng khi tri n ng mô ph ng ......................62
Hình 4.7: Sơ đồ ấu trúc chương trình
c ......................................................................63
Hình 4.8: Thuậ ạ ớ
t toán MSTC_Offline ch y v i 2 robot.............................................65
Hình 4.9: Thuậ ạ
t toán ORMSTC ch y v i 2 robot.....................................................65
ớ
Hình 4.10: Thuậ ạ ớ
t toán MSTC ch y v i 2 robot ........................................................66
Hình 4.11: Thuậ ạ
t toán MSTC-full ch y v i 2 robot .................................................66
ớ
Hình 4.12: Thuậ ạ
t toán MSTC-full ch y khi bi p th i robot ch t ........................67
ết kị ờ ế
Hình 4.13 Thu t toán MSTC-full ch y xong và th c hi n ki
ậ ạ ự ệ ểm tra để quay lui để
bao ph cho robot l i.................................................................................................68
ủ ỗ
Hình 4.14: Sơ đồ ệ ố ển khai trong môi trườ ự ế
h th ng khi tri ng th c t ..........................70
Hình 4.15: Hình ả ạ ậ ự
nh ch y thu t toán trong th c tế...................................................72
8. viii
DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ
Thuật ng /Ch t t
ữ ữ ế
vi ắt Viế ầy đủ
t đ
STC Spanning Tree Coverage
BA* Boustrophedon online A* search
MSTC Multi-robot Spanning Tree Coverage
ORMSTC On- Robust Multi-robot STC
line
IFR The International Federation of Robotics
CPP Coverage Path Planning
ROS Robot Operating System
9. 1
LỜI MỞ ĐẦU
Ý tưở ề ệ ế ạ ỗ ể ệ ự độ ừ ờ ổ đạ
ng v vi c ch t o các c máy có th làm vi c t ng có t th i c i,
nhưng nhữ ứ ề ức năng và khả năng ứ ụng không có bướ ế
ng nghiên c u v ch ng d c ti n
nào đáng kể cho đế ế ỷ ố ị ử ọc thường đượ
n th k 20. Xuyên su t l ch s , robot h c nhìn
nh b c hành vi c ng qu n lý các nhi m v
ận là để ắt chướ ủa con người, và thườ ả ệ ụ theo
cách thức tương tự.
Ngày nay, robot là m c phát tri n nhanh chóng, nh công ngh phát
ột lĩnh vự ể ờ ệ
triể ục, robot đã đượ ế ạo để ụ ụ ề ục đích khác nhau.
n liên t c ch t ph c v cho nhi u m
Nhiều robot đã thay con ngườ ữ ệc độ ại như tháo ngòi nổ
i làm nh ng công vi c h bom,
mìn, thăm dò các con tàu bị đắm, đi vào thu thậ ở ững nơi độ ạ
p thông tin nh c h i, có
phóng x ,.... Vi c s d gi i quy t bài toán bao ph ng d ng
ạ ệ ử ụng robot để ả ế ủ đã được ứ ụ
r t nhi u trong th c ti n. m v c a robot là tìm ki m và di chuy
ấ ề ự ễ Nhiệ ụ ủ ế ể ộ
n theo m t
thuật toán nào đó nhằ ủ đượ ế ực đượ ự ệ ủ
m bao ph c h t khu v c giao. Khu v c làm vi c c a
robot có th a nh ng v t c n. Robot có th ng b các c m bi n ho c các
ể chứ ữ ậ ả ể được trạ ị ả ế ặ
thi t b tr tr
ế ị ỗ
h ợ khác để ỗ
h ợ ệ
cho công vi c c a mình.
ủ
Những năm gần đây, sử ụ ề ủ
d ng nhóm nhi u robot trong bài toán bao ph ngày
càng đượ ở ệ ả ạ ẽ ủa nó. Lý do đầ ở
c quan tâm b i tính hi u qu và m nh m c u tiên là b i
nhi u robot có th hoàn thành nhi m v i m t robot, b ng cách
ề ể ệ ụ nhanh hơn so vớ ộ ằ
phân chia khu v c làm vi c gi a chúng. Lý do th hai là b i s d ng nhóm robot có
ự ệ ữ ứ ở ử ụ
thể đả ảo đượ ệ ệ ốt hơn. Khi nhiều robot đượ ử
m b c vi c hoàn thành xong công vi c t c s
d ng, gi s có m t thành viên b l i và không th hoàn thành ph n vi
ụ ả ử ộ ị ỗ ể ầ ệc mình được
giao, các đồ ệ ủ ể ỗ ợ để ẫn đả
ng nghi p khác c a nó có th h tr v m b o công vi c chung
ả ệ
được hoàn thành.
T mong mu n mu n th nghi m m t thu ng bao ph
ừ ố ố ử ệ ộ ật toán tìm đườ ủ cho
nhóm robot, trong lu p trung nghiên c u, tìm hi u, gi i quy
ận văn này tậ ứ ể ả ế ữ
t nh ng
v c
ấn đề ụ thể như sau:
- Tìm hi u t ng quan v ng bao ph .
ể ổ ề các thuật toán tìm đườ ủ
- Nghiên c u, tìm hi u lý thuy t v t toán tìm bao ph STC v i nhóm robot
ứ ể ế ề thuậ ủ ớ
(thuật toán MSTC).
10. 2
- L p trình thu ng bao ph STC v
ậ ật toán tìm đườ ủ ới nhóm robot trong môi trường
đượ ế ớ
c bi t trư c (Offline - MSTC).
- L p trình phát tri n thu ng Online-MSTC).
ậ ể ậ ờ
t toán MSTC trên môi trư chưa biết (
Thự ệ ạ ử ệ ế ả đã lập trình được trong môi trườ
c hi n ch y th nghi m k t qu ng mô
ph ng th
ỏng và trong môi trườ ực tế
C u trúc này g m b n i nh ng n
ấ luận văn ồ ố chương vớ ữ ội dung chính như sau:
Chương 1: ổ
T ng quan
- Lý do chọn đề .
tài
- Giớ ệ ộ ố ệ
i thi u m t s khái ni m liên quan.
- Giớ ệ các phương pháp giả ế ụ ế ậ
i thi u i qu t và các công c ti p c n bài toán
bao ph .
ủ
- N i dung và k c
ộ ết quả thực hiện đượ
Chương 2: ơ sở ế
C lý thuy t
- Trình bày các phương pháp tiế ậ ả ế ủ ớ
p c n gi i quy t bài toán bao ph v i
m .
ột robot
- Trình bày p c n gi i quy t bài toán bao ph v
các phương pháp tiế ậ ả ế ủ ới
nhóm robot.
Chương ế ể ậ
3 Lý thuy
: t và phát tri n thu t toán MSTC.
- Giớ ệ
i thi u các tiêu chí đánh giá.
- Thuậ ủ ớ ộ ự
t toán bao ph v i m t nhóm các robot d a trên cây bao trùm
trên môi trường đã biết.
- Thuậ ủ ớ ộ ới môi trường chưa rõ
t toán bao ph v i m t nhóm robot v
- Đề ấ ậ
xu t thu t toán MSTC
Chương ử ệ ỏ ự ế
4 Th
: nghi m trong mô ph ng và trong th c t
- Giớ ệ ộ ố ụ ầ ề ử ụng để ể
i thi u m t s công c , ph n m m s d phát tri n.
- Trình bày các vấn đề ậ ậ
phát sinh khi l p trình thu t toán MSTC.
- Trình bày nhữ ế ả đạ ợ ử ệ ỏ
ng k t qu t đư c khi th nghi m trong mô ph ng và
trong thực tế.
11. 3
CHƯƠNG 1 TỔNG QUAN
.
1.1. Lý do ch tài
ọ ề
n đ
Luận văn này có nộ ề ứ ử ệ ật toán tìm đườ
i dung v nghiên c u và th nghi m thu ng
bao ph MSTC v i nhóm robot.
ủ ớ
Lý do lựa chọn đề ể ồ
tài này có th bao g m nh ng lý do sau:
ữ
- Cùng v i s phát tri n c a công ngh , càng ngày vi c s d giúp
ớ ự ể ủ ệ ệ ử ụng robot để
đỡ con ngườ ộ ống càng đượ ổ ế Robot giúp cũng là đang
i trong cu c s c ph bi n.
d n tr thành m t s n ph m công ngh không th u trong cu c s ng c
ầ ở ộ ả ẩ ệ ể thiế ộ ố ủa
con ngườ au nhà ra đời như mộ ấ
i. Robot l t t t yế ủ ộ ố
u c a cu c s ng giúp con
ngườ ỏ ữ ệ ấ ặp đi lặ ạ
i thoát kh i nh ng công vi c có tính ch t l p l i, nhàm chán.
- Các bài toán bao ph robot có th hoàn thành nhi m v làm
ủ được đưa ra để ể ệ ụ
s ng th p v i các v t c n trong quá trình di chuy n. K
ạch đồ ời không va đậ ớ ậ ả ể ế
ho ng bao ph (Coverage Path Planning - CPP) là nhi m v tìm ra
ạch tìm đườ ủ ệ ụ
đường đi có thể đi qua tấ ả các điể
t c m c n thi t trong m t vùng ho c không
ầ ế ộ ặ
gian cho trướ ạnh đó cũng phải tránh đượ ữ ậ ả ệ
c, bên c c nh ng v t c n. Công vi c
này là c n thi t cho r t nhi ng d ng ví d i, lau nhà,
ầ ế ấ ều ứ ụ ụ như các robot hút bụ
sơn tườ ẽ
ng, v tranh, robot dò mìn, máy c , máy làm s ,...
ắt cỏ ạch cửa sổ
- V i khu v c bao ph r ng l n khi th c hi n v i ch m t robot duy nh t s
ớ ự ủ ộ ớ ự ệ ớ ỉ ộ ấ ẽ
g p nhi u v x i hay i gian th c hi n công
ặ ề ấn đề ẩy ra như khi robot đó lỗ thờ ự ệ
vi p c n là s d ng nhi u robot ho ng song song, nh
ệc. Phương pháp tiế ậ ử ụ ề ạt độ ờ
đó cho phép rút ngắ ờ ủ ệ ằ
n th i gian bao ph không gian làm vi c b ng cách phân
chia công vi c cho t ng robot. Hay còn g ng bao ph
ệ ừ ọi là bài toán tìm đườ ủ
cho m nhóm robot.
ột
V m t công ngh tác gi n:
ề ặ ệ ả muố
- Tìm hi u l p trình nhúng.
ể ậ
- Tìm hi u v ng.
ể ề các thuật toán tìm đườ
- Tìm hi u cách th c giao ti p gi a các robot.
ể ứ ế ữ
- Thự ậ
c hành l p trình cho robot.
12. 4
1.2. Gi i thi
ớ ệ ộ
u m t số ệ
khái ni m liên quan
1.2.1. ch v là gì?
Robot dị ụ
Robot d ch v là lo i robot h , th c hi i trong các công
ị ụ ạ ỗ trợ ự ện thay con ngườ
vi c; ví d c có tính ch t l p l i, các công vi c trong nhà, công
ệ ụ như công việ ấ ặp đi lặ ạ ệ
vi c ph i th c hi n nh ng ch n, nguy hi ng
ệ ả ự ệ ở ữ ỗ dơ bẩ ểm,…. Những robot này thườ
được điề ể ự độ ở ộ ệ ống điề ể ợp được cài đặ ủ
u khi n t ng b i m t h th u khi n tích h t th công
bên trong. Thu t ng ch v
ậ ữ “Robot dị ụ” không có một định nghĩa chính xác. Liên
đoàn Robot Quố ế – IFR) đã đề ấ
c T (The International Federation of Robotics xu t
m t robot d ch v là m t robot mà ho ng bán t
ột định nghĩa: Mộ ị ụ ộ ạt độ ự động hoặc
hoàn toàn t c hi n các d ch v h u ích cho c i và thi t b
ự động để thự ệ ị ụ ữ ủa con ngườ ế ị,
không bao g m các ho ng s n xu
ồ ạ ộ
t đ ả ất.
1.2.2. a robot d ch v
Các ứng dụng củ ị ụ
Ứ ụ ể ủ ủ ếu là để ỗ ợ ệ ủ
ng d ng có th có c a robot ch y h tr trong công vi c c a con
ngườ ệ ứ ụ ộ ố ực như sau:
i. Hi n nay có các ng d ng trong m t s lĩnh v
- Ứ ụ ệ ị ụ ệ ể ợ ử
ng d ng trong công nghi p: Robot d ch v công nghi p có th đư c s
d c hi n các nhi m v n, ch ng h m tra hàn. Nó
ụng để thự ệ ệ ụ đơn giả ẳ ạn như kiể
cũng có các nhiệ ụ ứ ạp hơn, thự ệ ác môi trườ ắ
m v ph c t c hi n trong c ng kh c
nghi t, ch ng h trong vi c tháo d
ệ ẳ ạn như giúp đỡ ệ ỡ các nhà máy điệ ạ
n h t
nhân. Robot cũng có thể được dùng để ự ệ ững hành độ ặp đi
th c hi n nh ng l
l p l p ráp, th n các công vi
ặ ại như lắ ực hiệ ệc tự động hóa khác. Nhưng robot
đượ ử ụ ệp đượ ọ ệ
c s d ng trong công nghi c g i là "Robot công nghi p".
- Ứ ụ ạ ệ
ng d ng trong các nhà hàng, quán bar, khách s n: Hi n nay, nhi u nhà
ề
hàng, quán bar, khách s d ng robot d ch v . Các công vi c mà
ạn đã sử ụ ị ụ ệ
robot có th c hi n ví d n d p, pha ch u ng ph c t p,
ể thự ệ ụ như dọ ẹ ế các đồ ố ứ ạ
hay m chí là ti
thậ ếp đón khách hàng.
- Ứ ụng trong gia đình: Robot trong gia đình thự ệ ệ ụ
ng d c hi n nhi m v mà con
người thườ ự ện xung quanh nhà như lau chùi sàn nhà, cắ
ng xuyên th c hi t
c , d n d p h ,... C a m i qu n
ỏ ọ ẹ ồ bơi húng cũng có thể đóng vai trò củ ột ngườ ả
gia trong gia đình.
13. 5
- Ứ ụ ọ ệ ố ự ệ ề ức năng như
ng d ng trong khoa h c: H th ng robot th c hi n nhi u ch
tiế ặp đi lặ ạ ứ ữ ự độ
n hành các thao tác l p l i trong nghiên c u. Nh ng robot t ng
cũng có thể ự ệ ệ ụ ọc mà con ngườ ặ
th c hi n các nhi m v khoa h i khó ho c
không th c hi n, ví d các vùng bi n sâu, không gian bên ngoài
ể thự ệ ụ như ể
Trái Đất....
Hình 1. 1: M ng d ng th c a robot d ch v
ột ứ ụ ực tế ủ ị ụ
1.2.3. ng bao ph là gì?
Tìm đườ ủ
Tìm đườ ủ ệ ụ
ng bao ph (Coverage Path Planning - CPP) là nhi m v tìm ra
đường đi có thể đi qua tấ ả các điể ầ ế ộ ặ
t c m c n thi t trong m t vùng ho c không gian
cho trướ ạnh đó cũng phải tránh đượ ữ ậ ả ệ ầ
c, bên c c nh ng v t c n. Công vi c này là c n
thiế ấ ề ứ ụ ụ như các robot hút bụi, lau nhà, sơn tườ
t cho r t nhi u ng d ng robot, ví d ng,
v tranh, robot dò mìn, máy c t c , máy làm s ch c a s . Nhi m v mà robot khi
ẽ ắ ỏ ạ ử ổ ệ ụ
thực hiệ ệc này đượ ặ ầu như sau:
n công vi c đ t ra theo các yêu c
- Robot ph t c m và bao ph vùng m c tiêu c n quét m
ải đi qua tấ ả các điể ủ ụ ầ ột
cách hoàn thiện.
- i th n di chuy
Robot phả ực hiệ ển mà không được đè các vùng quét lên nhau.
- Các n liên t n t l p l
tác vụ thực hiệ ục và tuầ ự mà đường đi không bị ặ ại.
- c các v n.
Robot phải tránh đượ ật cả
- S d ng qu
ử ụ ỹ o di chuy ng ho c vòng tròn...).
đạ ển đơn giản (đi thẳ ặ
- B ng d n tùy ch n khi có th .
ổ sung các đườ ẫ ọ ể
T t c nh u ki n trên không ph i lúc nào
ấ ả ững điề ệ ả cũng có thể đáp ứng được,
nh ng ph c t p. Vì v
ất là trong môi trườ ứ ạ ậy mà đôi lúc các mức ưu tiên khác nhau
ứ ớ ỗi điề ệ ần đượ ắ ếp để ỏ ợ ệ ự ệ
ng v i m u ki n c c s p x th a mãn cho phù h p. Vi c th c hi n
14. 6
gi ng h p t ng quát hay áp d ng th c t không ph
ải bài toán tìm đường trong trườ ợ ổ ụ ự ế ải
là điề ễ ể ể ở đây mộ ố ụ như: bài toán “Người bán hàng”
u d dàng, có th k ra t s ví d
(Covering/Travelling Salesman problem), bài toán “Phòng trưng bày” (Art Gallery
problem) hay bài toán “Người đi tuần tra” (Watchman Route problem) đều là các
bài toán có liên h n yêu c u là nh ng bài toán NP-khó.
ệ đế ầu tìm đường, chúng đề ữ
Các thu t toán bao ph có th c phân lo i thành thu t toán bao ph t
ậ ủ ể đượ ạ ậ ủ ối ưu
ho c bao ph
ặ ủ đầy đủ ế ả năng bao phủ ộ ệ ủ ậ
. N u kh toàn b vùng làm vi c c a thu t toán
đượ ứ ặ ẽ ật toán đượ ọ ủ đầy đủ. Trong trườ
c ch ng minh ch t ch thì thu c g i là bao ph ng
h c l i, n u thu t toán nh m t n tích bao ph u ki n
ợp ngượ ạ ế ậ ằ ối đa hóa diệ ủ trong điề ệ
robot ch u các ràng bu i gian ho ng, ngu c và
ị ộc như thờ ạt độ ồn năng lượng, kích thướ
không th m b o bao ph toàn b vùng làm vi c, thì thu c g i là bao
ể đả ả ủ ộ ệ ật toán đượ ọ
ph t
ủ ối ưu.
Các thu t toán bao ph c phân thành hai lo i on-line và off-
ậ ủ cũng có thể đượ ạ
line. Thu t toán off-line ho ng d
ậ ạt độ ựa vào các thông tin tĩnh và các thông tin về
môi trườ ầ ủ ải đượ ết trướ ạt động. Ngượ ạ
ng c n bao ph ph c bi c khi robot ho c l i, các
thuậ ầ ết trướ ẽ ự xác đị
t toán on-line không c n bi c các thông tin này, mà robot s t nh
các thông tin v ng theo th i gian th c d a vào các c m bi c g n trên
ề môi trườ ờ ự ự ả ến đượ ắ
robot. Do đó, các thuậ ạ độ ạ
t toán on-line cho phép robot ho t ng linh ho t ngay c v
ả ới
các môi trườ ết trướ ậ ử
ng mà robot hoàn toàn không bi c. Các thu t toán on-line có s
d ng các c m bi n m c tiêu nên trong m t s ng h p còn
ụ ả ến để đánh giá và đi đế ụ ộ ố trườ ợ
có th c g
ể đượ ọi là gi m bi
ả ậ ủ ự ả
i thu t bao ph d a trên c ến.
1.3. Các phương ả ế ụ ế ậ ủ
pháp gi i quy t và các công c ti p c n bài toán bao ph
1.3.1. i quy t bài toán bao ph
Phương pháp giả ế ủ
Có ba hướng chính để ả
gi i quyế ủ, đó là:
t bài toán bao ph
- Phương pháp phân chia vùng làm việ ổ ể
c c đi n.
- Phương pháp dự ớ
a trên lư i ô vuông.
- Phương pháp sử ụ
d ng nhóm robot.
K t h p hai hay nhi ng gi i quy
ế ợ ều hướ ả ế ở trên để ả
t gi i quyế ủ
t bài toán bao ph .
MSTC chính là thu t toán d p c n vùng bao ph
ậ ựa trên phương pháp tiế ậ ủ thành lưới
15. 7
các ô theo thu t toán cây bao trùm STC và k t h p s d ng m bao
ậ ế ợ ử ụ ột nhóm robot để
ph .
ủ
Thuật toán MSTC đượ ử ụng trên các môi trường đã biết hay chưa biế
c s d t có
thể ọ
g i chúng là Offline -MSTC và Online-MSTC.
1.3.2. n bài toán
Các công cụ tiếp cậ
Các công c p c n bài toán g
ụ tiế ậ ồm:
- t th nghi m thu ng mô ph ng
Tiến hành cài đặ ử ệ ật toán trên môi trườ ỏ
Gazebo có vật cản.
- S d ng ROS phiên b n Indigo trên h u hành Ubuntu 14.04.
ử ụ ả ệ điề
- C++
Ngôn ngữ
- K i các nhóm robot b ng Client Server trên C++
ết nố ằ –
- Chạy trên môi trườ ự ế ớ
ng th c t v i robot Kobuki.
1.4. N và k t qu c hi c
ội dung đề tài ế ả thự ệ ợ
n đư
1.4.1. Nội Dung đề tài
N này trình bày chi ti ng v
ội dung đề tài ết nhữ ấn đề như sau:
- Tìm hi u t ng quan v i quy :
ể ổ ề các phương pháp giả ết bài toán bao phủ
- Tìm hi u và nghiên c u thu ng bao ph cho nhóm
ể ứ ật toán tìm đườ ủ MSTC
robot (MSTC-Offline và ORMSTC).
- xu t toán MSTC m i cho nhóm robot.
Đề ất thuậ ớ
- t th nghi m thu ng mô ph ng Gazebo
Tiến hành cài đặ ử ệ ật toán trên môi trườ ỏ
và trên môi trườ ậ ớ
ng th t v i robot Kobuki.
1.4.2. K t qu c hi c
ế ả thự ệ ợ
n đư
Cho t i th m hi n t i, tác gi c hi c nh ng công vi
ớ ời điể ệ ạ ả đã thự ện đượ ữ ệc như
sau:
- Tìm hi u v các công c h trong l p trính nhúng.
ề ề ụ ỗ trợ ậ
- Tìm hi u v i quy
ể ề các phương pháp giả ế ủ ể ề ộ ố
t bài toán bao ph , hi u v m t s
thuậ ủ ể ớ ộ
t toán bao ph tiêu bi u v i m t robot.
- Tìm hi u v i quy t bài toán bao ph MSTC tiêu bi u là
ể ề các phương pháp giả ế ủ ể
MSTC-Offline và ORMSTC.
16. 8
- xu pháp gi i quy t MSTC m i v ng có v t c
Đề ất các phương ả ế ớ ới môi trườ ậ ản
2x2 và môi trườ ậ ả
ng v t c n 1x1.
- nghi m l p trình thu t toán trên thu t toán xu MSTC v i nhóm
Thử ệ ậ ậ ậ đề ất ớ
robot, sau đó tiế ạ ử ệm và thu đượ ế ả
n hành cho ch y th nghi c k t qu :
o Chạy ng h p thu t toán ch y b ng, không có robot nào
được trườ ợ ậ ạ ình thườ
b h ng mô ph ng Gazebo.
ị ỏng trong môi trườ ỏ
o X c m t s ng h p có robot ch ng mô ph ng
ử lý đượ ộ ố trườ ợ ết trong môi trườ ỏ
Gazebo.
- Chạy được trườ ợp bình thườ ị ỏ
ng h ng, không có robot nào b h ng trong môi
trườ ự ế
ng th c t .
17. 9
CHƯƠNG 2 PHƯƠNG PHÁP GIẢI QUYẾT BÀI TOÁN BAO PHỦ
.
K ho ch bao ph bao ph là m t nhi m v quan tr i v i robot, v
ế ạ ủ ủ ộ ệ ụ ọng đố ớ ới
nhi u ng d ng th c ti n ch ng h làm s , c t c , khai thác, thu ho ch,
ề ứ ụ ự ễ ẳ ạn như ạch sàn ắ ỏ ạ
sơn, và làm sạ ấ ả ể ại đây, robot được đưa ra mộ
ch các ch t th i nguy hi m,... T t công
vi c trong m t vùng b n, có th có nh ng ng i v t, tr ng i.
ệ ộ ị chặ ể ững chướ ạ ậ ở ạ Robot được
gi nh có m t công c k t h p c a m t hình d ng nh ng là các c
ả đị ộ ụ ế ợ ủ ộ ạ ất định thườ ảm
bi n và/ho c thi t b truy câp theo vùng tu n t . Robot c n ph c các
ế ặ ế ị ầ ự ầ ải “thăm” tất ả
điể ự ệc. Thường thì kích thướ ụ ủ ỏ hơn
m trong khu v c làm vi c công c c a robot nh
nhi u so v i khu v c làm vi c c a nó. Nhi m v c a robot là tìm ki m và di chuy n
ề ớ ự ệ ủ ệ ụ ủ ế ể
d c theo m ng sao cho nó bao ph c g i là tìm
ọ ột con đườ ủ hoàn toàn. Đôi khi đượ ọ
ki m hoàn toàn vùng, ho là quét.
ế ặc có thể
2.1. Một số phương pháp giải quyết bài toán bao phủ với đơn robot
Thuậ ủ đơn giả ất là điề ển robot đi mộ ẫ
t toán bao ph n nh u khi t cách ng u nhiên
trong vùng làm vi c. Theo cách ti p c n này, rõ ràng n u robot ho ng trong m
ệ ế ậ ế ạt độ ột
th t
ời gian đủ ộ ệ ủ ẽ đượ ủ. Đây là thuậ
lâu thì toàn b vùng làm vi c c a robot s c bao ph
toán đượ ử ụ ề ụi như Trilobite củ ổ
c s d ng trong nhi u robot hút b a Electrolux và n i
tiế ấ ủa iRobot. Đặc điể ủa phương pháp này là đơn giả
ng nh t là Roomba c m c n,
không c n tính toán ph c t p và không c n các c m bi t ti n trên robot. Tuy
ầ ứ ạ ầ ả ến đắ ề
nhiên, phương pháp này tỏ ệ ả ế ệ ủ
ra không hi u qu n u vùng làm vi c c a robot có kích
thướ ớ ứ ề ậ ả ế ấ ứ ạp. Khi đó chi phí hoạt độ ủ
c l n và ch a nhi u v t c n có k t c u ph c t ng c a
robot tính theo th i gian và ng tiêu th nên r t l n không th p nh
ờ năng lượ ụ trở ấ ớ ể chấ ận
đượ ự ế
c trên th c t .
Trên th gi t nhi u nghiên c u nh m gi i quy
ế ới đã có rấ ề ứ ằ ả ế ệ ả
t hi u qu bài toán
tìm đường đi bao phủ ứ ể đượ ệ hướ
. Các nghiên c u này có th c li t kê vào ba ng chính
như sau:
2.1.1. chia vùng làm vi n
Phương pháp phân ệc cổ điể
Đây là nhóm phương pháp cổ điể ấ ể là điể ởi đầu để
n nh t, có th xem m kh xây
d n là phân chia toàn b
ựng các nhóm phương pháp mới hơn về sau. Ý tưởng cơ bả ộ
vùng làm vi c c n, không ch ng l n, và không ch
ệ ủa robot thành các cell đơn giả ồ ấ ứa
18. 10
v t c n. T ng di n tích các cell này b ng di n tích mà robot ph i bao ph
ậ ả ổ ệ ằ ệ ả ủ. Do đó,
bài toán tìm đường đi bao phủ ở ệ ủ
tr thành bài toán phân chia vùng làm vi c c a robot
thành các cell. Vì các cell không ch a v t c n, nên robot có th d dàng bao ph
ứ ậ ả ể ễ ủ
t ng cell b ng cày ho c quét theo
ừ ằng các thao tác đơn giản như quét kiểu ziczag đườ ặ
vòng tròn. Công vi c c có th bao ph c h t các cell
ệ ủa các robot là làm sao để ể ủ đượ ế
đó, và việc di chuyể ữ ể ối ưu nhấ ể
n gi a các cell sao cho có th t t có th .
Hình t cell hình ch t b
2.1: Bao ph m
ủ ộ ữ ậ
nh ằng thao tác đi ziczag
2.1.1.1.Thuật toán phân chia theo hình thang
Đây là thuậ ậ ầ ết thông tin môi trườ ệ
t toán off-line. Thu t toán c n bi ng làm vi c
để ự ệ ệ ồ
th c hi n phân chia vùng làm vi c thành các thành các hình thang, không ch ng
chéo lên nhau. Vi c phân chia các hình thang hình thành d a trên chia theo tr
ệ ự ục
tung ho c tr hình 2.2 k ra quan h
ặ ục hoành như ở dưới đây. Sau đó một đồ thị ề chỉ ệ
v m t không gian gi a các cell s c hình thành. T o bao ph toàn
ề ặ ữ ẽ đượ ừ đó để đảm bả ủ
b vùng làm vi c, robot c n tìm ra m t c k .
ộ ệ ầ ột đường đi qua tấ ả các cell trên đồ thị ề
Cu i cùng, robot th c hi ng ziczag t i m i cell, và di chuy n gi a các
ố ự ện đi theo đườ ạ ỗ ể ữ
cell theo đúng thứ ự ỉ ra trong đường đi đã xác định trên đồ ị ậ
t ch th . Thu t toán hình
thang i các vùng làm vi
[1] khá hi u qu v
ệ ả ớ ệc đơn giả ạng đa giác.
n d
19. 11
Hình 2. 2: Ví d v
ụ ề thuật toán phân chia hình thang
2.1.1.2.Thuật toán phân chia Boustrophedon
Thuậ ự ật toán trên và đượ
t toán d a trên thu c ứ ụ ề ậ
ng d ng khá nhi u là thu t toán
phân chia boustrophedon còn đượ ọ ật toán đườ
c g i là thu ng cày [1]. Thu t toán này
ậ
tương tự ớ ậ án phân chia hình thang nhưng cho phép nố ề
v i thu t to i các cell k nhau
mà robot có th quét b i m ng ziczag l i. Trong thu t toán này, m nh ch
ể ở ột đườ ạ ậ ột đỉ ỉ
đượ ể ở ộ ả ống dướ ậ
c xem xét khi nó có th m r ng c lên trên và xu i. Thu t toán
boustrophedon phát tri c k t h p vi c xây d thì A* tiêu bi
ển đượ ế ợ ệ ựng lưới đồ ểu như
thu môi
ậ ật toán đượ ụ ể ủ
t toán BA*. Thu c áp d ng phát tri n trong bài toán bao ph
trường chưa biế ậ ủ ậ ệ
t, thu t toán bao ph on-line. Trong thu t toán này, vùng làm vi c
c a robot s c chia thành các vùng boustrophedon có hình d ng ph c t p mà
ủ ẽ đượ ạ ứ ạ
robot có th bao ph trong m t l n quét. Thu t toán BA* th c hi n tìm ki m các
ể ủ ộ ầ ậ ự ệ ế
vùng boustrophedon ngay trong quá trình robot chạy, đồ ời đưa ra cơ chế
ng th quay
lui để đả ả ấ ả các vùng boustrophedon đều đượ ấ
m b o t t c c tìm th y và không gian làm
vi c c c bao ph toàn b . Hình
ệ ủa robot đượ ủ ộ ở dưới đây mô tả ộ ụ
m t ví d phân chia
các vùng boustrophedon d a vào thu t toán BA* v i b t 1
ự ậ ớ ốn vùng được đánh số ừ
tới 4 và quỹ o di chuy
đạ ển tương ứ ủ
ng c a robot.
20. 12
Hình 2. 3: Ví d v
ụ ề thuật toán BA*
2.1.2. i ô vuông
Phương pháp dựa trên lướ
Tìm đường đi bao phủ ựa trên lướ là hướ ế ậ ạ
d i (grid-based) [1] ng ti p c n m nh
và đượ ề ấ ả ết bài toán tìm đường đi bao phủ. Phương
c quan tâm nhi u nh t khi gi i quy
pháp này th hi n toàn b ng làm vi c c a robot trên m t b d
ể ệ ộ môi trườ ệ ủ ộ ản đồ ạng lưới
ô vuông. M i nh n m t giá tr cho bi t t i v ng ng i v
ỗi ô trên lướ ậ ộ ị ế ạ ị trí ô đó là chướ ạ ật
hay vùng không gian tr ng. Toàn b i cho bi t hình d ng x p x c a không gian
ố ộ lướ ế ạ ấ ỉ ủ
ho ng c ng ng i v t bên trong. Hình m t ví
ạt độ ủa robot và các chướ ạ ậ dưới đây mô tả ộ
d b i ô vuông v i hai v t c c c a m ng b ng
ụ ản đồ lướ ớ ậ ản. Kích thướ ủ ỗi ô vuông thườ ằ
kích thướ ủ ặ ấ ần kích thướ
c c a robot ho c là g p hai l c robot.
21. 13
Hình 2. 4: Ví d i ô vuông v i ng
ụ phương pháp phân chia dựa trên lướ ớ hai chướ
ngại vật
2.1.2.1.Thuật toán tràn sóng wavefront
Đây ậ ử ụng lưới đạ ện môi trườ ới kích thướ
là thu t toán off-line, s d i di ng v c
g p hai l c robot. Thu t toán wavefront l p k ho ch bao ph hoàn thành
ấ ần kích thướ ậ ậ ế ạ ủ
vào lưới điện trên. Phương pháp này đòi hỏ ả ắt đầ ụ ự
i ph i có ô b u và ô m c tiêu. S
thay đổ ả ằ ề ừ ụ đế ắt đầ ử
i kho ng cách b ng cách lan truy n sóng t ô m c tiêu n ô b u s
d nh s i ph n t u tiên thu t toán gán nhãn s
ụng để chỉ đị ố đặc trưng cho mỗ ầ ử lưới. Đầ ậ ố
0 cho ô m 1 cho t t c các ô xung quanh ô . Quá
ục tiêu và sau đó gán nhãn số ấ ả mà đó
trình đượ ự ện tương tự ớ ạ ặp đi lặ ạ ừ
c th c hi v i các ô còn l i. Quá trình này l p l i t ng
bước cho đế ấ ả các ô đượ ộ ố ụ ể. Quá trình đó đượ ọ
n khi t t c c gán m t s nhãn c th c g i là
quá trình transform (trán sóng). Hình 2.5 ví d hi n minh h a quy trình này trên
ụ thể ệ ọ
m ng [1]. Khi chuy i kho c tính toán xong, k ho ch bao
ột môi trườ ển đổ ảng cách đượ ế ạ
ph có th c tìm th y b ng cách b u t các ô b u và l a ch n các ô lân
ủ ể đượ ấ ằ ắt đầ ừ ắt đầ ự ọ
c n v i các nhãn cao nh u có hai ho c nhi u ô lân c n
ậ ớ ất chưa được thăm. Nế ặ ề ậ chưa
được thăm chia sẻ ộ ột trong các ô đượ ọ ẫ
cùng m t nhãn, thì m c ch n ng u nhiên. Hình
2.6 hi n k ho ch bao ph
thể ệ ế ạ ủ thuật toán transform.
22. 14
.
Hình 2 5: Gán có s cho các ô b ng cách lan truy c sóng v i ô b u (S)
ố ằ ề ớ
n bư ớ ắ ầ
t đ
và ô đích (G).
Hình 2. 6: K ch bao ph s d i kho ng cách v i thu t toán
ế hoạ ủ ử ụng biế ổ
n đ ả ớ ậ
wavefront
2.1.2.2.Thuật toán cây bao trùm.
Thuật toán này thu p c n d c
ộc phương pháp tiế ậ ựa trên lưới ô vuông đã đề ập
t trên. Trong thu t toán này, chia nh d n vùng làm vi c thành các ô vuông kích
ới ở ậ ỏ ầ ệ
thướ ọ ớ ỡ ỗi robot (các robot đượ ả đị
c 2Dx2D g i là cell, v i D là kích c m c gi nh là
gi ng nhau), m ô a b n ô con, g i là subcell, c b
ố ỗi chứ ố ọ có kích thướ ằng kích thước
robot và b qua nh ng cell b m (m t ph n ho c toàn ph n) b i v t c n. Các
ỏ ữ ị chiế ộ ầ ặ ầ ở ậ ả
cell tr ng t o thành m t c có các nodes m c a t ng cell và
ố ạ ộ ấu trúc đồ thị là tâm điể ủ ừ
các cạnh là đoạ ẳ ối tâm điể
n th ng n m các cell liề ề
n k [2].
23. 15
Hình 2. 7: Phân chia cell trong thu t toán cây bao trùm
ậ
L p thu t toán d a trên cây bao trùm tiêu bi u là thu t toán Spiral-
ớ ậ ự ể ậ STC
(Spiral Spanning Tree Coverage). Spiral-STC [2] là thu ng on-line
ật toán tìm đườ
v i c xây d ng theo hình xo a robot trong
ớ đường đi của robot đượ ự ắn ốc. Đường đi củ
thuật toán này đượ ằ ấ ừ ứ ị ắt đầ ủ
c hình thành b ng cách xu t phát t cell ch a v trí b u c a
robot r ng bên c nh theo chi c chi ng h . Quá
ồi đi sang các cell trố ạ ều ngượ ều kim đồ ồ
trình ti p t c t i khi không còn cell nào ng thì robot b
ế ụ ớ trố ắt đầu đi theo chiều ngược
l c cell là 2Dx2D, robot s không bao gi hai l n
ại. Do kích thướ ẽ ờ đi qua một subcell ầ
và s quay l i v toàn b di n tích làm vi Thu
ẽ ạ ị trí ban đầu sau khi đã bao phủ ộ ệ ệc. ật
toán có đường đi ố ỗi ô được thăm chỉ ớ ộ ầ ả ộ ụ ề
t i, m v i m t l n. Hình 2.8 mô t m t ví d v
đườ ủ ủa robot đượ ụ ậ
ng bao ph c c hình thành khi áp d ng thu t toán Spiral-STC.
24. 16
Hình 2. 8: Đườ ủ ủ ụ
ng bao ph c a robot khi áp d ng thu STC
ậ –
t toán Spiral
Giả ậ ầ ầ
i thu t Spiral-STC d n d n xây d ng m t cây bao này và
ự ộ trùm cho đồ thị
s d
ử ụng cây bao trùm đó để sinh ra đườ ẫ ủ như sau: cùng vớ ệ
ng d n bao ph i vi c xây
d ng cây bao trùm, robot chia nh m i cell nó b t g p thành b n subcell nh u có
ự ỏ ọ ắ ặ ố ỏ đề
kích thước D và có cùng kích thước cũng như hình dạ ớ ụ ụ ụ ụ
ng v i d ng c quét. D ng c
quét đi theo đườ ẫ ủ ầ ần theo cây bao trùm đã
ng d n c a các subcell vòng quanh d n d
đượ ựng cho đế ộ ậ ợ ống đượ ủ Ở đây mộ
c xây d n khi toàn b t p h p các cell tr c bao ph . t
cell tr c là thì coi
ống là “mới” khi tất cả ố ủa nó chưa đượ ủ, ngượ
b n subcell c c bao ph
là “cũ”. Tứ ỉ ần 1 subcell trong cell đã đượ ủ, cell đó sẽ đượ
c là ch c c bao ph c coi là
“cũ”.
2.2. Phương pháp giải quyết sử dụng một nhóm robot
Phương pháp tiế ậ
p c n này s d ng nhi u robot ho ng song , nh
ử ụ ề ạt độ song ờ đó
cho phép rút ng n th i gian bao ph không gian làm vi c b ng cách phân chia công
ắ ờ ủ ệ ằ
vi c cho t n a, khi k t h p ho ng c a nhi u robot h ng
ệ ừng robot. Hơn thế ữ ế ợ ạt độ ủ ề ệ thố
còn có th gi i quy t nhi u v khó khác. Ch ng h n các robot có th giúp
ể ả ế ề ấn đề ẳ ạ ể trợ
l n nhau khi có robot g p l i trong quá trình làm vi
ẫ ặ ỗ ệc.
Các h ng s d ng nhi c xây d m r ng
ệ thố ử ụ ều robot thường đượ ựng trên cơ sở ở ộ
các thu c a m
ật toán tìm đường đi bao phủ ủ ột robot như phân chia boustrophedon,
25. 17
cây bao trùm, m - t s t toán bao ph dành riêng
ạng nơ ron. Ngoài ra cũng có mộ ố thuậ ủ
cho h c phát tri
ệ ố ề đượ
th ng nhi u robot ển.
Có th nêu ra m t s t thu t toán bao ph
ể ộ ố tiêu chí chính để đánh giá mộ ậ ủ, như
là “tính bao phủ ộ” (tạo ra đường đi bao phủ ộ đượ ự ệ
toàn b toàn b c khu v c làm vi c),
“tính hiệ ả” (robot di chuyể ự ật toán đó có thể ệ
u qu n d a theo thu hoàn thành công vi c
trong th i gian nhanh nh t có th nh m h nhau
ờ ấ ể), “tính mạ ẽ” (các robot có thể ỗ trợ
trong trườ ợ ị ỗi). Ngoài ra, người ta cũng xét cả ớ ệ
ng h p có thành viên b l t i vi c không
dư thừ ờ ủ ứ ộ đượ ạ ầ ở
a đư ng bao ph , t c là không có m t cell c quét l i hai l n tr lên.
Có th l y ví d tiêu bi u cho nhóm các thu t toán s d
ể ấ ụ ể ậ ử ụng phương pháp giải
quy t bài toán này là thu t toán phân chia boustrophedon s d ng nhóm robot
ế ậ ử ụ .
Thuật toán này nh m bao ph s d ng m t nhóm robot trong môi
ằ ủ đường đi đầy đủ ử ụ ộ
trường chưa xác định (môi trườ ả ủ ậ
ng on-line). Nhóm tác gi c a thu t toán này cho
r ng, vi c s d ng nhi u robot có th gi m th i gian làm vi c, tuy nhiên ch có th
ằ ệ ử ụ ề ể ả ờ ệ ỉ ể
đạ ợ ối đa hiệ ả ệ ếu như số ợng các vùng mà robot đi lặ ạ
t đư c t u qu làm vi c n lư p l i là ít
nh t toán này t p trung vào vi c gi m thi u t l p l i các
ất. Do đó thuậ ậ ệ ả ể ối đa sự ặp đi lặ ạ
vùng di chuyể ủ ậ
n c a robot. Thu t toán này s d ng cùng m
ử ụ ột phương pháp phân tích
cell hai chi t toán bao ph boustrophedon s d
ều như thuậ ủ ử ụng robot đơn, nhưng nó
m r x lý vi c làm th các robot có , và
ở ộng để ử ệ ế nào để thể đi hết các vùng đơn lẻ
làm th phân b các robot gi a các vùng. Gi i pháp c a h
ế nào để ố ữ ả ủ ọ là tính toán để
h n ch các thành viên trong nhóm robot di chuy n giao nhau trong quá trình làm
ạ ế ể
vi c. Các robot s di chuy
ệ ẽ ể ủ
n ch yếu theo các đườ ẳng. Để ể quét đượ
ng th có th c
toàn b m nh n hai vai
ộ vùng đang làm việc, các robot được chia làm hai nhóm để đả ậ
trò: m c g
ột vài robot, đượ ọi là explorer (robot thăm dò) đi men theo các ranh giới
c a vùng m c tiêu hi n t c g i là coverer (robot bao
ủ ụ ệ ại, trong khi các robot khác, đượ ọ
ph ) th c hi n các chuy ng t có th c các ph n còn l
ủ ự ệ ển độ ới lui để ể đi hết đượ ầ ại. Để
phân ph i các nhi m v i các vùng ho ng cho
ố ệ ụ cho các robot, cũng như phân phố ạt độ
t ng robot, m
ừ ột cơ chế đấu giá tham lam được sử ụ
d ng [1].
Hình 2.9 mô t vi c hai robot explorer th c hi n di chuy n hai biên trên và
ả ệ ự ệ ể ở
dướ ủ ụ ự ệ ển độ ớ
i c a vùng m c tiêu, trong khi ba robot coverer th c hi n các chuy ng t i
26. 18
lui ở phía trong vùng đó.
Hình 2. 9: Robot th c hi m t toán phân chia
ự ện bao phủ ột cell theo thuậ
boustrophedon s d ng nhóm robot
ử ụ
27. 19
CHƯƠNG 3 ẾT VÀ PHÁT TRIỂN THUẬT TOÁN MSTC
. LÝ THUY
3.1. Các tiêu chí đánh giá
Cũng như đã đề ậ ở ần phương pháp sử ụ ở
c p trong ph d ng nhóm robot trên,
ba tiêu chí chính để đánh giá mộ ậ ủ ử ụ
t thu t toán bao ph s d ng nhóm robot là:
- t toàn b c khu v
Tính bao ph toàn b :
ủ ộ ạo ra đường đi bao phủ ộ đượ ực
làm việc.
- robot di chuy n d a theo thu hoàn thành
Tính hi u qu :
ệ ả ể ự ật toán đó có thể
công việ ờ ấ
c trong th i gian nhanh nh t có thể.
- các robot có th h nhau tron ng h p có thành
Tính m nh m :
ạ ẽ ể ỗ trợ g trườ ợ
viên b l
ị ỗi.
Ngoài ra, trong nhi ng h p, khi xét t i tính hi u qu c a thu t toán,
ều trườ ợ ớ ệ ả ủ ậ
n t i vi ng bao ph , t c là không có m t ô
gười ta cũng xét cả ớ ệc không dư thừa đườ ủ ứ ộ
đượ ạ ầ ở
c quét l i 2 l n tr lên [3].
3.2. t toán bao ph v i m t nhóm robot d a trên cây bao trùm trên môi
Thuậ ủ ớ ộ ự
trường đã biết
3.2.1. K c bao ph
hu vự ủ
Ở ật toán này robot đã biế ự ệ ộ ản đồ đầy đủ
thu t khu v c làm vi c, robot có m t b
c a khu v c làm vi c, các ranh gi i khu v c làm vi c và t t c ng ng i v
ủ ự ệ ớ ự ệ ấ ả các chướ ạ ật
(đượ ả định là tĩnh). Mỗ ạ ụ ống như mộ
c gi i Robot có hình d ng công c liên quan gi t
hình vuông kích thướ ục tiêu là để ủ ự ệ ử ụ
c D. M bao ph các khu v c làm vi c s d ng
công c này. Trong các ng d ng th c t , công c này có th ng v i các
ụ ứ ụ ự ế ụ ể tương ứ ớ
c m bi n ch c ch c quét qua các khu v c làm vi phát hi n m
ả ế ắ ắn là đượ ự ệc để ệ ột đặc
trưng quan trọng, và kích thướ ể được xác đị ở ạ ệ ả ủ
c D có th nh b i ph m vi hi u qu c a
b c m bi n. Gi nh các robot có th di chuy n v i công c liên t c trong b n
ộ ả ế ả đị ể ể ớ ụ ụ ố
hướng cơ bả ố ả ể xác đị ị ả
n (lên / xu ng, trái / ph i), và có th nh v b
trí n thân trong khu
v c làm vi trong ph m vi ô con
ự ệ ể
c đ ạ kích thước D.
Chia khu v c này thành các ô vuông (cell) c 2Dx2D (m i ô bao
ự có kích thướ ỗ
g m 4 ô con c DxD) và lo i b c bao ph m t ph
ồ (subcell) có kích thướ ạ ỏ các ô đượ ủ ộ ần
b ng ng i v t. M t c u t p h
ởi các chướ ạ ậ ộ ấ rúc đồ thị G (V, E). V được định nghĩa là tậ ợp
28. 20
các nodes, v nodes là nh m trung tâm c a m i ô, và E là t p các c nh, là
ới ững điể ủ ỗ ậ ạ
nh n th ng n i nh m trung tâm c a các ô lân c n. Xây d ng m t cây
ững đoạ ẳ ố ững điể ủ ậ ự ộ
bao trùm cho đồ ị ử ụ ấ ỳ
th G s d ng b t k thu t toán xây d ng cây bao trùm. S
ậ ự 0,..., Sk-1
là vị trí ban đầ ủ ạ ủ ự ệ
u c a các robot trong ph n vi phân tích chia ô c a khu v c làm vi c.
Các robot đượ ả định là đồ ấ ộ ốc độ và kích thướ ụ ủ
c gi ng nh t m t t c công c c a
chúng D. S d ám ch s i ám ch s ng các
ử ụng N để ỉ ố lượng ô trong lướ , và n để ỉ ố lượ ô
con. Khu v c làm vi c liên ti p, t c là, t t c các ô c a khu v c làm vi u có th
ự ệ ế ứ ấ ả ủ ự ệc đề ể
truy c p t b t k v trí b u nào.
ậ ừ ấ ỳ ị ắ ầ
t đ
3.2.2. Thuật toán MSTC Offline
3.2.2.1.Xây dựng cây bao trùm
Khi xây d ng cây trong m t h ng v i duy nh t m t robot thì ng
ự ộ ệ thố ớ ấ ộ ảnh hưở
c a c u trúc c a cây v m t lý thuy t không n th i gian bao ph . Rõ
ủ ấ ủ ề ặ ế ảnh hưởng đế ờ ủ
ràng, ngườ ể ố ự ới đặc điểm đặ ệ ụ như
i ta có th mu n xây d ng cây bao trùm v c bi t, ví d
gi m thi u s l n ch ng. Tuy nhiên, th i gian bao ph v c b m b
ả ể ố ầ ọn hướ ờ ủ ẫn đượ ảo đả ởi
các thu t toán STC là tuy n tính v i khu v c làm vi c d i vuông, vì
ậ ế ớ ự ệ ựa trên lướ cell
m i các c bao ph m t l ng th i gian b o hi m là N.
ỗ cell trừ cell biên đượ ủ ộ ần, do đó tổ ờ ả ể
M t khác, trong các h u trúc c a cây có th ng r t quan
ặ ệ thống đa robot, cấ ủ ể ảnh hưở ấ
trọ ờ ủ ự ự ọ ủ
ng vào th i gian bao ph . S l a ch n c a cây bao trùm d a vào v
ự ị trí ban đầu
c a các robot. B t k thu t thoán bao ph ng nh u d a trên m
ủ ấ ỳ ậ ủ đa robot nếu đồ ất đề ự ột
cây bao trùm thì c i thi n t n [3]. Có th ng minh, g i D
ả ệ ối đa 2 lầ ể chứ ọ i là kho ng cách
ả
gi a robot R
ữ i và Ri+1. Tính toán kho ng cách l n nh t D
ả ớ ấ max= max R1≤i≤N{Di} thời
gian bao ph s d ng thu t toán không quay lui. D a vào Dmax có th
ủ ử ụ ậ ự ể xác định
thờ ủ hi robot đồ ấ ự ộ
i gian bao ph là A. K ng nh t d a trên m t cây bao trùm thì th i gian
ờ
bao ph gi m xu ng
ủ ả ố
. N ng h p x u nh t v i robot D
ếu trườ ợ ấ ấ ớ max di chuy n
ển đế
các robot khác thì đố ớ ột đoạ
i v i m n khác Dj h i i gian t u cho phép
đòi ỏ thờ ối đa là nế
quay lui s là t' >
ẽ
nói cách khác nó s c
ẽ ải thiện được
{
}
29. 21
Mã giả ậ
thu t toán 1:
Thuật toán 1: Creat_tree(W, S0,..., Sk-1)
Đầu vào:S 0,..., Sk-1 v u c a các robot, ng làm vi
ị trí ban đầ ủ W môi trườ ệc là đồ
thị ạng lướ
d i
Các bướ ế
c ti n hành:
1. Xây d ng các cây con
ự
2. For Ri, V i m i robot R
do ớ ỗ i
3. Tìm và tính toán các n k m i (trái, ph
cell liề ề ớ ải, trên, dưới)
list_cell ← Ni
4. If list_cell.size()>1 then
5. Tính toán kho ng cách Manhattan và ch n m t cell
ả ọ ộ có
kho ng cách Manhattan t i thi n các robot khác
ả ố ố
i đa t ểu đế
6. If list_cell. size() =0 then
7. Di chuy n thì th n th t c Hilling(quay v nút g
ể ực hiệ ủ ụ ề ốc)
8. Tìm c u c a cho k cây con
ầ ủ
a) a các các cây con
Tìm ng u nhiên h p l c u B gi
ẫ ợ ệ ầ ữ
b) p kho ng cách gi a hai cây liên ti p S
Tính toán thiết lậ ả ữ ế i
c) Thiết l i t
ậ ị ở
p giá tr kh ạo ban đầu Best_result, S0
d) S
If i > Best_result then
Best_result = Si
9. v cây bao trùm Best_result
Trả ề
Giả ả ậ
i thích mã gi thu t toán 1:
Thuật toán 1 [3] là thu t toán xây d ng cây v o
ậ ự ới hai bước quan trong đó là tạ
cây con và tìm c u n i b t k
ầ ố ấ ỳ c cây hoàn ch c 1 v i m
trên cây để đượ ỉnh. Bướ ớ ỗi
robot i v xây d ng 1 các lá cho cây con b ng cách tìm các cell liên k
ới ự ằ ề
theo b ng (trái, ph i) vi c tìm th y n u 1 cell n cell
ốn hướ ải, trên, dướ ệ ấ ế thì đi đế đó.
Việ ụng là đồ ờ ế ều hơn mộ ả
c xây d ng th i. N u có nhi t thì tính toán kho
cell ng cách
Manhattan tối đa củ ả ố ểu đế ạ ế
a kho ng cách t i thi n robot còn l i n u không có quay lui
v nút g B c th 2 là tìm các c u cho cây bao trùm v i c u kh i t o chính là
ề ốc. ướ ứ ầ ớ ầ ở ạ
30. 22
điể ắt đầ
m b u S0, n u ch n ng c c u S
ế ọ ẫu nhiên đượ ầ i có kho ng cách gi a hai cây con
ả ữ
là xa hơn S0 y c .
thì lấ ầu đó
Hình 3.1: Xây d ng cây bao trùm
ự
3.2.2.2.MSTC Offline không quay lui
Công vi c bao ph n [3]. u tiên, thu toán 2
ệ ủ được chia làm hai giai đoạ Đầ ật
xây d ng m ng s d ng d
ự ột đườ đi STC ử ụ ựa trên cây đã tạ ự ậ
o d a trên thu t theo
toán 1
hướng ngượ đồ ồ ậ ử ụng đường đi STC củ ậ
c kim ng h . Thu t toán 3 là s d a thu t toán 2
để ự ệ ệ ủ ỗi robot đươc xác đị ị trí ban đầu trên đường đi và
th c hi n vi c bao ph , m nh v
d n v c
ựa vào đó để đi đế ị trị ủa robot khác. Điều này đượ ự ện khi đả ả
c th c hi m b o
r ng các robot có th n u robot k p b l ng vi c th c hi n c
ằ ể giúp đỡ ế ế tiế ị ỗi. Lưu ý rằ ệ ự ệ ủa
thu t
ậ toán 2 là hoàn toàn không ph i t i robot th c hi n công vi
ả ập trung, như mỗ ự ệ ệc
độ ậ ủ
c l p c a mình.
Mã giả ậ
thu t toán 2:
Thuật toán 2 k (W,
ế hoạch đường đi MSTC S0,..., Sk−1)
Đầu vào:S 0,..., Sk-1 v u c W là khu v c làm vi
ị trí ban đầ ủa robot, ự ệc
Các bướ ế
c ti n hành:
31. 23
1. n b m b u: S
Chọ ất kì điể ắ ầ
t đ 0
2. Creat_tree(W, S0,..., Sk-1)
3. B u t S
ắt đầ ừ 0, xây d i khu v c làm vi c W d
ựng P, đường đi STC vớ ự ệ ựa
trên cây bao trùm trên.
4. V m S
ới các điể 0,..., Sk−1 d C, B u t S
ọc đường đi ST ắt đầ ừ 0 và di chuyển
trong 1 hướng ngược kim đồ ồ
ng h .
5. v ng v u c
Trả ề đường đi P, ứ ớ ể ầ
i các đi m ban đ ủa robot S0,..., Sk−1
Giả ả ậ
i thích mã gi thu t toán 2:
B u t m S
ắt đầ ừ điể 0, d a vào cây khung c a thu t toán 1, thu t toán 2 xây
ự ủ ậ ậ
d ng m t cây bao trùm cho khu v c làm vi c W xây d
ự ộ ự ệ ựng đường đi bao trùm dòng
3. Tr v m ng h d c theo cây bao trùm b
ả ề ột con đường hướng ngược kim đồ ồ ọ ắt đầu
t i v trí S
ạ ị 0 t c m b u c a t t c robot dòng 5 hình 3.2. Vi c xây
đi qua tấ ả các điể ắt đầ ủ ấ ả ệ
d ng các cây bao trùm trong t toán 1 có th c th c hi n b i m t robot và
ự thuậ ể đượ ự ệ ở ộ
truy n tin t i nh ng robot khác, ho c các robot bi t v
ề ớ ữ ặ ế ị trí các robot khác và được
thự ệ ở ọi con robot độ ậ ử ụ ộ ậ
c hi n b i m c l p trong khi nó s d ng cùng m t thu t toán cho
vi c xây d ng cây.
ệ ự
Hình 3.2: Đường đi cho đa robot
32. 24
Mã giả ậ
thu t toán 3:
Thuật (W,
toán 3 MSTC không quay lui S0,..., Sk−1)
Đầu vào:S 0,..., Sk-1 v u c W là khu v c làm vi
ị trí ban đầ ủa robot, ự ệc
Các bướ ế
c ti n hành:
1. a robot hi n tai
i ← ID củ ệ
2. 1 v trí c a robot ti p theo, theo chu k
t ← i ị ủ ế ỳ
3. v n t S
while ị trí hiệ ại t -1do
4. Di chuy n d n S
ể ọc theo STC đế t, hướng ngược kim đồ ồ
ng h .
5. ng[S
Thông báo hoàn thành đoạn đườ i, St )
6. robot R
while t ng và các v trí [S
khác đang còn số ị 0,..., Sk-1, S0 ] chưa hoàn
thành do
7. Chờ
8. (robot Rt không còn s ng và v
if ố ị trí [S0,..., Sk-1, S0] chưa hoàn
thành) then
9. y ID c a robot ti p theo
i ← t Lấ ủ ế
10. 1 l y v a robot ti p theo c a robot ti p theo
t ← t ấ ị trí củ ế ủ ế
11. quay v c 3
ề bướ
12. K p
ết thúc vòng lặ
13.D ng
ừ
Giả ả ậ
i thích mã gi thu t toán 3:
Đường đi đã đượ ự ề ầ ậ ợ ự
c xây d ng và chia thành nhi u ph n, thu t toán 1 đư c th c
hi n xây d ng cây bao trùm d a trên v u c a t t c các robot. Sau giai
ệ ự ự ị trí ban đầ ủ ấ ả
đoạ ở ạ ở ỗ ắt đầ ủ ầ ủ
n kh i t o ( dòng 1-2), m i robot b u bao ph ph n c a mình [Si,..., Sj), từ
v trí hi n t i S
ị ệ ạ i c n v u S
ủa nó đế ị trí ban đầ j c a robot ti p theo, d
ủ ế ọc theo đường đi
STC theo cây bao trùm có c chi ng h (dòng 3-4). T dòng
hướng đi ngượ ều kim đồ ồ ừ
6- m b o tính m nh m : N u m t robot l i, robot m b u c a robot
11 đả ả ạ ẽ ế ộ ỗ đi tới điể ắt đầ ủ
đó ệ ủ ầ ủ
có trách nhi m bao ph ph n c a nó.
33. 25
3.2.2.3. Phân tích các tiêu chí của thuật toán
- Tính m nh m
ạ ẽ
Xét v m t lý thuy t, thu m b c tính m nh m . Robot
ề ặ ế ật toán này đã đả ảo đượ ạ ẽ
Ri khi th n xong công vi ng h n v
ực hiệ ệc của mình theo hướng ngược kim đồ ồ (đế ị trí
Si đến Sj v trí ti p theo c R
ị ế ủa robot j) và n u robot R
ế j l thì R
ỗi i s c hi n công
ẽ thự ệ
vi c c a robot R
ệ ủ j và công liên t n khi nó nh t t c robot khác
ục đế ận được ấ ả đã thực
hi n xong.
ệ
- Tính bao ph toàn b
ủ ộ
V i khu v c làm vi và robot, t ng h p toàn b nh ng bao ph
ớ ự ệc W k ổ ợ ộ ững đườ ủ
c m b o bao ph c hoàn toàn . Tính ch t này có th
ủa các robot con đả ả ủ đượ W ấ ể được
chứng minh như sau:
o Trong trườ ợ
ng h p :
V i ch m t robot, vi c xây d ng cây con chính là cây bao trùm c a thu
ớ ỉ ộ ệ ự ủ ật
toán 2 b c 2, t m i tính toán kho ng cách cell m i. T t c
ỏ qua bướ ìm cell ớ ả ớ ấ ả
kho ng cách là b ng nhau nên nó s l y giá tr
ả ằ ẽ ấ ị đầu tiên nó đã gán trong list
danh sách các ô. N u robot không nhìn th y cell nào n a thì robot th c hi n
ế ấ ữ ự ệ
tương tự như thuật toán 1 đó là quay về ố ệ ự ệ ậ
nodes g c. Vi c th c hi n thu t toán
đế ế ấ ữ ậ
n khi k t thúc không tìm th y cell nào n a. V y cây bao trùm ch a t t các
ứ ấ
cell khu v c làm vi c W. Và robot s di chuy m kh u S
ự ệ ẽ ển điể ởi đầ 0 đi theo
ngượ ều kim đồ ồ ới đế
c chi ng h trên cây bao trùm v n S0. M i subcell c
ỗ thuộ
cell trên nodes cây bao trùm sẽ được thăm duy nhấ ộ ầ ậ ẽ ậ
t m t l n. V y s thu t
toán bao ph t c trên khu v
ủ ấ
t ả cell ực W.
o Trong trườ ợ
ng h p :
V i cùng m t cây bao trùm a toàn b các cell trên khu v c làm vi c W vì
ớ ộ chứ ộ ự ệ
cây bao trùm chính là s k t h p c a các cây con. M i cây con là vi c tìm
ự ế ợ ủ ỗ ệ
ki các nodes tìm theo b ng. C thu c nodes c a cây con này s
ếm ốn hướ ell ộ ủ ẽ
không thu c b t k
ộ ấ ỳ cây con nào khác. Chính vì khu v c làm vi c là liên ti p
ự ệ ế
nên m i cell có th n b t k nào. V y m i cell s thu c nodes
ỗ ể đi đế ấ ỳ cell ậ ỗ ẽ chỉ ộ
duy nh t trên cây
ấ . Tương tự như trườ ợ ớ
ng h p v i k = 1 các subcell trên cây sẽ
34. 26
được thăm ít nhấ ầ
t 1 l n.
- Tính không dư thừa
N u t t c robot th c thi theo thu t toán trên và không có robot nào b t,
ế ấ ả ự ậ ị chế
thì sẽ nào đi nhiều hơn 1 lần điề ể ứng minh như sau
không có subcell u này có th ch :
N u không có robot nào l i thì vi c xây d a trên cùng m
ế ỗ ệ ựng đường đi dự ột
cây bao trùm d a vào v u c a m i robot nên robot nh
ự ị trí ban đầ ủ ỗ ận được đường đi
c d
ủa robot đó ví ụ robot i hoàn thành đường đi [Si,..., Sj) đến robot j. Cây bao trùm
là cây ch a các cell m i c duy nh t m nodes trên cây (ô ch thu c duy
ứ ỗ cell chỉ thuộ ấ ột ỉ ộ
nh t m t cây con, m i cây con ch a 1 cell duy nh t trên cây) N u không có
ấ ộ ỗ ỉ chứ ấ . ế
robot nào l i thì t t c
ỗ ấ ả robot đi theo đường đi dựa trên cây bao trùm. Đường đi dựa
vào cây ng h t S
bao trùm đi theo chiều ngược kim đồ ồ ừ 0,..., Sk-1, S0 thì m i subcell
ỗ
thuộ ẽ được thăm 1 lầ
c s
cell n.
3.3. t toán bao ph v t nhóm robot v
Thuậ ủ ới mộ ớ ờng chưa rõ
i môi trư
3.3.1. K c bao ph
hu vự ủ
M i robot là m t công c d n ti n hình d ng m
ỗ ộ ụ có kích thước là D để ễ thuậ ệ ạ ỗi
robot xem như ột hình vuông kích thướ ục tiêu là để ủ ự
m c D. M bao ph các khu v c
làm vi c s d ng công c này. Trong các ng d ng th c t , công c này có th
ệ ử ụ ụ ứ ụ ự ế ụ ể
tương ứ ớ ả ến và kích thướ ể được xác đị ở ạ ệ
ng v i các c m bi c D có th nh b i ph m vi hi u
qu c a b c m bi n. Các robot có th di chuy n liên t c trong b n
ả ủ ộ ả ế ể ể ụ ốn hướng cơ bả
(lên, xu ng, trái, ph i), và có th nh v trí b n thân trong khu v c làm vi
ố ả ể xác đị ị ả ự ệc để
trong phạ ộ kích thướ
m vi m t ô con c D.
Robot không bi t ranh gi i khu v c làm vi c chính xác c t t c các v
ế ớ ự ệ ủa ấ ả ị trí
chướ ạ ật (đượ ả định là tĩnh), nhưng các vị trí ban đầ ủa chúng độ ậ
ng ng i v c gi u c c l p.
Chia khu v c này thành các ô c 2Dx2D, m i ô g m b n ô con
ự vuông có kích thướ ỗ ồ ố
kích thướ ế ộ ần là chướ ạ ật thì xem như ô đó chính là
c DxD. N u ô có m t ph ng ng i v
chướ ạ ậ ể ị ố ợ trong lướ ớ ỉ ố ợ ủ
ng ng i v t. Bi u th s lư ng ô i v i N, và ch rõ s lư ng ô con c a
n, t c là, N = 4n. Khu v c bi y m i ô
ứ ực ban đầu là không đượ ết như vậ ỗ ban đầu được
coi là trống.
Điể ởi đầ ủ ậ ự ệ ớ ị
m kh u c a thu t toán là khu v c làm vi c và k robot v i v trí ban
35. 27
đầu độ ậ
c l p: A0,..., Ak-1. Các v a m c gi nh là trong m t
ị trí ban đầu củ ỗi robot đượ ả đị ộ
cell không có chướ ạ ậ ẽ ế ị ủ ả đị ệ ủ
ng ng i v t, và robot s bi t v c
trí a nó. Gi nh làm vi c c a
thuậ ể xác đị ị ủ ển khai lướ ủ
t toán, robot có th nh v trí c a chính nó trong tri i c a khu
v c làm vi
ự ệc.
3.3.2. Thuật toán ORMSTC
Như đã đề ậ ở ả ậ
c p trên, STC (Spanning Tree Coverage) là gi i thu t on-line
dùng cho m t ng, chia nh không gian làm vi c thành b [3]. D
ộ robot di độ ỏ ệ ản đồ ựa
trên thu t toán này, nh m t n d c nh m m nh c
ậ ằ ậ ụng đượ ững điể ạ ủa nhóm robot, người
ta đã phát triể ậ
n các thu t toán sử ụ ử ụ ề
d ng cây bao trùm bao trùm s d ng nhi u robot.
ORMSTC là vi t c a c m t Online Robust Multi-
ết tắ ủ ụ ừ robot STC. Đây là thuật
toán MSTC trong line.
trườ ợ
ng h p on-
Mã giả ậ
thu t toán 4:
Thuật ()
toán 4 -line ORMSTC initialization
On
Đầu vào: c làm vi c, v a robot.
W là khu vự ệ ị trí củ
Các bướ ế
c ti n hành:
1. 2D 2D
Chia khu v c làm vi c thành m cell
ự ệ ột lưới các có kích cỡ x
2. D D
Tiế ụ ỡ
p t c phân chia các cell thành 4 có kích c
subcell x
3. a robot hi n t i
ID củ ệ ạ
4. if a m t subsell
chính giữ ộ then
5.
subcell
6. Di chuy n t
ể ới
7. else
8.
9.
cell có chứa
10.Thông báo
u c a mình t i t
là cell khởi đầ ủ ớ ất cả các robot
11. C p nh p thông tin map v các v u c a các robot khác:
ậ ậ ề ị trí ban đầ ủ
12.Khởi tạo
36. 28
Giả ả ậ
i thích mã gi thu t toán 4:
Thuật toán 4 trên là kh i t o c a thu t toán MSTC on-line nói chung. T
ở ở ạ ủ ậ ất
c các robot cùng ch y kh i t o này. M a kh i t t l p
ả ạ ở ạ ục đích chính củ ở ạo là để thiế ậ
môi trườ ệ ết đượ ở đâu trong bả
ng làm vi c cho các robot, cho phép robot bi c mình n
đồ dòng đầ ệ theo đúng như nhữ ả
. Hai u tiên là vi c phân chia các cell và subcell ng gi
đị ủ ậ ộ ụ ể ột đị
nh c a các thu t toán STC khác. Dòng 3 gán cho m t robot c th m nh danh
nh nh nó v i các robot khác. T dòng 4 t robot di
ằm xác đị ớ ừ ới dòng 8 là đoạn để
chuy a m u v trí c a các robot là ng u
ển vào đúng chính giữ ột subcell. Do ban đầ ị ủ ẫ
nhiên, nên sau quá trình phân chia cell và subcell dòng 1 và dòng 2, kh
ở ả năng các
robot không nằm đúng mộ ấ ở ậ
t subcell là r t cao, b i v y cần đưa robot về đúng
subcell, phụ ụ ệ ể ở các bướ ế Ở đây cũng cầ
c v cho vi c di chuy n c ti p theo. n chú ý là
các robot c n ph i di chuy t nh s n. Lý do là b
ầ ả ển vào đúng subcell có số thứ ự đã đị ẵ ởi
n y, h quy chi a các robot s không gi ng nhau, khi n cho
ếu không làm như vậ ệ ếu củ ẽ ố ế
vi c các robot nhìn 1 cell là cell có th t c n b ng. Sau khi
ệ ể đi vào hay là vậ ả ị ảnh hưở
vào đúng mộ ậ ột subcell xác đị ởi đầ
t subcell, robot i nh n m nh làm subcell kh u (dòng
8) và nh n m nh làm cell kh u (dòng 9). Sau khi nh n v u,
ậ ột cell xác đị ởi đầ ậ ị trí ban đầ
nó thông báo v trí c ng th
ị ủa mình cho các robot khác (dòng 10), và đồ ời cũng cập
nh t l i v u c ng nghi p c a nó (dòng 11). T i dòng 12, m
ậ ạ ị trí ban đầ ủa các đồ ệ ủ ạ ột
m ng c kh i t o v i toàn giá tr , nh m m t n i v
ả connection đượ ở ạ ớ ị null ằ ục đích lưu kế ố ới
các đồ ệ ả ẽ đượ
ng nghi p sau này. M ng này s
connection c trình bày k n
ỹ hơn trong phầ
gi thu
ải thích mã giả ật toán 5 ở dưới.
Mã giả ậ
thu t toán 5:
Thuật toán 5 ORMSTC (W,X)
Đầu vào: Cell robot v (cell cha), cell robot v
ừa đi ra W ừa đi vào X
Các bướ ế
c ti n hành:
1.
3 cell lân c n c theo chi ng h , b u t sau cell
ậ ủa X ều kim đồ ồ ắ ầ
t đ ừ W
2. for do
3. if
then
4. continue p t c v i giá tr p theo
tiế ụ ớ ị tiế
37. 29
5. if đã nằ ộ ạ ủ
m trong m t c nh c a cây bao trùm c a m robot khác
ủ ột
then
6. H xem nó còn s ng không
ỏi robot ố
7. l
if robot trả ời then
8. if
then
9.
10. p t c v i giá tr p theo
continue tiế ụ ớ ị tiế
11. else
12.
13. p t c v i giá tr p theo
continue tiế ụ ớ ị tiế
14. else
15. t
//robot đã chế
16. Xóa robot kh i m ng và thông báo r
ỏ ả ằng robot đó
đã chết
17. nh n i cell robot
Xóa cạ ối vớ đã đi và thông báo
18. V c nh t t
ẽ ạ ừ ới
và thông báo di chuy n t
ể ới
19. Di chuy n t i m t subcell c
ể ớ ộ ủa bằng cách đi theo bên phải
c nh cây bao trùm
ạ
20. Thực thi ORMSTC(X,
)
21.if
then
22. Di chuy n l t d nh cây bao trùm
ể ại từ ới ọc theo bên phải cạ
23. t g
return ừ chỗ ọ ệ
i đ quy
24.if then
25. Thực thi ORMSTC(X, W)
26.Trở ề ở ầ
v subcell kh i đ u
b nh cây bao trùm
ằng cách đi theo bên phải cạ
27.Thông báo hoàn thành công việc của mình
28.while t a chúng
ất cả các robot chưa thông báo hoàn thành công việc củ do
29. nh k các robot có k t n i v i mình xem chúng còn s ng
Kiểm tra đị ỳ ế ố ớ ố
không
38. 30
30. if robot đã chết then
31. nh n i cell robot
Xóa cạ ối vớ đã đi và thông báo
32. c
Thông báo mình chưa hoàn thành công việ
33. L a ch n xem
ự ọ
hay
g n v
ầ ới
mình hơn, di chuyể ều kim đồ ồ hay ngượ ề
n theo chi ng h c chi u
kim đồ ồ ạ ủ ủ ợ
ng h theo c nh c a cây bao trùm c a mình thì thích h p
hơn
34. Di chuy n trên t t n i v
ển theo hướng đã chọ ở ới điểm đã kế ố ới
robot đã chết
35. cell mình k i robot
ết nối vớ j
36. k i v i mình
cell robot j ết nố ớ
37. kh i m ng connection và thông báo
Xóa robot j ỏ ả
38. V c nh t t và thông báo
ẽ ạ ừ ới
39. Di chuyể ớ ủ ằng cách đi theo bên phả
n t i subcell c a b i cây bao
trùm
40. )
Thực thi ORMSTC(X, Y
41.K t thúc vòng l p
ế ặ
42.D ng
ừ
Giả ả ậ
i thích mã gi thu t toán 5:
Thuật toán 5 mô t quá trình làm vi c c a m t robot. T t c
ả ệ ủ ộ ấ ả các robot đều
thự ậ ở ậ ẽ ấ
c thi thu t toán này, b i v y có bao nhiêu robot thì s có b y nhiêu th hi n c
ể ệ ủa
thuật toán này. T dòng 1 t i dòng 27 c a thu t toán này, v n là gi ng thu
ừ ớ ủ ậ ề cơ bả ố ật
toán Spiral-STC. Tuy nhiên, nó thêm vào đó một điể ọng, đó là có kiể
m quan tr m tra
xem robot đồ ệ ố ảng connection dùng để lưu kế
ng nghi p có còn s ng hay không. M t
n i gi a c c t o b i m t cell c a robot hi n t i v m t cell c a robot mà nó
ố ữ ạnh đượ ạ ở ộ ủ ệ ạ ới ộ ủ
g ng di chuy n. Giá tr c
ặp trên đườ ể ị ủa
l n g u tiên
lưu giá trị ầ ặp đầ
c a robot hi n t i robot , và giá tr c
ủ ệ ại vớ ị ủa
l n g p g n
lưu giá trị ầ ặ ầ
nh t c a robot hi n t i v i robot . Giá tr m m c v cho
ấ ủ ệ ạ ớ ị này được lưu nhằ ục đích phụ ụ
vi n t sau khi robot hoàn thành
ệc xác định điểm để giúp đỡ robot ếu robot đó chế
39. 31
công vi c (dòng 33). M m quan tr ng n a khi n nhóm robot khác bi t v
ệ ột điể ọ ữ ế ệ ới đơn
robot, đó là có kế ố ữ ư trong mã giả ể ấ ệ ạ
t n i gi a các robot. Nh , ta có th th y robot hi n t i
liên t c có các thông báo v c p nh t thông tin. Robot hi n t i,
ụ ới các robot khác để ậ ậ ệ ạ
sau khi hoàn thành nhi m v c ng l i h n mà v n ti p t c ki
ệ ụ ủa mình, nó chưa dừ ạ ẳ ẫ ế ụ ểm
tra đị ỳ ế ố ớ ố
nh k xem các robot có k t n i v i nó còn s ng hay không (dòng 29). N u có
ế
robot có k t n i v t, robot hi n t i s robot kia, nh
ế ố ới nó đã chế ệ ạ ẽ tiến hành giúp đỡ ằm
đả ả ệc chung đượ
m b o công vi c hoàn thành.
3.3.3. Phân tích các tiêu chí c a thu t toán
ủ ậ
3.3.3.1. Tính mạnh mẽ
Xét v m t lý thuy t, thu b c tính m nh m
ề ặ ế ật toán này đã đảm ảo đượ ạ ẽ. Các
robot khi g p m a m ng nghi i v trí
ặ ột cell cũ củ ột đồ ệp khác, nó đã tiến hành lưu lạ ị
gặp nhau đó nhằm giúp đỡ ống robot đồ ệ ị ế
trong tình hu ng nghi p b ch t sau này.
Đoạ ật toán, robot đã hoàn thành công việc nhưng chưa hoàn to
n sau thu àn
d ng h n ngay l p t c, mà v n ti p t c ho n khi t t c ng
ừ ẳ ậ ứ ẫ ế ụ ạt động cho đế ấ ả các đồ
nghi p hoàn thành công vi ng nghi nh
ệ ệc. Trong khi các đồ ệp chưa hoàn thành, nó đị
k ki m tra tr ng thái c ng nghi p xem có robot nào b t hay
ỳ ể ạ ủa các robot đồ ệ ị chế
không.
3.3.3.2. Tính bao phủ toàn bộ
V i khu v c làm vi và robot, t ng h p toàn b nh ng bao ph
ớ ự ệc W k ổ ợ ộ ững đườ ủ
c m b o bao ph c hoàn toàn . Tính ch t này có th
ủa các robot con đả ả ủ đượ W ấ ể được
chứng minh như sau:
- ng h p :
Trong trườ ợ
V i ch m t robot, thu t toán trên s heo thu t toán Spiral-
ớ ỉ ộ ậ ẽ thực thi đúng t ậ
STC, do đó sẽ ủ ộ đượ ự ệ
bao ph toàn b c khu v c làm vi c.
- ng h p :
Trong trườ ợ
Giả ử ằ ể ộ ự ệ
s r ng có robot có th
hoàn thành m t khu v c làm vi c. Ta
ch c
ứ ằ robot cũng có thể ự
ng minh r ng hoàn thành khu v W. Không m t tính
ấ
t ng quát, ta xét m t robot . Khi th c thi thu t toán MSTC on-
ổ ộ đơn lẻ ự ậ line,
nó sinh ra m t cây bao trùm c c b , v i nh a riêng nó, và t o ra
ộ ụ ộ ớ ững cell cũ củ ạ
40. 32
m ng bao ph cho m m nhi m. Các robot khác s
ột đườ ủ ột vài cell mà nó đả ệ ẽ
xem như các cell này đã bị ế ính xác như việ ộ
chi m, và coi nó ch c nó là m t
cell đượ ấp đầ ở ộ ậ ả ở ậ ấ ả ững cell khác cũng đượ
c l y b i m t v t c n. B i v y, t t c nh c
chia thành robot bao ph , gi i gi
đường đi và được ủ ống như vớ ả
s t ra. Robot t c các cell b m b
ử ban đầu được đặ cũng xem tấ ả ị chiế ởi
robot t v t c m v c a nó tr thành bao ph toàn
kia như là mộ ậ ản, do đó nhiệ ụ ủ ở ủ
b m t khu v c làm vi ng h p
ộ ộ ự ệc, giống như vớ ờ
i trư ợ ở trên.
3.3.3.3. Tính không dư thừa
N u t t c u th c thi theo thu t toán trên, và không robot nào b
ế ấ ả robot đề ự ậ ở ị
chế ẽ ị đi nhiều hơn 1 lần. Điề
t, s không có cell nào b u này có thể chứng minh như
sau:
N u không có robot nào b l i, và m i robot ch c xây
ế ị ỗ ỗ ỉ đi theo những cell đượ
d ng b cây bao trùm. N u m u là
ự ởi ế ột cell đã được robot khác đi, nó đã được đánh dấ
cell cũ, bở ậ ộ ể đi vào cell đó nữ ế
i v y không có m t robot nào khác có th a. N u robot
không có quay lui, s không có m n
ẽ ột cell nào bị đi quá nhiều hơn 1 lầ
3.4. Đề xuấ ả ế ể ậ
t c i ti n và phát tri n thu t toán MSTC
3.4.1. Đề ấ ể ậ ự ạ
xu t và phát tri n thu t toán ORMSTC d a trên cách t o cây con
trên MSTC-offline
3.4.1.1. Khu vực bao phủ
M i robot là m t công c d n ti n hình d ng m
ỗ ộ ụ có kích thước là D để ễ thuậ ệ ạ ỗi
robot xem như một hình vuông kích thướ ục tiêu là để ủ ự
c D. M bao ph các khu v c
làm vi c s d ng công c này. Trong các ng d ng th c t , công c này có th
ệ ử ụ ụ ứ ụ ự ế ụ ể
tương ứ ớ ả ế ắ ắn là đượ ự ệc để
ng v i các c m bi n ch c ch c quét qua các khu v c làm vi
phát hi n m c D có th nh b i ph
ệ ột đặc trưng quan trọng, và kích thướ ể được xác đị ở ạm
vi hi u qu c a b c m bi n. Các robot có th di chuy
ệ ả ủ ộ ả ế ể ể ụ ốn hướ
n liên t c trong b ng
cơ bả ố ả ể xác đị ị ả ự
n (lên, xu ng, trái, ph i), và có th nh v trí b n thân trong khu v c làm
vi trong ph m vi m t ô con c D.
ệ ể
c đ ạ ộ kích thướ
Không bi t ranh gi i khu v c làm vi c chính xác và t t c các v ng
ế ớ ự ệ ấ ả ị trí chướ
ng i v c gi u c c l p. Chia
ạ ật (đượ ả định là tĩnh), nhưng các vị trí ban đầ ủa chúng độ ậ
41. 33
khu v c này thành các ô c 2Dx2D, m i ô g m b n ô con
ự có kích thướ ỗ ồ ố kích thước
DxD. N ng ng i v t thu c m t ph n c ng
ếu có chướ ạ ậ ộ ộ ầ ủa ô thì xem như ô đó là chướ
ng i v u th s ng ô i v i N, và ch rõ s ng ô con c a n, t c là,
ạ ật. Biể ị ố lượ trong lướ ớ ỉ ố lượ ủ ứ
N = 4n. Khu v c b c bi y m i c coi là
ự an đầu là không đượ ết như vậ ỗ cell ban đầu đượ
trống.
Điể ở ầ ủ ậ ự ệ ớ ị trí ban đầ
m kh i đ u c a thu t toán là khu v c làm vi c và k robot v i v u
độ ậ
c l p: A0,..., Ak-1. Các v u c a m c gi nh là trong m t ô
ị trí ban đầ ủ ỗi robot đượ ả đị ộ
không có chương ngạ ậ ẽ ế ị ủ ả đị ệ ủ ậ
i v t, và robot s bi t v trí c a nó. Gi nh làm vi c c a thu t
toán, robot có th nh v trí c a chính nó trong tri i c a khu v c làm
ể xác đị ị ủ ển khai lướ ủ ự
việc.
3.4.1.2. Ý tưởng cải tiến thuật toán
Thuậ dùng cho robot khi nó chưa biế ệ
t toán ORMSTC là t vùng làm vi c nó
đượ ụ ấ ề ự ễ ậ ậ
c áp d ng r t nhi u trong th c ti n. Thu t toán ORMSTC chính là là thu t toán
m i robot x y d ng cây con c a riêng nó. V i m i nodes c a cây con này s không
ỗ ậ ự ủ ớ ỗ ủ ẽ
thuộ ấ ữ
c b t ký cây nào n a. cell
Và nó th c hi n xong khi b t k
ự ệ ấ ỳ nào thu c vùng làm
ộ
vi c s tìm th y trên m i cây con thêm cell d a trên
ệ ẽ đươc ấ ột cây con nào đó. Mỗ được ự
cùng m t u ng s d ng thu ng xo n ôc Spiral-STC).
ộ th ật toán STC (thườ ử ụ ật toán đườ ắ
Thuậ ựa vào server để ế ạ ủ ừ
t toán ORMSTC d bi t thông tin tr ng thái c a t ng robot
cũng như môi trườ c client đưa và tìm
ng thông qua các robot, còn robot chính là cá
ki m thông tin. M i robot th c hi n riêng l . Chính vì th c phân chia
ế ỗ ự ệ ẻ ế việ cell để
đả ả ố ợ ỗ ụ ộ ấ ề ị trí ban đầ ủ
m b o s lư ng cell ban cho m i robot ph thu c r t nhi u vào v u c a
robot.
42. 34
Hình 3.3 Nhóm robot s d ng ORMSTC trên thu t toán Spiral-
: ử ụ ậ STC
Hình trên là ví d y rõ vi c phân chia cell t toán ORMSTC d a trên
ụ thấ ệ ở thuậ ự
thuậ ỉ đượ ủ ủ
t toán Spiral-STC. Robot 1 ch c bao ph 2 trong khi robot 2 bao ph
cell
t i 11 ô. Vi c hi n s không t
ới vớ ệc thự ệ ẽ ối ưu thời gian.
Thuậ ộ ật toán đã biết môi trườ
t toán MSTC - Offline là m t thu ng. Chính vì
v y nó áp d ng trong th c ti n không cao. Thu t toán xây d ng cây bao trùm d
ậ ụ ự ễ ậ ự ựa
trên các cây con c a các robot. M i nút c a cây con t o d a vào kho ng cách xa
ủ ỗ ủ ạ ự ả
nh t t i u theo kho ng cách Manhattan c n các robot còn l M
ấ ố thiể ả ủa robot đó đế ại. ỗi
nodes của cây con được thêm vào để ả ớ ạ
cho kho ng cách so v i các robots còn l i là
xa nh t. Và thu t toán c g m b u trên vùng làm vi c cho
ấ ậ ố ắng đả ảo phân chia đề cell ệ
m i cây con c a m i robot.
ỗ ủ ỗ
43. 35
Hình 3.4 Nhóm robot s d ng MSTC- Offline
: ử ụ
Hình trên là ví dụ các cây con môi trường đã biế ự ạ ủ
t d a trên các t o cây c a
thuậ – ụ ấ
t toán MSTC Offline. Ví d trên th y rõ lúc này robot 1 có 8 còn robot 2
cell
có 5 cell chính vì v y th c rút ng n nh t có th .
ậ ời gian sẽ đượ ắ ấ ể
Nhằ ậ ụng đượ ững điể
m t n d c nh m m nh tính linh ho t c a thu t toán
ạ ạ ủ ậ
ORMSTC để ự ện trên môi trường chưa biế ật toán MSTC Offline để
th c hi t và thu
phân chia cell m b o ch u nh t có th trên vùng làm vi c. Trong m c này
đả ả ia cell đề ấ ể ệ ụ
nêu rõ k t h p hai thu t toán trên cho m t nhóm robot. Vi c k h p hai thu t toán
ế ợ ậ ộ ệ ế ợ ậ
trên ta tạ ọ
m g i là MSTC.
3.4.1.3. Phát triển thuật toán
Cũng giố ớ ậ ở trên nó cũng xây dưng mộ
ng v i các thu t toán ORMSTC t hàm
kh i t c hi n các kh i t n. Khác
ở ạo ban đầu để thự ệ ở ạo cơ bả ở đây thay dùng mộ ả
t m ng
connection t n i c d ng m t d ng xâu
để lưu các kế ố ủa robot đó thì thay vào đó ta sử ụ ộ ạ
chứa đầy đủ thông tin như ô, tên robot nó đã đượ ặ ự ện trên đường đi
c g p lúc th c hi
để đả ảo đượ
m b c backtrack sau này.
44. 36
Mã giả ậ
thu t toán 6:
Thuật toán 6 MSTC (W,X)
Đầu vào: Cell robot v (cell cha), cell robot v
ừa đi ra W ừa đi vào X
Các bướ ế
c ti n hành:
1. S1..4 n c ng (trái, ph
←4 cell lân cậ ủa X theo bốn hướ ải, trên, dưới)
2. List_cell = null
3. for do
4. if
then
5. continue tiế ụ ớ ị ế
p t c v i giá tr ti p theo
6. if đã nằ ộ ạ ủ
m trong m t c nh c a cây bao trùm c a m robot khác
ủ ột
then
7. H xem nó còn s ng không
ỏi robot ố
8. l
if robot trả ời then
9. backtrack←(
10. p t c v i giá tr p theo
continue tiế ụ ớ ị tiế
11. t
//robot kia đã chế
12. else
13. if tìm th y backtrack.find(tên robot ch
ấ ứa Ni ) then
14. kh i backtrack
Xóa robot ỏ
15. Xóa c nh t t c c nh n i v i cell robot
ạ ấ ả ạ ố ớ đã đi và thông báo
nó đã xong
16. List_cell ← Ni
17. không thu c b t k cây con nào
// ộ ấ ỳ
18. else
19. List_cell ← Ni
20.Kết thúc vòng lăp
21.i then
f List_cell.size()>0
22. n các robot còn l
Tính toán khoảng cách Manhattan đế ại
45. 37
23. Tìm Ni kho ng cách xa nh t t i thi u theo Manhattan c
ả ấ ố ể ủa robot đó
đế ạ
n các robot còn l i
24. V c nh t t
ẽ ạ ừ ới
và thông báo
25. Thực thi MSTC(X, Ni)
26.else
27. Trở ề
v cell cha
28. Thực thi cell
MSTC(W )//T là
, T cha cua o W
29.if tr v subcell u
ở ề điểm khở ầ
i đ
then
30. a mình
Thông báo hoàn thành công việc củ
31.while t t c các robot v n c c
ấ ả ẫ chưa thông báo hoàn thành công việ ủa
chúng do
32. nh k các robot có k t n i v i mình xem chúng còn s ng
Kiểm tra đị ỳ ế ố ớ ố
không
33. if robot đã chết then
34. nh n i cell robot
Xóa cạ ối vớ đã đi và thông báo
35. c
Thông báo mình chưa hoàn thành công việ
36. L y thông tin c n ph n g n nh t t v ng trong
ấ cell ầ ải đế ầ ấ ừ ị trí nó đứ
backtrack
37. Di chuyển điểm đã kế ố ới robot đã chế
t n i v t
38. cell mình k i robot
ết nối vớ j
39. k i v i mình
cell robot j ết nố ớ
40. Xóa các c a robot
cell ủ j mà đã đượ ậ ậ
c c p nh t
41. Xóa robot i m ng backtrack và thông báo
j khỏ ả robot j đã thực
hi n xong
ệ
42. V c nh t t và thông báo
ẽ ạ ừ ới
43. MSTC( )
Thực thi X, Y
44.K p
ết thúc vòng lặ
45.D ng
ừ
Giả ả ậ
i thích mã gi thu t toán 6:
46. 38
Thuật toán 6 mô t quá trình làm vi c c a m t robot. T t c
ả ệ ủ ộ ấ ả các robot đều
thự ậ ở ậ ẽ ấ
c thi thu t toán này, b i v y có bao nhiêu robot thì s có b y nhiêu th hi n c
ể ệ ủa
thuật toán này. T dòng 1 t i dòng 20 c a thu t toán này, gi ng v t toán
ừ ớ ủ ậ ố ới thuậ
ORMSTC đã trình bày ở ệ ẽ ế ấ ả
.
trên Vi c thêm vào các nó s
cell là tìm ki m t t c các
cell theo b i, trái, ph tìm ki m ki trong b t k
ốn hướng (trên, dướ ải), ế ểm tra nó đã ở ấ ỳ
cây con c . T n dòng 26 ng thành l
ủa robot nào hay chưa (dòng 6) ừ dòng 21 đế giố ập
cây con trong quá trình t o cây bao trùm v i thu t toán MSTC-offline. N u nó tìm
ạ ớ ậ ế
thấ ều hơn mộ ớ ự
y nhi t cell m i thì d a vào tính kho ng cách ng
ả Manhattan qua đó khoả
cách xa nh t t i thi u theo Manhattan c n các robot còn l i. T i dòng
ấ ố ể ủa robot đó đế ạ ạ
31 đế ố ớ ật toán ORMSTC đã trình b
n 44 thì gi ng v i thu ày ki m tra các robot
ở trên ể
khác.
3.4.1.4. Phân tích các tiêu chí của thuật toán cải tiến
- Tính m nh m
ạ ẽ
Xét v m t lý thuy t, thu m b c tính m nh m
ề ặ ế ật toán này đã đả ảo đượ ạ ẽ. Các
robot khi g p m a m ng nghi i v trí
ặ ột cell cũ củ ột đồ ệp khác, nó đã tiến hành lưu lạ ị
g trong tình hu ng nghi p b t sau này. N u
ặp nhau đó nhằm giúp đỡ ống robot đồ ệ ị chế ế
nó g c robot kia ch t thì nó s c hi n công vi c c
ặp được đúng lúc và biết đượ ế ẽ thự ệ ệ ủa
robot kia k p th i tránh quay lui
ị ờ
Đoạ ật toán, khi robot đã hoàn thành công việc nhưng chưa hoàn
n sau thu
toàn d ng h n ngay l p t c, mà v n ti p t c ho n khi t t c ng
ừ ẳ ậ ứ ẫ ế ụ ạt động cho đế ấ ả các đồ
nghi p c ng nghi
ệ ủa nó đã hoàn thành công việc. Trong khi các đồ ệp chưa hoàn
thành, nó đị ỳ
nh k ki m tra tr ng thái c ng nghi p xem có robot nào b
ể ạ ủa các robot đồ ệ ị
chết hay không.
- Tính bao ph toàn b :
ủ ộ
V i khu v c làm vi và robot, t ng h p toàn b nh ng bao ph
ớ ự ệc W k ổ ợ ộ ững đườ ủ
c m b o bao ph c hoàn toàn . Tính ch t này có th
ủa các robot con đả ả ủ đượ W ấ ể được
chứng minh như sau:
o Trong trườ ợ
ng h p :
V i ch m t robot, vi c xây d ng cây con nó s tìm h t b ng. N u
ớ ỉ ộ ệ ự ẽ ế ốn hướ ế tìm
47. 39
thấ ều hơn mộ ấ ả ả ằ ẽ ấ
y nhi t ô. T t c kho ng cách là b ng nhau nên nó s l y giá trị
đầu tiên nó đã gán trong list_N danh sách ấ ớ
. Khi nó không tìm th y m
cell i
nào n a thì nó s quay v a cell c hi n tìm. K
ữ ẽ ề cell đi ra củ đó (ô cha) và thự ệ ết
thúc quay v cell u và tìm không tìm th y nào n a. Mà khu v
ề ban đầ ấ cell ữ ực
làm vi c liên ti p nên nó s không th b nào. V y s tìm h
ệ ế ẽ ể ỏ qua cell ậ ẽ ết được
toàn bộ ự
cell trên khu v
các c W.
o Trong trườ ợ
ng h p :
Ta xét m . Khi th c thi thu t toán MSTC, nó sinh ra m t cây
ột robot i đơn lẻ ự ậ ộ
bao trùm c c b , v i nh ng a riêng nó, và t o ra m ng bao
ụ ộ ớ ữ cell cũ củ ạ ột đườ
ph cho m t vài cell m nhi m. V i m t cell c nó tìm ki m mà
ủ ộ mà nó đả ệ ớ ộ đượ ế
n m trong các cell c c l y v t c n.
ằ ủa robot khác. Nó xem như cell đó đượ ấp đầ ậ ả
Tương tự ớ ủ ủ ẽ xem như các
v i cell c a nó trên cây con c a nó, các robot khác s
cell chi
này đã bị ếm, và coi nó chính xác như việ ộ đượ ấ
c nó là m t cell c l p
đầ ở ộ ậ ả ở ậ ấ ả ữ khác cũng đượ
y b i m t v t c n. B i v y, t t c nh ng cell c chia thành k -
1 k - 1
đường đi và được robot bao ph , gi i gi s
ủ ống như vớ ả ử ban đầu được
đặt ra. Robot i cũng xem tấ ả ị ế ở robot kia như là
t c các cell b chi m b i k - 1
m t v t c m v c a nó tr thành bao ph toàn b m t khu v
ộ ậ ản, do đó nhiệ ụ ủ ở ủ ộ ộ ực
làm việc, giống như vớ ờ ợ
i trư ng h p k = 1 trên.
ở
- Tính không dư thừa
N u t t c u th c thi theo thu t toán 6 trên, và không robot nào b
ế ấ ả robot đề ự ậ ở ị
chế ẽ ị đi nhiều hơn 1 lần. Điề
t, s không có cell nào b u này có thể chứng minh như
sau:
N u không có robot nào b l i, và m i robot ch c xây
ế ị ỗ ỗ ỉ đi theo những cell đượ
d ng b cây bao trùm c a riêng nó. N u m
ự ởi ủ ế ột cell đã đượ khác đi, nó đã
c robot
được đánh dấu là cell cũ, bởi vậy không có m t robot nào khác có th
ộ ể đi vào cell đó
n u robot không có quay lui, không có m n.
ữa. Nế ột cell nào bị đi quá nhiều hơn 1 lầ
48. 40
3.4.2. Tri n khai thu t toán MSTC - Full
ể ậ
3.4.2.1. Khu vực bao phủ
M i robot là m t công c d n ti n hình d ng m
ỗ ộ ụ có kích thước là D để ễ thuậ ệ ạ ỗi
robot xem như một hình vuông kích thướ ục tiêu là để ủ ự
c D. M bao ph các khu v c
làm vi c s d ng công c này. Trong các ng d ng th c t , công c này có th
ệ ử ụ ụ ứ ụ ự ế ụ ể
tương ứ ớ ả ế ắ ắn là đượ ự ệc để
ng v i các c m bi n ch c ch c quét qua các khu v c làm vi
phát hi n m c D có th nh b i ph
ệ ột đặc trưng quan trọng, và kích thướ ể được xác đị ở ạm
vi hi u qu c a b c m bi n. Các robot có th di chuy
ệ ả ủ ộ ả ế ể ể ụ ốn hướ
n liên t c trong b ng
cơ bả ố ả ể xác đị ị ả ự
n (lên, xu ng, trái, ph i), và có th nh v trí b n thân trong khu v c làm
vi trong ph m vi m t subcell c DxD.
ệ ể
c đ ạ ộ kích thướ
Không bi t ranh gi i khu v c làm vi c chính xác và t t c các v ng
ế ớ ự ệ ấ ả ị trí chướ
ng i v c gi u c c l p. Chia
ạ ật (đượ ả định là tĩnh), nhưng các vị trí ban đầ ủa chúng độ ậ
khu v c này thành các ô 2Dx2D, m i g m b n ô con kích
ự vuông có kích thước ỗ cell ồ ố
thướ ếu chướ ạ ậ ộc ô con nào thì xem ô con đó chính ô con
c DxD. N ng ng i v t thu
chướ ạ ậ ể ị ố ợ ế bào trong lướ ớ ỉ ố ợ
ng ng i v t. Bi u th s lư ng t i v i N, và ch rõ s lư ng
subcell c a n, t c là, N = 4n. Khu v c bi y m i
ủ ứ ực ban đầu là không đượ ết như vậ ỗ ô
con ban đầu đượ ố
c coi là tr ng.
Điể ở ầ ủ ậ ự ệ ớ ị trí ban đầ
m kh i đ u c a thu t toán là khu v c làm vi c và k robot v i v u
độ ậ
c l p: A0,..., Ak-1. Các v u c a m c gi nh là trong m t ô
ị trí ban đầ ủ ỗi robot đượ ả đị ộ
con không có chướ ạ ậ ẽ ế ị ủ ả đị ệ ủ
ng ng i v t, và robot s bi t v trí c a nó. Gi nh làm vi c c a
thuậ ể xác đị ị ủ ển khai lướ ủ
t toán, robot có th nh v trí c a chính nó trong tri i c a khu
v c làm vi
ự ệc.
Môi trườ ệ ủ – ủ ế ấ ả ữ ứ
ng làm vi c c a MSTC Full bao ph h t t t c nh ng cell ch a ít
nh c DxD. Gi i thu
ất kích thướ ả ật đầy đủ ử ụ ấu trúc đồ ị ổ sung như sau:
s d ng c th b
các cell chi
nodes c m c a t t c nh ng
ủa đồ thị là các tâm điể ủ ấ ả ữ trố ặ ị
ng ho c b ế ộ
m m t
ph n. Các c nh c k t n m c a nh ng n k a nh ng
ầ ạ ủa đồ thị ế ối các tâm điể ủ ữ cell liề ề chứ ữ
subcell trố ộ ựng đem đế ạ ủ
ng và cùng chung m t biên. Quá trình xây d n hai d ng c a
c nh n -sided edges) gi subcell ng c hai phía
ạ ố ạnh có hai phía” (double
i:“c ữ các trố ở ả
(hình 3.5. nh cóm -sided edges) gi ít nh t m t b
a), và “cạ ột phía” (single ữ ấ ộ subcell ị
49. 41
chiếm ở ộ ộ ấu trúc khác trong đồ ị ớ ổ
m t phía (hình 3.5.b). Ngoài ra m t c th lư i b sung
là “gấp đôi nút” (node doubling). Mộ ị ế ộ ầ ớ ố
t cell b chi m m t ph n v i các subcell tr ng
n c g t k t n i c c b
ằm chéo nhau đượ ọi là “mấ ế ố ụ ộ” (locally disconnected). Bở ụ
i vì d ng
c quét có th n các ng t lân c n, chúng ta bi u di
ụ ể vươn đế subcell trố ừ các cell ậ ể ễn
nh ng i nút có c nh riêng n n nh ng n k
ữ cell như vậy như là hai nút, mỗ ạ ối đế ữ cell liề ề
mà t t ng có th p c n (h . ].
ừ đó mộ subcell trố ể được tiế ậ ình 3.5 c)[2
Hình t phía;
3.5: nh có hai phía; (b): C nh có m
(a): Cạ ạ ộ (c): Gấp đôi nút ở cell
mất kết nối cục bộ
3.4.2.2. Ý tưởng thuật toán
V ng làm vi c th c ti n thì vi c v t c n không ch
ới môi trườ ệ ự ễ ệc khích thướ ậ ả ỉ là
2Dx2D và nó còn có khích thướ ớ ể ỗ ấ ỳ
c DxD. V i các bài toán trên hi u m i cell có b t k
subcell nào là chướ ạ ậ ểu chướ ạ ật khích thướ ậ
ng ng i v t thì hi ng ng i v c 2Dx2D. V y
bài toán bao ph s không bao ph c hoàn toàn nó còn có nh ng c a cell
ủ ẽ ủ đượ ữ subcell ủ
đó chưa được “thăm” ụng đối ý tưở ật toán 6 để ả
. Áp d ng thu gi i quyế ấn đề
t v bao
ph cho vùng làm vi i v ng ng i v t . M i robot th
ủ ệc đố ới kích thước chướ ạ ậ DxD ỗ ực
hi n tìm nodes cho cây con c a nó b ng cách robot ph t t subcell c a
ệ ủ ằ ải đi hế ất cả các ủ
cell cell
nó đang đứ ừ đó có thể ế ế
ng. T bi t h t các thông tin nào là có chướ ạ ậ
ng ng i v t
và thông qua đó để ả ố ểu đố ạ ậ
tính toán kho ng cách xa t i thi i các robots còn l i. V y
m i l n robot th c hi t thì robot ph i t t c c a
ỗ ầ ự ện đang xét mộ cell ải đi lạ ấ ả các subcell ủ
cell đó. Vậy tính hi u qu c a thu t toán s không còn và lúc này có th i gian
ệ ả ủ ậ ẽ ể thờ
bao ph cho thu t toán MSTC s nhi u t nhi u.
ủ ậ ẽ ề hơn rấ ề