Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SLAM Comparer

A tool for comparing visual SLAM (vSLAM) results generated by different pipelines — specifically, ORB‑SLAM3 and a SIFT‑based SLAM variant. This project helps evaluate and visualize trajectory and map differences between the two systems.


Overview

SLAM Comparer provides an environment to run and compare SLAM outputs using datasets such as the TUM RGB‑D benchmark. It relies on the following dependencies for SLAM execution and visualization:


Dependencies

Before using this project, make sure you have the following installed:

  • CMake ≥ 3.10
  • GCC/G++ ≥ 9.0
  • OpenCV ≥ 4.0
  • Eigen ≥ 3.3
  • Pangolin
  • ORB-SLAM3

Setup Instructions

Clone the required repositories and build them as follows:

# Clone required repositories
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git
git clone https://github.com/stevenlovegrove/Pangolin.git

Build ORB-SLAM3

cd ORB_SLAM3
./build.sh

Build Pangolin

cd ../Pangolin
mkdir build
cd build
cmake ..
make -j4

Running ORB-SLAM3 on a TUM RGB-D Dataset

You can run ORB-SLAM3 on a sample RGB‑D sequence from the TUM dataset using the following command (adjust paths as needed):

./ORB_SLAM3/Examples/RGB-D/rgbd_tum \
    ./ORB_SLAM3/Vocabulary/ORBvoc.txt \
    ./ORB_SLAM3/Examples/RGB-D/TUM1.yaml \
    /path/to/rgbd_dataset_freiburg1_room/ \
    /path/to/rgbd_dataset_freiburg1_room/associations.txt

Make sure to replace the dataset path and the configuration file (TUM1.yaml) for your sequence.


Running SIFT‑based SLAM

Provide instructions here specific to your SIFT‑SLAM implementation (build steps, dependencies, and the command to run it). Keep the dataset and association files identical to ORB‑SLAM3 for fair comparison.


Results Comparison

This section is a template for how to organize and present the comparison results.

Metrics (suggested)

  • Absolute Trajectory Error (ATE) — overall trajectory alignment error.
  • Relative Pose Error (RPE) — short‑term drift statistics.
  • RMSE — root mean squared error for translation and rotation components.
  • Track length / number of keyframes — to show how much of the sequence was successfully tracked.

Example layout (placeholders)

  • results/orb/trajectory.txt — ORB‑SLAM3 estimated poses
  • results/sift/trajectory.txt — SIFT‑SLAM estimated poses
  • plots/trajectory_comparison.png — 2D/3D overlay of trajectories
  • plots/ate_rpe_table.md — a small table summarizing ATE / RPE / RMSE

Recommended tools

  • evo — for computing ATE and RPE from trajectory files.
  • matplotlib / Pangolin — for plotting trajectories and maps.

Example: compute ATE with evo

# assuming both trajectories are in TUM pose format
evo_ape tum results/orb/trajectory.txt results/sift/trajectory.txt -r full --plot --save_plot plots/trajectory_comparison.png

Notes

  • Ensure both SLAM systems use the same dataset, camera calibration, and initial conditions for a fair comparison.
  • If timestamps or association files differ, align them before comparison.
  • For reproducibility, record the commit hashes of ORB‑SLAM3 and your SIFT‑SLAM implementation.

About

Comparing vSLAM results generated by a ORB-SLAM thingy and a SIFT-SLAM thingy

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages