TÓM TẮT ĐỒ ÁN Lập lộ trình chuyển động cho robot là một hướng nghiên cứu khoa học với mục tiêu cung cấp tri thức để robot có đủ khả năng tự vận động, di chuyển trong không gian phức tạp
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN
Trần Duy Quang – 0912369
Email: duyquang.fit@gmail.com
ĐỒ ÁN (seminar)MÔN HỌC
TRÍ TUỆ NHÂN TẠO
ĐỀ TÀI : Lập lộ trình chuyển động cho robot
D ỰA TRÊN TÀI LIỆU : Principles of Robot Motion Theory
Tác giả: Howie Choset NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS-TS LÊ HOÀI BẮC
TP.HCM – 6/2011
Trang 2MỤC LỤC
MỤC LỤC 2
KÝ HIỆU – QUY ƯỚC 4
TÓM TẮT ĐỒ ÁN 5
NỘI DUNG ĐỒ ÁN 7
CHƯƠNG 1: GIỚI THIỆU BÀI TOÁN LẬP LỘ TRÌNH CHO ROBOT 7
1.1 Khái niệm cơ bản 7
1.1.1 Sơ lược về robot 7
1.1.2 Một số thuật ngữ chung trong việc lập lộ trình 7
1.2 Bài toán lập lộ trình 9
1.3 Ví dụ về lập kế hoạch và một số ứng dụng về lập lộ trình robot 10
1.3.1 Robot sắp xếp các khối 10
1.3.2 Robot mua hàng hóa 11
1.3.3 Sử dụng robot di động để di chuyển piano 11
1.3.4 Tìm đường cho robot di động 12
1.4 Một số giải thuật cơ bản 13
1.4.1 Giải thuật Bug 0 14
1.4.2 Giải thuật Bug 1 15
1.4.3 Giải thuật Bug 2 16
1.4.4 So sánh hai giải thuật 17
1.5 Kết luận 19
CHƯƠNG 2: CẤU HÌNH KHÔNG GIAN TRẠNG THÁI 20
2.1 Các khái niệm không gian cấu hình 20
2.1.1 Chướng ngại (Obstacle) 20
2.1.2 Không gian tự do (Free Space – C free ) 20
2.2 Các phép biến dổi của robot 21
2.2.1 Phép tịnh tiến 22
Trang 32.2.2 Phép quay 22
2.3 Không gian cấu hình chướng ngại vật 24
2.4 Kết luận 26
CHƯƠNG 3: MỘT SỐ PHƯƠNG PHÁP CHÍNH XÁC LẬP LỘ TRÌNH CHUYỂN ĐỘNG 27
3.1 Giới thiệu chung 27
3.2 Một số giải thuật lập lộ trình chính xác cho robot 27
3.2.1 Các giải thuật roadmap 27
3.2.1.1 Visibility Graph – Đồ thị tầm nhìn 27
3.2.1.2 Voronoi Diagram – Lược đồ Voronoi 30
3 2.2 Cell Decomposition (Phân ly ô) 32
3.2.2.1 Exact Cell Decomposition 33
3.2.2.2 Approximate Cell Decomposition 35
3.3 Tổng kết 36
TÀI LIỆU THAM KHẢO 37
PHỤ LỤC 38
Phụ lục 1 - Demo các giải thuật cơ bản (Bug 1 – Bug 2) 38
Phụ lục 2 – Demo giải thuật Visibility Graph 38
Phụ lục 3 – Demo giải thuật Voronoi Diagram 38
Trang 4KÝ HIỆU – QUY ƯỚC
C-Space: Configuration space - không gian cấu hình
Cfree: Không gian tự do
qstart: vị trí xuất phát
qgoal: mục tiêu cần đến
Trang 5TÓM TẮT ĐỒ ÁN
Lập lộ trình chuyển động cho robot là một hướng nghiên cứu khoa học với mục tiêu cung cấp tri thức để robot có đủ khả năng tự vận động, di chuyển trong không gian phức tạp (với nhiều chướng ngại) để đến được đích mà không bị lạc hay
va vào các đối tượng khác
Thông thường một lộ trình thường được xác lập trước để dẫn dắt robot đến vị trí đích Với phương pháp này, môi trường robot đi qua phải được biết hoàn toàn và không thay đổi, đồng thời robot cần có cơ quan cảm giác để cảm nhận và cập nhật tri thức từ môi trường Hạn chế của việc lập lộ trình trước đòi hỏi việc nghiên cứu tìm hiểu vạch lộ trình nội tại, và phụ thuộc vào các tri thức thu được từ môi trường hiện tại để xử lý các chướng ngại chưa biết khi robot băng qua môi trường
Trên thế giới hiện nay tự động hóa robot là một lĩnh vực nghiên cứu thu hút một lực lượng đông đảo các nhà khoa học tham gia Bài toán lập lộ trình cho robot
là bài toán cơ bản để thiết kế và chế tạo robot, do vậy việc tìm hiểu bài toán và nghiên cứu các phương pháp lập lộ trình là rất quan trọng và cần thiết cho sự phát triển của ngành khoa học robot Hiện nay, đã có một số nghiên cứu mới để giải quyết bài toán này như ứng dụng giải thuật di truyền - lập trình tiến hóa, ứng dụng mạng neuron trong việc xây dựng lộ trình chuyển động, …; nói chung, đây là một vấn đề mở, nhiều thử thách và đang rất được quan tâm Đặc biệt trong nước nói chung và trong lĩnh vực AI của nước ta nói riêng, so với các hướng nghiên cứu như nhận dạng, xử lý ảnh, xử lý âm thanh,… đây vẫn còn là một chủ đề khá mới mẻ và hầu như chưa có tài liệu một cách đầy đủ về đề tài này
Trước tiên em xin chân thành cảm ơn thầy Lê Hoài Bắc, dưới sự gợi ý và
chỉ dẫn của thầy, em đã được tạo điều kiện và cơ hội để tiếp cận với hướng nghiên
cứu mới, đầy thú vị này: “Robot Motion Planning” – “Lập lộ trình chuyển động
cho robot” Mục tiêu của bài báo cáo đồ án này tập trung vào tường thuật lại các nội dung mà em đã thu thập và nắm được trong suốt quá tìm hiểu đồ án Báo cáo đồ
án ở đây gồm 3 chương, có thể được tóm tắt ngắn gọn như sau:
Trang 6Chương 1: Trình bày tổng quan về bài toán lập lộ trình cho robot bao gồm:
Các khái niệm cơ bản về robot, giới thiệu về bài toán lập lộ trình, ví dụ và một số ứng dụng về lập lộ trình robot, khái quát một số giải thuật lập lộ trình cơ bản
Chương 2: Trình bày các khái niệm về cấu hình không gian trạng thái, cách
biểu diễn không gian trong bài toán lập lộ trình robot
Chương 3: Tìm hiểu sâu về một số phương pháp chính xác lập lộ trình
chuyển động cho robot, cụ thể gồm các phương pháp: lớp giải thuật Roadmap (Các giải thuật tiêu biểu như: Visibiliity Graph (Đồ thị tầm nhìn), Voronoi Diagram (Lược đồ Voronoi)), các phương pháp Cell Decomposition (Phân giải ô) Đây là những cách tiếp cận tổ hợp với việc lập lộ trình chuyển động để tìm đường đi xuyên qua không gian cấu hình liên tục mà không cần đến các thuật toán xấp xỉ
Trang 7NỘI DUNG ĐỒ ÁN CHƯƠNG 1:
GIỚI THIỆU BÀI TOÁN LẬP LỘ TRÌNH CHO ROBOT
1.1 Khái niệm cơ bản:
1.1.1 Sơ lược về robot:
Cùng với sự phát triển của khoa học kĩ thuật, công nghệ robot ngày càng được quan tâm, đầu tư và ứng dụng rộng rãi trên nhiều phương diện Robot có thể là các thiết bị tự động trong các dây chuyển công nghiệp hoặc là các đối tượng làm việc trong các môi trường phức tạp mà con người đôi khi không thể tiếp cận được, như : môi trường nhiệt độ cao, áp suất lớn, khoảng không vũ trụ,…
• Về cấu tạo: Robot phải được trang bị bộ phận cảm biến để cảm nhận và cập nhật tri thức từ môi trường xung quanh (như: sensor, decoder,…) và các bộ phận hành động để phản hồi lại các thông tin thu thập được trong quá trình vận động (như: cánh tay robot, bánh xe chuyển động,…)
• Các tri thức cần trang bị cho robot gồm: Cấu trúc môi trường mà robot đang làm việc, các tình huống mà robot có thể gặp và phương hướng xử lý trong các hoàn cảnh đó Các tri thức này cần được thể hiện một cách thích hợp sao cho thuận tiện trong việc lưu trữ, tìm kiếm và suy diễn
• Các khả năng của robot: Robot cần có khả năng phân biệt các đối tượng mà
nó gặp, thực hiện các thao tác, di chuyển trong môi trường sao cho đường đi
là tối ưu và không va chạm với các vật cản
1.1.2 Một số thuật ngữ chung trong việc lập lộ trình:
• Agent – Tác nhân: Là các đối tượng, thực thể có khả năng nhận thức từ môi trường xung quanh thông qua cơ quan cảm giác và có những phản ứng thích
hợp trở lại môi trường nhờ cơ quan phản ứng Ví dụ: con người, robot,…
• Percept – Tri thức: Là kết quả nhận thức của 1 đối tượng (agent / robot) đối
với môi trường xung quanh
Trang 8• Action – Hành động: Là những phản ứng của robot (agent) tác động vào
môi trường trong quá trình thu thập tri thức Hành động là nguyên nhân của
sự thay đổi trạng thái
• State – Trạng thái: Trạng thái của vấn đề lập lộ trình là một không gian
gồm tất cả các tình trạng có thể xuất hiện của robot và môi trường xung
quanh
• Initial state – Trạng thái ban đầu: Trạng thái có trước khi đối tượng (agent
/ robot) thực hiện bất kỳ hành động nào
• Goal state – Trạng thái mục tiêu: Trạng thái cuối cùng mà một đối tượng
(agent / robot) cần đạt được sau khi thực hiện kế hoạch
• Environment - Môi trường: Là không gian thế giới xung quanh dối tượng
(agent / robot), cung cấp tri thức và nhận phản ứng phản hồi từ dối tượng
• Plan library – Thư viện kế hoạch: Tập luật về các hành động của agent /
robot Thư viện có thể không đầy đủ các kế hoạch nhưng có khả năng cập nhật, chọn lọc thường xuyên trong quá trình agent / robot hoạt động và tiếp thu tri thức từ môi trường
• Plan space – Không gian kế hoạch: Lưu trữ các kế hoạch của agent / robot
Khác với thư viện kế hoạch, không gian kế hoạch có thể trùng lắp do được cập nhật tức thời, không có sự chọn lọc tại mỗi thời điểm agent / robot thực
hiện các hành động để đạt đến mục tiêu
• State Space – Không gian trạng thái: Là không gian tập hợp tất cả các
trạng thái mà agent / robot có thể có khi thực hiện hành động Đối với bài toán cụ thể, không gian trạng thái là hữu hạn Một điều chú ý là không gian trạng thái được biểu diễn không tường minh trong một giải thuật lập lộ trình; trong đa số các ứng dụng, số chiều của không gian trạng thái là quá lớn để có
thể được trình bày rõ ràng
• Configuration Space – Không gian cấu hình: Là không gian tập hợp tất cả
các cấu hình có thể có của agent / robot và môi trường xung quanh nó; là một
đặc tả toàn vẹn về các tọa độ các điểm trong hệ thống
Trang 9• Free space – Không gian tự do: Là nơi còn trống trong không gian mà
robot có thể di chuyển
• Obstacle – Chướng ngại vật: Là “thành phần” thường xuyên chiếm chỗ
trong không gian, hay nói cách khác là nơi mà robot không thể đi vào Ví dụ
như: bước tường, chiếc bàn,…
1.2 Bài toán lập lộ trình:
• Lộ trình trong trí tụê nhân tạo được định nghĩa là một tập hữu hạn các hành động có thể thực hiện và được được áp dụng cho một tập hợp riêng biệt những trạng thái và được xây dựng một giải pháp thích hợp cho dãy những
tâm là thuật toán và những vấn đề cài đặt một số phương pháp lập lộ trình
• Muốn hiểu sâu sắc về các giải thuật lập lộ trình ta phải trả lời được các câu
hỏi sau:
o Thế nào là một lộ trình?
o Một lộ trình được mô tả như thế nào?
o Lộ trình được cài đặt như thế nào trong máy tính?
o Như thế nào được cho là hoàn tất?
o Đánh giá chất lượng của một lộ trình ra sao?
o Đối tượng nào sẽ sử dụng lộ trình đó?
o …
• Tóm lại, bài toán lập lộ trình cho robot có thể được phát biểu như sau:
Cho đối tượng với vị trí ban đầu và vị trí đích với một tập các chướng ngại vật có các vị trí khác nhau trong không gian làm việc Yêu cầu tìm ra một
Trang 10đường đi liên tục từ vị trí ban đầu đến vị trí đích sao cho tránh được những
va chạm với các vật cản trên đường đi Quá trình lập lộ trình thường được chia thành hai thao tác chính đó là: Xây dựng không gian kế hoạch và tìm đường
1.3 Ví dụ về lập kế hoạch và một số ứng dụng về lập lộ trình robot
Tiếp sau đây chúng ta sẽ xem xét một số ví dụ cơ bản và ứng dụng thực tiễn của việc lập lộ trình cho robot, từ đó ta sẽ có thể hiểu rõ hơn tầm quan trọng và cần thiết của các giải thuật lập lộ trình
Để có thể lập lộ trình chính xác cho các đối tượng (agent / robot), trước tiên
ta cần phải xây dựng bộ lập kế hoạch cho đối tượng để nó có thể tiếp nhận tri thức,
xử lý và đưa ra các kế hoạch phù hợp Trước tiên chúng ta sẽ xem xét một số bài toán cơ bản đầu tiên trong việc lập kế hoạch
1.3.1 Robot sắp xếp các khối:
Mô tả bài toán: Có một tập hợp các khối lập phương ở trên bàn Các khối có
thể xếp chồng lên nhau, nhưng chỉ một khối có thể nằm trên một khối khác Một cánh tay robot có thể nhấc một khối lên và di chuyển nó đến vị trí khác: lên trên bàn hay lên trên một khối khác Trong một thời điểm cánh tay chỉ có thể nhấc một khối,
vì vậy nó không thể nhấc một khối đang ở dưới một khối khác Mục tiêu là sẽ xây dựng một hay nhiều đống các khối, cụ thể là giới hạn khối nào trên khối nào
Hướng giải quyết bài toán: Để có thể giúp robot thực hiện được công việc
này, trước tiên chúng ta cần mô hình hóa bài toán về dạng chuẩn, chuyển đổi các giả thiết của bài toán về dạng dữ liệu có thể biểu diễn trên máy tính gồm input (tương ứng với không gian trạng thái ban đầu) và output (tương ứng với trạng thái mục tiêu mà robot cần đạt); đồng thời, ta cần đề ra các giải thuật lập kế hoạch thích hợp cho robot và kiểm nghiệm giải thuật trên tập dữ liệu mẫu có sẵn, từ đó bổ sung, cập nhật tri thức về hướng giải quyết vấn đề cho robot Kết quả mà ta mong đợi đó
là robot sẽ có khả năng lập kế hoạch chính xác để hoàn thành công việc mà nó đã
được bổ sung tri thức với tập dữ liệu đầu vào (trạng thái bắt đầu) và ra (trạng thái
mục tiêu) bất kỳ
Trang 11Ví dụ, xét trạng thái ban đầu của các khối như sau:
1.3.2 Robot mua hàng hóa:
• Có một robot đang ở nhà, chủ nhà cần mua một số thực phẩm để nấu cho cả nhà vào buổi ăn trưa Vì thời gian nấu nướng quá gấp rút, chủ nhà cần sai robot ra chợ để mua các loại thực phẩm cần thiết Trong tình huống này, bộ lập kế hoạch phải lập ra kế hoạch để robot có thể ra chợ và mua đúng các thực phẩm mà người chủ yêu cầu với thời gian nhanh nhất hay ít tốn kém về tiền bạc và quay về nhà với đúng các thực phẩm đã yêu cầu
Tiếp sau đây ta sẽ xét một số ứng dụng thực tế của bài toán lập lộ trình robot
1.3.3 Sử dụng robot di động để di chuyển piano:
bằng cách sử dụng 3 robot di động với 3 cánh tay thao tác trên chúng Hình
Trang 121.3 mô tả quá trình di chuyển Trong quá trình di chuyển yêu cầu phải tránh được những va chạm giữa robot và các đồ vật khác Vấn đề sẽ trở nên phức
tạp hơn khi cấu trúc căn phòng chưa được biết trước
1.3.4 Tìm đường cho robot di động:
• Một trong những nhiệm vụ phổ biến cho robot di động là đòi hỏi chúng phải tìm được đường đi trong môi trường cụ thể (trong nhà, mê cung, hầm mỏ,…)
– Hình 1.4
• Một robot có thể được yêu cầu để thực hiện nhiệm vụ khảo sát thực địa, xây dựng bản đồ về môi trường mà nó khảo sát, xác định vị trí chính xác của nó trong bản đồ, đích cần đến Đa số các robot hành động bất chấp tình trạng không chắc chắn Vấn đề xây dựng một bản đồ về môi trường mà robot hoạt động là tiền đề của nhiều hệ thống hiện nay, đây là một lựa chọn được ưa chuộng cho việc phát triển những robot đáng tin cậy hoàn thành những
nhiệm vụ đặc biệt và chi phí tương đối thấp
Trang 13Qua các ví dụ nêu trên, ta có thể nhận thấy được tầm quan trọng của việc lập kế hoạch và xây dựng các giải thuật lập lộ trình Hướng nghiên cứu này không chỉ có ứng dụng trong ngành công nghệ robot mà còn có thể được ứng dụng trong rất nhiều lĩnh vực thực tế như: Khảo sát địa hình nguy hiểm, làm sạch môi trường
bị nhiễm độc - phóng xạ, ứng dụng trong các thiết bị tự động điều khiển, máy bay không người lái Không chỉ vậy, các giải thuật lập lộ trình còn được ứng dụng trong những kỹ thuật máy tính mô phỏng sinh học như robot khám bệnh, những mô hình hình học ứng dụng tới từng phân tử,…
1.4 Một số giải thuật cơ bản
Để có một khung nhìn chi tiết hơn về các cách tiếp cận với các giải thuật lập
lộ trình trong thực tế, trước tiên chúng ta sẽ tìm hiều sơ lược về một số giải thuật cơ bản nhất Các giải thuật này còn được biết với tên gọi là giải thuật Bug (Bug algorithms)
Mô tả bài toán:
• Có nhiều chướng ngại vật trong một môi trường xác định
• Đường đi hướng từ Nguồn (Start) tới Đích (Goal) có thể giao với nhiều vật cản
• Không gian làm việc là tập đóng:
o W ⊂ Br(x), r < ∞
o Br(x) = { y∈ℜ(2) | d(x,y) < r }
o Diễn giải: W là không gian làm việc của robot
Trang 14Br(x) là một tập đóng
Một số giả định của giải thuật:
• Đối tượng robot ở đây được mô hình là một điểm trong không gian làm việc
• Robot được cung cấp đầy đủ tri thức về không gian trạng thái cục bộ và mục tiêu toàn cục cần di chuyển đến
• Robot có các cơ quan cảm giác và các cơ quan cảm ứng để đưa ra các hành động thích hợp
Ý tưởng cơ bản của giải thuật:
• Luôn hướng robot tới mục tiêu cần đạt
• Khi gặp vật cản trên đường đi, men theo đối tượng vât cản (theo hướng bên trái hoặc bên phải) cho đến khi lại thấy được mục tiêu hoặc tìm được không gian trống để di chuyển và có thể hướng tới mục tiêu
Một số ký hiệu quy ước:
• qstart và qgoal: Vị trí bắt đầu và vị trí đích
1.4.1 Giải thuật Bug 0:
Giải thuật Bug 0 thực chất chỉ đơn giản vận dụng ý tưởng lập lộ trình cơ bản như đã nêu ở trên
Tóm tắt chi tiết giải thuật:
B1: Robot đi thẳng tới mục tiêu
B2: Men theo bề mặt vật cản khi gặp
chướng ngại cho đến khi có thể xác định lại
mục tiêu
B3: If (đến đích) Dừng
else Lặp lại bước 1
Minh họa: Hình 1.5
Trang 15Nhận xét: Giải thuật Bug 0 thực sự quá đơn giản vì vậy thực sự đây là một
giải thuật không toàn vẹn, không đảm bảo luôn tìm ra lời giải cho mọi bài toán Cụ thể xét trường hợp không gian làm việc như sau:
Trong trường hợp này robot sẽ không tìm
được đường đi nếu áp dụng giải thuật lập lộ trình
Bug 0 (với quy ước robot chỉ quẹo trái hoặc phải
khi gặp vật cản)
1.4.2 Giải thuật Bug 1
Để có thể khắc phục các nhược điểm do tính đơn giản của giải thuật Bug 0, người ta bổ sung thêm một số chi phí cho giải thuật này, như:
• Tăng thêm vùng nhớ lưu trữ
• Thêm độ phức tạp trong tính toán (Chi phí tính toán, xác định đường đi phức tạp, tốn kém hơn)
Giải thuật cải tiến dựa trên giải thuật cơ sở Bug 0 được gọi là giải thuật Bug 1
Mô tả chi tiết giải thuật:
mỗi điểm di chuyển so với mục tiêu
Mã giả cho giải thuật Bug 1:
Trang 16Demo giải thuật Bug 1: Sẽ được giới thiệu trong phần phụ lục
1.4.3 Giải thuật Bug 2:
Một hướng tiếp cận khác dựa trên giải thuật Bug 0 cũng đồng thời được đưa
ra cùng lúc và cạnh tranh với giải thuật Bug 1 Người ta đặt tên giải thuật này là Bug 2
Mô tả chi tiết giải thuật:
Gọi đường thẳng nối từ vị trí xuất phát (Start) đến vị trí đích (Goal) là m-line Giải thuật Bug 2 được mô tả như sau:
m-line
If (đến đích) Dừng
B2: Nếu gặp vật cản men theo bề mặt vật
cản cho đến khi gặp lại đường m-line
B3: Rời vật cản và di chuyển đến mục tiêu
Trang 17Mã giả giải thuật Bug 2:
1.4.4 So sánh 2 giải thuật Bug 1 và Bug 2
Nhận xét:
• Bug 1 là một giải thuật vét cạn
-> Xem xet tất cả các trường hợp trước khi đưa ra lựa chọn tiếp theo
• Bug 2 là một giải thuật tham lam
-> Đưa ra lựa chọn dựa trên kết quả tốt nhất đầu tiên mà nó có được
• Trong nhiều trường hợp Bug 2 hiệu quả hơn Bug 1 Tuy nhiên, Bug 1 an toàn và đáng tin cậy hơn Xét các vị dụ cụ thể sau:
Trang 18- Trong hình 1.8 trên, thuật toán Bug 2 (Đường biểu diễn màu đỏ) với phương pháp tìm đường dựa trên đường m-line tỏ ra hiệu quả hơn hẳn so với giải thuật Bug 1 (Đường biểu diễn màu vàng)
- Trong hình 1.9, trường hợp này thuật toán Bug 1 lại tìm được đường đi nhanh chóng hơn thuật toán Bug 2 Theo hình minh họa Bug 1 chỉ cần một
Trang 19nữa vòng di chuyển quanh vật cản để tìm ra lộ trình đến đích, trong khi đó giải thuật Bug 2 phải tốn chi phí cao hơn gấp đôi so với giải thuật Bug 1 để đến được mục tiêu
• So sánh độ phức tạp giữa 2 giải thuật:
1.5 Kết luận
Chương này đã giới thiệu tổng quan về khái niệm lập kế hoạch, lập lộ trình chuyển động cho robot và một số khái niệm liên quan khác, đồng thời đưa ra một vài ứng dụng tiêu biểu của chủ đề này và một số giải thuật cơ bản trong việc lập lộ trình cho robot (được biểu diễn bởi một dối tượng điểm trong không gian) Mục tiêu của chương giúp chúng ta có một khung nhìn khái quát về bài toán lập lộ trình và các cách tiếp cận bài toán Ở chương tiếp theo sau, chúng ta sẽ tìm hiểu chi tiết hơn
về cách mô hình hóa bài toán