This project uses LiDAR observations and IMU data to estimate where our agent is and where the 2D layout of its environment is. This utilizes the Particle Filter with LiDAR and IMU data to estimate the 2D pose of an agent and create a 2D occupancy grid map.
This was implemented in Python using NumPy and Numba. The code has been redacted, if you wish to see it, you may contact me at charles.lychee@gmail.com
RGB20.mp4
RGB21.mp4
We make the assumption that this is a differential-drive robot.
Where
Where
Let
Let
Let
To obtain our estimate for
Since a finite number of particles may not be enough to represent a state pdf, most particle weights will become close to zero over time. Because of this, we need to resample our particles to add more particles at locations with high weights and reduce particles at locations with low weights.
Given a particle set
we will apply Stratified Resampling, if the effective number of particles falls below a threshold. The effective number of particles is given by