Hoạch định quỹ đạo đường đi là một trong những bài toán quan trọng về robot di động, nhiệm vụ của nó là tìm ra một đường đi tối ưu từ điểm bắt đầu đến điểm kết thúc mà không va chạm với
Trang 1LỜI C M T
Đềătàiă“HoạchăđịnhăquỹăđạoăchoărobotădiăđộngădùngăthuậtătoánăPSO”ăđãăhoàn thành
với sựăhướngădẫnătậnătìnhăcủaăTS Ngô Văn Thuyên (Trưởngăphòng quảnălýăkhoaă
họcă&ăquanăhệăquốcătếă- TrườngăSưăphạmăKỹăthuậtăTp.HồăChíăMinh).ăTrướcăsựătậnătìnhăđóătôi xinăbàyătỏălòngăbiếtăơnăsâuăsắcăvàălờiăcảmăơnăchânăthànhănhấtăđếnăthầyă
Ngô Văn Thuyên , ngườiăđãătậnătìnhăhướngădẫnăvàăgiúpăđỡătôi rấtănhiềuătrongăsuốtăthờiăgianăthựcăhiệnăđềătài
Tôi xin gửiălờiăcámăơn đếnăquýăthầyăcôătrườngăĐạiăHọcăSưăPhạmăKỹăThuậtătp.ăHồăChí Minh,ă Đạiă Họcă Báchă Khoaă tp.ă Hồă Chíă Minh,ă Đạiă Họcă Quốcă Tếă đãă tậnă tìnhăhướngă dẫnă vàă truyềnă đạtă nhữngă kiếnă thức,ă phươngă phápă nghiênă cứuă vàă cácă kinhănghiệmătrongăsuốtăhaiănĕmăhọc.ăNhữngăkiếnăthứcăvàăkinhănghiệm nàyăchínhălàănềnătảngăgiúpăngườiăthựcăhiệnăhoànăthànhătốtăluậnăvĕnănày
Tôi xinăgửiălờiăcảmăơnăđếnăBanăGiámăHiệu,ăcùngăquýăthầyăcôătrườngă Cao ĐẳngăNghềăĐồngăThápăđãăgánhăvácăcôngăviệcăcủaătôi vàătạoăđiềuăkiệnăthuậnălợiăchoătôi tham gia và hoàn thành khóa học này
Tôi xinăgửiălờiăcảmăơnăđếnăquýăanhăchịăcácăkhóaăCaoăhọcătrước,ăbạn bè, ngườiăthânăvàăgiaăđìnhăđãătậnătìnhăgiúpăđỡ,ăđộngăviên tôi trongăsuốtăkhóaăhọcăcǜngănhưătrongăquáătrìnhăthựcăhiệnăluậnăvĕn
T.p.HồăChíăMinh,ăthángă04 nĕmă2013
Họcăviênăthựcăhiện
Trang 2Hoạch định quỹ đạo đường đi là một trong những bài toán quan trọng về robot di động, nhiệm vụ của nó là tìm ra một đường đi tối ưu từ điểm bắt đầu đến điểm kết thúc mà không va chạm với vật cản
Có rất nhiều phương pháp hoạch định đường đi cho robot di động đã được triển khai như: phương pháp trường thế năng (Potential Field), phương pháp bản đồ đường (Road Map), phương pháp thuật toán di truyền (Genetic Algorithms) Khuyết điểm các phương pháp trên là bị bẫy cực tiểu cục bộ (phương pháp trường thế năng), tăng chi phí độ dài đường đi (bản đồ đường) hoặc rất phức tạp (thuật toán di truyền) do sử dụng kỹ thuật lai ghép và đột biến
Gần đây các phương pháp hoạch định đường đi kết hợp giữa thuật toán tìm đường
đi ngắn D* với các phương pháp trên cho kết quả tránh được bẫy cực tiểu cục bộ,
độ dài đường đi được ngắn hơn Tuy nhiên đường đi của robot chưa được bằng phẳng Robot bị dao động nhiều khi gặp các vật cản Để khắc phục hạn chế này, đề
tài đề xuất phương pháp “Hoạch định quỹ đạo cho robot di động dùng thuật toán PSO” trên cơ sở kế thừa phương pháp D*_PF
Thuật toán D* và PF dùng để tìm đường và tránh vật cản trên quảng đường đi Thuật toán PSO được sử dụng để tìm vận tốc góc và vận tốc thẳng cho robot để robot có thể di chuyển từ điểm ban đầu đến điểm kết thúc dọc theo đường đi được tìm bởi thuật toán D*
Các thuật toán trong đề tài được viết bằng ngôn ngữ C++ và mô phỏng trên phần mềm Player/Stage Kết quả mô phỏng cho thấy đường đi của robot rất mịn và robot đến được mục tiêu một cách an toàn
Trang 3Path planning is one of the important problems of mobile robot, its task is to find an optimal path from its starting point to end point without colliding with obstacles There are many methods for mobile robot path planning such as: potential field method (PF), the road map approach (RM), or genetic algorithm (GA) Disadvantages of those methods are trapped local minima (PF), increase of the cost
of the path length (RM) or complexity (GA) due to the crossover and mutation techniques
Recent path planning solutions combining algorithm to find the shortest path D * with the above methods result in avoiding local minima traps and the path length is shorter However, the robot's path has not been smoothed The robot is swung when
it travels near the obstacles or when it moves along a narrow path To overcome this limitation, the proposed method named "Planning for mobile robot using PSO algorithm" on the basis of inherited method D *_PF is used in this thesis
The D* and PF algorithms are used to find the shortest path for the robot to move from its starting position to its desired position without colliding to the obstacles Then the PSO algorithm is used to find the angular and linear velocities for the robot to move from one way point to the other along the desired path generated by D* algorithm
The algorithm is simulated on Player /Stage using C++ language The simulation results show the path of the robot is very smooth and the robot to the goal safely
Trang 4Lý lịch khoa học i
Lời cảm tạ iii
Lời cam đoan iv
Tóm tắt v
Chương 1: T NG QUAN 1
1.1 Giới thiệu 1
1.2 Mục tiêu và giới hạn đề tài 5
1.3 Nội dung đề tài 5
Chương 2: C S Lụ THUY T 7
2.1 Mô tả mô hình toán học của một số robot di động 7
2.2.1 Robot 2 bánh 7
2.2.2 Robot 3 bánh 9
2.2.3 Robot 4 bánh 10
2.2 Các phương pháp lập kế hoạch đường đi 11
2.2.1 Phương pháp bản đồ đường đi (Road Map) 11
2.2.2 Phương pháp chia ô (Cell decomposition) 13
2.3 Các phương pháp tránh vật cản 14
2.3.1 Thuật toán Bug 14
2.3.2 Phương pháp trường thế năng (Potential field methods) 16
2.3.3 Phương pháp trường lực ảo (Virtual Force Field) 19
2.4 Các giải thuật tìm kiếm 21
2.4.1 Giải thuật A* 21
2.4.2 Giải thuật D* 24
2.5 Thuật toán PSO 29
2.5.1 Giới thiệu về PSO 29
Trang 5THU T TOÁN PSO 37
3.1 Giới thiệu 37
3.2 Lưu đồ mô tả phương pháp hoạch định đường đi cho robot di động 37
3.3 Tìm đường đi tối ưu cho robot dùng thuật toán D* 39
3.4 Quy hoạch chuyển động cho robot di động dùng thuật toán PSO 41
3.5 Kết luận 45
Chương 4: K T QU MÔ PH NG 46
4.1 Phần mềm mô phỏng robot Player/Stage 46
4.1.1 Giới thiệu 46
4.1.2 Đặc điểm của Player 46
4.1.3 Đặc điểm của Stage 48
4.1.4 Các tập tin cần thiết khi sử dụng Player/Stage 49
4.2 Kết quả mô phỏng 50
4.2.1 Mô phỏng đường đi của robot dùng phương pháp PF (Potential field) 50
4.2.2 Mô phỏng đường đi của robot sử dụng kết hợp phương pháp PF và thuật toán tìm kiếm D* 52
4.2.3 Mô phỏng đường đi của robot sử dụng thuật toán PSO 56
Chương 5: K T LU N VÀ H NG PHÁT TRI N C A Đ TÀI 63
5.1 Kết quả đã nghiên cứu 63
5.2 Kết luận và hướng phát triển của đề tài 63
5.2.1 Kết luận 63
5.2.2 Hướng phát triển của đề tài 64
TÀI LI U THAM KH O 65
Phụ lục ……… 68
Trang 6Hình 1.1 Một số hình ảnh robot di động 2
Hình 1.2 Robot di chuyển bằng bằng bánh xe 2
Hình 2.1 Cấu trúc robot 2 bánh 8
Hình 2.2 Cấu trúc robot với điều kiện ràng buộc nonholonomic trong hệ tọa độ toàn cục 9
Hình 2.3 Cấu trúc robot 3 bánh 10
Hình 2.4 Cấu trúc c a robot di động 4 bánh 10
Hình 2.5 Ph ơng pháp đồ thị trực quan (Visibility graph) 12
Hình 2.6 Sơ đồ Voronoid 13
Hình 2.7 Ph ơng pháp chia ô 13
Hình 2.8 Đ ờng đi tránh vật cản c a thuật toán Bug 1 15
Hình 2.9 Đ ờng đi tránh vật cản c a thuật toán Bug 2 15
Hình 2.10 Đ ờng đi tránh vật cản c a thuật toán DistBug 15
Hình 2.11 Ph ơng pháp tr ờng thế năng 16
Hình 2.12 Phân bố xác xuất vật cản dùng cảm biến lấy mẫu liên tục 20
Hình 2.13 Mô tả bản đồ và đ ờng đi c a thuật toánt A* 22
Hình 2.14 Khoảng cách giữa các ô l ới 23
Hình 2.15 Mô tả bản đồ và đ ờng đi c a thuật toán D* 25
Hình 2.16 Sự kết hợp c a ba trọng số di chuyển 30
Hình 2.17 Sự di chuyển c a cá thể trong PSO 31
Hình 3.1 L u đồ mô tả hoạt động c a giải thuật hoạch định đ ờng đi 38
Trang 7Hình 3.4 Dẫn đ ờng giữa hai điểm 41
Hình 4.1 Mô hình Client/Sever c a Player 47
Hình 4.2 Kết nối giữa Player/Stage và Robot 49
Hình 4.3 Đ ờng đi c a robot sử dụng ph ơng pháp PF tiếp cận đ ợc mục tiêu 51
Hình 4.4 Đ ờng đi c a robot sử dụng ph ơng pháp PF không tiếp cận mục tiêu 52 Hình 4.5 Đ ờng đi c a robot sử dụng kết hợp thuật toán D* với ph ơng pháp PF thoá t khỏi bẫy cực tiểu cục bộ 53
Hình 4.6 Biểu đồ vận tốc góc điều khiển robot với vật cản chữ U 54
Hình 4.7 Đ ờng đi c a robot sử dụng kết hợp thuật toán D* với ph ơng pháp PF ch a tối u 54
Hình 4.8 Đ ờng đi c a robot sử dụng kết hợp thuật toán D* với ph ơng pháp PF ch a tối u với vật cản ph c tạp 55
Hình 4.9 Biểu đồ vận tốc góc điều khiển robot với vật cản ph c tạp 56
Hình 4.10 Đ ờng đi c a robot sử dụng thuật toán PSO 57
Hình 4.11 Biểu đồ vận tốc góc điều khiển robot với vật cản chữ U 58
Hình 4.12 Biểu đồ so sánh vận tốc góc điều khiển robot ph ơng pháp PSO và PF_D* 58
Hình 4.13 Đ ờng đi c a robot sử dụng thuật toán PSO với thông số khác nhau 59 Hình 4.14 Đ ờng đi c a robot sử dụng thuật toán PSO với vật cản ph c tạp 60
Hình 4.15 Biểu đồ vận tốc góc điều khiển robot với vật cản ph c tạp 61
Hình 4.16 Biểu đồ so sánh vận tốc góc điều khiển robot ph ơng pháp PSO và PF_D* 61
Trang 81
Chương 1
T NG QUAN 1.1 Gi i thi u
Theo dự báo thì trong vòng 20 năm tới mỗi người sẽ có nhu cầu sử dụng một robot
cá nhân như cần một máy tính PC hiện nay và robot sẽ là tâm điểm của một cuộc cách mạng công nghệ lớn sau Internet [1]
Cùng với sự phát triển của ngành cơ điện tử robot tự hành ngày càng được hoàn thiện hơn, được ứng dụng nhiều trong các ngành công nghiệp, thương mại, y tế, khoa học, …và mang lại nhiều lợi ích cho đời sống xã hội, thay thế dần sức lao động của con người trong những điều kiện môi trường độc hại nguy hiểm, tăng nhanh năng suất lao động…đặc biệt nó góp phần tích cực vào quá trình công nghiệp hóa hiện đại hóa nước ta nói riêng và thế giới nói chung Hình 1.1 cho thấy một số loại robot di động khác nhau, được ứng dụng trong thực tế
Robot tự hành (hay robot di động) là những thiết bị có khả năng tự vận động và thực hiện nhiệm vụ một cách độc lập Nhờ các cảm biến để nhận biết môi trường xung quanh kết hợp với một chương trình được thiết lập trước, robot di động có thể tự hoàn thành công việc được giao mà không cần có sự tác động của con người [4] Tùy theo mục đích nghiên cứu, sử dụng mà ta chọn loại robot thích hợp Đề tài này tập trung nghiên cứu robot di động chuyển động bằng bánh xe, tự động di chuyển trong môi trường Robot di chuyển bằng bánh xe có nhiều ưu điểm hơn so với robot
di chuyển bằng chân, những robot chuyển động bằng bánh thường được sử dụng cho các địa hình bằng phẳng Hiện có hai loại bánh xe thường được sử dụng là bánh
xe dạng đĩa và bánh xe đa hướng Bánh xe dạng đĩa chỉ có khả năng quay quanh trục chứ không thể trượt ngang Bánh xe đa hướng là loại gồm nhiều bánh nhỏ dạng đĩa gắn xung quanh có khả năng quay quanh trục của chúng Robot sử dụng loại bánh xe đa hướng có thể di chuyển tức thời theo mọi hướng Hình 1.2 cho thấy một
số loại robot di chuyển bằng bằng bánh xe
Trang 10vật cản trên đường đi
Theo Lagoudakis, Michail G [14] để di chuyển được, robot phải thực hiện một loạt
các "task" (tác vụ), mỗi tác vụ gắn với một bài toán nhỏ trong bài toán "navigation"
(di chuyển) Các bài toán đó gồm:
Mapping (tạm dịch là "lập bản đồ"): là công việc lập bản đồ môi trường hoạt
động của robot, nếu không được cung cấp dữ liệu trước thì robot phải có khả năng lập bản đồ
Positioning (tạm dịch là "định vị"): là việc định vị, robot phải có khả năng
biết được mình đang ở đâu trong bản đồ toàn cục hoặc địa phương
Path planning (tạm dịch là "dẫn đường "): là việc hoạch định đường đi sắp
tới của robot, sau khi nó biết được bản đồ và biết mình đang ở vị trí nào
Obstacle avoidance (tạm dịch là "sự tránh vật cản"): là nhiệm vụ tránh
chướng ngại vật khi robot đang di chuyển
Các bài toán nêu trên thể hiện cho hướng giải quyết bài toán robot di động Trong
những bài toán trên, bài toán được quan tâm nhiều là “D n đư ng đi cho robot di động” Nó giữ vai trò quan trọng cho robot di chuyển từ vị trí xuất phát đến vị trí
đích một cách tối ưu
Dẫn đường có thể chia làm hai loại: dẫn đường toàn cục (global path planning) và dẫn đường cục bộ (local path planning), trong bài toán dẫn đường toàn cục robot biết trước hoàn toàn hoặc biết trước một phần thông tin về môi trường, ngược lại trong bài toán dẫn đường cục bộ robot chưa biết thông tin về môi trường
Để giải quyết vấn đề dẫn đường cho robot di động nhiều công trình nghiên cứu đã được công bố, tiêu biểu như: phương pháp trường thế năng (Potential Field) [30],
Trang 114
phương pháp bản đồ đường (Road Map) [5], phương pháp thuật toán di truyền (Genetic Algorithms) [23], Phương pháp PSO (Particle Swarm Optimization) [3], [11], [12] …
P hương pháp b n đ đư ng (Road Map)
Phương pháp Road Map kết nối các vùng không gian trống của robot trong một
mạng lưới các đường thẳng hoặc đường cong gọi là các bản đồ đường đi Phương pháp bản đồ đường đòi hỏi việc điều khiển robot phải thực sự chính xác, việc tìm
kiếm đường đi tương đối chậm đối với các môi trường rộng lớn có nhiều vật cản
P hương pháp trư ng th năng (Potential Field)
Phương pháp trường thế năng xem robot như một điểm di chuyển trong một trường thế năng do mục tiêu và các vật cản trong môi trường tạo ra Mục tiêu tạo ra thế hút còn các vật cản tạo ra thế đẩy Robot ở trong trường thế năng là đối tượng chịu tác động của lực hút từ gradient của thế hút để đưa robot đến mục tiêu, đồng thời chịu tác động của lực đẩy từ gradient của thế đẩy để giữ cho robot tránh va chạm với vật cản Vector lực tổng hợp – tổng của vector lực hút và vector lực đẩy – đóng vai trò như lực gia tốc làm cho robot di chuyển tới vị trí mới và giải thuật được lặp lại đến khi robot đến mục tiêu
Phương pháp trường thế năng đơn giản và dễ thực hiện đối với các môi trường có vật cản đơn giản hoặc khoảng cách giữa điểm bắt đầu và mục tiêu ngắn, đối với khoảng cách xa, vật cản phức tạp phương pháp này dễ rơi vào bẫy cực tiểu cục bộ
P hương pháp thu t toán di truy n (Genetic Algorithms)
Đây là phương pháp tìm kiếm đường đi toàn cục và tối ưu hóa ngẫu nhiên dựa trên
kỹ thuật tiến hóa (evolutionary), thông qua ba quá trình cơ bản như: chọn lọc tự nhiên, lai ghép và đột biến Chính vì các quá trình trên nên GA rất hiệu quả trong việc giải quyết các bài toán tìm cực trị của hàm phi tuyến Tuy nhiên phương pháp
này rất phức tạp và nhiều tham số điều chỉnh
Phương pháp PSO (Particle Swarm Optimization)
Trang 125
Cũng giống như GA, PSO được khởi tạo với một quần thể của các giải pháp ngẫu nhiên và tìm kiếm giải pháp tối ưu bằng việc cập nhật vị trí các phần tử Tuy nhiên, không giống như GA, PSO không có các thao tác tiến hóa như lai ghép (crossover) hay đột biến (mutation) Vì vậy mà phương pháp PSO dễ dàng hơn, ít tham số điều
chỉnh hơn
Tóm lại, mỗi phương pháp hoạch định đường đi cho robot đến mục tiêu đều có những ưu nhược điểm riêng, tuy nhiên việc hoạch định đường đi trong môi trường toàn cục với số lượng lớn các particle (cá thể) thì phương pháp PSO là thích hợp hơn cả
1.2 M c tiêu vƠ gi i hạn đ tƠi
Đề tài này nghiên cứu và xây dựng giải thuật hoạch định quỹ đạo đường đi cho robot di động trong môi trường toàn cục trên cơ sở kết hợp thuật toán PSO và giải thuật D*_PF để điều khiển mobile robot tìm được đường đi tối ưu và đồng thời tránh được vật cản
Lĩnh vực nghiên cứu về bài toán hoạch định quỹ đạo cho robot di động rất rộng, cho nên phạm vi đề tài giới hạn trong các vấn đề sau:
- Nghiên cứu tổng quan về robot di động, các mô hình toán học thường gặp trên robot di động, các phương pháp lập kế hoạch đường đi và tránh vật cản, các giải thuật tìm kiếm, thuật toán PSO
- Nghiên cứu bài toán tìm đường dùng thuật toán D* và bài toán di chuyển dùng thuật toán PSO (Particle Swarm Optimization)
- Kiểm nghiệm các thuật toán để di chuyển robot theo quỹ đạo dùng công cụ Player/Stage chạy trên hệ điều hành Linux
1.3 Nội dung đ tƠi
Ch ơng 1: Tổng quan
Chương này giới thiệu một cách khái quát về mobile robot, tiềm năng ứng dụng của mobile robot, kế hoạch lập quỹ đạo đường đi và ưu nhược điểm của các phương
Trang 136
pháp hoạch định quỹ đạo cho robot di động Ngoài ra, mục tiêu nghiên cứu và giới hạn của đề tài cũng như nội dung chính của luận văn cũng được thể hiện trong chương này
Ch ơng 2: Cơ sở lý thuyết
Có năm phần chính được đề cập trong chương 2 Phần thứ nhất trình bày các mô hình toán dùng trong điều khiển mobile robot Các phương pháp lập kế hoạch đường
đi như: Phương pháp bản đồ đường đi (Road Map), Phương pháp chia ô (Cell Decomposition) Các phương pháp tránh vật cản như: Thuật toán Bug, phương páp trường thế năng, phương pháp trường lực ảo (VFF) Các giải thuật tìm kiếm như: Giải thuật A*, giải thuật D* Thuật toán PSO được trình bày ở phần thứ năm
Ch ơng ̀: Hoạch định chuyển động cho robot di động dùng thuật toán PSO
Đây là phần trọng tâm của đề tài Chương này tập trung nghiên cứu các phương pháp tìm đường đi và qui trình thực hiện việc hoạch định đường đi, hoạch định đường đi dùng thuật toán PSO (trình bày rõ về bài toán tìm đường dùng thuật toán tìm kiếm D* và bài toán di chuyển dùng thuật toán PSO)
Ch ơng 4: Kết quả mô phỏng
Chương này giới thiệu về đặc điểm, chức năng của công cụ mô phỏng robot mã nguồn mở Player/Stage Thuật toán hoạch định đường đi cho robot di động dùng PSO kết hợp với trường thế năng được kiểm nghiệm trên công cụ mô phỏng này và chương trình điều khiển robot được xây dựng trên ngôn ngữ C++ Kết quả mô phỏng sẽ được phân tích để tìm ra ưu, nhược điểm của từng giải thuật và so sánh kết quả đã nghiên cứu được với kết quả của các đề tài nghiên cứu trước đó
Ch ơng 5: Kết luận và h ớng phát triển của đề tài
Chương này sẽ nhận xét ưu, nhược điểm của các giải thuật cải tiến mà đề tài đã đưa
ra so với các giải thuật đã được nghiên cứu trước đây và đề xuất hướng phát triển của đề tài
Trang 147
Chương 2
C S Lụ THUY T 2.1 Mô t mô hình toán h c c a một số robot di động
Trong thực tế, một robot muốn di chuyển được thì phải được điều khiển bằng các thuật toán Mô hình toán học là một phần hỗ trợ cho thuật toán điều khiển, tùy môi trường làm việc mà ta có những robot khác nhau [4], [6] Trong mục này, xem xét
ba mô hình tiêu biểu, được ứng dụng rộng rãi trong thực tế Đó là robot 2 bánh, 3 bánh và robot 4 bánh
2.2.1 Robot 2 bánh
Robot di động chuyển động bằng bánh xe [6] bao gồm một đế được hỗ trợ bởi những bánh xe lăn Những bánh xe này cho phép chuyển động tương đối giữa đế và mặt đất Những robot chuyển động bánh xe có kết cấu đơn giản, dễ xây dựng và có
tỷ lệ tải trọng thuận lợi Hơn nữa chuyển động bằng bánh thì dễ điều khiển, vấn đề vững vàng được đặt ra ít hơn, sử dụng ít năng lượng và có thể di chuyển với tốc độ cao
Khả năng di chuyển và điều khiển của robot di động chuyển động bằng bánh xe phụ thuộc phần lớn vào những bánh xe gắn liền Sự lựa chọn thông dụng nhất cho những phương tiện bằng bánh xe là bánh xe dạng đĩa, kết cấu hình học của nó cho phép: dễ lắp vào đế, dễ điều khiển, cấu trúc vật lý mạnh mẽ và dễ hoạt động trong sự có mặt của chấn động, những chỗ nứt hay sự không đều của mặt đất
Với một đế gồm nhiều bánh xe cho phép phân phối tải trọng và lực kéo giữa những bánh xe rất tốt, như vậy robot loại này có một lợi thế để thực hiện nhiệm vụ mà những robot di động loại khác khó có thể thực hiện được Tuy nhiên, mặc dù có tính
đa năng do sự hoạt động tự nhiên của bánh xe, nhưng phải chấp nhận những ràng
buộc để đưa ra yêu cầu cho mỗi bánh xe là: không trượt ngang và quay mà không trượt
Trang 158
Dựa vào hình 2.1 ta xác định ngõ điều khiển và hình dạng robot như sau:
v U
Trong đó: V R là vận tốc thẳng của bánh xe phải, V L là vận tốc thẳng của bánh xe trái, r là bán kính danh định của mỗi bánh xe, bán kính đường cong tức thời của quỹ đạo robot
Trang 160 1
x
v y
Trang 1710
( )
cos ( ) 0
( )( ) sin ( ) 0
Trang 1811
cos sin 0sin cos 0
x
v y
2.2 Các phương pháp l p k hoạch đư ng đi
Bài toán lập kế hoạch đường đi [5], [7], [8] là xác định một quỹ đạo đường đi để cho
robot di chuyển đến vị trí mục tiêu đã định mà không va chạm vật cản trong vùng làm việc Việc lập kế hoạch đường đi trước hết là phải đưa ra một bản đồ và vị trí mục tiêu, sau đó là một chiến lược để giải quyết bài toán robot phải quyết định làm
gì để đạt được mục tiêu
Bước đầu tiên của hệ thống lập kế hoạch đường đi là biến đổi kiểu môi trường liên tục thành bản đồ rời rạc để thích ứng cho việc chọn giải thuật lập kế hoạch đường
đi Có các phương pháp chính như sau:
2.2.1 Ph ơng pháp bản đồ đ ờng đi (Road Map)
Phương pháp Road Map kết nối các vùng không gian trống của robot trong một
mạng lưới các đường thẳng hoặc đường cong 1D gọi là các bản đồ đường đi Có hai
phương pháp Road Map được chấp nhận với những kiểu đường đi thay đổi đột ngột:
đồ thị trực quan (Visibility graph) và biểu đồ Voronoi (Voronoi diagram) Trong
phương pháp đồ thị trực quan, các đường đi sẽ bám sát theo vật cản và đường đi cuối cùng là kết quả có độ dài ngắn nhất Còn trong phương pháp biểu đồ Voronoi thì các đoạn đường càng cách xa vật cản càng tốt
Visibility graph
Phương pháp Visibility graph (hình 2.5) có hai nhược điểm Thứ nhất, nó cực kỳ nhanh và hiệu quả cho các môi trường thưa thớt vật cản, nhưng có thể chậm và không hiệu quả bằng các phương pháp khác đối với các môi trường có mật độ vật
cản cao Thứ hai là có nhiều thiếu sót tiềm ẩn: Kết quả đường đi tìm được bởi
Visibility graph có thể làm cho robot bị chạm vào vật cản trên đường đi đến đích
Trang 19Phương pháp sơ đồ Voronoid (Voronoid diagram) Sơ đồ Voronoid (hình 2.6) là
phương pháp vẽ đường đi hoàn chỉnh dựa trên khoảng cách tối đa giữa robot và vật
cản trong bản đồ Tất nhiên, đường tìm được trong Vonoroid thường xa hơn so với
đường tối ưu về tổng độ dài Voronoid diagram có một hạn chế là sự giới hạn về
khoảng cách của cảm biến vị trí Vì thuật toán tìm đường đi chọn khoảng cách tối đa
giữa robot và vật cản trong môi trường nên các cảm biến có tầm hoạt động ngắn của robot sẽ sai khi cảm nhận về môi trường xung quanh
Tuy nhiên, một lợi điểm quan trọng của phương pháp Voronoid diagram so với hầu
hết các kỹ thuật tránh vật cản khác là khả năng thực thi Cho một kế hoạch đường đi
đã được lập bằng phương pháp Voronoid diagram, một robot với các cảm biến
khoảng cách như laser hoặc siêu âm, có thể đi theo đường Voronoid trong môi
trường thực bằng cách sử dụng thuật toán đơn giản của Voronoid diagram: Robot
làm tăng tối đa các giá trị cực tiểu cục bộ mà cảm biến của nó đọc được Hệ thống điều khiển này sẽ giữ cho robot đi đúng trên đường Voronoid, điều này sẽ giảm thiểu khả năng sai sót
Trang 2013
Hình 2.6 Sơ đồ Voronoid 2.2.2 Ph ơng pháp chia ô (Cell decomposition)
Ý tưởng của phương pháp chia ô là phân biệt rõ giữa khu vực hình học, hoặc các ô
là những vùng trống và vùng bị chiếm giữ bởi vật cản Có hai phương pháp chia ô là
chia ô chính xác và chia ô g ần đúng
Hình 2.7a mô tả phương pháp chia ô chính xác, trong đó đường biên của các ô được xác định dựa trên giới hạn hình học của vật cản Các ô kết quả có thể là những ô hoàn toàn trống hoặc hoàn toàn bị chiếm giữ, vì vậy kế hoạch đường đi trong mạng được thực hiện giống như các phương pháp ở trên Bất lợi chính của phương pháp chia ô chính xác là số lượng các ô, do sự tính toán khi lập kế hoạch đường đi phụ thuộc vào mật độ và độ phức tạp của vật cản trong môi trường Vì vậy, sự biểu diễn
sẽ phụ thuộc vào độ lớn và độ thưa thớt của môi trường Do sự phức tạp khi thực
hiện nên kỹ thuật chia ô chính xác ít khi được sử dụng trong các ứng dụng robot tự hành mặc dù nó là sự lựa chọn đáng mơ ước vì vẫn giữ được nguyên trạng môi trường
a) Chia ô chính xác b) Chia ô gần đúng
Hình 2.7 Ph ơng pháp chia ô
Trang 2114
Chia ô gần đúng
Chia ô gần đúng (hình 2.7b) là một trong những kỹ thuật phổ biến nhất được sử
dụng cho việc lập kế hoạch đường đi Dạng phổ biến nhất của phương pháp này là chia ô kích thước cố định (fixed-size cell decomposition) Kích thước của ô không
phụ thuộc vào đặc điểm của vật cản trong môi trường, và các lối đi hẹp có thể bị
mất do sự không chính xác tự nhiên của các mảnh ghép Điểm lợi lớn nhất của phương pháp chia ô chính xác là tính toán rất đơn giản khi lập kế hoạch đường đi
2.3 Các phương pháp tránh v t c n
2.3.1 Thuật toán Bug
Tư tưởng chủ đạo của phương pháp này là robot sẽ đi theo đường bao của vật cản
Mục tiêu của thuật toán là tìm một đường đi từ điểm bắt đầu S đến mục tiêu G mà
không va chạm vào vật cản Đầu tiên phương pháp này sẽ đưa robot di chuyển theo hướng mục tiêu, nếu chưa phát hiện vật cản [28], [ 29]
Đối với Bug 1, ngay khi vật cản được phát hiện robot sẽ đi theo đường bao của vật cản, bắt đầu tại điểm chạm H1 Việc này nhằm tìm ra điểm có khoảng cách đến mục tiêu nhỏ nhất L1 Robot tiếp tục đi theo đường bao cho đến gặp lại L1, từ đây nó rời đường bao và hướng về phía mục tiêu Quá trình được lặp lại nếu robot tiếp tục phát hiện vật cản tiếp theo, hình 2.8
Kỹ thuật này có khả năng đưa robot đến được mục tiêu, nhưng quảng đường mà robot phải di chuyển là rất lớn nên hiệu quả không cao Để cải thiện vấn đề này thuật toán Bug 2 được đề xuất
Đường bao vật cản của thuật toán Bug 2 cũng bắt đầu từ điểm chạm H 1 nhưng kết thúc ngay khi robot vượt qua đường thẳng nối điểm ban đầu và mục tiêu Từ L 1robot tiếp tục di chuyển theo hướng mục tiêu, hình 2.9 Quá trình được lặp lại nếu
có vật cản được phát hiện So với Bug 1 thì đường đi của Bug 2 được rút ngắn đáng
kể nhưng chưa phải là đường đi tốt nhất, một phiên bản mới có tên là DistBug tiếp tục cải tiến đường đi của Bug 2
Trang 2215
Hình 2.8 Đ ờng đi tránh vật cản c a thuật toán Bug 1
Hình 2.9 Đ ờng đi tránh vật cản c a thuật toán Bug 2
Khi sử dụng thuật toán DistBug robbot có hai động thái cơ bản là đi theo đường bao vật cản và di chuyển hướng về mục tiêu, hình 2.10 Điều làm nên sự khác biệt của DistBug với Bug 1 và Bug 2 cũng nằm ở khâu xác định điểm rời khỏi đường bao
Hình 2.10 Đ ờng đi tránh vật cản c a thuật toán DistBug
Trang 2316
Có thể khẳng định rằng thuật toán DistBug có thời gian di chuyển nhanh hơn Bug 1
và cả Bug 2 Tuy nhiên, đường đi của DistBug và cả Bug 2, Bug 1 có thể là không tối ưu trong một số trường hợp Trên thực tế, robot có thể bị bẫy trong các môi trường vật cản phức tạp
u điểm va hạn chê của thuật toán Bug
Thuật toán Bug tuy đơn giản, nhưng thuật toán này vẫn tồn tại một số khuyết điểm
là không có giải thuật nào lấy động lực học robot vào trong tính toán Ngoài ra, chỉ
có những dữ liệu gần nhất của cảm biến được đưa vào tính toán và nhiễu của cảm biến sẽ ảnh hưởng hoạt động của robot trong thực tế
2.3.2 Ph ơng pháp tr ờng thế năng (Potential field methods)
Phương pháp trường thế năng (PF) [30] tạo ra một trường hoặc một độ chênh lệch
(gradient) ngang qua bản đồ của robot để hướng dẫn robot đi đến vị trí mục tiêu từ nhiều vị trí cho trước Phương pháp trường thế năng sẽ xem robot như là một điểm dưới tác động của trường thế năng nhân tạo Điểm mục tiêu tác động một lực hút lên robot và vật cản tác động một lực đẩy Tổng hợp của các lực này sẽ tác động lên robot, lúc này được xem như một điểm trong không gian cấu hình (hình 2.11) Giống như một trường thế năng nhân tạo phẳng để hướng robot về phía mục tiêu đồng thời tránh va chạm với các vật cản đã được biết trước
Hình 2.11 Ph ơng pháp tr ờng thế năng
Trang 2417
Phương pháp trường thế năng xem robot là một điểm di chuyển trong mặt phẳng, do
đó góc định hướng của robot được bỏ qua nên cấu hình của nó được xác định bởi ( , )
q x y Trường thế năng nhân tạo tại vị trí robot di chuyển là một hàm vô hướng ( )
U q được xác định bởi:
( ) att( ) rep( )
Trong đó:
U att( )q : thế hút của mục tiêu lên điểm q đang xét
U rep( )q : thế đẩy của các vật cản lên điểm q đang xét
Thế đẩy tác dụng lên robot là tổng của các thế đẩy thành phần tạo ra từ các vật cản,
do đó biểu thức (2.11) được viết lại:
( ) att( ) repi( )
i
với U repi( )q là thế đẩy của vật cản thứ i
Lực tổng hợp tác động lên robot được xác định:
r( ) att( ) ep( ) att( ) rep( )
Trang 25Thế đẩy từ vật cản
Thế đẩy làm nhiệm vụ giữ cho robot không va chạm với vật cản Thế đẩy sẽ càng lớn nếu robot càng ở gần vật cản và ngược lại chúng sẽ giảm khi robot cách xa vật cản Kết quả của thế đẩy tác dụng lên robot là tổng của những thế đẩy thành phần của tất cả các vật cản
i
Một vật cản rất xa robot không thể đẩy được robot, ngược lại độ lớn của thế đẩy
được tăng lên khi robot tiếp cận với vật cản Thế đẩy do vật cản thứ i tạo ra có thể
được xác định bởi:
0 0
Trang 262.3.3 Ph ơng pháp tr ờng lực ảo (Virtual Force Field)
Phương pháp này do Borenstein và Koren đưa ra [30] Đây là phương pháp tránh vật cản thời gian thực được áp dụng cho những robot di động chuyển động nhanh Phương pháp VFF cho phép điều khiển robot chuyển động nhanh, liên tục và trơn tru giữa các vật cản bất ngờ mà robot không cân phải dừng trước vật cản
Phương pháp VFF sử dụng to ̣a độ đề các 2 chiều được gọi là biểu đồ lưới C để biểu diễn vật cản Mỗi ô ( j i, ) trong biểu đồ lưới chứa một giá trị chắc chắn c ij, giá trị c ij
này cho thây độ tin cậy của giải thuật khi tồn tại vật cản tại vị trí đó Trong biểu đồ lưới, giá trị đọc từ cảm biên siêu âm sẽ báo sự hiê ̣n diê ̣n của vật cản tại ô đó va được gọi là số gia Nó chỉ tăng giá trị của một ô duy nhất trong biểu đồ lưới sau mỗi lần
đọc dữ liệu từ cảm biến mà tương ứng với khoảng cách d
Phương pháp này có thể thu được phân bố xác suất của vật cản bằng cách mỗi cảm biên lấy mẫu nhanh và liên tục trong suốt quá trình robot di chuyển Vì vậy, ô nay
và những ô lân câ ̣n sẽ có số gia tăng nhiêu lân Kết quả là trong biểu đồ phân bố
Trang 2720
xác suất, những giá trị chắc chắn cao nằm trong những ô gần với vị trí thực tê của vật cản ́p dụng những ý tưởng này vào biểu đồ lưới Từ đó, những thông tin từ cảm biên co thể được sử dụng một cach hiê ̣u quả để điêu khiển robot Hình 2.12 mô
tả hoạt động của thuật toán
Khi robot di chuyển , một cửa sổ co kich thươc w sw s di chuyển cung với robot và nằm trong một vùng hinh vuông của C và được gọi la vung hoa ̣t đô ̣ng (biểu thi ̣ là
*
C ) và những ô thuộc về vùng tích cực được gọi là những “ô tích cực” (biểu thị là
*
ij
C ) Mỗi ô hoạt động tạo ra một lực đẩy ảo F ij hướng về robot, độ lớn của lực này tỉ
lệ với giá trị của ô chắc chắn *
,
i j
c và tỉ lệ nghịch với x
d , ở đây d là khoảng cách từ
ô đến tâm của robot, x là số thực dương
Kết hợp các thông số trong thời gian thực cho phép dữ liệu của cảm biến sẽ tac động
và điêu khiển hướng lai ngay lập tức Trong thực tế, mỗi lần đọc của cảm biến sẽ được ghi vào biểu đồ lươi ngay khi nó băt đâu có hiê ̣u lực và tính toá n tiếp cho bươc
tiếp theo để tính dữ liệu R Tính năng này lam cho robot phản xa ̣ nhanh với những
vâ ̣t cản xuất hiện bât ngơ Do đó, robot phản ưng nhanh khi di chuyển với tốc độ cao
Hình 2.12 Phân b ố xác xuất vật cản dùng cảm biến lấy mẫu liên tục
Trang 2821
u điểm va hạn chê của ph ơng pháp VFF
Phương phap VFF đã được thử nghiê ̣m va robot hoa ̣t động rât tôt trong hâu hêt các môi trương hoa ̣t đô ̣ng Tuy nhiên, phương phap nay vẫn tôn ta ̣i mô ̣t sô nhược điểm như bẫy cực tiểu cục bộ, dao động khi di chuyển gần vật cản, dao động trong lối đi hẹp và robot không thể di chuyển qua khoảng trống hẹp giữa 2 vâ ̣t cản, do lực đẩy
tư 2 vật cản đẩy robot ra xa Ngoài ra, khi robot di chuyển trong hanh lang he ̣p do ̣c theo tâm giữ a 2 bức tương thi sự di chuyển của robot sẽ ổn đi ̣nh Tuy nhiên, nêu
robot di chuyển lê ̣ch qua mô ̣t bên của đươn g tâm giữa 2 bưc tương thì nó bị đẩy do lực đẩy ảo rât ma ̣ch tư bưc tương ở gân Lực nay thương đẩy robot lê ̣ch sang một bên tương và khi robot lê ̣ch sang bên tương đo, từ bức tường gần đo lực đẩy ảo tiếp tục đẩy robot lệch sang phía ngược lại và kết quả làm cho robot bị dao đô ̣ng va di chuyển không ổn định
2.4 Các gi i thu t tìm ki m
Giải thuật tìm kiếm [15, 16] là những giải thuật thường sử dụng nhất trong việc lập
kế hoạch đường đi cho robot di động nhằm mục đích tìm đường đi ngắn nhất qua các tọa độ điểm biết trước từ điểm bắt đầu đến mục tiêu
Một số các giải thuật thường dùng là giải thuật tìm kiếm theo chiều rộng First Search – BFS), giải thuật tìm kiếm theo chiều sâu (Depth-First Search – DFS)
(Breadth-giải thuật tìm kiếm A*
, giải thuật tìm kiếm D*
Cả hai phương pháp đầu tiên có thể tìm được đường đi nếu chúng tồn tại Tuy nhiên, nhược điểm chính của hai phương pháp này là chúng không quan tâm đến chi phí đường đi Như vậy đường đi tìm được có thể không phải là đường đi ngắn nhất
Trang 2922
Hình 2.13 M ô tả bản đồ và đ ờng đi c a thuật toánt A*
Giải thuật A* được sử dụng với mục đích tìm kiếm một đường đi ngắn nhất giữa hai điểm, nếu tồn tại Với một bản đồ các điểm, đường đi ngắn nhất qua các điểm có thể tìm được bằng cách sử dụng các giải thuật tìm kiếm dựa vào ô lưới chuẩn như là giải thuật Dijkstra, A* Giải thuật A* là sự cải thiện của giải thuật Dijkstra nó thực hiện việc tìm kiếm đầy đủ và tối ưu đường đi ngắn nhất giữa hai ô lưới trong biểu
đồ có hướng với trọng số không âm Hình 2.13 trên mô tả bản đồ và đường đi của thuật toán A*
Trong không gian làm việc 2D được miêu tả là bản đồ các ô lưới có kích thước cố định đó, sự di chuyển trong mỗi ô lưới được giảm còn 8 hướng, đường ngang và
đường chéo, khoảng cách đường đi của những cạnh ứng với mỗi hướng là a và a Hình 2.14 mô tả kích thước hình học giữa các ô lưới, với nút được đặt tại trọng tâm củaa ô Nếu khích thước cạnh của ô lưới là a thì khoảng cách giữa hai nút a và theo đường chéo là 2a
Trang 30Với a là chiều dài của cạnh, xlà khoảng cách giữa nút hiện tại và nút mục tiêu theo trục x, ylà khoảng cách giữa nút hiện tại và nút mục tiêu theo trục y Giải thuật tìm kiếm A* tỏa ra từ nút bắt đầu, mở rộng sang những nút lân cận trong phạm vi những
đường viền của giá trị f tăng cho đến khi nút mục tiêu được tìm thấy hoặc tất cả vị
trí trống lân cận đã hết mà giải thuật khai báo không tìm thấy đường đi
Giải thuật trả lại kết quả đường đi với chi phí thấp nhất là:
x
Trong đó x i,y i là tọa độ của những điểm đường đi, n là số nút
Trong thực hiện giá trị hàm f được tính là f=g+k*h, trong đó k là một hằng số tỉ lệ,
được dùng để đạt được giải pháp tính toán nhanh hơn
Trang 3124
Mô tả thuật toán
1 Đặt nút gốc lên một danh sách gọi là OPEN
2. Tìm trên OPEN nút với chi phí f thấp nhất và đặt nút này là nút hiện tại Chi phí của mỗi nút trên OPEN được tính theo công thức f(n)=g(n)+h(n)
3 Đặt nút đã tìm được ở bước 2 (nút hiện tại) lên danh sách CLOSED
4 Với mỗi nút kế cận nút hiện tại:
a Nếu nó không nằm trên OPEN hay CLOSED hay ô vật cản thì đặt nó lên OPEN Tính chi phí và tạo thành nút hiện tại như là nút cha của nó
b Nếu nó là nút trên OPEN, kiểm tra nếu đường đi này tốt hơn và thay đổi nút cha cho nút này
c Dừng lại nếu nút mục tiêu được thêm vào CLOSED (đã tìm được đường đi) hay nút mục tiêu không nằm trên CLOSED và OPEN là rỗng (không tìm được đường đi)
5 Trở lại bước 2
2.4.2 Giải thuật D *
Giải thuật được Anthony Stentz [18] phát triển từ A* đối với môi trường mà mục tiêu ở cách rất xa và những thông tin về bản đồ tồn tại rất ít D* giống như A* ngoại trừ nó là động có nghĩa là tham số chi phí cung thay đổi trong quá trình xử lý Hình 2.15 Mô tả bản đồ và đường đi của thuật toán D* Giải thuật này tìm kiếm tất cả những đường ngắn nhất giữa tất cả những nút và mục tiêu trong biểu đồ Sau đó chỉ tính toán lại những phần bị mất hiệu lực bởi sự thay đổi môi trường và như vậy nó
đã được cập nhật Nếu sự chuyển động của robot thật sự được kết nối với giải thuật thì D* tạo ra những quỹ đạo đường đi tối ưu
Trang 3225
Hình 2.15 Mô tả bản đồ và đ ờng đi c a thuật toán D*
Mô t thu t toán
Thuật toán D* bao gồm hai hàm cơ bản: PROCESSSTATE và MODIFYCOST
STATE
PROCESS được sử dụng để tính toán các chi phí đường đi tối ưu đến mục tiêu, còn MODIFYCOST được dùng để thay đổi hàm chi phí cung c(0) và đi vào các vị trí bị tác động trong danh sách OPEN Ban đầu, t(0) được thiết lập là NEW
cho tất cả các vị trí, h (G) được đặt bằng 0 và G được đưa vào danh sách OPEN Hàm thứ nhất, PROCESSSTATE, được gọi nhiều lần cho đến khi vị trí X của robot bị loại bỏ ra khỏi danh sách OPEN (khi đó t(X) CLOSED) hoặc một giá trị của -1 được trả về, tại điểm mà dãy X đã được tính hoặc thứ tự không tồn tại Robot sau đó tiến lên theo những con trỏ ngược trong dãy X cho đến khi nó đến được mục tiêu hoặc phát hiện ra một lỗi trong hàm chi phí cung c(0) (chẳng hạn như
Trang 3326
phát hiện ra một vật cản) Hàm thứ hai là MODIFYCOST, ngay lập tức được gọi
để hiệu chỉnh c(0) và đặt các vị trí đã thực hiện vào danh sách OPEN Gọi Y là vị trí của robot mà tại đó phát hiện ra một lỗi trong c(0) Bằng cách gọi
STATE
PROCESS cho đến khi nó trả về km in h(Y), chi phí thay đổi được lan truyền đến vị trí Y để h(Y)o(Y) Tại điểm này, một dãy mới Y hợp lý hơn được xây dựng, và robot tiếp tục hướng theo các con trỏ ngược trong dãy để đến mục tiêu Các thuật toán cho PROCESSSTATE và MODIFYCOST được trình bày dưới đây Các thủ tục được thêm vào là MINSTATE, nó trả về giá trị nhỏ nhất k(0)
trong danh sách OPEN (NULL nếu danh sách là rỗng); GETKMIN, trả về giá trị
m in
k cho danh sách OPEN (-1 nếu danh sách là rỗng); DELETE ( X), xóa bỏ vị trí X
trong danh sách và thiết lập t(X) CLOSED; và INSERT(X,h new), để tính toán
)
và đặt hoặc định vị lại vị trí X trong danh sách OPEN đã được sắp xếp bởi k(0) Trong hàm PROCESSSTATE ở dòng L1 và L3, vị trí X với giá trị k(0) thấp nhất được loại khỏi danh sách OPEN Nếu X ở vị trí LOWER (ví dụ k(X)h(X)), chi phí đường đi của nó là tối ưu khi h ( X) bằng với giá trị cũ km in dòng L8 đến L13, mỗi lân cận Y của X được kiểm tra để xem chi phí đường đi của nó có thể thấp hơn không Thêm vào đó, các vị trí lân cận là NEW sẽ nhận một giá trị chi phí đường đi ban đầu, và các thay đổi về chi phí được lan truyền đến mỗi lân cận Y có con trỏ ngược đến X cho dù chi phí mới lớn hơn hay nhỏ hơn chi phí cũ Từ các vị trí sau này của X, bất kỳ sự thay đổi nào về chi phí đường đi của X đều có tác động đến chi phí đường đi của chúng Con trỏ ngược của Y được gửi lại (nếu cần thiết) để dãy đơn điệu Y được xác định Tất cả các lân cận nhận được chi phí đường đi mới
sẽ được đặt vào danh sách OPEN để lan truyền các thay đổi về chi phí này đến những lân cận của chúng
Trang 3427
Nếu X ở vị trí RAISEthì chi phí đường đi của nó có thể không tối ưu Trước khi X
lan truyền các thay đổi về chi phí đến những lân cận thì những lân cận tối ưu của nó
đã được kiểm tra từ dòng L4 đến L7 nếu h ( X) có thể được giảm xuống Từ dòng L15 đến L18, các thay đổi về chi phí đường đi được lan truyền đến các vị trí NEW
và ngay lập tức giảm xuống vị trí LOWER Nếu X có thể giảm xuống vị trí có chi phí thấp hơn thì sự giảm không xảy ra ngay tức thì (dòng L20 và L21), X được đặt trở lại vào danh sách OPEN cho sự mở rộng trong tương lai Phần tiếp theo sẽ trình bày các yêu cầu để tránh tạo ra một vòng lặp kín trong các con trỏ ngược Nếu chi phí đường đi của X có thể giảm xuống bởi một lân cận có điều kiện tốt nhất (các dòng từ L23 đến L25), lân cận được đặt trở vào danh sách OPEN Do đó, sự cải tiến được hoãn lại cho đến khi lân cận có một chi phí tối ưu
Hàm: PROCESS STATE()
L2 if X NULL then return -1
L3 k old GET KMIN();DELETE(X)
L4 if k old h ( X) then
L5 for each neighbor Y of X:
L6 if h(Y) k old and h(X) h(Y) c(Y,X) then
Trang 35L26 return GETKMIN()
Trong hàm MODIFYCOST, hàm chi phí cung đường được cập nhật bởi các giá trị
đã thay đổi Từ chi phí đường đi cho vị trí Ysẽ thay đổi, X được đặt vào danh sách
OPEN Khi X được mở rộng qua PROCESSSTATE, nó tính toán một h (Y) mới
),()
L3 return GETKMIN()
Trang 3629
2.5 Thu t toán PSO
PSO (Particle Swarm Optimization) tạm dịch tối ưu hóa theo bầy đàn là một kỹ thuật tối ưu hóa ngẫu nhiên dựa trên một quần thể được giới thiệu vào năm 1995 tại hội nghị của IEEE bởi Dr Eberhart và Dr Kennedy [3] PSO đã được ứng dụng rất thành công trong lĩnh vực robot Kỹ thuật này có nguồn gốc từ nghiên cứu về bầy đàn như cách học của đàn cá và cách xây tổ của đàn chim PSO có nhiều sự tương
tự như kỹ thuật tính toán tiến hóa trong thuật toán di truyền (GA – Genetic algorithm) Cũng giống như GA, PSO được khởi tạo với một quần thể của các giải pháp ngẫu nhiên và tìm kiếm giải pháp tối ưu bằng việc cập nhật vị trí các phần tử Tuy nhiên, không giống như GA, PSO không có các thao tác tiến hóa như lai ghép (crossover) hay đột biến (mutation)
2.5.1 Giới thiệu về PSO
PSO là một kỹ thuật tính toán tiến hóa dựa trên sự mô phỏng của đàn cá và đàn chim Trong PSO, mỗi giải pháp đơn, được gọi là một phần tử (particle) Mỗi phần
tử có một giá trị thích nghi (fitness value), được đánh giá bằng hàm đo độ thích nghi (fitness function) và một vận tốc để định hướng bay – cách tìm kiếm – của nó Các phần tử trong PSO sẽ duyệt không gian bài toán bằng cách theo sau các phần tử có điều kiện tốt nhất hiện thời (độ thích nghi lớn nhất)
Thuật toán PSO được bắt đầu bằng việc khởi tạo bởi một nhóm nhẫu nhiên các phần
tử, sau đó tìm kiếm giải pháp tối ưu bằng việc cập nhật vị trí các phần tử trong các thế hệ
Nguyên lý cơ bản trong thuật toán PSO chỉ là một tập hợp những phần tử (bầy đàn) chuyển động với vận tốc và góc quay khi chúng được ném tự do trong không gian tìm kiếm Mỗi hạt có những đặc tính sau đây [11], [3]:
Tồn tại một vị trí và vận tốc
Có hàm mục tiêu để đánh giá vị trí của phần tử
Nhận biết những vị trí gần, vị trí hiện tại tốt nhất và giá trị hàm mục tiêu của
Trang 3730
phần tử
Lưu lại vị trí hiện tại tốt nhất của hạt
Chúng ta có thể xem xét rằng "vùng lân cận" của một hạt bao gồm bản thân hạt này Vùng lân cận theo "vật lý" là khoảng cách trong phép toán Trong thực tế, những khoảng cách này sẽ được tính toán lại tại mỗi bước thời gian Nó làm mất thời gian
và tốn kém, nhưng một vài kỹ thuật xếp nhóm lại cần thông tin này
Vùng lân cận theo "xã hội" chỉ mang "những mối quan hệ" trong phép tính Trong thực tế, cho mỗi hạt, vùng lân cận của nó được định nghĩa như một danh sách của những hạt ở tại chính sự bắt đầu và không thay đổi Chú ý rằng, khi quá trình hội tụ, một vùng xã hội lân cận trở thành là một vật lý
Tại mỗi bước thời gian, hoạt động của một hạt đã cho là một thỏa hiệp giữa ba sự lựa chọn (hình 2.16)
Đi theo đường của chính mình (đường số 3)
Đi về phía vị trí hiện tại tốt nhất của nó (đường số 1)
Đi về phía vị trí láng giềng tốt nhất (đường số 2)
Hình 2.16 Sự kết hợp c a ba trọng số di chuyển
Trang 3831
Hình 2.17 Sự di chuyển c a cá thể trong PSO
Bi u thức cơ b n c a thu t toán PSO
Xét một quần thể của p cá thể trong không gian thiết kế n-chiều vị trí vectơ i
k
X của mỗi cá thể i được cập nhật bởi biểu thức sau [21], [ 22]
Trang 39P vị trí tốt nhất của quần thể cho đến vòng lặp k,
Thuật giải có thể trình bày bằng lời như sau:
Trang 4033
Vận tốc của các cá thể được giữ ở mức [vmin, vmax] nhằm giảm không gian tìm kiếm của cá thể Nếu không gian tìm kiếm được xác định bởi các giới hạn [Xmin, Xmax] rồi vị trí cập nhật của một cá thể sẽ được giữ ở giới hạn này Điều này là cần thiết như tìm thấy giải pháp phải có tính khả thi Lấy trường hợp của việc tìm kiếmvậntốctối ưu cho một robot di động để thực hiện một nhiệm vụ cụ thể, những vận tốc tìm thấy trong phạm vi hoạt động của thiết bị truyền động của robot
Công thức (2.22) được sử dụng để tính vận tốc mới của cá thể thứ i dựa vào 3 số hạng: Vận tốc trước của cá thể, khoảng cách giữa vị trí tốt nhất trước đó của cá thể
và vị trí hiện hành, cuối cùng là khoảng cách giữa kinh nghiệm tốt nhất của quần thể (vị trí của cá thể tốt nhất trong quần thể) và vị trí hiện hành của cá thể thứ i Tiếp đó cá thể bay về vị trí mới theo công thức (2.23) Một cách tổng quát, hành động của mỗi cá thể được cân nhấc bởi hàm mục tiêu được xác định trước, phụ thuộc vào vấn đề phải giải quyết Hai hệ số c1, c2 khởi tạo bằng 1.8
Thuật toán PSO có thể dùng để tìm tối ưu toàn cục và vị trí mà tại đó hàm thích nghi đạt giá trị tối ưu, cũng như để xác định hiệu xuất hội tụ nếu đã biết tối ưu toàn cục Việc đạt ngưỡng của chỉ số hội tụ ở đây phụ thuộc vào mục đích sử dụng của thuật toán Trong trường hợp thuật toán được dùng để tìm giá trị tối ưu toàn cục, sau một số lần xác định trước, nếu kết quả không được cải thiện xem như chỉ số hội
tụ đạt ngưỡng Còn trong trường hợp đã biết trước kết quả, sau một số vòng lặp chọn trước (thí dụ 100), nếu sự sai khác giữa giá trị hàm thích nghi và giá trị tối ưu nhỏ hơn một ngưỡng được chọn (thí dụ 0,0001), ta xem lần thực thi đó là hội tụ, ngược lại là không hội tụ
Với những gì đã trình bày ở trên, rõ ràng là PSO rất giống với tính toán tiến hóa Tuy nhiên trong PSO, thay vì sử dụng các toán tử di truyền mỗi cá thể cập nhật vị trí của mình không chỉ dựa vào kinh nghiệm tìm kiếm của bản thân mà còn tận dụng kinh nghiệm và sự khám phá của bạn bè khác Việc đưa thêm khái niệm vận tốc vào
vị trí hiện hành để sản sinh vị trí kế tiếp giống với toán tử đột biến trong thuật giải
di truyền Chỉ khác là trong PSO toán tử đột biến được trợ giúp bởi kinh nghiệm