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.
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:
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
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.gitcd ORB_SLAM3
./build.shcd ../Pangolin
mkdir build
cd build
cmake ..
make -j4You 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.txtMake sure to replace the dataset path and the configuration file (TUM1.yaml) for your sequence.
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.
This section is a template for how to organize and present the comparison results.
- 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.
results/orb/trajectory.txt— ORB‑SLAM3 estimated posesresults/sift/trajectory.txt— SIFT‑SLAM estimated posesplots/trajectory_comparison.png— 2D/3D overlay of trajectoriesplots/ate_rpe_table.md— a small table summarizing ATE / RPE / RMSE
- evo — for computing ATE and RPE from trajectory files.
- matplotlib / Pangolin — for plotting trajectories and maps.
# 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- 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.