Giới thiệu

Một phần của tài liệu Hoạch định quỹ đạo cho robot di động dùng thuật toán PSO (Trang 53)

Player/Stage là phần mềm mã nguồn mở cung cấp các tiện ích để mô phỏng robot và đặc biệt là hệ nhiều robot [24], [25]. Dự án Player/Stage được bắt đầu tại trường đại học Nam Carlifornia từ năm 1999 như là một phần mềm giao tiếp và mô phỏng dành cho nghiên cứu robot tự hành. Ban đầu, Player/Stage chỉ là một phần mềm nghiên cứu trong phạm vi nội bộ của nhà trường nhưng sau đó nó đã được chấp nhận, hiệu chỉnh và mở rộng bởi các nhà nghiên cứu trên khắp thế giới. Trong các ứng dụng về robot, đặc biệt là các nghiên cứu về robot tự hành thì Player/Stage có thể được xem là phần mềm nghiên cứu tốt nhất nhờ vào sự hoạt động thông suốt, tính linh hoạt và tốc độ của nó [24].

Player/Stage bao gồm một chương trình Player và một giao diện mô phỏng Stage. Player cung cấp các tiện ích phần cứng và điều khiển cần thiết cho các ứng dụng robot. Stage cho phép mô phỏng hoạt động của robot cùng với nhiều loại cảm biến trong một môi trường hai chiều. Player và Stage hoạt động trên nền tảng UNIX và được cung cấp như là một phần mềm miễn phí dưới dạng GNU (General Public License).

Ban đầu, Player được phát triển bởi Brian Gerkey và Kasper Støy, bộ giao diện mô phỏng Stage được viết bởi Richard T. Vaughan và Andrew Howard. Gazebo và giao diện Player của nó được viết bởi Nate Koeing và Andrew Howard. Hiện nay, một phần lớn của dự án Player/Stage – bộ phận phát triển Player - được điều hành bởi Brian Gerkey, Andrew Howard và Richard T. Vaughan [24], [ 26].

Chương 4 Kết quả mô phỏng

47 Player là một mạng dịch vụ điều khiển Robot, chạy được trên Robot thực. Player cung cấp một giao diện đơn giản và rõ ràng về các cảm biến và các cơ cấu chấp hành của robot dựa trên giao diện mạng. Chương trình điều khiển giao tiếp với Player qua giao thức TCP [27], thực hiện đọc dữ liệu từ cảm biến; ghi lệnh đến cơ cấu chấp hành và cấu hình các thiết bị của robot. Player hỗ trợ rất đa dạng phần cứng robot. Nền tảng của Player là một họ ActivMedia Pioneer 2 nhưng còn hỗ trợ thêm nhiều loại robot và nhiều loại cảm biến. Khối kiến trúc của Player cho phép dễ dàng cập nhật thêm các phần cứng mới. Player được thiết kếđể trở thành một ngôn ngữ và nền tảng độc lập. Chương trình điều khiển có thể chạy trên bất kỳ máy nào có kết nối mạng đến robot và có thể viết được trên bất kỳ ngôn ngữ nào có hỗ trợ điều khiển socket TCP/IP. Những tiện ích cho khách hàng hiện tại đã có sẳn trong C, C++, Tcl, LISP, Java, và Python. Ngoài ra, những thông tin liên quan đến Player như cách cài đặt, viết chương trình ứng dụng, cách sử dụng,... được trình bày rất rõ ràng trong rất nhiều tài liệu được cung cấp miễn phí qua Internet. Hình 4.1 biểu diễn mô hình Client/server của Player; sự liên hệ giữa chương trình người dùng, Player server và thiết bị.

Player Server

Device driver Interface

Player Client Library C/C++ C# Java Tcl Python Ruby Lisp Octave User Program SICK LMS 200 Pioneer SICK PLS Segway Khepera sicklms200 sickpls p2os segwayrmp khepera laser laser position position position Data Configuration Comman d TCP/IP IPC

Chương 4 Kết quả mô phỏng

48

4.1.3. Đặc điểm c a Stage

Stage là sản phẩm của dự án Player/Stage, là một tập hợp những công cụ phần mềm để hỗ trợ nghiên cứu Robot di động và những hệ thống cảm biến thông minh. Stage mô phỏng tổng thể Robot di động, những cảm biến và những đối tượng trong môi trường không gian 2 chiều. Stage được thiết kế với những hệ thống nhiều đại diện vì vậy nó cung cấp những mô hình khá đơn giản, ít tính toán với nhiều thiết bị hơn là thử nghiệm trên thiết bị với độ trung thực cao. Điều này rất hữu ích khi tiếp cận bộ phần mềm này [24].

