README.md
February 13, 2026 · View on GitHub
ELite: Ephemerality meets LiDAR-based Lifelong Mapping
Hyeonjae Gil* · Dongjae Lee* · Giseop Kim · Ayoung Kim
(* Equal Contribution)
Arxiv | Video
About ELite
ELite is a LiDAR-based lifelong mapping framework that integrates ephemerality—the likelihood of a point being transient or persistent—into the entire pipeline. Unlike binary classifications of map elements (static vs. dynamic), ELite introduces a two-stage ephemerality concept to represent changes across different time scales:
- Local ephemerality: Captures short-term variations (e.g., moving cars vs. parked cars).
- Global ephemerality: Represents long-term changes (e.g., parked cars vs. new buildings)
By leveraging ephemerality, ELite seamlessly aligns multiple sessions, removes dynamic objects, and matains accurate maps.
Installation
1. Clone the repository
git clone git@github.com:dongjae0107/ELite.git
2. Set up conda environment
We tested with python 3.10, but any python version will work fine.
conda create -n elite python=3.10
conda activate elite
3. Install requirements
cd ELite
pip install -e .
Optional: For CUDA-accelerated matching, we recommend installing pygicp and using the PyGICPScanMatcher. Follow the instructions below or refer to the fast_gicp repository for more details.
git clone git@github.com:koide3/fast_gicp.git
cd fast_gicp
python3 setup.py install --user
Run
Example - Parkinglot dataset
Download the dataset from this link or use the script below to download example sequences (01 and 02):
bash scripts/download_parkinglot.sh
To download additional sequences, simply modify the script as needed.
Then, initialize the ELite with first session:
python3 run_elite.py ./config/parkinglot_first.yaml
For the other sessions, run:
python3 run_elite.py ./config/parkinglot.yaml
Run with Your Own Dataset
Data preparation
You need to provide a Session as input. Each session must include:
- A
Scans/folder containing point cloud files (in.pcdformat), starting from000000.pcd - A
poses.txtfile containing LiDAR poses in KITTI format
The expected directory structure is:
Session/
├── poses.txt
└── Scans/
├── 000000.pcd
├── 000001.pcd
├── ...
└── 00000N.pcd
You can easily generate session data using the saver tool provided with SC-LIO-SAM.
Alternatively, SC-A-LOAM and FAST_LIO_SLAM are also supported.
Initial transform between sessions
To run the alignment module, you need to provide an initial transformation for the new session. Initial transformation is for coarse aligning the first few scans of new session to the previous session's coordinate frame. The simplest method is to use ICP in CloudCompare and use the transformation matrix. In near future, we are planning to automate this process by introducing global localization-based version (e.g. Scan Context) as written in the paper.
Run ELite
Once your dataset is prepared, update the parameters in config/sample.yaml.
Make sure to set or remove the prev_outputs_dir field depending on whether this is the first session or a subsequent session.
To run ELite:
python3 run_elite.py ./config/sample.yaml
Citation
If you use ELite for any academic work, please cite our paper.
@INPROCEEDINGS { hjgil-2025-icra,
author={Hyeonjae Gil and Dongjae Lee and Giseop Kim and Ayoung Kim},
title={Ephemerality meets LiDAR-based Lifelong Mapping},
booktitle={Proceedings of the IEEE International Conference on Robotics and Automation (ICRA)},
year={2025},
month={May.},
address={Atlanta},
}
Contact
If you have any questions, please contact:
- Hyeonjae Gil (now9728@gmail.com)
- Dongjae Lee (dongjae0107@gmail.com)
Acknowledgement
This work was supported by the National Research Foundation of Korea (NRF) grant funded by the Korea government (MSIT)(No. RS-2024-00461409), and in part by the Robotics and AI (RAI) Institute.