Tải bản đầy đủ (.pdf) (67 trang)

Nghiên cứu các thuật toán tìm đường bao phủ động cho robot di động trong nhà

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.03 MB, 67 trang )

LỜI CAM ĐOAN
Tơi cam đoan đây là cơng trình nghiên cứu của riêng tơi trong đó có sự giúp
đỡ rất lớn của thầy hướng dẫn TS Ngô Lam Trung.
Các nội dung nghiên cứu, số liệu và kết quả nêu trong luận văn là trung thực
và chưa từng được ai công bố trong bất kỳ cơng trình nào khác.
Trong luận văn, tơi có tham khảo đến một số tài liệu đã được liệt kê tại phần
Tài liệu tham khảo ở cuối luận văn. Các tài liệu tham khảo được trích dẫn trung
thực trong luận văn.
Hà Nội, ngày… tháng … năm 2016
Tác giả

Đặng Thành Nam

1


LỜI CẢM ƠN
Trước hết, tôi xin gửi lời cảm ơn chân thành tới TS Ngơ Lam Trung, người
đã tận tình dạy dỗ và hướng dẫn tơi trong q trình hồn thành luận văn cũng như
trong học tập.
Đồng thời, tôi xin bày tỏ lịng biết ơn đến các thầy cơ giáo giảng viên trong
Viện Công nghệ thông tin và Truyền thông – trường Đại học Bách Khoa Hà Nội,
những người đã giảng dạy, truyền đạt cho tôi những kiến thức cơ bản, làm nền tảng
cho việc thực hiện luận văn cũng như trong q trình cơng tác sau này.
Tơi cũng xin gửi lời cảm ơn tới các anh chị, các bạn, các em trong nhóm sinh
viên nghiên cứu đặc biệt là em Nguyễn Hữu Mạnh và Trần Đức Sơn, những người
đã giúp đỡ, động viên tơi trong q trình hồn thành luận văn.
Cuối cùng, với tất cả sự kính trọng, con xin bày tỏ lòng biết ơn sâu sắc tới bố mẹ
và anh chị em trong gia đình đã ln là chỗ dựa tinh thần vững chắc và tạo mọi điều
kiện cho con ăn học nên người.
Hà Nội, ngày tháng



năm 2016

Đặng Thành Nam

2


MỤC LỤC
LỜI CAM ĐOAN ............................................................................................................ 1
DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ .................................................. 5
DANH MỤC HÌNH VẼ .................................................................................................. 6
LỜI MỞ ĐẦU .................................................................................................................. 7
CHƢƠNG 1: TỔNG QUAN ......................................................................................... 9
1.1. Lý do chọn đề tài .................................................................................................. 9
1.2. Giới thiệu một số khái niệm liên quan ................................................................ 10
1.2.1. Robot dịch vụ là gì? .................................................................................. 10
1.2.2. Các ứng dụng của robot dịch vụ................................................................ 10
1.2.3. Tìm đường bao phủ là gì? ......................................................................... 11
1.3. Nội dung đề tài .................................................................................................... 13
1.4. Kết quả đã thực hiện được .................................................................................. 14
CHƢƠNG 2: PHƢƠNG PHÁP GIẢI QUYẾT BÀI TOÁN BAO PHỦ ................. 15
2.1. Các phương pháp giải quyết bài toán bao phủ. ................................................... 15
2.1.1. Phương pháp phân chia vùng làm việc cổ điển. ........................................ 16
2.1.2. Phương pháp bao phủ dựa trên lưới ô vuông (grid-based methods) ......... 19
2.1.3. Phương pháp sử dụng nhiều robot............................................................. 24
2.1.4. Phương pháp sử dụng hướng tiếp cận xác suất. ........................................ 25
CHƢƠNG 3: LÝ THUYẾT VÀ CẢI TIẾN THUẬT TOÁN CCD* ....................... 26
3.2. Lý thuyết về thuật toán CCD* ............................................................................ 26
3.2.1. Bản đồ chiếm dụng và sự biểu diễn robot ................................................. 26

3.2.2. Giải thuật A* ............................................................................................. 28
3.2.3. Giải thuật D* ............................................................................................. 31
2.2.4. Giải thuật Path Transform (PT) ................................................................. 32
3.3. Thuật toán CCD* ................................................................................................ 32
3.3.1. Kế hoạch ban đầu của đường bao phủ hoàn toàn ...................................... 32
3.3.2. Lập lại kế hoạch con đường bao phủ hồn tồn ........................................ 36
3.4. Trình bày và cải tiến thuật tốn: ......................................................................... 38
3.4.1. Trường hợp robot bao phủ hồn tồn: ....................................................... 39
3.4.2. Vấn đề gặp phải khi sử dụng thuật toán CCD* ......................................... 39
3.4.3. Cải tiến thuật toán: .................................................................................... 40

3


