Skip to content

Open source SLAM algorithms comparison#

To evaluate and compare SLAM algorithms, their trajectory errors must be measured in terms of both position and orientation. This requires a reliable ground-truth trajectory, which can be obtained using a GNSS/INS system.

Setup#

For data collection, we used a mapping kit equipped with a Velodyne VLP-16 Lidar and an Applanix LVX GNSS/INS unit. This setup allowed us to record lidar and GNSS/INS data for SLAM and for ground truth simultaneously. Since the ground truth is expressed in the GNSS/INS reference frame, it must be transformed into the lidar frame for comparison. The post-processed GNSS/INS solution provides an average positional accuracy of approximately 0.06 meters.

Transform#

To compute SLAM errors, both the ground-truth trajectory and the SLAM-estimated trajectory must be represented in the same coordinate frame. Therefore, one trajectory must be rotated and translated to match the other.

The TF tree defining these transformations is shown below:

graph TD
    A(["Global Frame (NED)"])
    B(["GNSS Frame (NED)"])
    C(["GNSS Frame (ENU)"])
    D(["Velodyne Frame"])

    A -->|"Global Orientation of <br> GNSS/INS"| B
    B -->|"NED to ENU conversion"| C
    C -->|"Lidar IMU calibration"| D

Transformation matrices are first derived from this tree, and these matrices are then applied to the GNSS/INS positions to align them with the lidar frame.

Before applying the transformation:

Results#

Below are the RViz visualizations of the aligned ground-truth and SLAM trajectories, along with the corresponding position-error plots for each algorithm.

SLAM Algorithm Trajectory After Transformation Position Error Graphs Average Position Error (meters)
hdl_graph_slam x: 11.903188
y: 3.887582
z: 13.905123
lidarslam_ros2 x: 8.949974
y: 2.818557
z: 16.495759

TODO#

  • Implement the GNSS/INS–to–SLAM transformation using ROS TF.
  • Evaluate SLAM algorithms using IMU data.
  • Test remaining SLAM algorithms.