Stage thường được kiểm soát thông qua Player, một dịch vụ robot được nối mạng. Player cung cấp một giao diện tiện lợi để thiết lập thiết bị điều khiển cho Robot thực và các cảm biến. Người dùng viết chương trình điều khiển robot và những thuật toán cảm biến như là khách hàng của Player server. Cụ thể, những khách hàng không thể thấy sự khác nhau giữa những thiết bị robot thực và sự mô phỏng tương đương của Stage. Những khách hàng được phát triển bằng cách sử dụng Stage sẽ làm việc với sự thay đổi rất ít hay không thay đổi với những robot thực và ngược lại. Như vậy Stage cho phép tạo nhanh những nguyên mẫu cho việc điều khiển với những robot thực với rất nhiều cảm biến và những bộ dẫn động được cung cấp như: cảm biến siêu âm, bộ định khoảng cách laser, máy đo hành trình, bộ kẹp, bộ giảm xóc và các robot di động.

Stage được thiết kế để hỗ trợ cho việc nghiên cứu những hệ thống tự trị, vì vậy Stage cung cấp những mô hình đơn giản, đa dạng với nhiều thiết bị. Stage thường sử dụng một bộ Player plugin để cung cấp thiết bị cho Player. Những người dùng viết những thuật toán cảm biến và điều khiển robot như là khách hàng của Player server.

Với công cụ Player/Stage cùng với những giải thuật đã lựa chọn cho phép mô phỏng và điều chỉnh một cách hoàn thiện hoạt động của robot, làm cơ sở cho việc thực thi trên robot thực. Chương trình điều khiển robot có thểđược điều chỉnh một cách dễ dàng. Stage cung cấp một giao diện rõ ràng và rất thực về môi trường hoạt

Chương 4 Kết quả mô phỏng

49 động của robot. Từ giao diện này người dùng có thể quan sát được kết quả hoạt động của robot và hiệu chỉnh chương trình điều khiển theo ý muốn. Ngoài ra, Player/Stage còn có thể giao tiếp với các robot chuẩn đã được chế tạo sẵn trong các phòng thí nghiệm lớn trên thế giới. Vấn đề kết nối được thực hiện dễdàng và người dùng chỉcòn quan tâm đến vấn đề viết chương trình điều khiển.

Hình 4.2. Kết nối giữa Player/Stage và Robot 4.1.4. Các tập tin cần thiết khi sử dụng Player/Stage

Khi sử dụng Player/Stage cần phải có ba kiểu tập tin: .world, .cfg và .inc. Kiểu tập tin .world khai báo cho Player/Stage biết những gì được sử dụng trong môi trường mô hình, nó mô tả cấu hình ban đầu của robot, kích thước của sơ đồ cũng như bất kỳ thành phần nào muốn hiện diện trong sơ đồ. Tập tin kiểu .inc dùng để thiết lập cấu hình của các đối tượng như robot, sonar, laser, camera…và nó có thể được chèn vào tập tin .world.

Tập tin kiểu .cfg cung cấp cho Player những thông tin về robot đang sử dụng. Tập tin này khai báo cho Player biết những driver cần thiết để tương tác với robot. Trường hợp sử dụng robot thực thì những driver đó được lấy ngay Player. Nhưng khi mô phỏng thì Stage sẽ cung cấp các driver này.

Player Server User Progra Robot Stage Gazebo Player Server Player Server Thư viện phục vụ Player C/C++ C# Java Tcl Python Ruby Lisp Octave Chương trình người dùng

Chương 4 Kết quả mô phỏng

50

4.2. K t qu mô ph ng

Trước khi sử dụng phần mềm Player/Stage [20] cần cài đặt và biên dịch chương trình. Lệnh cài đặt:

yum install player player-devel player-doc player-examples player-python player- ruby

yum install stage stage-devel stage-playerplugin

Lệnh biên dịch:

g++ -o example `pkg-config --cflags playerc++` example.cc `pkg-config --libs playerc++`

Mô hình của mobile robot dùng để mô phỏng các giải thuật trong luận văn này dựa trên một robot có thật tên là Pioneer. Robot mô hình có dạng hình vuông, kích thước (50  50) cm, xung quanh robot có gắn 16 cảm biến sonar, góc lệch của hai cảm biến liền kề nhau là 150. Phạm vi lớn nhất mà cảm biến có thể nhận biết được vật cản là 5m, góc mở của các sonar là 150. Robot mô hình sử dụng phương thức lái vi sai để thay đổi hướng di chuyển. Trọng lượng của robot 15kg.

