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

ĐỒ ÁN (seminar)MÔN HỌC TRÍ TUỆ NHÂN TẠO

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 (1.21 MB, 38 trang )


ĐẠ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:



ĐỒ Á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
2

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

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

4

KÝ HIỆU – QUY ƯỚC

C-Space: Configuration space - không gian cấu hình
C
free
: Không gian tự do
q
start
: vị trí xuất phát
q
goal
: mục tiêu cần đến
5

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 (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:
6

Chươ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ỉ.



7

NỘ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
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.
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
hành động đó.
• Trong phạm vi rộng những vấn đề để cập trong thuật ngữ lập lộ trình đã
được áp dụng trong tất cả các lĩnh vực trí tuệ nhân tạo, lý thuyết điều khiển,
và kỹ thuật robot. Về cơ bản, dưới góc độ nhìn của lĩnh vực trí tuệ nhân tạo,
chúng ta có thể coi việc lập lộ trình như là một nhánh của giải thuật. Từ đây,
chúng ta nghiên cứu về các giải thuật lập lộ trình, trong đó mục tiêu trọ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
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ỳ.
11

Ví dụ, xét trạng thái ban đầu của các khối như sau:

• Mục tiêu là: Khối C xếp trên khối A và khối B trên bàn

• Kế hoạch được lập như sau:Nhấc B -> Đặt xuống -> Nhấc C đặt trên khối A.
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:
• Mô tả bài toán: Chúng ta cần di chuyển một piano lớn qua một căn phòng
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
12


1.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.
13


Qua 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 ⊂ B
r
(x), r < ∞
o B
r
(x) = { y∈ℜ(2) | d(x,y) < r }
o Diễn giải: W là không gian làm việc của robot
14

B
r
(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:
• q
start
và q
goal
: Vị trí bắt đầu và vị trí đích.
• “hit point” : q
H
i
Điểm mà robot có khả năng tiếp xúc với vật cản lần đầu tiên.
• “leave point” : q
L
i
: Điểm mà robot bắt đầu rời vật cản và tiếp tục hướng tới
đí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
15

Nhậ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:
B1: Hướng thẳng đến đích. Nếu đến đích -> Dừng.
B2: Nếu gặp vật cản, đi 1 vòng quanh nó và ghi nhận lại khoảng cách tại
mỗi điểm di chuyển so với mục tiêu
B3: Trở lại điểm gần với mục tiêu nhất và tiếp tục bước 1.
Mã giả cho giải thuật Bug 1:
16


Demo 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:
B1: Hướng thẳng đến mục tiêu theo đường
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.


17

Mã 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:
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
19

nữ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.

20

CHƯƠNG 2:
CẤU HÌNH KHÔNG GIAN TRẠNG THÁI

Kiến thức nền tảng và quan trọng trong việc lập lộ trình cho robot là làm thế
nào để mô hình hóa, định nghĩa được robot và không gian trạng thái xung quanh
robot. Không gian trạng thái cho việc lập lộ trình chuyển động là một tập hợp
những biến đổi có thể ứng dụng được cho robot để đạt đến trạng thái mục tiêu.

Không gian trạng thái ở đây sẽ được nhắc đến dưới khái niệm không gian
cấu hình (Configuration Space). Một không gian cấu hình phải được biểu diễn rõ
ràng và dễ hiểu. Trong khuôn khổ chương này chúng ta sẽ phân tích và tìm hiểu chi
tiết hơn về khái niệm này.
2.1. Các khái niệm không gian cấu hình:
Không gian cấu hình (Configuration Space) là không gian của tất cả những
cấu hình có thể có của robot, là một đặc tả toàn vẹn về tọa độ các điểm trong hệ
thống.

2.1.1. Chướng ngại (Obstacle):
Là những phần của không gian “thường xuyên” bị choán chỗ, ví dụ như: các
bức tường trong một tòa nhà, những chiếc bàn, ghế trong một căn phòng.
21

• Cấu hình chướng ngại vật: Là cấu hình của từng chướng ngại vật.
• Miền chướng ngại vật: Là hợp của tất cả cấu hình chướng ngại vật.
• Một số kí hiệu quy ước:

2.1.2. Không gian tự do (Free Space – C
free
):
Là phần bù của toàn bộ không gian với miền chướng ngại vật.
• Kí hiệu quy ước:

- Diễn giải:
o A là tập các tọa độ cấu hình của robot (agent) trong không gian cấu
hình -> A(q) là trạng thái của robot tại cấu hình q
o C là không gian cấu hình.
2.2. Các phép biến dổi của robot trong không gian
Xét trong không gian làm việc 2 chiều, một robot có thể có các phép biến đổi

cơ bản sau: Phép tịnh tiến và phép quay.
Trong không gian 3 chiều, tính chất của các phép biến đổi cơ bản trên là
hoàn toàn tương tự như các phép biến đổi 2 chiều. Điểm khác ở đây là ta sử dụng
thêm một biến để biểu diễn độ sâu trong không gian khi hiển thị một đối tượng trên
mặt phẳng.
Có 2 quan điểm về phép biến đổi hình học trong không gian, đó là:
22

• Biến đổi đối tượng: thay đổi tọa độ của các điểm mô tả đối tượng theo một
quy tắc nào đó.
• Biến đổi hệ tọa độ: Tạo ra một hệ tọa độ mới và tất cả các điểm mô tả đối
tượng sẽ được chuyển về hệ tọa độ mới.
2.2.1. Phép tịnh tiến:
Trong không gian 2D, Một robot tĩnh A được cấu thành bởi tập điểm thuộc
về không gian R
2
, robot được tịnh tiến bởi việc sử dụng 2 tham số x
t
, y
t

R∈
, trong
đó x
t
, y
t
lần lượt biểu diễn cho độ dời theo trục x và trục y của robot. Tập hợp các
tọa độ điểm mới của robot theo phép tịnh tiến với độ dời (x
t

, y
t
) được định nghĩa
như sau:
h(x, y) = (x + x
t
, y + y
t
)
Trong hình 2.2 có 2 cách xem xét về sự biến đổi robot tĩnh A:
2.2.a. Không gian cố định và robot được tịnh tiến.
2.2.b. Robot cố định và không gian thay dổi.

2.2.2. Phép quay:
Phép quay làm thay đổi hướng của đối tượng. Mỗi phép quay đòi hỏi phải có
tâm quay, góc quay. Góc quay dương thường được quy ước là chiếu ngược chiều
kim đồng hồ.
23

• Phép quay quanh gốc tọa độ: Ta có công thức biến đổi của phép quay điểm
P(x, y) quanh gốc tọa độ 1 góc
θ
(xem hình 2.3):
x’ = x.cos
θ
- y.sin
θ

y’ = x.sin
θ

+ y.cos
θ

hay: Q = P*M
với: Q(x’, là tọa độ điểm sau khi thực hiện phép biến đổi.
P là tọa độ điểm trước khi thực hiện phép biến đổi.
và M là ma trận với biểu diễn:
cos
θ
sin
θ

M = -sin
θ
cos
θ


• Phép quay quanh một điểm bất kỳ:

24

Xét điểm P(P.x, P.y) quay quanh điểm V(V.x, V.y) một góc
θ
đến điểm
Q(Q.x, Q.y). Ta có thể xem phép quay quanh tâm V được kết hợp từ các phép biến
đổi cơ bản sau:
• Phép tịnh tiến (-V.x, -V.y) để dịch chuyển tâm quay về góc tọa độ.
• Quay quanh gốc tọa độ O một góc
θ

.
• Phép tịnh tiến (+V.x, +V.y) để đưa tâm quay về vị trí ban đầu.
Ta có thể rút ra công thức tổng quát cho phép biến đổi trên như sau:
Q.x = P.x*cos
θ
- P.y*sin
θ
+ V.x*(1 - cos
θ
) + V.y*sin
θ

Q.y = P.x*sin
θ
+ P.y*cos
θ
- V.x*sin
θ
+ V.y*(1 - cos
θ
)
Hay:
Q = P.M + tr
với:
cos
θ
sin
θ

M = -sin

θ
cos
θ

Tr = (V.x*(1 - cos
θ
) + V.y*sin
θ
, -V.x*sin
θ
+ V.y*(1 - cos
θ
))
2.3. Phép biến đổi C-Space (Phép biến đổi cấu hình không gian)
Với mọi robot vật thể rắn (không khớp) chuyển động trong không gian thực,
luôn tồn tại một phép ánh xạ robot và các vật cản về dạng biểu diễn gồm một điểm
di chuyển trong không gian gồm các chướng ngại được mô tả bởi các đối tượng
hình học đơn giản (hoặc phức tạp nhưng có thể thao tác/ xử lý được). Phép biến đổi
này được gọi là phép biến đổi cấu hình không gian (C-Space Transform)
• Ví dụ về phép biến đổi C-Space:

25

- Xét một ví dụ đợn giản như trong hình 2.5: Yêu cầu bài toán là tìm cách di
chuyển đối tượng robot hình cầu, kích thước lớn men theo sát rìa của vật cản
(càng sát càng tốt) sao cho đảm bảo điểu kiện robot không va đập vào
chướng ngại. Để đơn giản hóa cách biểu diễn bài toán và tiện trong việc lập
trình ta có thể áp dụng phép biến đổi C-space để đưa bài toán về dạng biểu
diễn di chuyển một điểm trong không gian (điểm này tương ứng với đối
tượng robot) với kích thước các vật cản được mở rộng.

Phép biến đổi cấu hình không gian 3 chiều:
• Bài toán đặt ra ở đây là: Làm thế nào để chuyển đổi không gian cấu hình cho
bài toán di chuyển một đối tượng đa giác vượt qua không gian tập các vật
cản cũng là đa giác???
- Hình 2.6. Minh họa cho cách giải quyết vấn đề trên. Ở đây không gian bài
toán ban đầu được đưa về không gian cấu hình biểu diễn một điểm di chuyển
trong không gian 3 chiều tạo bởi các vật cản đa giác 2 chiều được bố trí theo
độ sâu khác nhau.


×