Tran Duy Quang_Robot Motion Planning

38
8/2/2019 Tran Duy Quang_Robot Motion Planning http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 1/38  ĐẠ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: [email protected] ĐỒ Á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

Transcript of Tran Duy Quang_Robot Motion Planning

Page 1: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 1/38

 ĐẠ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 – 0912369Email: [email protected] 

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

ĐỀ TÀI : Lập lộ trình chuyển động cho robot DỰ A TRÊN TÀI L IỆ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

Page 2: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 2/382

MỤC LỤC 

MỤC LỤC................................................................................................................. 2KÝ 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 ............................................................ 121.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 giancấu hình .............................................................. 20

2.1.1. Chướng ngại (Obstacle) ..................................................................... 20

2.1.2. Không gian tự do (Free Space – Cfree) ...............................................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

Page 3: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 3/383

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

Page 4: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 4/384

KÝ 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

Page 5: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 5/385

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 trongkhô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:  

Page 6: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 6/386

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ênqua 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ỉ. 

Page 7: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 7/387

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 đanglà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 

Page 8: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 8/388

•  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 giantrạ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. 

Page 9: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 9/389

•  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ữnghà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 

Page 10: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 10/3810

đườ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ỳ. 

Page 11: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 11/3811

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

Page 12: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 12/3812

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. 

Page 13: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 13/3813

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⊂ 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 

Page 14: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 14/3814

Br(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êntrá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. 

•  “hit point” : qHi Đ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” : qLi : Đ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ặpchướ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

Page 15: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 15/3815

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: 

Page 16: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 16/3816

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.

Page 17: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 17/3817

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 :

Page 18: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 18/3818

-  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

Page 19: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 19/3819

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ơnvề cách mô hình hóa bài toán. 

Page 20: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 20/3820

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 chitiế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. 

Page 21: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 21/3821

•  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 – Cfree):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à:

Page 22: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 22/3822

•  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 R2, robot được tịnh tiến bởi việc sử dụng 2 tham số x t, yt R∈ , trong

đó xt , yt 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 (xt, yt) được định nghĩa

như sau: h(x, y) = (x + xt, y + yt)

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

Page 23: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 23/3823

•  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 quayquanh một điểm bất kỳ: 

Page 24: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 24/3824

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:

Page 25: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 25/3825

-   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ậtcả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. 

Page 26: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 26/3826

2.4. Kết luận:

Chương này tập trung chủ yếu vào việc trình bày khái niệm không gian cấu

hình và một số khái niệm liên quan (như: Không gian tự do, chướng ngại trên lộ

trình di chuyển), đề cập đến phép biến đổi cấu hình không gian và một số ví dụ ,

đồng thời giới thiệu sơ vê một số phép biến đổi cơ bản một đối tượng trong không

gian (như phép tịnh tiến, phép quay, phép quay kết hợp phép tịnh tiến). Đây chính

là các kiến thức nền tảng cho các phương pháp lập lộ trình chính xác sẽ được đề cập

đến ở chương sau. 

Page 27: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 27/3827

CHƯƠNG 3: 

MỘT SỐ PHƯƠNG PHÁP CHÍNH XÁC LẬP LỘ TRÌNH CHUYỂN ĐỘNG 

3.1. Giới thiệu chung 

Cho đến nay, trong lĩnh vực lập lộ trình chuyển động cho robot đã có rất

nhiều giải thuật được đề ra, mỗi giải thuật đều có những ưu điểm, tiềm năng riêng

và được ứng dụng trong một số lĩnh vực nhất định. Trong đó, các phương pháp phổ

 biến nhất là phương pháp lấy mẫu cơ sở và phương pháp lập lộ trình chính xác. 

Trong khuôn khổ tìm hiểu của đồ án này, chúng ta chỉ xem xét các phương pháp lập

lộ trình chính xác. 

3.2. Một số giải thuật lập lộ trình chính xác cho robot Có rất nhiều giải thuật lập lộ trình chính xác. Ở đây chúng ta tập trung giới

thiệu về 3 giải thuật lập lộ trình chính xác tiêu biểu đó là Visibility Graph, Voronoi

Diagram (thuộc lớp các giải thuật roadmap), và phương pháp Cell Decomposition. 

3.2.1. Các giải thuật roadmap 

3.2.1.1. Visibility Graph – Đồ thị tầm nhìn 

Mục tiêu của giải thuật: Tìm được đường đi ngắn nhất cho robot để có thể

di chuyển đến đúng mục tiêu. 

Ý tưởng của giải thuật này có thể được coi là ví dụ đầu tiên cho một giải

thuật lập lộ trình chuyển động chính xác. 

Ý tưởng chung của giải thuật này là xây dựng một đồ thị đơn giản nhất có