CHƢƠNG 4: CÀI ĐẶT VÀ THỬ NGHIỆMTHUẬT TOÁN CCD* ...................... 43
4.1. Trong môi trường giả lập .................................................................................... 43
4.1.1. Giới thiệu về ROS ..................................................................................... 43
4.1.2. Giới thiệu về Gazebo ............................................................................... 48
4.1.3. Áp dụng ..................................................................................................... 49
4.2. Môi trường thực tế .............................................................................................. 59
4.2.1. Giới thiệu về robot Kobuki ...................................................................... 59
4.2.2. Giới thiệu về cảm biến laser Hokuyo ...................................................... 60
4.2.3. Áp dụng ................................................................................................... 62
4.3.4. Kết quả mô phỏng: .................................................................................... 63
KẾT LUẬN ................................................................................................................... 64
1.

Thành quả đạt được ........................................................................................... 64

2.


Hạn chế .............................................................................................................. 64

3.

Khả năng ứng dụng............................................................................................ 64

TÀI LIỆU THAM KHẢO ........................................................................................... 65

4


DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ
Viết đầy đủ

Thuật ngữ/Chữ viết tắt
STC

Spanning Tree Coverage

IFR

The International Federation of Robotics

CPP

Coverage Path Planning

ROS


Robot Operating System

BA*

Boustrophedon online A* search

PT

Path Transform

CCD*

Complete Coverage D*

5


DANH MỤC HÌNH VẼ
Hình 1: Một ứng dụng thực tế của robot dịch vụ .......................................................... 11
Hình 2: Bao phủ một cell hình chữ nhật bằng thao tác di chuyển díc-dắc ................... 16
Hình 3: Ví dụ về thuật tốn phân chia hình thang ........................................................ 17
Hình 4: Ví dụ về thuật tốn phân chia boustrophedon .................................................. 18
Hình 5: Ví dụ về thuật tốn BA* .................................................................................. 19
Hình 6: Ví dụ về grid map với hai chướng ngại vật ..................................................... 20
Hình 7: Phân chia cell trong thuật tốn cây bao trùm ................................................... 21
Hình 8: Đường bao phủ của robot khi áp dụng thuật toán Spiral – STC ...................... 22
Hình 9: Gán có ơ bằng cách lan truyền bước sóng với ơ bắt đầu (S) và ơ đích (G). .... 23
Hình 10: Kế hoạch bao phủ sử dụng biến đổi khoảng cách .......................................... 24
Hình 11: 5 robot thực hiện bao phủ một cell theo giải thuật phân chia đường cày sử
dụng đa robot................................................................................................................. 25

Hình 12: Mặt nạ chi phí an tồn của bản đồ lưới chiếm dụng có trọng số 𝑀𝑐 = 4 ..... 27
Hình 13 : Mô phỏng đồ thị giải thuật A* ...................................................................... 29
Hình 14 : Cây tìm kiếm tương ứng với đồ thị trên........................................................ 30
Hình 15 : Quá trình thực hiện tìm kiếm D* .................................................................. 31
Hình 16: Đường đi bao phủ từ S đến G hồn thành bởi thuật tốn PT ........................ 32
Hình 17: Bước đi ban đầu của thuật tốn CCD* .......................................................... 34
Hình 18: Thuật tốn bao phủ hồn tồn ........................................................................ 39
Hình 19: Trường hợp thuật tốn khơng bao phủ hồn tồn .......................................... 40
Hình 20: Cải tiến thuật tốn để thốt khỏi đường cụt và bao phủ hồn tồn. ............... 41
Hình 21: Cấu trúc chương trình .................................................................................... 50
Hình 22: Áp dụng giải thuật CCD* trên Gazebo. ......................................................... 57
Hình 23: Đường đi của robot áp dụng giải thuật CCD* trên Gazebo. .......................... 58
Hình 24: Robot Kobuki ................................................................................................. 59
Hình 25: Cảm biến laser Hokyuo .................................................................................. 60
Hình 26: Áp dụng giải thuật CCD* cho robot Kobuki. ................................................ 63

6


LỜI MỞ ĐẦU

Robot – những cỗ máy thông minh từ lâu đã nắm giữ ý nghĩa đặc biệt với xã hội
hiện đại. Trong những năm qua hàng loạt robot đã ra đời để trợ giúp và thay thế con
người ở nhiều khía cạnh đời sống. Kể từ khi chiếc máy tính đầu tiên được chế tạo
cho tới giờ là một khoảng thời gian dài và thời đại của robot đang đến gần hơn bao
giờ hết. Những robot tự động ngày càng ảnh hưởng nhiều hơn đến cuộc sống của
chúng ta bởi có quá nhiều lý do khiến robot được ưa chuộng không chỉ trong sản
xuất công nghiệp hay nghiên cứu mà còn là trong sinh hoạt hàng ngày. Robot dần
ổn định hơn, chính xác hơn, sở hữu năng suất lao động cao và đặc biệt là có thể
được chế tạo số lượng lớn với chi phí thấp hơn rất nhiều so với khi đào tạo chuyên

