This repo contains the code developed through my master's dissertation (avaiable here, for portuguese readers). It has ROS compatible implementations for EKF-SLAM, EIF-SLAM and SEIF-SLAM, the later being my main object of study in scenarios with more than one robot (distributed and descentralized SLAM).
In this comparison video the robot was teleoperated in gazebo and the control inputs were recorded in a rosbag file, then both EKF-SLAM and EIF-SLAM algorithms were both fed with these inputs. The red path is the odometry (encoders) estimation, yellow the filters estimation and the real path is in green.
Gazebo and RViz view of teleoperated robot running SEIF-SLAM estimation, with active landmarks set of size 4
RViz view of the robot using ROS 1 Navigation stack and running a frontier-based exploration algorithm, Sparse Extended Information Filter is used for SLAM state estimation.
Exchange between two robots of their information vectors and matrices, alongside with the occupancy grid map
- Videos
- Docker image
- CLI examples