thể để biểu diễn các đường đi từ đỉnh xuất phát đến đỉnh đích trong không gian cấu

hình; từ đó ta sẽ lựa chọn ra một giải thuật tìm kiếm thích hợp nhất (ví dụ: Giải

thuật A*) để tìm ra đường đi tối ưu trên đồ thị tìm kiếm vừa xây dựng.  

Page 28: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 28/3828

Một điều cần lưu ý nữa là phương pháp đồ thị tầm nhìn chủ yếu được ápdụng cho các bài toán xét trongkhông gian gồm các vật cản đa giác. 

Xét không gian cấu hình gồm các vật cản đa giác được biểu diễn trong hình

3.1. Ta cómột số nhận xét như sau: 

•   Nếu không có vật cản, đường di ngắn nhất để đến đích chắc chắn là đường

thẳng m-line nối 2 điểm qstart và qgoal. 

•   Ngược lại, chắc chắn phải tồn tại một đường đi là một dãy liên tục các đoạn

thẳng men theo bề mặt vật cản kết nối 2 điểm qstart và qgoal

Một số quy ước trong phương pháp đồ thị tầm nhìn: 

•   Nút (Node) của đồ thị tương ứng với đỉnh của các vật cản đa giác. 

•  Các nodeđược xem là kề nhau khi: 

- 2 node được nối với nhau  bởi một cạnh của một vật cản. 

- Hoặc đoạn thẳng nối 2 node thuộc về không gian tự do.

Page 29: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 29/3829

Tóm tắt tư tưởng của phương pháp đồ thị tầm nhìn: 

B1:  Xây dựng không gian

cấu hình. 

B2:  Xây dựng các đoạn

thẳng không bị chặn nối

các đỉnh đa giác, đỉnh đầu

và đỉnh cuối.

B3: Sử dụng thuật toán

tìm kiếm trên đồ thị vừa

 xây dựng để tìm đường đingắn nhất.

Hình 3. 2 ở bên minh họa một đồ thị được xây dựng trên không gian cấu hình

gồm các vật cản đa giác theo tư tưởng của phương pháp đồ thị tầm nhìn. 

Lược giản đồ thị tầm nhìn:

Với nhận xét sau: 

•  Đồ thị được xây dựng hiện tại có quá nhiều cạnh! -> Ta có thể lược bỏ một

số cạnh không cần thiết sau: 

o  Các cạnh / đường hướng vào vật cản là đa giác lõm ->Điều chắc chắn

là đường đi tối ưu không thể đi qua các cạnh này, vì đi theo các cạnh

này đồng nghĩa với việc đi vào ngõ cụt và ta phải thực hiện một phép

quay lui.

o  Các cạnh / đường có xu hướng “lao đầu” vào các đối tượng vật cản. 

 Như vậy tư tưởng chính của đồ thị tầm nhìn giản lược ở đây là chỉ tập trung 

vào các cạnh lướt qua các góc của vật cản và bảo đảm không đi vào ngõ cụt.  

Tóm lại đồ thị giản lược sẽ có dạng sau: 

•  Các nút là các đỉnh của đa giác lồi. 

Page 30: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 30/3830

•  Các cạnh tiếp xúc với các đa giác vật cản (Không lao thẳng vào các đối

tượng vật cản). 

Hình 3.3 mô tả một đồ thị được lược giản từ một đồ thị phức tạp ban đầu.  

Nhận xét: 

Theo thống kê, chi phí cao nhất cho việc xây dựng đồ thị tầm nhìn trên

không gian cấu hình sẽ là O(n3) với cài đặt đệ quy (Brute force), và chi phí thấp

nhất cho công việc này là: n log (n) (hoặc n2log (n)) với hướng áp dụng giải thuật

đường quét (sweepline algorithm). Do trong khuôn khổ bài báo chỉ dừng ở mức độ

giới thiệu khái niệm tổng quan về ý tưởng của các phương pháp lập lộ trình chuyển

động, vì vậy chúng ta sẽ không đi sâu vào tìm hiểu cách cài đặt và tính đúng đắn

của các giải thuật này ở đây. Tuy nhiên lưu đồ giải thuật và cài đặt demo sẽ được đề

cập thêm ở phần phụ lục. 

3.2.1.2. Voronoi Diagram – Lược đồ Voronoi Giới thiệu khái niệm chung: 

Page 31: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 31/3831

•  Cho trước một số điểm, mỗi điểm có màu sắc khác nhau trong không gian. 

•  Tập các điểm còn lại trong không gian sẽ được tô theo quy luật sau:  “Các

điểm này sẽ có cùng màu với điểm đã cho gần nhất với nó.” 

=>Tập hợp các đường biên phân chia các vùng khác nhau là lược đồ Voronoi 

