Trong Hình 2.16, bản đồ ảo được tạo ra trong Rviz giống môi trường được tạo trên Gazebo. Sau khi bản đồ khu vực làm việc được tạo bởi gói EKF-SLAM, Mapserver tiến hành lưu lại bản đồ qua hai file “map.gpm” và “map.yaml” chứa các thông tin của bản đồ được tạo [8], [12].
Thuật tốn EKF-SLAM cho phép liên tục tính tốn và bản đồ hố mơi trường dựa vào các dữ liệu này đồng thời định vị robot trong bản đồ đó. Sau khi di chuyển đến các vị trí đủ để thu thập dữ liệu cho việc bản đồ hố tồn bộ mơi trường, dữ liệu bản đồ này có thể được lưu lại để tái sử dụng trong những lần kế tiếp mà không cần phải tiến hành bản đồ hố lại mơi trường.
2.4.3. Kết quả thực nghiệm thuật tốn EKF-SLAM trong mơi trường thực tế
Trong các thử nghiệm, luận án thực hiện các tác vụ của robot trên phần mềm sử dụng nền tảng Ubuntu. Robot trực tiếp xử lý dữ liệu từ các cảm biến sau đó truyền tín hiệu tới bộ điều khiển. Để lấy dữ liệu từ môi trường cũng như đo khoảng cách đến vật cản sử dụng Astra camera và RPlidar. Trong đó Astra camera là mắt của robot bao gồm camera độ sâu và camera RGB trong khi Rplidar có thể quay 360 độ và phạm vi quét lên đến 12m tạo ra dữ liệu được sử dụng trong quá trình lập bản đồ [16], [63] và [81].
Mơ hình robot được xây dựng bằng gói URDF. RPlidar được đặt trên đỉnh của robot thực hiện nhiệm vụ SLAM để xây dựng bản đồ và quét vật cản tầm cao, khoảng cách xa. Astra Camera được đặt ở tầng trung, giúp quét vật cản tầm trung và tầm thấp phía trước robot.
Hình 2.17. Mơi trường hoạt động của FWOMR trên Rviz
Phần thực nghiệm được xây dựng dựa trên ý tưởng kết hợp các thiết bị ngoại vi hoạt động trên ROS để phục vụ việc xây dựng bản đồ địa hình và xác định vị trí của robot. Hình ảnh trên là kết quả thu được khi tiến hành cho robot quét bản đồ sử dụng cơng cụ trực quan Rviz (Hình 2.17).
Trong Hình 2.18a mơ tả đường màu xanh lá cây là những nơi robot đã đi qua. Điểm màu xanh dương chính là vị trí hiện tại robot. Đường màu đỏ là tín hiệu robot quét khi gặp vật cản. Hình 2.18b là bản đồ lưới đã được xây dựng với các khu vực
màu trắng là vùng hoạt động cho robot, đường màu đen thể hiện các vật cản (bờ tường, hành lang).
(a) (b)
Hình 2.18. Hình ảnh mơi trường thực tế
(a) Hình ảnh bản đồ khi đang quét; (b) Hình ảnh bản đồ thu được
Sau khi thiết kế và chạy thử nghiệm, kết quả thực nghiệm được trình bày rõ ở Chương 4 cho thấy tính hiệu quả của phương pháp đề xuất. Mơi trường đã bản đồ hóa sẽ được sử dụng để phục vụ cho thuật toán lập kế hoạch chuyển động, điều hướng và điều khiển bám quỹ đạo cho FWOMR ở Chương 3.
Trong Chương 2, luận án xây dựng hệ thống nhận thức môi trường cho FWOMR dựa trên thuật toán SLAM và EKF-SLAM nhằm bản đồ hóa mơi trường thu nhận từ cảm biến nhằm cung cấp cho hệ thông điều hướng.
Hệ thống nhận thức của robot được xây dựng dựa trên dữ liệu thu được từ Astra Camera và Rplidar A2 trong q trình chuyển động của robot. Sau đó, mơi trường sẽ được bản đồ hố và robot có thể đồng thời tự định vị được trong mơi trường đó.
Hệ thống nhận thức cịn cung cấp thơng tin về vật cản xuất hiện trong quá trình robot di chuyển. Các kết quả mơ phỏng và thực tế cho thấy tính hiệu quả của hệ thống nhận thức đã xây dựng thể hiện trong các công bố [CT1]1, [CT2].
Trên cơ sở các nghiên cứu tại Chương 2, có thể nhận thấy rõ bài toán điều hướng cho FWOMR trong mơi trường bất định địi hỏi rất nhiều yếu tố như kết cấu cơ khí robot, thuật tốn điều khiển thích hợp nhằm hạn chế các sai lệch trong quá trình di chuyển của robot. Việc phân tích và lựa chọn thuật tốn điều khiển phù hợp nhằm giải quyết được khả năng di chuyển và tránh chướng ngại vật cho FWOMR trong môi trường bất định có vật cản sẽ được trình bày trong Chương 3 của luận án.
Chương 3
THIẾT KẾ HỆ THỐNG ĐIỀU HƯỚNG, ĐIỀU KHIỂN BÁM QUỸ ĐẠO CHO FWOMR
Trong Chương 2, dựa trên thuật toán EKF-SLAM, luận án đã xây dựng được hệ thống nhận thức môi trường với việc bản đồ hóa và xác định vị trí đồng thời cho robot trên cơ sở hệ điều hành ROS cho trường hợp vật cản tĩnh mà thiết bị có khả năng phát hiện. Trong chương 3, bài toán điều hướng cho robot được thực hiện trong trường hợp gặp vật cản tĩnh đột ngột xuất hiện và vật cản động. Song song với việc điều hướng là phải lựa chọn được thuật tốn điều khiển bám phù hợp. Khi robot đã có thơng tin về mơi trường và vị trí của nó từ hệ thống nhận thức, các vị trí đích có thể được đặt nhưng chỉ trong vùng môi trường đã xác định. Hệ thống điều hướng cho robot phải đảm bảo được nó có thể di chuyển tự động và an tồn trong mơi trường thực tế, tránh các vật cản động cũng như vật cản tĩnh của mơi trường trong suốt q trình di chuyển đồng thời phải bám sát quỹ đạo từ vị trí gốc đến vị trí đích trong mơi trường. Vị trí đích chỉ có thể được đặt trong vùng mơi trường đã xác định. Do đó, để có thể linh hoạt trong việc thiết lập các vị trí đích, thơng thường robot sẽ cần dịch chuyển dần đến một vài vị trí xung quanh để có một lượng thơng tin nhất định về mơi trường cũng như tăng độ chính xác của thuật tốn SLAM [96].
Để thực hiện nhiệm vụ điều hướng cho robot cần thiết xây dựng các thuật toán nhằm đánh giá chất lượng của hệ thống từ đó tiến hành mơ phỏng và chạy thực nghiệm cho robot trong môi trường thực tế. Trong Chương 3, luận án sẽ trình bày các thuật tốn điều hướng và điều khiển bám quỹ đạo nhằm đáp ứng yêu cầu trên.
Trong thực tế, việc điều hướng và điều khiển quỹ đạo của robot di động là một nhiệm vụ cơ bản trong các ứng dụng như dịch vụ và hệ thống giao thông tự động. Lập kế hoạch trực tuyến được quan tâm hơn các giải pháp ngoại tuyến vì quy hoạch tích hợp trước đây với vịng phản hồi trạng thái và phản hồi với mơi trường động bị ảnh hưởng bởi các nhiễu loạn trong thời gian hoạt động.
Lập bản đồ địa hóa và lập kế hoạch chuyển động là những nhiệm vụ quan trọng cho robot tự hành. Gói điều hướng (Navigation stack) cung cấp các nút và các chủ đề
có đầy đủ dữ liệu thích hợp cho việc robot di chuyển từ vị trí này sang vị trí khác. Gói điều hướng tạo ra một đường chỉ dẫn tối ưu cho robot di chuyển, bằng cách sử dụng dữ liệu thu được từ phép đo độ dời vị trí (odometry), bản đồ mơi trường và tín hiệu thu được từ cảm biến laser [21], [68].
Hình 3.1. Cấu trúc gói điều hướng [21]
Để điều hướng cho robot FWOMR, gói điều hướng thực thi một hệ thống xây dựng bản đồ môi trường tổng thể, trong khi nav_core chứa quỹ đạo toàn cục và quỹ đạo cục bộ làm nhiệm vụ liên kết chúng để đạt được mục tiêu điều hướng và nhiệm vụ lập kế hoạch di chuyển. Odometry publishes đưa ra các chủ đề Odom và Nav_core sẽ nhận, sau đó gửi đến chủ đề cmd_vel rồi đến bộ điều khiển và đảm bảo robot bám theo vận tốc này.
Lập kế hoạch chuyển động cho FWOMR là phương án kết hợp các thông tin bằng cách sử dụng dữ liệu thu được từ cảm biến, bản đồ môi trường để lập ra phương án di chuyển tối ưu cho robot được mô tả như Hình 3.1.
Lập kế hoạch di chuyển toàn cục (global planner): Lập kế hoạch di chuyển
toàn cục làm nhiệm vụ xác định vị trí hiện tại của robot và mục tiêu cần di chuyển đến đích sau đó tìm ra con đường ngắn nhất để điều hướng robot với các chướng ngại vật đã được xác định từ bản đồ tĩnh. Tuy nhiên khi di chuyển còn phải kết hợp với quỹ đạo cục bộ và dữ liệu đọc từ cảm biến để có thể thực hiện tránh các chướng ngại vật và đi theo quỹ đạo toàn cục [56].
CẢM BIẾN
ROBOT BẢN ĐỒ
ĐỊNH VỊ
LẬP KẾ HOẠCH DI CHUYỂN
Hình 3.2. Sơ đồ lập kế hoạch di chuyển
Lập kế hoạch di chuyển cục bộ (local planner): Là cách tiếp cận tích hợp để thiết lập quỹ đạo trực tuyến dựa trên tối ưu hóa hiệu quả của các quỹ đạo robot di động đặc biệt về mặt cấu trúc liên kết. Tối ưu hóa quỹ đạo trực tuyến làm biến dạng một đường dẫn thô ban đầu được tạo bởi quỹ đạo toàn cục bằng cách giảm thiểu các mục tiêu như độ dài đường dẫn, thời gian chuyển tiếp hoặc nỗ lực kiểm sốt. Các đặc tính chuyển động của robot di động và khả năng vượt chướng ngại vật đặt ra các ràng buộc bình đẳng và bất bình đẳng bổ sung đối với việc tối ưu hóa quỹ đạo. Lập kế hoạch di chuyển cục bộ giải thích hiệu quả bằng cách giới hạn khơng gian tìm kiếm chỉ cho các giải pháp tối ưu cục bộ. Tuy nhiên, hàm mục tiêu thường khơng lồi vì sự hiện diện của các chướng ngại vật tạo ra nhiều điểm tối ưu cục bộ riêng biệt. Phương pháp quỹ đạo tối ưu cục bộ được đề xuất duy trì và đồng thời tối ưu hóa một tập hợp con các quỹ đạo riêng có thể chấp nhận của các cấu trúc liên kết đặc biệt và từ đó lựa chọn quỹ đạo cục bộ tốt nhất trong số các giải pháp cục bộ thay thế.
Quỹ đạo tối ưu về thời gian cho robot vi sai và robot holonom một cách hiệu quả bằng cách áp dụng cách tiếp cận dải đàn hồi thời gian cho bài toán tối ưu hóa quỹ đạo cơ bản. Việc phân tích các tình huống và so sánh với các quỹ đạo cục bộ địa phương thơng thường xác nhận những lợi thế của tích hợp thăm dị, bảo trì và tối ưu hóa các quỹ đạo đặc biệt về mặt cấu trúc liên kết [77], [78].
Phương pháp dải đàn hồi (EB-Elastic Band) được biết đến nhiều với biến dạng đường trực tuyến [71]. Các tác động bên trong xác định trước co lại đường đi trong khi các tác động bên ngồi duy trì sự tách biệt khỏi các chướng ngại vật. Tuy nhiên, quy hoạch đường đi thông thường không kết hợp rõ ràng các ràng buộc về thời gian
và mơ hình động lực học. Một phần mở rộng của phương pháp EB đối với sự biến dạng trực tuyến của quỹ đạo thay vì đường đi được trình bày trong [51]. Các điểm quỹ đạo rời rạc bị đẩy lùi khỏi chướng ngại vật. Tuy nhiên, các phương pháp tiếp cận dải đàn hồi dựa trên tối ưu hóa quỹ đạo trực tuyến thường bị hạn chế bởi khối lượng tính tốn để hội tụ thành một giải pháp khả thi và tối ưu theo các ràng buộc theo thời gian thực. Các phương pháp tiếp cận dựa trên lấy mẫu, như phương pháp cửa sổ động (DWA -Dynamic Window Approach) [29] giải quyết vấn đề hiệu quả tính tốn này. Các quỹ đạo mô phỏng được lấy mẫu và ghi liên tục từ một khơng gian tìm kiếm vận tốc được giới hạn bởi một tập hợp các vận tốc khả thi giữa khoảng cách còn lại đến mục tiêu, vận tốc và khoảng cách khỏi chướng ngại vật. Trong bối cảnh tối ưu hóa quỹ đạo trực tiếp, DWA được mở rộng để hỗ trợ robot [73] vì nó hạn chế tìm kiếm khơng gian của vận tốc quay để tập các nghiệm khả thi.
Phương pháp dải đàn hồi thời gian (TEB-Time Elastic Band) cung cấp một công cụ lập kế hoạch quỹ đạo trực tuyến có khả năng theo thời gian thực cho truyền động robot vi sai [77]. Nó được phát triển từ ý tưởng của phương pháp EB nhưng định dạng lại quy hoạch quỹ đạo và điều khiển như một bài tốn tối ưu hóa rời rạc. TEB tối ưu hóa quỹ đạo một cách hiệu quả các ràng buộc động trong khi kết hợp rõ ràng thông tin thời gian để đạt được giải pháp tối ưu về thời gian. TEB là một công cụ Lập kế hoạch di chuyển cục bộ trong kiến trúc điều hướng phân cấp, làm thay đổi chỉ dẫn của quỹ đạo toàn cục đặt ra ban đầu dựa trên mơ hình động học của FWOMR và chướng ngại vật gặp trên đường di chuyển.
Tư thế của robot được xác định ở phần trên là q x y T . TEB sẽ yêu cầu vận tốc và gia tốc của robot, khoảng cách an tồn để có thể tránh các chướng ngại vật trên đường và các yếu tố của động học và động lực học để tạo ra lệnh vận tốc vi và
vận tốc góc
ωi cho mỗi bánh xe cmd v ω T
.
Costmap: Bao gồm global costmap và local costmap là các chủ đề chứa thông tin về vật cản và đường dẫn được xây dựng để điều hướng cho robot. Costmap sẽ được cập nhật bằng cách sử dụng dữ liệu cảm biến để duy trì thơng tin về vật cản trong mơi trường. Các tín hiệu laser trả về giá trị khoảng cách từ cảm biến đặt trên
i i i
robot tới các vật cản môi trường. Tuy nhiên, các giá trị khoảng cách này chỉ có ý nghĩa phát hiện vật cản khi nó ở trong vùng bản đồ chi phí. Vùng bản đồ costmap được chọn là một vùng hình vng với robot ở vị trí trung tâm với kích thước của hình vng được chọn sao cho đảm bảo được rằng robot có thể phát hiện được vật cản từ khoảng cách an tồn mà ở đó hệ thống điều hướng cho robot có thể thực hiện được việc tính tốn quỹ đạo phù hợp giúp robot tránh được vật cản đó.
Global costmap sẽ mơ tả tồn bộ mơi trường cịn local costmap sẽ mô tả một
khu vực xung quanh robot và di chuyển theo robot trong Global costmap [7].
Global costmap hiển thị dữ liệu trong một phạm vi rộng như là một phần hoặc tồn
bộ bản đồ.
Global costmap có thể coi là bản đồ tĩnh hoặc cửa sổ trượt dựa trên mục đích
tạo bản đồ hoặc điều hướng robot. Bằng cách sử dụng bản đồ được tạo bởi SLAM, tất cả các vật cản trong bản đồ tĩnh sẽ được xác định bởi các lớp thêm vào (layer plugin). Hơn nữa, các vật cản chưa biết trong quá trình điều hướng cũng sẽ được
phát hiện bởi các cảm biến và thêm vào bản đồ. Để đạt được sự chuyển động trơn tru và cải thiện hiệu suất điều hướng của robot, trong tệp bản đồ chi phí sẽ có 3 lớp được khai báo:
Lớp bản đồ tĩnh (Static map layer): chứa tất cả thông tin về vật cản đã biết và cột mốc tĩnh.
Lớp vật cản (Obstacle layer): chứa các vật cản chưa xác định.
Lớp bán kính gia tăng (Inflation layer): tính tốn khoảng cách an tồn xung quanh các vật cản để tránh vật cản tối ưu.
Local costmap chứa các tham số ảnh hưởng đến phần lập kế hoạch di chuyển
cục bộ để tính tốn tín hiệu điều khiển cho bộ điều khiển. Trong hầu hết các trường hợp, local costmap đóng vai trị như bản đồ xung quanh robot di chuyển theo robot và xác định tất cả các chướng ngại vật đã biết cũng như chướng ngại vật chưa biết trong bản đồ được tạo.
Hơn nữa, thơng tin được sử dụng sẽ trực tiếp tạo tín hiệu điều khiển để giúp robot khơng chỉ tránh các chướng ngại vật mà cịn đi theo chỉ dẫn mà local costmap
Các giá trị khoảng cách tới vật cản liên tục được đo về để kiểm tra xem vật cản này đã nằm trong vùng chi phí hay chưa. Điều này giúp tiết kiệm được đáng kể khối lượng tính tốn cho hệ thống điều hướng khi mà robot chỉ phải xem xét tránh vật cản trên đường khi vật cản này nằm trong vùng costmap chứ khơng phải tồn bộ vùng tín hiệu qt được trong tồn bộ bản đồ. Ngoài ra, trong costmap, các vật cản
đã được phát hiện sẽ được bao quanh bởi một lớp bán kính an toàn. Khi hệ thống nhận thức mơi trường hoạt động, bản đồ thu được sẽ có 5 vùng: Vùng đã bản đồ