This project implemented an EKF SLAM system for indoor differential robot, which use laser range finder as its main sensor. Assume no prior knowledge of environment, can simultaneously build a map of sparse lines and localize robot, no limitation of map size.
This project V-REP 3.5.0 as the simulation environment, the scene file is provided in scene/scene.ttt
Built and tested on Ubuntu 16.04
Dependencies:
- ROS Kinetic
- Eigen: 3.3.5
- Launch roscore
roscore
- Open V-REP software and open the provided scene file /scene/scene.ttt
- launch EKF SLAM system
roslaunch ekf_slam ekf_slam.launch
Then use 'W' 'A' 'S' 'D' to control robot to move up, left, down and right
The complete mathematical derivation of whole system can be found in Mathematical Derivation.pdf file
The white line is ground truth of robot trajectory, and the yellow line is posterior estimation of robot trajectory.
The trajectory contains four unexpected collision. When collision occurs, the posterior estimation will not be as accurate as normal, but the system can recover from collision error afterwards, which shows the robustness of the system