GenZ-ICP
Demo • Install • ROS • Paper • Contact Us
GenZ-ICP is a Generalizable and Degeneracy-Robust LiDAR Odometry Using an Adaptive Weighting
Install
pip install genz-icp
If you also want to install all the dependencies, like Open3D/Polyscope for visualization (recommended):
pip install "genz-icp[all]"
Running the system
Next, follow the instructions on how to run the system by typing:
genz_icp_pipeline --help
This should print a help message with supported dataloaders and options.
Config
You can generate a default config genz_icp.yaml by typing:
genz_icp_dump_config
Now, you can modify the parameters and pass the file to --config when running genz_icp_pipeline as follows:
genz_icp_pipeline --config /path/to/genz_icp.yaml --visualize /path/to/data --topic /pointcloud_topic
Built-in pre-tuned configs (installed with pip)
Pre-tuned YAML files are packaged together with genz-icp, so you can use them by filename directly.
Available pre-tuned configs:
corridor.yaml: Ground-Challenge dataset,Corridor1andCorridor2sequences (topic:/velodyne_points)exp07.yaml: Hilti-Oxford dataset,Exp07sequence (topic:/hesai/pandar)kitti.yaml: KITTI odometry dataset (topic:/velodyne_points)long_corridor.yaml: SubT-MRS dataset,Long_Corridorsequence (topic:/velodyne_points)newer_college.yaml: Newer College dataset,01_short_experiment,02_long_experiment,07_parklandmountsequences (topic:/os1_cloud_node/points)indoor.yaml: General indoor environments (topic set by user input)outdoor.yaml: General outdoor environments (topic set by user input)
Example:
genz_icp_pipeline --config long_corridor.yaml --visualize /path/to/data --topic /velodyne_points
You can still pass your own local YAML path:
genz_icp_pipeline --config /path/to/my_config.yaml --visualize /path/to/data --topic /pointcloud_topic
Install Python API (developer mode)
If you plan to modify the code, the main requirements are a modern C++ compiler and pip.
In Ubuntu-based systems:
sudo apt install g++ python3-pip
Then clone and install editable mode:
git clone https://github.com/cocel-postech/genz-icp.git
cd genz-icp
python3 -m pip install -e ./python --no-build-isolation
Install Python API (expert mode)
If you want more control over the build, install CMake and dependencies explicitly:
sudo apt install build-essential libeigen3-dev libtbb-dev pybind11-dev ninja-build
:pencil: Citation
If you use our codes, please cite our paper (arXiv, IEEE Xplore)
@ARTICLE{lee2024genzicp,
author={Lee, Daehan and Lim, Hyungtae and Han, Soohee},
journal={IEEE Robotics and Automation Letters (RA-L)},
title={{GenZ-ICP: Generalizable and Degeneracy-Robust LiDAR Odometry Using an Adaptive Weighting}},
year={2025},
volume={10},
number={1},
pages={152-159},
keywords={Localization;Mapping;SLAM},
doi={10.1109/LRA.2024.3498779}
}
:sparkles: Contributors
Like KISS-ICP, we envision GenZ-ICP as a community-driven project, we love to see how the project is growing thanks to the contributions from the community. We would love to see your face in the list below, just open a Pull Request!
:pray: Acknowledgement
Many thanks to KISS team—Ignacio Vizzo, Tiziano Guadagnino, Benedikt Mersch—to provide outstanding LiDAR odometry codes!
Please refer to KISS-ICP for more information
:mailbox: Contact information
If you have any questions, please do not hesitate to contact us
- Daehan Lee :envelope: daehanlee
atpostechdotacdotkr - Hyungtae Lim :envelope: shapelim
atmitdotedu
Metadata
Release files for genz-icp 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| genz_icp-0.3.2.tar.gz | 41.7 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| genz_icp-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.17+ x86-64 | Details |
| genz_icp-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.17+ x86-64 | Details |
| genz_icp-0.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.17+ x86-64 | Details |
| genz_icp-0.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.17+ x86-64 | Details |
| genz_icp-0.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.9 | CPython 3.9 | Linux glibc 2.17+ x86-64 | Details |
| genz_icp-0.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.8 | CPython 3.8 | Linux glibc 2.17+ x86-64 | Details |
Total release size: 2.9 MB
Release files / genz_icp-0.3.2.tar.gz
| Download URL | genz_icp-0.3.2.tar.gz |
|---|---|
| Size | 41.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ed4463f5d7c1c951c481ae554323f4d83f98954fdf1c401e92386ad297a528ff
|
|
BLAKE2b-256 checksum How to use checksums |
4a68efd4eec69e7aa3c767e7b3af0e46b2ab45d19766e2c88119eb46eef7fbab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Release files / genz_icp-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | genz_icp-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 477.2 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
8d553c190e51272f18704d0632940c6db75ef9163b1e574efb2f7b87dc883dc0
|
|
BLAKE2b-256 checksum How to use checksums |
e8bbcefe6193431c67dc10e77f97245e2c3c32148234959a48f940a852faa75f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Release files / genz_icp-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | genz_icp-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 477.4 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
03fad5e560d214c0af707ad55837c6a205231e045c58b22e1c5b12b0cdd0e8a7
|
|
BLAKE2b-256 checksum How to use checksums |
ee457d60097f53d9073fe69feac3721ab877823355fd367674a108fc129a01d5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Release files / genz_icp-0.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | genz_icp-0.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 476.2 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
e8735c07c0de29f90dcc6c7caf6bdc931fd244b42b7cd1bcb85d73c6edcc1905
|
|
BLAKE2b-256 checksum How to use checksums |
38b221a05d19097bcdd40a942f0d998a083c4e8a4df84edef75f4c5e2e28478f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Release files / genz_icp-0.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | genz_icp-0.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 475.3 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
08c54f7531a1d779de44010c4b94517a4f973f8de1e0e52edd57331f45df315b
|
|
BLAKE2b-256 checksum How to use checksums |
9b1cd078de156d42b825cdab88280d45971331e81e5b54a089afb787f2f0916e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Release files / genz_icp-0.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | genz_icp-0.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 476.1 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
c8badf3dce859532efdcb3dc402d98baa75273b29803f9574f4fc7e021ff8ddb
|
|
BLAKE2b-256 checksum How to use checksums |
db7882c978419c3ee1d145db9563f62f26e52fc3ef26675649ded7acfaf3a519
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Release files / genz_icp-0.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | genz_icp-0.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 475.6 kB |
| Tags | CPython 3.8 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
82ba5af783b2df6447ec9bf59caadb545ebafeb7c48ad72689deeb3f0f7d4e7f
|
|
BLAKE2b-256 checksum How to use checksums |
0514b18dbc1f03224c404d6af62f5430c9599255d9d3ba57a5fb6e8689f91e37
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|