môn cho con người.
Sự xuất hiện của robot đã giúp giải phóng con người khỏi những cơng việc
nhàm chán, nặng nhọc và thậm chí có phần nguy hiểm. Một tương lai mà các robot
thay thế hoàn toàn chúng ta khỏi lao động chân tay là điều khả thi và khơng cịn xa
vời. Robot khi ấy khơng chỉ là một cơng cụ mà sẽ dần đóng vai trò quan trọng tới
cuộc sống của con người. Một robot được lập trình tốt có thể triển khai hàng loạt
các tác vụ từ cơ bản đến phức tạp, với giá thành cũng trở nên rẻ hơn nhờ những tiến
bộ công nghệ vượt bậc, các ứng dụng của robot được đa dạng hóa một cách nhanh
chóng. Việc thực hiện các nhiệm vụ được giao như điều khiển ô tô, chăm sóc cây
cối, bán hàng hoặc ngay cả những cơng việc phức tạp như viết một đoạn văn theo
yêu cầu có sẵn một cách mạch lạc hay tiến hành phẫu thuật đều đã trở thành hiện
thực và đang trên đà hoàn thiện. Sự phát triển của khoa học máy tính, trí tuệ nhân
tạo cùng các mạng lưới thông tin, cảm biến và hệ thống định vị đã đem đến những
cải tiến và đổi mới lớn lao trong lĩnh vực tự động hóa, ảnh hưởng sâu rộng tới xã
hội con người hiện nay.
Trong luận văn tốt nghiệp này, tác giả luận văn tập trung nghiên cứu, tìm hiểu
về các thuật tốn bao phủ đường đi của loại robot dịch vụ, mà ứng dụng cụ thể là

7


ứng dụng để quét sạch một căn phòng sử dụng robot lau nhà. Thuật toán được lựa
chọn để thử nghiệm là thuật tốn tìm đường bao phủ CCD* trong một môi trường
không biết trước.
Cấu trúc luận văn tốt nghiệp này gồm bốn chương với những nội dung chính như
sau:
 Chương 1: nói về các vấn đề
o Lý do chọn đề tài
o Giới thiệu một số khái niệm liên quan tới luận văn.
o Giới thiệu nội dung đề tài và kết quả đã thực hiện.

 Chương 2: cơ sở lý thuyết
o Trình bày các phương pháp tiếp cận giải quyết bài toán bao phủ.
 Chương 3: Lý thuyết và cải tiến thuật tốn CCD*
o Trình bày cụ thể về lý thuyết thuật tốn CCD*
o Trình bày phương pháp cải tiến thuật tốn CCD*
 Chương 4:thử nghiệm trong mơ phỏng và trong thực tế
o Giới thiệu một số công cụ, phần mềm sử dụng để phát triển luận văn.
o Trình bày các vấn đề phát sinh khi lập trình thuật tốn CCD*.
o Trình bày những kết quả đạt được khi thử nghiệm trong mô phỏng và
trong thực tế.

8


CHƢƠNG 1: TỔNG QUAN
1.1. Lý do chọn đề tài
Luận văn này có nội dung về nghiên cứu và thử nghiệm thuật tốn tìm đường
bao phủ CCD* trong mơi trường khơng biết trước.
Lý do lựa chọn đề tài này có thể bao gồm những lý do sau:
Về mặt yêu cầu, mục đích ứng dụng:
-

Cùng với sự phát triển của cơng nghệ, càng ngày việc sử dụng robot để giúp
đỡ con người trong cuộc sống càng được phổ biến. Hàng ngày, con người tốn
một khoảng thời gian nhất định để quét dọn nhà cửa. Đối với nhiều người,
công việc này tuy không mất quá nhiều thời gian nhưng nó lại là một cơng
việc có tính chất lặp đi lặp lại, nhàm chán, không thú vị. Hơn nữa, với những
người bận rộn, họ thậm chí có thể cịn khơng có thời gian để qt nhà. Do
đó, khi luận văn này hồn thành ở một mức độ nào đó, việc ứng dụng nó để
dọn dẹp một căn phịng trong thực tế là hồn tồn có thể. Nhờ đó, nó giúp đỡ

con người khơng mất nhiều thời gian cho việc quét nhà nữa.

-

Bài toán bao phủ là bài tốn có rất nhiều ứng dụng thực tiễn. Hiện nay, việc
sử dụng robot để giải quyết các bài tốn bao phủ cũng ngày càng phổ biến.
Có thể nêu ra một vài ví dụ tiêu biểu như sử dụng robot để làm sạch sàn nhà,
cắt cỏ, khai thác, thu hoạch, sơn, làm sạch các chất thải nguy hiểm...v.v.

Về mặt cơng nghệ tác giả muốn:
-

Tìm hiểu và sử dụng ros, gazebo và tìm hiểu về lập trình nhúng.

-

