Hoa Kỳvatsl/ParticleFilter
An implementation of the Particle Filter using C++ for the purposes of localization.
🚗 Particle Filter định vị robot bằng C++
Bộ lọc hạt 2D trong C++, dùng bản đồ và dữ liệu cảm biến nhiễu để định vị robot chính xác.
Dự án ParticleFilter cài đặt bộ lọc hạt (particle filter) hai chiều bằng C++ nhằm giải quyết bài toán định vị robot. Tình huống giả đề: robot bị bỏ ở một vị trí mới, nhưng nó có bản đồ của khu vực, một ước lượng vị trí ban đầu tương tự GPS (có nhiễu), cùng với dữ liệu cảm biến và điều khiển (cũng nhiễu). Bộ lọc sẽ dự đoán vị trí thực của robot qua từng thời bước dựa trên các dữ liệu này.
✨ Điểm nổi bật
- Bộ lọc hạt 2D bằng C++: triển khai hoàn chỉnh thuật toán particle filter để định vị trên mặt phẳng.
- Dữ liệu đầu vào đa dạng: bao gồm bản đồ landmark, dữ liệu GPS nhiễu ban đầu, dữ liệu điều khiển (tốc độ và yaw rate), và dữ liệu quan sát từ cảm biến.
- Hỗ trợ bản đồ landmark: đọc từ
map_data.txtchứa tọa độ và ID của các điểm đánh dấu. - Xử lý dữ liệu cảm biến nhiễu: xử lý quan sát từ khoảng 2000 tệp trong thư mục
observation, mỗi file tương ứng với một thời bước. - Biến đổi hệ tọa độ: tự động chuyển đổi quan sát từ hệ tọa độ xe sang hệ tọa độ bản đồ.
- Dễ chạy với script: chỉ cần chạy
./clean.sh,./build.sh,./run.shđể biên dịch và thực thi.
💡 Vì sao đáng chú ý
Khác với các phương pháp định vị truyền thống chỉ dựa trên ước lượng duy nhất, bộ lọc hạt duy trì nhiều giả thuyết (hạt) đồng thời, cập nhật trọng số dựa trên xác suất quan sát. Điều này giúp bộ lọc vượt khỏng nhiễu từ GPS và cảm biến, cho kết quả định vị ổn định ngay cả khi môi trường có nhiễu lớn. Dự án phù hợp cho các hệ thống robot tự hành, đặc biệt trong môi trường gồm bóng đêm hoặc thiếu thông tin định vị chính xác.
#ParticleFilter #Robotics #Localization #Cplusplus #TiniX
Dự án tương tự
Khám phá các dự án và mô hình AI khác có sự tương đồng.
A flexible, modern, C++ recursive Bayesian estimation library.
Data Assimilation with Python: a Package for Experimental Research
State estimation, smoothing and parameter estimation using Kalman and particle filters.
This repository contains the solutions to all the exercises for the MOOC about SLAM and PATH-PLANNING algorithms given by professor Claus Brenner at Leibniz University. This repository also contains my personal notes, most of them in PDF format, and many vector graphics created by myself to illustrate the theoretical concepts. Hope you enjoy it! :)