Chương 1 TỔNG QUAN 1.1 Tổng quan bài toán điều hướng trong robot tự hành Trí tuệ nhân tạo và Robotics là hai trong số những công nghệ then chốt của cuộc cách mạng công nghiệp lần thứ tư. Một hướng ứng dụng đòi hỏi kết hợp cả hai công nghệ trên là các bài toán tự hành như: robot tự hành, xe tự lái, robot thám hiểm, robot vận chuyển hàng hóa, robot dịch vụ, v. Những ứng dụng này yêu cầu các robot phải có khả năng hoạt động độc lập, không cần sự điều khiển của con người và thích nghi, phản ứng với những biến đổi của môi trường xung quanh. Từ đó, công nghệ định vị và tạo bản đồ đồng thời (Simultaneous Localization and Mapping – SLAM) ra đời, phối hợp giữa các thuật toán điều khiển ứng dụng trí tuệ nhân tạo và kiến thức tích hợp hệ thống trong Robotics.
Đây là công nghệ cốt lõi trong bài toán điều hướng robot tự hành. Các phương pháp SLAM truyền thống sử dụng cảm biến siêu âm hoặc LIDAR đã giải quyết tốt các bài toán điều hướng trong nhà, với môi trường không biến đổi quá nhiều. Tuy nhiên, với các môi trường ngoài trời, biến đổi không ngừng (ví dụ trong ứng dụng xe tự lái) thì các phương pháp trên lại gặp rất nhiều thách thức. Trong những năm gần đây, các mạng học sâu trong xử lý ảnh cho độ chính xác rất cao, điều này mở ra một hướng giải quyết mới cho các bài toán SLAM đường dài, trong môi trường đa dạng và luôn thay đổi.
Trong đề tài này, tác giả sẽ ứng dụng các mạng học sâu trong xử lý ảnh để cải tiến phần xử lý dữ liệu đầu vào (hay còn gọi là phần Tiền xử lý, sẽ giải thích sau) của bài toán SLAM. Tổng quan bài toán điều hướng trong robot tự hành 1.1 Điều hướng trong robot tự hành Một robot tự hành muốn hoạt động tốt trong một môi trường chưa biết trước thì cần có khả năng tự động điều hướng thông minh. Hoạt động điều hướng của một robot tự hành cần phải giải quyết đồng thời bốn bài toán được thể hiện trên Hình 1.1 bao gồm: tạo bản đồ, định vị, tìm đường và tránh vật cản.1: Các bài toán trong điều hướng robot tự hành Tạo bản đồ Một bản đồ về môi trường xung quanh là điều kiện bắt buộc để robot có thể thực hiện điều hướng trong môi trường đó. Bản đồ giúp mô tả lại thông tin của môi trường dưới dạng robot có thể hiểu được.
Nhờ bản đồ robot mới có thể thực hiện các chức năng khác và ra những quyết định hành động phù hợp. Những thông tin về môi trường được robot thu thập qua các cảm biến gắn trên robot như thông tin hình ảnh qua các camera, thông tin về khoảng cách tới vật thể trong môi trường qua các loại cảm biến khoảng cách như LIDAR, hồng ngoại, siêu âm, v. Định vị Robot cần biết trạng thái hiện tại của mình mới có thể thực hiện di chuyển chính xác. Dựa vào thông tin trạng thái hiện tại của mình như vị trí, hướng, tốc độ, robot mới có thể tính toán và gửi các lệnh điều khiển xuống các cơ cấu chấp hành để thực hiện các công việc được giao.
Định vị robot cần lấy dữ liệu từ hai nhóm cảm biến 8 1. Tổng quan bài toán điều hướng trong robot tự hành chính: nhóm đo thông số bản thân robot (IMU, encoder, v.v) và nhóm đo thông số môi trường (tương tự như khi tạo bản đồ). Dựa vào thông tin từ hệ thống cảm biến đó và bản đồ đã dựng về môi trường, robot sẽ dự đoán được trạng thái của mình. Tìm đường Sau khi có bản đồ và thông tin trạng thái, robot cần có hệ thống điều khiển để thực hiện các chức năng di chuyển.
Khi robot nhận được một yêu cầu di chuyển tới điểm mục tiêu, robot sẽ sử dụng các thuật toán tìm đường để chọn đường đi tối ưu tới điểm đó dựa trên bản đồ đã dựng. Một số thuật toán tìm đường phổ biến như A*, D*, D* Lite, ARA*, v. Từ đường đi tối ưu đã tìm được, hệ thống điều khiển sẽ lên kế hoạch và chuyển xuống thành các lệnh điều khiển cho các động cơ di chuyển phù hợp. Tránh vật cản Khi di chuyển trong môi trường biến động, robot cần phải có thuật toán phản ứng tránh các vật cản trên đường đi.
Các loại vật cản khi robot di chuyển rất đa dạng và phức tạp. Robot phải tránh cả vật cản tĩnh (VD: đồ nội thất) và vật cản động (VD: người đi lại) mà không có trong bản đồ. Bên cạnh đó, có vật có trong bản đồ nhưng thực tế đã được rời đi, robot phải cập nhật để tìm đường đi tối ưu. Ngoài ra, trong nhiều trường hợp vật cản có đặc điểm phức tạp khiến các cảm biến đo bị sai.
Một số hướng tiếp cận để phối hợp tránh vật cản với việc điều khiển robot di chuyển như: Dynamic Windows Approach, Bubble rebound, v.2 Định vị và tạo bản đồ đồng thời - SLAM Để hoạt động trong một môi trường chưa biết trước, robot cần phải biết những thông tin cơ bản về môi trường, vị trí của nó trong môi trường đó, từ đó ra những quyết định hoạt động phù hợp và phản ứng nhanh với những thay đổi liên tục của môi trường. SLAM thực hiện đồng thời hai công việc: dự đoán trạng thái của robot (định vị) và xây dựng một mô hình miêu tả lại môi trường xung quanh (tạo bản đồ), dựa trên dữ liệu thu được từ các cảm biến (khoảng cách, encoder động cơ, camera, v. Trạng thái của robot được diễn tả bởi vị trí và hướng của nó. Bản đồ lại chứa những thông tin tóm tắt về môi trường nơi robot đang hoạt động.
Việc xây dựng một bản đồ chất lượng đóng một vai trò vô cùng quan trọng. Thứ nhất, dựa vào bản đồ chúng ta mới có thể thực hiện được các nhiệm vụ khác như tìm đường, tránh vật cản, v. Thứ hai, bản đồ giúp giảm sai số trong quá trình định vị robot. Tổng quan bài toán điều hướng trong robot tự hành dựa vào các cảm biến trên robot để định vị (IMU, encoder, v.v) thì càng di chuyển, sai số tích lũy càng tăng, robot dễ định vị sai ngay sau khi vừa bắt đầu di chuyển một khoảng thời gian ngắn.
Tuy nhiên, khi có bản đồ, nó có thể giảm sai số tích lũy khi so sánh với những nơi đã từng đi qua (hay còn gọi là Bù sai số khi khép vòng – loop closure). SLAM là một vấn đề khó bởi vì: • Về đặc điểm bài toán: Đây là một bài toán dạng vòng luẩn quẩn nhân-quả. Để định vị được robot thì ta cần phải có bản đồ của không gian robot đang hoạt động. Nhưng để xây dựng và mở rộng bản đồ thì ta lại cần biết vị trí chính xác của robot.
Không định vị chính xác thì sẽ rất khó để xác định các thông tin về môi trường xung quanh mà cảm biến thu được liên kết với nhau như thế nào. • Về đặc điểm môi trường: Ban đầu, robot hoàn toàn không có thông tin gì về không gian xung quanh. Ngoài ra, môi trường xung quanh robot lại biến đổi liên tục, robot cần phải có những cách xử lý đủ tốt, đủ nhanh để thích ứng với những thay đổi đó. • Về sai số: Thiết bị nào khi hoạt động cũng có những sai số nhất định.
Khi một robot tự hành hoạt động, có rất nhiều sai số xuất hiện cùng lúc như: sai số của cảm biến, sai số khi chế tạo, sai số khi điều khiển, sai số của môi trường, v. Ngoài ra, trong quá trình di chuyển sẽ dẫn tới sai số tích lũy ngày càng lớn dẫn tới chỉ sau một khoảng thời gian rất ngắn robot hoạt động hoàn toàn khác so với những gì đang được ước tính, như biểu diễn trong Hình 1. Vì vậy, việc xử lý sai số trong khi robot hoạt động cũng là một việc khó khăn. • Về tốc độ: Các thuật toán SLAM cần phải đảm bảo đạt được tốc độ cao để ứng dụng trong các công nghệ tự lái.
Vì vậy yêu cầu thuật toán phải vừa đạt độ chính xác cao, vừa tối giản về khối lượng tính toán. Tình hình nghiên cứu SLAM trên thế giới Theo [2], sự phát triển của SLAM đã trải qua ba thời kỳ. Trong Thời kỳ cổ điển – classical age (1986-2004), các nhà nghiên cứu tập trung vào việc xây dựng mô hình xác suất cho bài toán SLAM. Những mô hình cơ bản này đã được bày đầy đủ trong sách [5].
Tiếp theo đó, Thời kỳ Thuật toán-Phân tích – algorithmic-analysis age (2004-2015) nghiên cứu những thuộc tính cơ bản của giải thuật SLAM như tính 10 1. Tổng quan bài toán điều hướng trong robot tự hành Hình 1.2: Sai số tích lũy khi robot hoạt động [1] hội tụ, tính quan sát được và tính nhất quán. Các bài khảo sát về các kết quả nghiên cứu của SLAM tới năm 2016 cũng được thống kê trong Bảng I của [2]. Trong thời kỳ này, các nhà khoa học giả sử rằng việc kết hợp dữ liệu trong phần tiền xử lý đã được thực hiện hoàn toàn chính xác, và chỉ tập trung vào nghiên cứu phần hậu xử lý.
Rất nhiều bài toán SLAM trong nhà với môi trường tương đối ổn định đã được giải quyết trong giai đoạn này. Tuy nhiên, những thuật toán SLAM đó sẽ dễ bị sai khi đặt trong những tình huống thách thức hơn, ví dụ như môi trường ngoài trời biến đổi liên tục (ánh sáng, người đi lại, xe cộ,. Những vấn đề này dẫn chúng ta tới thời kỳ thứ ba của SLAM, Thời kỳ Nhận thức mạnh mẽ – robust-perception age, cho phép SLAM có thể ứng dụng trong các môi trường thay đổi không ngừng với độ ổn định được cải thiện cũng như khối lượng tính toán không quá lớn. Thời kỳ này được mô tả bởi các điều kiện: hiệu suất mạnh mẽ (robust performance), hiểu các thông tin bậc cao (high-level understanding), nhận thức về tài nguyên (resource awareness), nhận thức theo nhiệm vụ (task-driven perception).3 Quy trình hoạt động chung của các bài toán SLAM SLAM thường được chia làm 2 công đoạn: tiền xử lý (front-end) và hậu xử lý (back-end) (Hình 1.
Tiền xử lý là bước tiền xử lý dữ liệu. Nó sẽ kết hợp dữ liệu thành các cấu trúc mà robot có thể dựa vào đó để tính toán ước lượng bản đồ. Bước hậu xử lý dựa vào dữ liệu đã được xử lý từ bước tiền xử lý sẽ tạo ra bản đồ về môi trường xung quanh. Tiền xử lý thực hiện 2 nhiệm vụ: trích xuất đặc trưng (feature extraction) từ dữ liệu cảm biến và kết hợp dữ liệu (data association).