Tìm hiểu về các thuật tốn tìm đường.

-

Thực hành lập trình cho robot.

Ngoài ra, thực hiện đề tài là một cơ hội để luyện tập tư duy logic, quản lý dự án
và lập trình, giúp tác giả có kinh nghiệm tốt hơn để thực hiện những dự án thực tế
sau này.

9


1.2. Giới thiệu một số khái niệm liên quan

1.2.1. Robot dịch vụ là gì?
Robot dịch vụ là loại robot hỗ trợ, thực hiện thay con người trong các cơng
việc; ví dụ như cơng việc có tính chất lặp đi lặp lại, các công việc trong nhà, công
việc phải thực hiện ở những chỗ dơ bẩn, nguy hiểm,…. Những robot này thường
được điều khiển tự động bởi một hệ thống điều khiển tích hợp được cài đặt thủ cơng
bên trong. Thuật ngữ “Robot dịch vụ” khơng có một định nghĩa chính xác. Liên
đoàn Robot Quốc Tế (The International Federation of Robotics – IFR) đã đề xuất
một định nghĩa: Một robot dịch vụ là một robot mà hoạt động bán tự động hoặc
hoàn toàn tự động để thực hiện các dịch vụ hữu ích cho của con người và thiết bị,
khơng bao gồm các hoạt động sản xuất.
1.2.2. Các ứng dụng của robot dịch vụ
Ứng dụng có thể có của robot chủ yếu là để hỗ trợ trong công việc của con
người. Hiện nay có các ứng dụng trong một số lĩnh vực như sau:
- Ứng dụng trong công nghiệp: Robot dịch vụ cơng nghiệp có thể đượcsửdụng để
thực hiện các nhiệm vụ đơn giản, chẳng hạn như kiểm tra hàn. Nó cũng có các
nhiệm vụ phức tạp hơn, thực hiện trong các môitrường khắc nghiệt, chẳng hạn
như giúp đỡ trong việc tháo dỡ các nhàmáy điện hạt nhân. Robot cũng có thể
được dùng để thực hiện nhữnghành động lặp đi lặp lại như lắp ráp, thực hiện
các cơng việc tự độnghóa khác. Nhưng robot được sử dụng trong công nghiệp
đượ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ạn đã sử dụng robot dịch vụ. Các côngviệc mà robot có thể
thực hiện ví dụ như dọn dẹp, pha chế các đồuống phức tạp, hay thậm chí là tiếp
đón khách hàng.

-

Ứng dụng trong gia đình: Robot trong gia đình thực hiện nhiệm vụ mà con

người thường xuyên thực hiện xung quanh nhà như lau chùi sàn nhà, cắt cỏ,

10


dọn dẹp hồ bơi.... Chúng cũng có thể đóng vai trị củamột người quản gia trong
gia đình.
-

Ứng dụng trong khoa học: Hệ thống robot thực hiện nhiều chức năngnhư tiến
hành các thao tác lặp đi lặp lại trong nghiên cứu. Những robot tự động cũng có
thể thực hiện các nhiệm vụ khoa học mà con người khó hoặc khơng thể thực
hiện, ví dụ như các vùng biển sâu,khơng gian bên ngồi Trái Đất....

Hình 1: Một ứng dụng thực tế của robot dịch vụ
1.2.3. Tìm đƣờng bao phủ là gì?
Tìm đường bao phủ (Coverage Path Planning - CPP) là nhiệm vụ tìm ra
đường đi có thể đi qua tất cả các điểm cần thiết trong một vùng hoặc không gian
cho trước, bên cạnh đó cũng phải tránh được những vật cản. Công việc này là cần
thiết cho rất nhiều ứng dụng robot, ví dụ như các robot hút bụi, lau nhà, sơn tườ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ện công việc này được đặt ra theo các yêu cầu như sau:
-

Robot phải đi qua tất cả các điểm và bao phủ vùng mục tiêu cần quét một cách
hoàn thiện.

-

Robot phải thực hiện di chuyển mà không được đè các vùng quét lên nhau.


-

Các tác vụ thực hiện liên tục và tuần tự mà đường đi không bị lặp lại.

-

Robot phải tránh được các vật cản.

11


-

Sử dụng quỹ đạo di chuyển đơn giản (đi thẳng hoặc vòng tròn...).

-

Bổ sung các đường dẫn tùy chọn khi có thể.
Tất cả những điều kiện trên khơng phải lúc nào cũng có thể đáp ứng được,

nhất là trong mơi trường phức tạp. Vì vậy mà đơi lúc các mức ưu tiên khác nhau
ứng với mỗi điều kiện cần được sắp xếp để thỏa mãn cho phù hợp. Việc thực
hiệngiải bài tốn tìm đường trong trường hợp tổng qt hay áp dụng thực tế khơng
phải là điều dễ dàng, có thể kể ra ở đây một số ví dụ như: bài tốn “Người bán
hàng”(Covering/Travelling Salesman problem), bài tốn “Phịng trưng bày” (Art
Galleryproblem) hay bài toán “Người đi tuần tra” (Watchman Route problem) đều
là các bài tốn có liên hệ đến u cầu tìm đường, chúng đều là những bài tốn NPkhó.
Các thuật tố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ếu khả năng bao phủ toàn bộ vùng làm việc của thuật tốn

