Setup
April 2, 2026 ยท View on GitHub
EAGS-SLAM: Edge-Assisted Gaussian Splatting SLAM
Key Features
- Coarse-to-Fine Tracking: Combining edge-based visual odometry and gaussian tracking to reduce tracking time
- Edge-Assisted Gaussian Seeding: Using edge information for gaussian seeding to improve rendering quality
- Parallel Loop Closure: Optimized the submap system to run loop closure in parallel, improving system speed
Setup
The code has been tested on: Ubuntu 20.04 LTS, Python 3.10.15, CUDA 12.1, RTX 4090
Install OpenCV 3.4 with contrib follow the instruction in OpenCV. Then modify VO/CMakeLists.txt.
Clone code:
git clone --depth 1 --recursive https://github.com/EnderMandS/EAGS-SLAM.git
cd EAGS-SLAM
Make sure that gcc and g++ paths on your system are exported (fine them using which gcc):
export CC=<gcc path>
export CXX=<g++ path>
Setup conda environment:
conda create -n eags -c nvidia/label/cuda-12.1.0 cuda=12.1 cuda-toolkit=12.1 cuda-nvcc=12.1
conda env update --file environment.yml --prune
conda activate eags
pip install -r requirements.txt
cd thirdparty/Hierarchical-Localization
python -m pip install -e .
cd ../..
Build VO:
cd VO
mkdir -p build && cd build
cmake ..
make -j
cd ../..
Datasets
For Replica and TUM RGB-D:
git lfs install
cd path/to/datasets
git clone https://huggingface.co/datasets/voviktyl/Replica-SLAM
git clone https://huggingface.co/datasets/voviktyl/TUM_RGBD-SLAM
For downloading ScanNet, follow the procedure described on here. Pay attention! There are some frames in ScanNet with inf poses, we filter them out using scripts/scannet_preprocess.py. Please change the path to your ScanNet data and run the cells.
Usage
For a single scene:
python run_slam.py configs/<dataset_name>/<config_name> --input_path <path_to_the_scene> --output_path <output_path>
# example
python run_slam.py configs/TUM_RGBD/rgbd_dataset_freiburg1_desk.yaml | tee log/tum/desk_0.log
You can also configure input and output paths in the config yaml file.
For all scenes:
./reproducing.sh
For headless running, please config the plot_backend before running:
evo_config set plot_backend agg
If you are running it for the first time, it may take some time to download the model.
Citation
@ARTICLE{EAGSSLAM,
author={Mo, Hongle and Zhao, Zifeng and Lu, Yansen and Peng, Li and Liu, Dongmei and Tang, Shaomin and Xu, Bingquan and Qiu, Jian and Han, Peng and Luo, Kaiqing},
journal={IEEE Sensors Journal},
title={EAGS-SLAM: Edge-Assisted Gaussian Splatting SLAM},
year={2026},
volume={26},
number={7},
pages={10552-10561},
doi={10.1109/JSEN.2026.3663321}
}