cocel-postech / genz-lio
git clone https://github.com/cocel-postech/genz-lio.git
GenZ-LIO: SOTA robust LiDAR-inertial odometry (IEEE T-FR 2026)
+2
stars, 24h · #5,576
+~14
stars, 7 days · #6,318
+128
stars, 30 days · #3,874
133
★ total · +12% this week
17
forks · 0 open issues
Star history (as recorded here)
LanguageC++
LicenseGPL-2.0
Created2026-09-23 (29d ago)
Last push2d ago
Watchers0
OwnerOrganization
GitHub topics
degeneracydisasterimuindoorindoor-outdoorlidarlidar-inertial-odometrylidar-slamodometryoutdoorpoint-cloudpose-estimationroboticsrobustrosros2sensor-fusionslam
Links
README excerpt
# GenZ-LIO **Generalizable LiDAR-Inertial Odometry Beyond Confined–Open Boundaries** Youtube • Bilibili • Paper • Dataset • Install • Python • ROS (October 7, 2026) pip installation is now live: GenZ-LIO is designed for robust and computationally efficient LiDAR-inertial odometry across confined spaces, open environments, and transitions between them. ## Python support Process recorded data with an optional visualizer; no ROS installation is needed. Install and run (Linux x86-64, Python 3.8–3.12) ### 1. Prepare the environment Use Linux x86-64 with Python 3.8–3.12. Ubuntu 20.04, 22.04, and 24.04 provide Python 3.8, 3.10, and 3.12, respectively. [code] ### 2. Install Install all optional readers (rosbag and Ouster PCAP) and the visualizer: [code] The published wheels include the compiled C++ extension; no local C++ build or ROS installation is required. Plain `pip install genz-lio` installs the core and CLI. ### 3. Prepare configurations The `experiments/` YAMLs provide the sequence-specific configurations for reproducing the benchmark experiments in the paper. The `default/` YAMLs are sensor templates for your own recordings. Export all bundled YAMLs once, preserving their `default/` and `experiments/` subdirectories under `configs/`: [code] Run this in the directory where you will run the examples below. This copies all 36 YAMLs unchanged and works with both source and wheel installations. Keep this folder for subsequent runs; there is no need to export again per sequence. Exported YAMLs are editable. Re-running the export will not overwrite existing files or your changes. ### 4. Run **1) For reproducing benchmark experiments (e.g., NarrowWide Handheld-A-01)** Use the experiment YAML prepared above with the NarrowWide Handheld-A-01 recording: [code] The experiment YAML already contains the benchmark sensor topics and calibration. Obtain the dataset separately. The optional `--image-topic` displays the camera images recorded in this bag; omit it to run without the camera panel. Press **SPACE** to start. For rosbag2, pass the recording directory instead of a `.bag` file. The exported YAMLs also work outside the source checkout. ▶️ All benchmark sequences: downloads and Python commands (42 sequences) The commands use `configs/experiments/` exported in the preparation step and write each sequence's trajectory to a separate output directory. All enable `--visualize`; `--image-topic` is included where the recording contains a camera stream. Omit that option to disable the preview. Camera streams are display-only. Download the full recordings with images when using the camera options below. Bag filename labels in braces identify the sequence, not the official download filename. Substitute the actual downloaded or prepared filename; no file renaming is required. Labels ending in `_pointcloud` or `_merged` refer to the prepared inputs described below. GEODE (7 sequences) Dataset · Download. Use the Alpha