Khảosát một sơ đồ có kích thước (1616)m, các vật cản được bố tríbất kì trên bản đồ. Trong trường hợp có thể, đường đi dự kiến của robot từ điểm ban đầu S có tọa độ (x_init , y_init) đến điểm mục tiêu G có tọa độ (x_goal, y_goal). (adsbygoogle = window.adsbygoogle || []).push({});

4.2.1. Mô phỏng đ ờng đi c a robot dùng ph ơng pháp PF (Potential field)

Đề tài sử dụng phương pháp trường thế năng để mô phỏng với thông sốngưỡngảnh hưởng của cảm biến được chọn d0= 0.3m. Do đó, robot luôn giữ khoảng cách tối thiểu với vật cản là 0.3m và với tốc độ di chuyển v = 0.4m/s. Khi robot di chuyển trong môi trường ít vật cản và không gặp bẫy cực tiểu cục bộ như Hình 4.3 thì phương pháp PF cho kết quả khá tốt và robot tiếp cận mục tiêu đồng thời tránh được các vật cản trên đường đi.

Chương 4 Kết quả mô phỏng

51 Hình 4.3 mô tả đường đi của robot khi di chuyển từ vị trí (-4, -4) đến vị trí (5, 5). Sử dụng thuật toán di chuyển và tránh vật cản dùng phương pháp PF.

Khi robot di chuyển vào bẫy cực tiểu cục bộ thì nó di chuyển trong vòng lập khép kín và không thể tiếp cận được mục tiêu. Hình 4.4 mô tả đường đi của robot không tiếp cận được mục tiêu với vị trí ban đầu là (-6, 0) và vị trí mục tiêu là (7, 0).

Chương 4 Kết quả mô phỏng

52

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

Như vậy, khi sử dụng giải thuật PF di chuyển và tránh vật cản cho robot khi robot gặp bẫy cực tiểu cục bộ hoặc bẫy dạng chữ U thì robot bị mắc kẹt trong bẫy và không thểtiếp cận được mục tiêu.

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*

Giải thuật kếthợp phương pháp di chuyển, tránh vật cản PF và thuật toán tìm kiếm D* đã khắc phục được việc mắc bẫy cực tiểu cục bộ và bẫy dạng chữ U. Đầu tiên

Chương 4 Kết quả mô phỏng

53 việc hoạch định đường đi nhờ thuật toán tìm kiếm D*, sau đó robot di chuyển bằng phương pháp PF theo các tọađộ đã hoạch định nhờ thuật toán này.

Hình 4.5 robot di chuyển từ vị trí (-6, 0) đến vị trí (7, 0) sử dụng giải thuật kết hợp thuật toán tìm kiếm D* với phương pháp PF. Robot di chuyển và tiếp cận được mục tiêu một cách an toàn, robot không rơi vào bẫy cực tiểu cục bộđồng thời tránh được các vật cản trong suốt quãng đường đi. Hình 4.6. biểu diễn đồ thị vận tốc góc điều khiển robot với vật cản dạng chữ U. Với đồ thị này ta nhận thấy vận tốc góc lớn nhất là 1 (rad/s) và nhỏ nhất là -2 (rad/s).

Hình 4.5. Đ ờng đi c a robot sử dụng kết hợp

Chương 4 Kết quả mô phỏng

54

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

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

Chương 4 Kết quả mô phỏng

55 Tuy nhiên, do sử dụng phương pháp chia ô cố định trong bản đồ, nên việc sử dụng thuật toán tìm kiếm D* và robot phải di chuyển đến tất cả các tọa được hoạch định nên robot mất nhiều thời gian và năng lượng (robot phải xoay nhiều) kết quả là đường đi của robot chưa mịn. Giải thuật này cần phải tốn nhiều thời gian cho công việc lập trình và tốn nhiều bộ nhớ hơn.

Với các vật cản trên bản đồ khác nhau cho ta quỹ đạo đường đi khác nhau, Hình 4.7 biễu diễn đường đi chưa tối ưu (chưa được mịn) của robot . Hình 4.8 biễu diễn đường đi chưa tối ưu của robot với các vật cản phức tạp.

Hình 4.8. Đ ờng đi c a robot sử dụng kết hợp