(Voronoi Diagram).

Hình 3.4 dưới đây minh họa một lược đồ Voronoi được hình thành theo các

nguyên tắc trên. 

Hình 3.5 minh họa quá trình hình thành một lược đồ Voronoi tổng quát

(GVD – General Voronoi Diagram). Lưu ý, lược đồ voronoi tổng quát là lược đồ

mà tập các điểm trên đó cùng mang tính chất là khoảng cách từ một điểm bất kỳ đến

2 (hay nhiều) vật cản là như nhau. 

Page 32: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 32/3832

Ứng dụng lược đồ Voronoi trong việc xác định lộ trình chuyển động:

B1: Xác định lược đồ Voronoi cho không gian cấu hình

B2: Tính toán đoạn đường ngắn nhất từ đỉnh nguồn đỉnh bất kỳ trên đồ thị.

B3: Tính toán đoạn đường ngắn nhất từ đỉnh đích đến đỉnh bất kỳ trên đồ thị.

B4: Xác định đường đi tối ưu từ đỉnh nguồn đến đích dọc theo lược đồ

Voronoi.

3.2.2. Cell Decomposition (Phân ly ô)

Các giải thuật phân ly ô hướng tới việc chia cắt C free thành một tập hữu hạncác vùng gọi là ô. 

Sự phân ly ô phải đảm bảo thỏa mãn 3 thuộc tính: 

•  Việc xây dựng đường đi từ một điểm bên trong một ô phải dễ dàng. Ví dụ,

nếu mỗi ô lồi thì bất kỳ cặp điểm nào trong mỗi ô đều có thể nối được bởi

một đoạn thẳng. 

Page 33: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 33/3833

•  Sự cung cấp thông tin cho những ô liền kề phải dễ dàng để xây dựng

roadmap.

•  Cho trước cặp điểm bắt đầu qstart và điểm đích đến qgoal cần phải xác định

được các ô nào chứa chúng. 

 Nếu sự phân ly ô thỏa mãn các thuộc tính nêu trên thì vấn đề lập lộ trình

chuyển động được biến đổi về vấn đề tìm kiếm trên đồ thị. Tiếp sau đây chúng ta sẽ

đi vào tìm hiểu chi tiết hơn về các phương pháp  phân ly ô phổ biến, cụ thể là:

phương pháp phân ly ô chính xác vàphương pháp phân ly ô xấp xỉ. 

3.2.2.1. Phân ly ô chính xác (Exact Cell Decomposition):Tư tưởng chính của phương pháp này là chia không gian tự do thành tập

các đa giác lồi chính xác. 

Một số phương pháp phân ly ô chính xác như: Phân ly ô dọc (hay còn gọi

là phân ly hình thang), phân ly ô dựa trên cạnh nối các đỉnh  của các vật cản đa giác 

với các đinh đường biên của không gian cấu hình (phân ly ô đa giác tự do) . Hình

3.6 và 3.7 minh họa các phương pháp phân ly ô trên. 

Page 34: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 34/3834

Xétkhông gian cấu hình có đường biên được biểu diễn dưới dạng đa giác.

Mô tả các phương pháp phân ly cơ bản: 

Xét phương pháp phân ly ô đa giác tự do minh họa như trong hình 3.6. Tư

tưởng của phương pháp phân ly này xác định tất cả các đỉnh của các đối tượng vật

cản đa giác, dựng các cạnh nối có thể tạo (các cạnh không bị chặn) giữa các đỉnh lồi

của các đa giác vật cản với các đỉnh đường biên của không gian cấu hình. Với quytắc thực hiện trên, ta có thể phân ly không gian cấu hình đa giác ban đầu thành tập

các ô (cell) được minh họa như trong hình vẽ. 

Xét phương pháp phân ly ô dọc minh họa như trong hình 3.7. Tư tưởng của

 phương pháp này là dùng những tia hướng thẳng từ trên xuống (hoặc ngược lại) đi

qua các đỉnh lồi của các vật cản đa giác hoặc qua các đỉnh của đường biên của

không gian cấu hình để phân ly không gian ban đầu thành không gian gồm tập hợp

nhiều ô (cell) đơn vị. Phương pháp này còn gọi là phương pháp phân ly hình thang

vì hầu hết các ô tạo thành đều có dạng hình thang. 

Ứng dụng phương pháp phân ly ô (Cell Decomposition) vào việc lập lộ

trình chuyển động:

Quá trình lập lộ trình diễn ra theo các bước sau: 

Page 35: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 35/3835

•  Áp dụng phương pháp phân ly ô, phân rã không gian cấu hình ra thành

không gian tập hợp các ô (cell) đơn vị. 

•  Xác định các ô (cell) chứa đỉnh bắt đầu (start point) và đỉnh đích (goal

point).