được chứng minh chặt chẽ thì thuật toán được gọi là bao phủ đầy đủ. Trong trường
hợp ngược lại, nếu thuật tốn nhằm tối đa hóa diện tích bao phủ trong điều kiện
robot chịu các ràng buộc như thời gian hoạt động, nguồn năng lượng, kích thước và
khơng thể đảm bảo bao phủ tồn bộ vùng làm việc, thì thuật tốn được gọi là bao
phủ tối ưu.
Các thuật tốn bao phủ cũng có thể được phân thành hai loại online và
offline. Thuật toán offline hoạt động dựa vào các thông tin tĩnh và các thông tin về
môi trường cần bao phủ phải được biết trước khi robot hoạt động. Ngược lại, các
thuật tốn online khơng cần biết trước các thông tin này, mà robot sẽ tự xác định
các thông tin về môi trường theo thời gian thực dựa vào các cảm biến được gắn trên
robot. Do đó, các thuật toán online cho phép robot hoạt động linh hoạt ngay cả với
các mơi trường mà robot hồn tồn khơng biết trước.Các thuật tốn online có sử
dụng các cảm biến để đánh giá và đi đến mục tiêu nên trong một số trường hợp cịn
có thể được gọi là giải thuật bao phủ dựa trên cảm biến.

12


1.3. Nội dung đề tài
Luận văn này trình bày chi tiết những vấn đề như sau:
- Tìm hiểu tổng quan về các phương pháp giải quyết bài tốn bao phủ:
Có ba hướng chính để giải quyết bài tốn bao phủ, đó là:
o Phương pháp phân chia vùng làm việc cổ điển.
o Phương pháp dựa trên lưới ô vuông.
o Phương pháp sử dụng nhóm robot.
o Kết hợp hai hay nhiều hướng giải quyết ở trên để giải quyết bài toán bao
phủ.
- Tìm hiểu và nghiên cứu thuật tốn tìm đường bao phủ CCD*.
Thuật toán CCD* thuộc phương pháp tiếp cận dựa trên lưới ô vuông đã đề cập ở
trên. Mục tiêu chính của luận văn này là sử dụng thuật tốn CCD* và cải tiến thuật

toán để giải quyết bài toán bao phủ.
- Tiến hành cài đặt thử nghiệm thuật toán trên môi trường mô phỏng Gazebo và
trên môi trường thật với robot Kobuki.
Tác giả sử dụng ngơn ngữ lập trình C++, IDE là Eclipse, và sử dụng ROS phiên
bản Indigo trên hệ điều hành Ubuntu 14.04 để tiến hành lập trình theo thuật tốn
chia ơ với robot, sau đó cho chạy thử nghiệm trên môi trường mô phỏng Gazebo và
trên môi trường thực tế.

13


1.4. Kết quả đã thực hiện đƣợc
Cho tới thời điểm hiện tại, tác giả đã thực hiện được những công việc như sau:
-

Tìm hiều về các cơng cụ hỗ trợ như Gazebo, ROS….

-

Tìm hiểu về các phương pháp giải quyết bài toán bao phủ, hiểu về một số thuật
toán bao phủ tiêu biểu.

-

Thử nghiệm lập trình thuật tốn, sau đó tiến hành cho chạy thử nghiệm và thu
được kết quả:
o Robot chạy bình thường trên mơi trường gazebo
o Xử lý được trường hợp robot chạy vào đường cụt vẫn có thể quay lại.
o Robot chạy bình thường, đúng thuật tốn trên môi trường thực tế.


14


CHƢƠNG 2: PHƢƠNG PHÁP GIẢI QUYẾT BÀI TOÁN BAO PHỦ
Kế hoạch bao phủ là một nhiệm vụ quan trọng đối với robot, với nhiều ứng
dụng thực tiễn chẳng hạn như làm sạch sàn nhà, cắt cỏ, khai thác, thu hoạch, sơn, và
làm sạch các chất thải nguy hiểm. Tại đây, một robot được đưa ra một công việc
trong một vùng bị chặn, có thể có những chướng ngại vật, trở ngại . Robot được giả
định có một cơng cụ kết hợp của một hình dạng nhất định thường là các cảm biến
và/hoặc thiết bị truy câp theo vùng tuần tự . Robot cần phải “thăm” tất cả các điểm
trong khu vực làm việc. Thường thì kích thước cơng cụ của robot nhỏ hơn nhiều so
với khu vực làm việc của nó. Nhiệm vụ của robot bao gồm việc tìm kiếm và di
chuyển dọc theo một con đường sao cho nó bao phủ hồn tồn. Đơi khi được gọi là
tìm kiếm hồn tồn vùng, hoặc có thể là qt.
Các thuật tốn bao phủ cũng có thể được phân thành hai loại là online và
offline. Thuật toán offline hoạt động dựa vào các thông tin tĩnh và các thông tin về
môi trường cần bao phủ phải được biết trước khi robot hoạt động. Ngược lại, các
thuật tốn online khơng cần biết trước các thông tin này, mà robot sẽ tự xác định
các thông tin về môi trường theo thời gian thực dựa vào các cảm biến được gắn trên
robot. Do đó, các thuật toán online cho phép robot hoạt động linh hoạt ngay cả với
các mơi trường mà robot hồn tồn khơng biết trước.
2.1. Các phƣơng pháp giải quyết bài toán bao phủ.
Thuật toán bao phủ đơn giản nhất là điều khiển robot đi một cách ngẫu nhiên
trong vùng làm việc. Theo cách tiếp cận này, rõ rang nếu robot hoạt động trong một
thời gian đủ lâu thì tồn bộ vùng làm việc của robot sẽ được bao phủ. Đây là thuật
toán được sử dụng trong nhiều robot hút bụi như Trilobite của Electrolux và nổi
tiếng nhất là Roomba của iRobot. Đặc điểm của phương pháp này là đơn giản,
khơng cần tính tốn phức tạp và khơng cần các cảm biến đắt tiền gắn trên robot.
Tuy 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ước lớn và chứa nhiều vật cản có kết cấu phức tạp. Khi đó chi phí hoạt động


15


của robot tính theo thời gian và năng lượng tiêu thụ trở nên rất lớn, không thể chấp
nhận được trong thực tế.
Trên thế giới đã có rất nhiều nghiên cứu nhằm giải quyết hiệu quả bài tốn
tìm đường đi bao phủ. Các nghiên cứu này có thể được liệt kê vào bốn hướng chính
như sau:
2.1.1. Phƣơng pháp phân chia vùng làm việc cổ điển.
Đây là nhóm phương pháp cổ điển nhất, có thể coi là điểm khởi đầu để xây
dựng các nhóm phương pháp mới hơn về sau. Ý tưởng cơ bản là phân chia toàn bộ
vùng làm việc của robot thành các cell đơn giản, không chồng lấn, và khơng chứa
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ủ. 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ác thao
tác đơn giản như quét kiểu díc-dắc hoặc qt theo vịng trịn. Do đó, bài tốn tìm
đường đi bao phủ trở thành bài tốn phân chia vùng làm việc của robot thành các
cell. Hình dưới mơ tả ví dụ một vịng qt díc-dắc để bao phủ một cell hình chữ
nhật. [1]

Hình 2: Bao phủ một cell hình chữ nhật bằng thao tác di chuyển díc-dắc
a. Giải thuật phân chia theo hình thang
Thuật tốn đơn giản nhất theo cách tiếp cận này là thuật toán phân chia theo
hình thang. Thuật tốn này phân chia vùng làm việc đa giác thành các cell hình
thang như trên hình 2. Sau đó một đồ thị kề chỉ ra quan hệ về mặt khơng gian giữa
các cell sẽ được hình thành. Từ đó để đảm bảo bao phủ hồn tồn vùng làm việc,

16



robot cần tìm ra một đường đi qua tất cả các cell trên đồ thị kề. Cuối cùng, robot
thực hiện đi theo đường díc-dắc tại mỗi cell và di chuyển giữa các cell theo đúng
thứ tự chỉ ra trong đường đi đã xác định trên đồ thị. Thuật tốn hình thang khá hiệu
quả với các vùng làm việc đơn giản dạng đa giác. Đây là thuật tốn offline vì robot
cần biết thông tin về môi trường làm việc trước khi thực hiện tìm đường.

Hình 3: Ví dụ về thuật tốn phân chia hình thang
Thuật tốn thứ hai phát triển theo phương pháp cổ điển và được ứng dụng khá
nhiều là thuật toán phân chia boustrophedon. Boustrophedon là từ gốc Hy Lạp, có
nghĩa là “đường đi của con bị” liên hệ với hình ảnh con bị kéo cày thành các
đường díc-dắc trên mặt ruộng. Thuật toán này tương tự với thuật tốn phân chia
hình thang nhưng cho phép nối các cell kề nhau mà robot có thể qt bởi một đường
díc-dắc lại. Qua đó số lượng cell trên đồ thị kề sẽ giảm đi và làm giảm tổng quãng
đường mà robot phải chạy để bao phủ toàn bộ vùng làm việc. Ví dụ về thuật tốn
phân chia boustrophedon được chỉ ra trong hình 4. Có thể thấy các cell C3, C5, C7
ở hình 3 đã được nối thành một cell duy nhất ở vị trí tương ứng trong hình 4. [2]

17