Chương 4 Kết quả mô phỏng

56 Khi số lượng vật cản nhiều lên hoặc khi vật cản có các hình dạng phức tạp trong phương pháp D* kết hợp PF lúc này robot di chuyển sẽ dao động rất nhiều, tuy nhiên robot vẫn tìm đến mục tiêu. Hình 4.9 cho thấy mức độ dao động của robot khi vật cản trong môi trường trở nên phức tạp. Robot sẽ mất nhiều năng lượng hơn cho việc tiếp cận mục tiêu của mình.

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

Tóm lại, giải thuật kết hợp phương pháp trường thế năng và thuật toán tìm kiếm D*

đã tìm được đường đi (nếu tồn tại đường đi) và di chuyển robot đến mục tiêu bất kể vật cản dạng gì. Một ưu điểm của phương pháp này là tránh được các bẫy cực tiểu cục bộ trên đường đi. Tuy nhiên về chi phí đường đi chưa tối ưu. Robot phải xoay nhiều tại các vị trí gặp vật cản. Một vấn đề nữa là khi môi trường rộng lớn và hoàn toàn chưa biết với vật cản động thì chưa chắc đạt được mục tiêu.

4.2.3. Mô phỏng đ ờng đi c a robot sử dụng thuật toán PSO (adsbygoogle = window.adsbygoogle || []).push({});

Ph ơng pháp này cải thiện tối u về đ ờng đi (làm quỹ đạo đ ờng đi đ ợc mịn hơn và robot ít xoay hơn) và tìm kiếm đ ờng đi hiệu quả trên môi tr ờng rộng lớn, môi

Chương 4 Kết quả mô phỏng

57

tr ờng toàn cục. Hình 4.10 biểu diễn đ ờng đi c a robot sử dụng giải thuật PSO. Các thông số cơ bản sử dụng trong thuật toán PSO vị trí ban đầu (-6, 0). Vị trí mục

tiêu ( 7, 0). Hằng số C1= C2 = 1.8. Tham số lực quán tính= 0.5. Số chiều: 2 (

vận tốc thẳng và vận tốc góc). Tồng số cá thể tìm kiếm là 100 (đại diện là vận tốc thẳng và vận tốc quay). Ng ỡng tác động đối với vật cản là 0.6. Dạng vật cản hình chữ U.

Thuật toán PSO tìm ra vận tốc thẳng và vận tốc quay tốt nhất dẫn robot đi từ điểm đầu đến điểm đích trên đường đi đã tìm được. Trong quá trình robot di chuyển nếu gặp vật cản đề tài còn dùng phương pháp trường thế năng (PF) thông qua lực đẩy robot ra xa vật cản.Kết quả cho ta thấy đường đi giảithuật PSO mịnhơn so với giải thuật kết hợp phương pháp PF và thuật toán tìm kiếm D*.

Chương 4 Kết quả mô phỏng

58

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

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à

Chương 4 Kết quả mô phỏng

59 Hình 4.11. Biểu diễn đồ thị vận tốc góc điều khiển robot với vật cản dạng chữ U dùng phương pháp PSO. Với đồ thị này ta nhận thấy vận tốc góc lớn nhất là 0,4 (rad/s) và nhỏ nhất là -0,2 (rad/s). So với đồ thị hình 4.6 mức độ dao động của robot ít hơn. Hình 4.12 cho ta thấy được trực quan hơn mức độ dao động của hai phương pháp.

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

Tuy nhiên thuật toán PSO vẫn có một vài trở ngại. Với các thông số cài đặt khác nhau cho ta các kết quả đường đi khác nhau.

Chương 4 Kết quả mô phỏng

60 Hình 4.13 Biểu diễn đường đi của robot sử dụng giải thuật PSO với số cá thể là 50, ta thấy chi phí đường đi tăng lên. Ngoài ra khi thay đổi các hệ số hàm mục tiêu hoặc các tham số lực quán tính, ngưỡng tác động đối với vật cản ... cho kết quả đường đi khác nhau, thậm chí nếu chọn không phù hợp đường đi sẽ không đến được mục tiêu. Hình 4.14 biểu diễn đường đi của robot sử dụng thuật toán PSO với vật cản phức tạp ta thấy đường đi của robotrất mịn và tiếp cận được mục tiêu một cách an toàn.

Chương 4 Kết quả mô phỏng

61

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

Một phần của tài liệu Hoạch định quỹ đạo cho robot di động dùng thuật toán PSO (Trang 53)