Điều khiển Robot bằng logic mờ
Trang 1ĐIỀU KHIỂN ROBOT BẰNG LOGIC MỜ
ThS Vũ Anh Đào Khoa Kỹ thuật Điện tử 1 Tóm tắt: Trong bài này, chúng tôi sử dụng logic mờ để điều khiển một đối tượng di động -
robot Mỗi chuyển động được định nghĩa bằng một tập mờ dựa vào vị trí robot, giá trị của sensor, khoảng cách và góc so với vị trí đích Để robot tránh chướng ngại vật, một bộ ghi nhớ đường đi được tạo ra để robot có thể tìm được đường đi mới khi nó gặp chướng ngại vật Bài báo này bao gồm phần 1 giới thiệu chung về phương pháp này Phần 2 giới thiệu qua về các hệ thống mờ Phần 3 giới thiệu bộ mô phỏng robot Khepera và các phép biến đổi biến cần thiết cho các hệ thống điều khiển Phần 4 giới thiệu mô hình bộ điều khiển và phần 5 chỉ ra các kết quả đạt được
1 Giới thiệu
Các phương pháp thông thường để điều khiển robot thường không đủ nhanh khi môi trường và vị trí đích bị thay đổi Khó khăn chủ yếu khi điều khiển robot là môi trường thường không biết trước, tại thời điểm lập trình khó xác định đâu là hành động tốt nhất do các kích thích mà robot thu được tại thời điểm hiện tại lại dựa vào các tư thế trước đó của robot
Trong bài này, chúng tôi đưa ra một phương pháp mới để điều khiển robot, đó là dựa vào hệ thống mờ với cấu trúc ghi nhớ đường đi Ưu điểm của phương pháp này là hệ thống mờ có thể "nhớ được quá khứ" Mặc dù không thể biết trước kết quả của mọi hành động, cấu trúc ghi nhớ đường đi có thể loại bỏ những hành động tạo nên tình huống không thuận lợi trước đó, do đó tối ưu hoá được quá trình hoạt động của robot tại từng thời điểm
2 Các hệ thống mờ
Một hệ thống mờ điển hình được chỉ ra trên hình 1 Đầu vào của hệ thống là các giá trị rõ (ví dụ: giá trị sensor) Khối mờ hoá biến đổi chúng thành các giá trị mờ Khối hợp thành mờ sử dụng các luật mờ, kết hợp với các đầu vào mờ để tạo nên đầu ra mờ Cuối cùng, khối giải mờ sẽ biến đổi chúng, tạo thành các đầu ra rõ, được sử dụng để điều khiển hệ thống
Hình 1 Sơ đồ khối của một hệ thống mờ
Luật mờ được xây dựng dựa trên ngôn ngữ tự nhiên, sử dụng các biến ngôn ngữ (distance, angle, công suất motor) kết hợp với các tập mờ (near, far )
Ví dụ:
Nếu khoảng cách là gần và góc là dương thì công suất motor là dương và bé
3 Môi trường mô phỏng
Bộ mô phỏng robot Khepera được sử dụng để kiểm tra hệ thống điều khiển có cấu trúc ghi
Bộ mờ hoá Bộ giải mờ Các luật mờ
Khối hợp thành mờ
Đầu vào rõ Đầu ra rõ
Trang 2nhóm 2 sensor được chuyển đổi thành một giá trị bằng cách lấy trung bình các giá trị đọc được Do đó, các sensor được sắp xếp để tạo nên 4 giá trị tương ứng với các vị trí ahead, behind, left và right
Hình 2 Cấu tạo đơn giản hoá của sensor
Môi trường mô phỏng Khepera tạo nên tại mỗi vị trí của Khepera một góc α giữa robot và
trục x Tuy nhiên, góc cần quan tâm là góc giữa vị trí của robot và đích (β)
Hình 3 Tính toán góc giữa robot và các vị trí đích
Gọi là khoảng cách giữa robot và đích , d (x yr, r) là toạ độ của robot và (x y', ') là toạ độ
của đích, là góc giữa đường đường nối robot-đích và trục x, ta có: γ
Hướng của robot được xác định theo góc β − α và được mô phỏng trên hình 4
Trang 3-π/4 < β - α ≤ π/4 → aheadπ/4 < β - α ≤ 3π/4 → left-3π/4 < β - α ≤ -π/4 → right3π/4 < β - α ≤ -3π/4 → behin
Hình 4 Hướng chuyển động của robot 4 Mô hình bộ điều khiển
4.1 Các biến ngôn ngữ
Đầu vào bộ điều khiển mờ có 6 biến ngôn ngữ:
+ 4 biến đọc từ sensor: ahead, behin, left, right + angle (góc) giữa robot và đích ( )β (theo radian)
+ distance (khoảng cách tới đích) ( )d
Đầu ra bộ điều khiển mờ là hai biến ngôn ngữ, đó là công suất cấp cho mỗi động cơ bước:
động cơ left và right
đích
Hình 5 Cơ cấu ghi nhớ đường
Ngoài ra, còn một số biến vào khác trong cơ cấu ghi nhớ đường đi để tránh cho robot khỏi các vật cản Cơ cấu ghi nhớ đường đi Path[β'] bao gồm một vector 360 vị trí tương ứng với góc (theo độ) Path[ ] có giá trị bằng 0, có nghĩa là đường đi chưa đúng (gặp va chạm), khi đó robot sẽ bị ngăn lại bằng một hành động của cơ cấu ghi nhớ đường đi Path[β'] có giá trị bằng 1, có nghĩa là robot được phép đi đường đó
Trang 44.2 Tập mờ
6 biến ngôn ngữ trên được chia thành các tập mờ sau:
Công suất động cơ (các biến ra) được chia thành 5 tập mờ: negative_high, negative_medium,
zero, positive_medium, positive_high
angle ( )β được chia thành 5 tập mờ: negative_big, negative_medium, zero, positive_medium,
chuyển robot Các luật cơ bản sẽ được chia làm 3 nhóm theo hướng di chuyển của robot: đi
thẳng (khi không có vật cản hoặc khi vật cản ở xa), rẽ (để về đích) và đi vòng (để tránh vật
Trang 5positive_high, NH: negative_high, 1-5: đi thẳng, 6-13: rẽ, 14-29: đi vòng)
Do tồn tại mệnh đề kết quả kép trong các luật nên nó được chia làm hai luật với cùng một mệnh đề điều kiện, mỗi luật tương ứng với một motor Ví dụ:
IF angle là NB AND distance là VF AND Path[β'] THEN righ motor là PH và left motor là
NH
Mệnh đề này sẽ được chuyển thành hai mệnh đề sau:
IF angle là NB AND distance là VF AND Path[β'] THEN righ motor là PH IF angle là NB AND distance là VF AND Path[β'] THEN left motor là NH
Chỉ số của vector ghi nhớ đường đi là góc giữa robot và đích (theo độ) β'
Hình 7 Surface của bộ điều khiển mờ
Trang 6vật cản) đến 1024 (chạm vật cản) khoảng cách nhận giá trị từ 0 đến 100 Công suất mỗi động cơ trong khoảng từ -10 (công suất lùi cực đại) đến 10 (công suất tiến cực đại)
Với môi trường lý tưởng, như hình 8, cần 522 bước để tới đích dù có hay không có cơ cấu ghi nhớ đường đi do thiếu các vật cản có thể chặn robot
Hình 8 Ví dụ đường đi số 1
Với môi trường như trong hình 9 thì cần 754 bước để đi tới đích với cơ cấu ghi nhớ đường Nếu không có cơ cấu ghi nhớ đường, robot sẽ bị chặn lại khi nó hết đường do các cản gây ra
Hình 9 Ví dụ đường đi số 2 5 Kết luận
Các kết quả đạt được đã được mô phỏng bằng hệ thống logic mờ với số bước thực hiện ít hơn khoảng 40% so với việc sử dụng các luật rõ Do có cơ cấu ghi nhớ đường, robot sẽ không bị dừng lại trong các tình huống khó khăn
Hiệu quả của cơ cấu ghi nhớ đường đã được chứng minh Trong nhiều trường hợp, robot không thể tới đích nếu không có nó
Trong trường hợp không biết rõ vị trí của robot (vị trí x và y) do chúng được sử dụng để tính , góc sai trong cơ cấu ghi nhớ đường sẽ được phân tích Nếu có mẫu trong phép chia x cho y thì trong phần mềm sẽ có sự điều chỉnh Nếu không có mẫu trong phép chia thì phương pháp này không thích hợp để sử dụng
β