Đặt vấn đề Ngày nay, với sự phát triển của khoa học và công nghệ, ngày càng có nhiều lĩnh vực phát triển hơn nhờ vào sự hiện diện của công nghệ robot tự động không người lái như robot vận chuyển hàng trong nhà máy, robot giao hàng hóa, robot thăm dò, cứu hộ. Nhờ sự xuất hiện của những robot này mà những công việc nguy hiểm, độc hại, nặng nhọc… có thể không cần đến sự can thiệp trực tiếp của con người nữa hoặc đơn giản là thay thế con người thực hiện những nhiệm vụ chuyên biệt, nâng cao hiệu quả lao động. Một trong những thách thức quan trọng đối với hầu hết các robot di động là khả năng di chuyển chính xác và thực hiện nhiệm vụ và vẫn đảm bảo sự an toàn cho chính robot, vật dụng và con người xung quanh. Muốn di chuyển chính xác thì việc xác định được vị trí hiện tại của robot là điều kiện tiên quyết, robot sẽ không thể di chuyển chính xác nếu nó không biết chính xác vị trí của mình bởi vì các hoạt động điều hướng, hoạch định quỹ đạo di chuyển đều cần đến thông tin vị trí này.
Do đó, một hệ thống định vị và điều hướng tin cậy có thể điều chỉnh linh hoạt là một thành phần không thể thiếu của robot tự hành. Bằng cách tích hợp các phép đo cảm biến, vị trí và hướng của robot có thể được dự đoán. Có hai nhóm cảm biến được phân loại dựa trên kỹ thuật đo được sử dụng: • Cảm biến định vị tương đối như Encoder, IMU, Lidar. • Cảm biến định vị tuyệt đối Hệ thống định vị toàn cầu GNSS… 1 Hai nhóm có ưu và khuyết điểm riêng trong đó, kết quả của kỹ thuật định vị tuyệt đối không bị hiện tượng tích lũy sai số theo thời gian, tuy nhiên nó lại thường bị ảnh hưởng bởi sai số gây ra do nhiều yếu tố trong quá trình định vị.
Mặt khác, các cảm biến định vị tương đối có tốc độ cập nhật nhanh, giá thành rẻ nhưng kết quả thường có hiện tượng trôi theo thời gian. Trong thực tế, các ứng dụng thường sử dụng kết hợp nhiều loại cảm biến nhằm nâng cao độ chính xác cho kết quả ước lượng vị trí. Đối với môi trường ngoài trời, phương pháp định vị vệ tinh toàn cầu GNSS có thể hỗ trợ định vị vị trí trên toàn cầu tốt mà kết quả định vị không bị hiện tượng trôi trong thời gian hoạt động. Tuy nhiên phương pháp này chịu ảnh hưởng từ nhiều nguồn sai số khác nhau.
Những sai số này có thể được sinh ra từ chính các vệ tinh, thiết bị thu hoặc sai số do môi trường truyền tín hiệu bao gồm các sai số sinh ra ra bởi các điều kiện thời tiết khác nhau trong tầng điện ly và tầng đối lưu, và do nhiễu Multipath, gây ra bởi sự phản xạ của sóng vệ tinh khi robot bị bao quanh bởi các chướng ngại vật lớn (các toà nhà cao hoặc cây cối). Phương pháp Real Time Kinematic (RTK) có thể giảm thiểu vấn đề này, tuy nhiên, vẫn không thể triệt tiêu sai số do hiện tượng Multipath. Một phương pháp định vị khác sử dụng các mốc đặc trưng để xác định vị trí của robot. Trong phương pháp này, vị trí của robot có thể được xác định một cách đơn giản dựa trên kiến thức trước đó về vị trí của các điểm mốc trong bản đồ.
Cảm biến Laser scan kết hợp với bộ lọc Adaptive Monte Carlo Localization (AMCL) xác định vị trí của robot dựa trên quá trình so sánh bản đồ có sẵn với kết quả quét ở hiện tại từ cảm biến để. Đối với môi trường ngoài trời, nơi mà môi trường rộng lớn và không có nhiều mốc có đặc điểm khác biệt làm cho robot không thể tìm được vị trí duy nhất hay còn được biết đến là “kidnapped robot1” [1]. Để cải thiện độ chính xác cho quá trình định vị vị trí robot trong môi trường ngoài trời, các thuật toán phổ biến nhất cho việc tổng hợp cảm biến là các phương pháp tiếp cận dựa trên bộ lọc Kalman (KF) [2], bộ lọc intelligent-based [3] và bộ lọc particle (PF) [4]. 1 kidnapped robot là hiện tượng kết quả định vị của robot đột ngột thay đổi sang vị trí bất kì 2 Trong đó, phương pháp kết hợp các kết quả định vị từ nhiều loại cảm biến khác nhau sử dụng các bộ lọc Kalman như EKF, UKF… [5] thường được áp dụng.
Trong phương pháp này, dữ liệu odometry từ Encoder hoặc Lidar /camera thường được kết hợp với dữ liệu của GNSS, IMU để cải thiện độ chính xác cho các ước lượng vị trí. Luận văn tập trung ứng dụng những gói thuật toán có sẵn của ROS để đọc và kết hợp tín hiệu của các cảm biến GNSS-RTK, Lidar, IMU thông qua bộ lọc Kalman mở rộng nhằm nâng cao độ chính xác của quá trình định vị robot cho môi trường ngoài trời. Mục tiêu luận văn Giải quyết bài toán localization robot cho môi trường ngoài trời. Ứng dụng chủ yếu trong quá trình vận hành, di chuyển robot trong môi trường ngoài trời.
Sử dụng phương pháp kết hợp dữ liệu cảm biến dùng bộ lọc Kalman mở rộng để giải quyết bài toán localization cho môi trường ngoài trời. Đánh giá kết quả định vị của phương pháp. Tình hình nghiên cứu. Robot dựa vào kết quả định vị để đưa ra ước lượng tư thế chính xác nhằm điều hướng hiệu quả và an toàn trong môi trường.
Các dữ liệu GNSS, Lidar, Odometry khi sử dụng một cách riêng lẻ đều tồn tại các vấn đề nghiêm trọng về độ chính xác. Một số phương pháp kết hợp nguồn thông tin để cải thiện độ chính xác của quá trình định vị đã được thực hiện. Trong [6], bản đồ tổng hợp mốc được sử dụng để xác định vị trí của robot trong khu vực đô thị. Bản đồ này được lập nên từ dữ liệu GPS được kết hợp với Lidar và INS.
Sau đó, để xác định vị trí của robot, bộ lọc Kalman mở rộng sử dụng dữ liệu từ Encoder và Lidar cho quá trình dự đoán và hiệu chỉnh. Vấn đề định vị robot cho khu vực hoạt động ngoài trời bao gồm trung tâm đô thị, đường cao tốc hoặc đường hầm được xem xét trong [7]. Bộ lọc Kalman error-state được áp dụng để kết hợp các dữ liệu từ cảm biến Lidar kết hợp với IMU và module GNSS-RTK kết quả của các phương pháp tiếp cận của mình, đạt được độ chính xác RMS từ 5-10cm. 3 Trong [8], vấn đề “kidnapped robot” của phương pháp MCL được đề xuất giải quyết bằng cách đặt lại vị trí được tính toán khi nó khác quá nhiều so với vị trí cung cấp từ GNSS.
Phương pháp này có thể phát hiện và giải quyết vấn đề “kidnapped robot” trong hầu hết các trường hợp. Tuy nhiên, do luôn cần một khoảng thời gian để phát hiện và giải quyết vấn đề và trong khoảng thời gian này, việc hoạch định đường đi và các lệnh điều hướng cũng sai theo dẫn đến robot di chuyển không theo ý muốn hoặc có thể xảy ra va chạm. Trong [9], dữ liệu vị trí của GNSS được sử dùng để cải thiện độ chính xác cho thuật toán AMCL bằng cách thay đổi trọng số của các particles và xác suất tạo ra các particle mới nếu cần thiết. Phương pháp này không trực tiếp thay thế các particle bằng particle khác mà sử dụng dữ liệu GNSS so với các particle để xác định xác suất tạo particle mới trong từng chu kỳ lấy mẫu.
Điều này đảm bảo tính ổn định cho bộ lọc particle, giảm việc tăng sai số gây ra do dữ liệu GNSS vốn bị ảnh hưởng bởi nhiễu. Nội dung của luận văn Phần đầu tiên của luận văn này là giới thiệu tổng quan về đề tài, tình hình nghiên cứu và mục tiêu của đề tài. Phần tiếp theo trình bày các khái niệm, lý thuyết các phương pháp, thuật toán sử dụng trong quá trình xây dựng robot. Phần thực hiện đề tài bao gồm giới thiệu về mô hình thực nghiệm, quá trình thực hiện đề tài và kết quả đạt được.
Phần kết luận bao gồm đánh giá kết quả đạt được, các vấn đề đã giải quyết, các vấn đề còn tồn tại và hướng phát triển đề tài. 4 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2. Bộ lọc complementary 2. Quaternion Những phương pháp định hướng trong không gian thường được sử dụng là Euler, Quaternion và ma trận Cos (DCM).
Trong đó Quaternion là cách biểu diễn công thức tuyến tính của động lực định hướng. Bất kỳ 1 hướng ngẫu nhiên trong không gian 3D của khung tọa độ A so với khung tọa độ B có thể được biểu diễn B bằng 1 quaternion A q [10]. T q = q0 q3 = cos B T A q1 q2 ex sin e y sin ez sin 2 2 2 2 Trong đó là góc quay, e là vector đơn vị biểu diễn các trục quay. B Quaternion liên hợp của A q hoặc quaternion nghịch đảo sẽ biểu diễn phép quay nghịch đảo và được định nghĩa như sau: q* = BA q = − q0 −q1 −q2 q3 B T A (2.1) Quaternion sau một loạt các phép quay có thể dễ dàng tính toán được bằng phép nhân quaternion.
Ví dụ chúng ta có 3 khung tọa độ A,B và C với quaternion ABq là hướng của khung A so với khung B và BCq là hướng của khung B so với khung C, khi đó hướng của khung A so với khung C sẽ được tính toán như sau: C A q = BC q AB q (2.2) Trong đó là phép nhân quaternion và được cho bởi công thức như sau: p0 q0 − p1q1 − p2 q2 − p3q3 p q + pq + p q − p q pq = 0 1 1 0 2 3 3 2 (2.3) p0 q2 − p1q3 + p2q0 + p3q1 p0 q3 + p1q2 − p2 q1 + p3q0 5 Khi đó các quaternion đơn vị có thể được áp dụng để thực hiện các phép quay của các vector trong không gian 3D. Ví dụ: cho vector v A nằm trong hệ trục tọa độ A có thể được biểu diễn trong hệ trục tọa độ B như sau: B vq = AB q A vq AB q* (2.4) Công thức trên có thể được biểu diễn dưới dạng ma trận như sau: B v = R ( AB q ) Av (2.6) Phép quay nghịch đảo được định nghĩa như sau A v = R ( BA q ) B v = RT ( AB q ) B v (2.7) Các góc Euler sẽ được tính từ quaternion như sau: = a tan 2 ( 2q1q3 − 2q0q2 , q02 − q12 − q22 − q32 ) = − sin −1 ( 2q1q2 − 2q0q3 ) (2.