Hình 4: Ví dụ về thuật tốn phân chia boustrophedon
b. Giải thuật phân chia boustrophedon
Gần đây có một số thuật toán bao phủ online được phát triển dựa trên cách tiếp
cận của thuật toán phân chia Boustrophedon, tiêu biểu là thuật toán BA*[20]. 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 qt. Thuật tốn BA* thực hiện tìm kiếm
các vùng boustrophedon ngay trong quá trình robot chạy, đồng thời đưa ra cơ chế
quay lui để đảm bảo tất cả các vùng boustrophedon đều được tìm thấy và khơng
gian làm việc của robot được bao phủ hồn tồn. Hình 5 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ốn vùng được đánh số từ 1

tới 4 và quỹ đạo di chuyển tương ứng của robot.

18


Hình 5: Ví dụ về thuật tốn BA*
2.1.2. Phƣơng pháp bao phủ dựa trên lƣới ơ vng (grid-based methods)
Tìm đường đi bao phủ dựa trên lưới (grid-based) là hướng tiếp cận mạnh và
được quan tâm nhiều nhất khi giải quyết bài tốn tìm đường đi bao phủ. Phương
pháp này biểu diễn tồn bộ mơi trường làm việc của robot trên một bản đồ dạng
lưới ô vuông (grid map). Mỗi ô trên lưới nhận một giá trị cho biết tại vị trí ơ đó là
chướng ngại vật hay vùng khơng gian trống. Tồn bộ lưới cho biết hình dạng xấp xỉ
của không gian hoạt động của robot và các chướng ngại vật bên trong. Hình dưới
mơ tả một ví dụ bản đồ lưới ơ vng với hai vật cản. Kích thước của mỗi ơ vng
thường bằng kích thường của robot. Do đó phương pháp này thường được áp dụng
cho mơi trường trong nhà để tránh số ô của lưới tăng lên quá cao.

19


Hình 6: Ví dụ về grid map với hai chướng ngại vật
a. Thuật toán STC
Thuật toán cây bao trùm.
Thuật toán này thuộc phương pháp tiếp cận dựa trên lưới ô vng đã đề cập tới
ở trên. Trong thuật tốn này, chia nhỏ dần vùng làm việc thành các ô vuông kích
thước 2Dx2D, với D là kích cỡ mỗi robot (các robot được giả định là giống nhau),
mỗi cell chứa bốn ơ nhỏ hơn, gọi là subcell, có kích thước bằng kích thước robot và
bỏ qua những cell bị chiếm (một phần hoặc toàn phần) bởi vật cản. Các cell trống
tạo thành một cấu trúc đồ thị có các nút là tâm điểm của từng cell và các cạnh là
đoạn thẳng nối tâm điểm các cell liền kề .


20


Hình 7: Phân chia cell trong thuật tốn cây bao trùm
Với cách tiếp cận của phương pháp này, bài toán tìm đường đi bao phủ trở
thành tìm đường đi tối ưu để duyệt qua tất cả các ô không chứa vật cản trên lưới,
mỗi ô một lần. Một lớp thuật toán dựa trên cây bao trùm đã được phát triển để giải
bài toán này, tiêu biểu là thuật toán Spiral-STC (Spiral Spanning Tree Coverage).
Spiral-STC là thuật tốn tìm đường on-line trong đó đường đi của robot được
xây dựng theo hình xoắn ốc (Spiral-STC). Đường đi của robot trong thuật toán này
được hình thành bằng cách xuất phát từ cell chứa vị trí bắt đầu của robot rồi đi sang
các cell trống bên cạnh theo chiều ngược chiều kim đồng hồ. Q trình tiếp tục tới
khi khơng cịn cell nào trống thì robot bắt đầu đi theo chiều ngược lại. Do kích
thước cell là 2Dx2D, robot sẽ khơng bao giờ đi qua một subcell hai lần và sẽ quay
lại vị trí ban đầu sau khi đã bao phủ toàn bộ diện tích làm việc. Hình 8 mơ tả một ví
dụ về đường bao phủ của robot được hình thành khi áp dụng thuật toán Spiral-STC.
[4]

21


Hình 8: Đường bao phủ của robot khi áp dụng thuật toán Spiral – STC
Giải thuật Spiral-STC dần dần xây dựng một cây bao trùm cho đồ thị này và
sử dụng cây bao trùm đó để sinh ra đường dẫn bao phủ như sau: cùng vớ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ụ qt. Dụng cụ
quét đi theo đường dẫn của các subcell vòng quanh dần dần theo cây bao trùm đã
được xây dựng cho đến khi toàn bộ tập hợp các cell trống được bao phủ. Ở đây một
cell trống là “mới” khi tất cả bốn subcell của nó chưa được bao phủ, ngược là thì coi

