4. Ý nghĩa thực tiễn của đề tài:
2.2. Giải bài toán tìm đường và tránh vật cản
2.2.1. Đặt vấn đề
Dò đường (navigation) là một khoa học (hay nghệ thuật) dẫn hướng robot tự hành di chuyển trong không gian làm việc của nó (đất, nước, không khí...). Trong vấn đề dò đường, bài toán được quan tâm nhiều nhất có lẽ là tìm đường về đích mà không chạm vật cản trên đường đi. Có hai loại bài toán tìm đường cho robot: bài toán cục bộ (local) và bài toán toàn cục (global). Trong bài toán toàn cục, bản đồ môi trường làm việc của robot hoàn toàn
43 được biết trước, vấn đề chính phải giải quyết là tìm được đường đi cho robot trước khi nó xuất phát.
Ở bài toán cục bộ, môi trường làm việc của robot hoàn toàn không được biết trước hoặc chỉ biết được một phần, robot hoàn toàn phải nhờ vào sự cảm nhận môi trường thông qua cảm biến gắn trên nó để dò đường.
Bài toán toàn cục tỏ rõ lợi thế là ta đã biết trước có đường đi (tối ưu) tới đích hay không trước khi cho robot khởi hành. Tuy vậy nó có hạn chế là đòi hỏi nhiều lệnh tính toán và bộ nhớ, và đặc biệt tình huống xấu có thể xảy ra nếu bản đồ môi trường làm việc không được khai báo chính xác, yêu cầu biết trước hoàn toàn môi trường hoạt động cũng là một nhược điểm của nó. Trong khi đó, robot tìm đường cục bộ chỉ biết được thông tin xung quanh qua sensor cảm nhận môi trường gắn cùng. Vì thế, robot tìm đường cục bộ có thể không hoàn thành việc tới đích (mặc dù thực tế có đường đi tới đích), khái niệm tối ưu không có ý nghĩa trong bài toán này. Tuy nhiên, yêu cầu tính toán, dung lượng nhớ thấp cùng tính linh hoạt cao (như tránh được vật cản ngay cả khi vật đó di động) khiến tìm đường cục bộ trở thành một công cụ mạnh của robot tự hành. Hiện nay, cách tiếp cận kết hợp giữa cục bộ và toàn cục đang ở ngày càng phổ biến, giúp robot tự hành tăng tính linh hoạt và hiệu quả.
Trong luận văn, tác giả tập trung vào giải quyết cả hai bài toán nhưng ở mức độ đơn giản. Môi trường hoạt động của robot là một mặt phẳng, được giới hạn bởi các bức tường. Các vật cản được xem là vật cản hai chiều, tĩnh hoàn toàn. Trong bài toán cục bộ, robot được trang bị 3 sensor xác định khoảng cách vật cản, đã biết trước vị trí đích (đích có thể phát sóng để robot hướng theo).
Trong bài toán toàn cục, robot sẽ được điều khiển tắt mở và nạp thông số bằng máy tính thông qua cổng giao tiếp không dây. Sau khi nhận các thông số điều khiển robot sẽ tự động tránh các vật cản trên đường đi cho đến khi người điều khiển đưa ra tín hiệu stop từ máy tính.
44
2.2.2. Giải bài toán tìm đường cục bộ[11]
Phương pháp được đề cập đến ở đây sử dụng 3 cảm biến dò đường xác định khoảng cách từ trung điểm hai bánh xe tới vật cản. Tùy vào khoảng cách tới vật cản ứng với từng cảm biến, ta xác định được phương hướng di chuyển robot phù hợp.
Tuy nhiên luật dẫn hướng robot còn khá đơn giản, điều kiện yêu cầu còn thô (như khoảng cách các vật cản phải lớn hơn kích thước robot), kết quả mô phỏng cho thấy thuật toán của bài báo tỏ ra nhiều bất cập: robot nhiều lúc chạm vật cản, lặp đi lặp lại một đoạn đường và khó thoát ra được. Dựa theo nguyên lý của thuật toán đó, tác giả đã có những thay đổi và bổ sung để đem lại kết quả tìm đường hiệu quả hơn.
Hình 2.3. Mô hình bố trí cảm biến cho robot.
45 Hình 2.4. Chuyển động của robot hệ tọa độ XY
Gọi :
θ : góc chỉ hướng của robot ở thời điểm t.
φ(t): góc hướng về đích tính từ tâm robot (điểm D). θa(t) : góc dẫn hướng cho robot tránh vật cản.
θ*(t) : góc dẫn hướng điều khiển chuyển động cho robot.
46
2.2.3. Ứng xử của robot khi gặp vật cản.
2.2.3.1. Trường hợp 1 : Robot gặp vật cản phía trước.
Hình 2.5. Robot gặp vật cản phía trước Trong đó :
L : chiều dài robot ; W chiều rộng robot. a, b : kích thước vật cản.
Trong trượng hợp này robot sẽ ứng xử như sau:
Cảm biến phía trước được dùng để xác định khoảng cách giữa robot và vật cản.Khoảng cách này phải lớn hơn w/2 đủ để robot có thể quay được.Nếu khoảng cách này không đủ thì robot sẽ tự động lùi lại để đủ khoảng cách này. Tiếp theo, robot sẽ quay trái 1 góc 90o rồi đi thẳng đến khi cảm biến phía bên phải của robot không còn phát hiện chướng ngại vật nữa thì robot sẽ đi thêm 1 đoạn L để đảm bảo robot có thể quay được. Tiếp theo, robot sẽ quay phải 1 góc 90o rồi đi thẳng đến khi cảm biến phía bên phải của robot không còn phát hiện chướng ngại vật nữa thì robot sẽ đi thêm 1 đoạn L để đảm bảo robot có thể quay được. Sau đó robot sẽ quay phải 1 góc 90o rồi đi thêm 1
L
W a
47 đoạn a/2 trước khi quay trái 90o để trở về quỹ đạo của mình.Các bước trên có thể được mô tả bằng hình sau:
Hình 2.6. Ứng xử của robot khi gặp vật cản phía trước
b+L L W a b Xoay trái 90o a/2+L Xoay phải 90o Xoay phải 90o a/2+L Xoay trái 90o
48 2.2.3.2. Trường hợp 2: Robot gặp vật cản bên phải và phía trước.
Hình 2.7.Robot gặp vật cản phía trước và bên phải.
Ứng xử của robot sẽ tương tự như trường hợp gặp vật cản phía trước.Tuy nhiên, cảm biến bên phải cần được đặt ở chế độ cách vật cản 1 khoảng bằng L/2 để robot có thể quay được dễ dàng.Nó được mô tả như hình vẽ sau:
Hình 2.8. Ứng xử của robot khi gặp vật cản phía trước và bên phải.
L W a b a/2+L L W a b Xoay trái 90o a/2+L Xoay phải 90o Xoay trái 90o Xoay phải 90o b +L
49 2.2.3.3. Trường hợp 3: Robot gặp vật cản phía bên trái và phía trước.
Hình 2.9.Robot gặp vật cản phía trước và phía bên trái.
Ứng xử của robot tương tự như trường hợp 2 tuy nhiên góc quay sẽ ngược lại.Cảm biến phía bên trái của robot sẽ đảm bảm cho khoảng cách của robot đến vật cản bên trái luôn lớn hơn L/2 để robot có thể quay dễ dàng. Ứng xử của robot có thể tóm tắt bằng hình vẽ sau:
Hình 2.10.Ứng xử của robot khi gặp vật cản phía trước và bên trái.
L W a b a/2+L L W a b Xoay phải 90o a/2+L Xoay trái 90o Xoay phải 90o Xoay trái 90o b +L
50 2.2.3.4. Trường hợp 4: Robot gặp vật cản phía trước và 2 bên trái phải.
Hình 2.11.Robot gặp chướng ngại vật phía trước và 2 bên. Trong đó: a1, b1, a2, b2 lần lượt là kích thước của các chướng ngại vật. Ứng xử của robot trong trường hợp này như sau:
Robot sẽ lùi lại đến khi một trong 2 cảm biến phát hiện không còn chướng ngại vật bên cạnh nữa thì robot sẽ lùi thêm 1 khoảng L/2 đủ để robot có thể quay được.Ở đây, ta có thể ví dụ cảm biến bên trái sẽ báo không còn vật cản trước cảm biến bên phải. Khi đó các ứng xử tiếp theo của robot sẽ được thực hiện theo trình tự sau: Quay phải 1 góc 90o sau đó di chuyển 1 khoảng a1+ L/2.Quay phải 1 góc 90o di chuyển 1 đoạn b1+ b+ L/2. Quay phải 1 góc 90o sau đó di chuyển 1 đoạn
a+ a1+ L/2. Quay trái 1 góc 90o để về quỹ đạo ban đầu. Trình tự đó được mô tả bằng hình vẽ sau: L W a b b1 a1 a2 b2
51 Hình 2.12.Ứng xử của robot khi gặp vật cản trước mặt và 2 bên.
a2 b2 L W a b a1 b1 Lùi b1+L/2 a1+L/2 b1+b+L/2 Xoay phải 90o Xoay phải 90o Xoay phải 90o Xoay phải 90o
52