Skip to main content

GenZ-ICP

License: MIT

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, Corridor1 and Corridor2 sequences (topic: /velodyne_points)
  • exp07.yaml: Hilti-Oxford dataset, Exp07 sequence (topic: /hesai/pandar)
  • kitti.yaml: KITTI odometry dataset (topic: /velodyne_points)
  • long_corridor.yaml: SubT-MRS dataset, Long_Corridor sequence (topic: /velodyne_points)
  • newer_college.yaml: Newer College dataset, 01_short_experiment, 02_long_experiment, 07_parklandmount sequences (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

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)

Source distribution for genz-icp 0.3.2
File Size Uploaded
genz_icp-0.3.2.tar.gz 41.7 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for genz-icp 0.3.2
File
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

Release history Release notifications | RSS feed

This release

0.3.2 This release

7 release files

0.3.1

7 release files

0.3.0

7 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page