ROS-based SLAM Systems for Indoor Mobile Robots

Posted by Nguyen Quang on March 26, 2020 · 8 mins read

The article, Comparison of Various SLAM Systems for Mobile Robot in an Indoor Environment presents a comparative analysis of a mobile robot trajectories computed by various ROS-based SLAM systems.

1. Lidar SLAM methods

1.1. Gmapping

https://wiki.ros.org/gmapping

Gmapping was developed in 2007, and it is still one of the most common systems for robotics applications. The system uses the Particle filter and creates a grid-based map. However, in some cases, the trajectory of the robot cannot be computed if there is no robust map of the environment.

1.2. Hector SLAM

https://wiki.ros.org/hector_slam

Hector SLAM was developed in 2011. The system subscribes to the LaserScan message and publishes OccupancyMap, tf transformation, and the PoseWithCovarianceStamped message. This information can be used for sensor fusion of systems based on Hector SLAM data. The system produces the 2D map of the environment precisely that can be used for navigation of mobile robotics applications. As far as the Hector SLAM fits the ground truth, we can make a reasonable assumption that it produces an accurate measurement and can be used for trajectory validation of other SLAM systems.

1.3. Cartographer

https://google-cartographer-ros.readthedocs.io/en/latest/

Cartographer system was developed in 2016. The system subscribes to the LaserScan message and publishes OccupancyMap, tf transformation. The trajectory obtained by Cartographer system then was compared with ground truth and demonstrated to be good for indoor robotics applications.

1.4. Summary

From the experiments, GMapping did not provide reliable results. The most important thing is the comparison between Hector SLAM and Cartographer trajectories. The trajectories of Hector SLAM and Cartographer fit perfectly. The difference is less than 3cm in RMSE (Root Mean Square Error), that allows to conclude that two systems basically produce the same results. However, since Cartographer uses global map optimisation cycle and local probabilistic map updates, so it will be more robust to environmental changes.

2. Monocular SLAM methods

2.1 Parallel Tracking and Mapping (PTAM)

https://wiki.ros.org/ethzasl_ptam

PTAM is one of the keyframe-based visual SLAM systems that allows to estimate 3D robot pose and build 3D map by tracking FAST features. The system subscribes to the Image message and publishes tf transformation and the PoseWithCovarianceStamped message. The system does not output a map to the ROS environment. The system lost the track when the robot has a turn, demonstrating a lack of robustness to lateral manoeuvres.

2.2. Semi-direct Visual Odometry (SVO)

https://www.ros.org/news/2014/06/new-package-svo-semi-direct-monocular-visual-odometry.html
https://github.com/uzh-rpg/rpg_svo

SVO has good integration with ROS, subscribes to the Image message and publishes tf transformation, PoseWithCovarianceStamped for the robot’s pose, PointCloud for the map. The system is not robust for this application since it loses track on robot turn, but can be used for additional information for straight UGV motion segment.

2.3. Dense piecewise Parallel Tracking and Mapping (DPP-TAM)

https://github.com/alejocb/dpptam

DPPTAM is a direct system for pose estimation, which uses an assumption that regions with the same colour belong to approximately the same plane. As far as the system lost tracking on robot turns, the system is not enough robust for indoor robotics applications.

2.4. Large Scale Direct monocular (LSD SLAM)

https://github.com/tum-vision/lsd_slam

LSD-SLAM is the direct method, which uses a local image to do image fitting, providing a pose prediction and building a dense map. LSD SLAM system has a loop closure option that gives an advantage for drift error compensation. The system is robust and it can be used for robot pose estimation and map building after the absolute scaling recovery is applied.

2.5. ORB SLAM mono

https://wiki.ros.org/orb_slam2_ros

The ORB SLAM is a feature-based system, which tracks ORB features for robot pose estimation, and creates sparse point cloud as the map. The system has a loop closure detection and widely used for indoor robotics applications. The system requires additional developments to be integrated with ROS. The pose estimation is provided only during keyframes, and the information about the camera location is more sparse. The ORB SLAM system is very robust and provides the good approximation of robot trajectory if the task of absolute scale recovery is solved.

2.6. Direct Sparse Odometry (DSO)

https://github.com/JakobEngel/dso_ros

DSO is a fully direct method, which uses the wrapper for ROS integration and requires an additional development for real robotics implementation. The main advantage of this system is the dense map. The system used without a loop closure therefore the robot pose drift was accumulated during the first lap and created doubled environment objects in the map when the robot did the second lap.

2.7. Summary

Monocular SLAM systems provide information about the UGV localisation and mapping. But since there is no absolute scaling, is it required additional modules for scale recovery. Thus, monocular systems can be used as the source of additional for pose estimation and map building.

3. Stereo SLAM methods

3.1 ZEDfu

https://wiki.ros.org/zed-ros-wrapper

ZEDfu is the software solution with closed source code, which was provided by ZED camera developer to solve the SLAM problem. The system is robust in term of robot pose tracking, but the trajectory is not accurate enough for robot navigation.

3.2. Real-Time Appearance-Based Mapping (RTAB map)

https://wiki.ros.org/rtabmap_ros

RTAB map is the feature-based SLAM system, which has a loop close detection and good ROS integration. The system sometimes has problems with pose estimation when the robot moves closer to a monotonous wall. But the Failure Recovery System can detect the failure and determine a robot pose properly. It has a shift at the end of the first lap, but after a loop closure detection, it relocates the robot position. The system is robust, accurate and it can solve the localisation problem with accuracy comparable with Lidar methods without any additional manipulations that allow to use it for indoor robotics applications.

3.3. ORB SLAM stereo

https://wiki.ros.org/orb_slam2_ros

ORB SLAM system also has the stereo mode, which provides absolute scaling in metres. ORB SLAM with stereo cameras provides accurate pose estimation and create a sparse 3D map, allowing robust robot localisation and pose tracking for indoor applications.

3.4. Stereo Parallel Tracking and Mapping (S-PTAM)

https://github.com/lrse/sptam

S-PTAM is one of the most modern feature-based SLAM systems, which has a framework for loop closure detection. The system is very flexible in terms of selection for keypoint and feature descriptor. The system is robust in terms of pose tracking and has a sparse map. But the localisation accuracy can be not enough for robot navigation.

3.5. Summary

Stereo visual SLAM systems provide metric information about UGV localisation. The results for stereo systems: RTAB-Map, ORB-SLAM can be accurate enough at solving localisation problems for indoor robotics applications.

References

  • [1] Maksim Filipenko, Ilya Afannasyev, Comparison of Various SLAM Systems for Mobile Robot in an Indoor Environment, International Conference on Intelligent Systems, IEEE, 2018.
  • [2] Zhuli Ren, Liguan Wang, and Lin Bi, Robust GICP-Based 3D LiDAR for Underground Mining Environment, Sensors, 2019.