•  Xây dựng đồ thị liền kề cho các ô còn lại. Theo quy ước sau:  

o  Mỗi nút của đồ thị tương ứng với một điểm bất kỳ trong ô-cell

(thường là tâm của cell hoặc chọn ra các trung điểm trên các cạnh của

cell).

o  Cạnh của đồ thị nối các cell (nút – node) kề nhau. 

•   Nối đỉnh bắt đầu (start) và đỉnh đích (goal) với các đỉnh trong đồ thị vừa xâydựng thỏa mãn tính chất kề với 2 đỉnh này. 

•  Áp dụng giải thuật tìm đường đi tối ưu trên đồ thị liền kề. 

Một số phương pháp phân ly ô chính xác khác  như:  Trapezoidal

Decomposition, Morse Cell Decomposition, Visibility-based Decomposition.

Tuy nhiên trong khuôn khổ bài báo cáo này, các phương pháp này sẽ tạm

thời không được đề cập đến. 

3.2.2.2. Phân ly ô xấp xỉ (Approximate Cell Decomposition):

Trong phạm vi tìm hiểu của báo cáo dồ án này chúng ta sẽ không đi chi tiết 

vào phương pháp này. Một số đặc điểm nổi bật của phương pháp được giới thiệu

dưới đây: 

Các bước thực hiện phân ly ô: •  Thiết lập khung lưới (tập các ô vuông). 

•  Loại bỏ các ô giao với vật cản. 

•  Xác định đường đi ngắn nhất qua các ô còn lại (sử dụng các giải thuật tìm

kiếm trên đồ thị như : A*)

 Nếu không tồn tại đường đi, Tăng độ phân ly ô và lặp lại quá trình tìm kiếm

Hình 3.8minh họa phương pháp phân ly ô xấp xỉ. 

Page 36: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 36/3836

Nhận xét: 

•   Nhược điểm của phương pháp:

-  Không chính xác (Không thể đề cập tới khái niệm đường đi “tối ưu”).

-  Khôn toàn vẹn: Không đảm bảo vấn đề sẽ được giải quyết. 

-  Không chính xác khi áp dụng trên không gian ít chiều.

•  Tuy nhiên, phương pháp này thực sự được áp dụng trong các hệ thống thực

tế.

3.3. Tổng kết 

Chương này chủ yếu tập trung vào mục tiêu giới thiệu một khung nhìn sơ 

lược  bao gồm các khái niệm cơ bản và ý tưởng của các giải thuật lập lộ trình chính

xác cho robot. Cụ thể là các giải thuật sau: Đồ thị tầm nhìn (Visibility Graph), Lựoc

đồ Voronoi (Voronoi Diagram), Phân ly ô (Cell Decomposition). 

Page 37: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 37/3837

TÀI LIỆU THAM KHẢO 

  “Motion.ppt” – PGS- TS. Lê Hoài Bắc  Principles of Robot Motion Theory, Algorithms, and Implementations -

by Howie Choset

  Luận văn “Nghiên cứu Planning để giải bài toán xác định lộ trình” – SVTH:

Trần Thủy Tiên, Trần Hồng Thái 

  http://voronoi.sbp.ri.cmu.edu/~choset 

  http://www.metu.edu.tr/~e159540/index.html : Demo của sinh viên MIT 

  http://www.vanhoavu.com/VHV/EXTRAS/ArtificialIntelligence_01.htm 

  http://www.scribd.com/doc/49899816/53/Khai-quat-v%E1%BB%81-

l%C6%B0%E1%BB%A3c-%C4%91%E1%BB%93-Voronoi 

  Và tất nhiên là sự hỗ trợ không thể thiếu từ: GOOGLE 

Page 38: Tran Duy Quang_Robot Motion Planning

8/2/2019 Tran Duy Quang_Robot Motion Planning

http://slidepdf.com/reader/full/tran-duy-quangrobot-motion-planning 38/38

PHỤ LỤC 

Phụ lục 1 - Demo các giải thuật cơ bản (Bug 1 – Bug 2)

Bao gồm các đoạn clip demo được lưu trong đường dẫn thư mục “..\Slide

thuyet trinh\Demos” nộp kèm với báo cáo đồ án. 

Phụ lục 2 – Demo giải thuật Visibility Graph 

Giải thuật được cài đặt theo phương pháp đường quét (Sweepline algorithm).

Chi tiết cài đặt được lưu trong thư mục “..\Source code\Visibility Graph” và filethực thi chương trình được biên dịch sẵn được lưu trong thư mục “..\Source

code\Release”.

Phụ lục 3 – Demo giải thuật Voronoi Diagram 

Demo giải thuât được mô tả trong bài thuyết trình, slide 43 (file ảnh .gif )