là “cũ”. Tức là chỉ cần 1 subcell trong cell đã được bao phủ, cell đó sẽ được coi là
“cũ”.
Với cách tiếp cận của phương pháp này, bài tốn tìm đường đi bao phủ trở
thành tìm đường đi tối ưu để duyệt qua tất cả các ô không chưa vật cản trên lưới,
mỗi ô một lần. [4]

22


b. Thuật tốn tràn sóng wavefront
Đây là thuật tốn offline, sử dụng lưới đại diện mơi trường với kích thước
gấp hai lần kích thước robot. Thuật tốn wavefront lập kế hoạch bao phủ hồn thành
vào lưới. Phương pháp này địi hỏi phải có ơ bắt đầu và ơ mục tiêu. Sự thay đổi
khoảng cách bằng cách lan truyền sóng từ ô mục tiêu đến ô bắt đầu sử dụng để chỉ
định số đặc trưng cho mỗi phần tử lưới. Đầu tiên thuật tốn gán nhãn số 0 cho ơ
mục tiêu và sau đó gán nhãn số 1 cho tất cả các tế bào xung quanh ơ. Q trình
được thực hiện tương tự với các ơ cịn lại. Q trình này lặp đi lặp lại từng bước cho
đến khi tất cả các ô được gán một số nhãn cụ thể. Quá trình đó được gọi là q trình
transform (tràn sóng). Hình 9 ví dụ thể hiện minh họa quy trình này trên một mơi
trường. Khi chuyển đổi khoảng cách được tính tốn xong, kế hoạch bao phủ có thể
được tìm thấy bằng cách bắt đầu từ các ô bắt đầu và lựa chọn các ô lân cận với các
nhãn cao nhất chưa được thăm. Nếu có hai hoặc nhiều ơ lân cận chưa được thăm
chia sẻ cùng một nhãn, thì một trong các ơ được chọn ngẫu nhiên. Hình 10 thể
hiện kế hoạch bao phủ thuật tốn transform. [1]

Hình 9: Gán các ơ bằng cách lan truyền bước sóng với ơ bắt đầu (S) và ơ đích (G).

23



Hình 10: Kế hoạch bao phủ sử dụng biến đổi khoảng cách
với thuật toán wavefront
2.1.3. Phƣơng pháp sử dụng nhiều robot.
Giải thuật này nhằm bao phủ đường đi đầy đủ sử dụng một nhóm robot trong
mơi trường chưa xác định (mơi trường online). Nhóm tác giả của giải thuật 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ể
đạt được tối đa hiệu quả làm việc nếu như số lượng các vùng mà robot đi lặp lại là ít
nhất. Do đó giải thuật này tập trung vào việc giảm thiểu tối đa sự lặp đi lặp lại các
vùng di chuyển của robot. Giải thuật này sử dụng cùng một phương pháp phân chia
cell hai chiều như giải thuật bao phủ đường cày sử dụng robot đơn, nhưng nó mở
rộng để xử lý việc làm thế nào để các robot có thể đi hết các vùng đơn lẻ, và làm thế
nào để phân bố các robot giữa các vùng. Giải pháp của họ là tính tốn để hạn chế
các thành viên trong nhóm robot di chuyển giao nhau trong q trình làm việc. Các
robot sẽ di chuyển chủ yếu theo các đường thẳng. Để có thể qt được tồn bộ vùng
đang làm việc, các robot được chia làm hai nhóm để đảm nhận hai vai trò: một vài
robot, được gọ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ại, trong khi các robot khác, được gọi là coverer (robot bao phủ) thực hiện

24


các chuyển động tới lui để có thể đi hết được các phần còn lại. Để phân phối các
nhiệm vụ cho các robot, cũng như phân phối các vùng hoạt động cho từng robot,
một cơ chế đấu giá tham lam được sử dụng. [1]

Hình 11: 5 robot thực hiện bao phủ một cell theo giải thuật phân chia đường cày
sử dụng đa robot
Hình trên mơ tả việc hai robot tham dò thực hiện di chuyển ở hai biên trên và
dưới của vùng mục tiêu, trong khi ba robot coverer thực hiện các chuyển động tới
lui ở phía trong vùng đó.

2.1.4. Phƣơng pháp sử dụng hƣớng tiếp cận xác suất.
Để các thuật toán bao phủ trên đây hoạt động hiệu quả, việc xác định chính
xác vị trí của robot trong quá trình hoạt động là rất quan trọng. Tuy nhiên, trong rất
nhiều trường hợp việc xây dựng một hệ thống định vị vị trí của robot chính xác là
rất khó khăn. Mặc dù bản thân các phương pháp phân chia vùng làm việc đã cho
phép chịu lỗi định vị ở mức độ nhất định, việc định vị sai có thể dẫn đến điều khiển
robot đi lệch quỹ đạo đã tính tốn.
Trong một số ứng dụng khác, khi cần bao phủ một đối tượng trong không
gian ba chiều và ở những điều kiện khó khăn, phương pháp tiếp cận hướng xác suất
là phương pháp hay được sử dụng.

25


×