Skip to main content

Generalizable and degeneracy-robust LiDAR odometry

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

genz_icp-0.3.2.tar.gz (41.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

genz_icp-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (477.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

genz_icp-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (477.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

genz_icp-0.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (476.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

genz_icp-0.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (475.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

genz_icp-0.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (476.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

genz_icp-0.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (475.6 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

File details

Details for the file genz_icp-0.3.2.tar.gz.

File metadata

  • Download URL: genz_icp-0.3.2.tar.gz
  • Upload date:
  • Size: 41.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for genz_icp-0.3.2.tar.gz
Algorithm Hash digest
SHA256 ed4463f5d7c1c951c481ae554323f4d83f98954fdf1c401e92386ad297a528ff
MD5 1a4a7ca004c09c6d5501dcfa8fed45f3
BLAKE2b-256 4a68efd4eec69e7aa3c767e7b3af0e46b2ab45d19766e2c88119eb46eef7fbab

See more details on using hashes here.

File details

Details for the file genz_icp-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for genz_icp-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8d553c190e51272f18704d0632940c6db75ef9163b1e574efb2f7b87dc883dc0
MD5 7e9ef2c2e41049b8a3cb4b533a9592d3
BLAKE2b-256 e8bbcefe6193431c67dc10e77f97245e2c3c32148234959a48f940a852faa75f

See more details on using hashes here.

File details

Details for the file genz_icp-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for genz_icp-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 03fad5e560d214c0af707ad55837c6a205231e045c58b22e1c5b12b0cdd0e8a7
MD5 e09764914ddb1b23c7574738546271e6
BLAKE2b-256 ee457d60097f53d9073fe69feac3721ab877823355fd367674a108fc129a01d5

See more details on using hashes here.

File details

Details for the file genz_icp-0.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for genz_icp-0.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e8735c07c0de29f90dcc6c7caf6bdc931fd244b42b7cd1bcb85d73c6edcc1905
MD5 cc01b55403cbe470b3723c890014b0c6
BLAKE2b-256 38b221a05d19097bcdd40a942f0d998a083c4e8a4df84edef75f4c5e2e28478f

See more details on using hashes here.

File details

Details for the file genz_icp-0.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for genz_icp-0.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 08c54f7531a1d779de44010c4b94517a4f973f8de1e0e52edd57331f45df315b
MD5 042eb1826d2694f8ed553c9c8b23fabd
BLAKE2b-256 9b1cd078de156d42b825cdab88280d45971331e81e5b54a089afb787f2f0916e

See more details on using hashes here.

File details

Details for the file genz_icp-0.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for genz_icp-0.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c8badf3dce859532efdcb3dc402d98baa75273b29803f9574f4fc7e021ff8ddb
MD5 7666e81e1afcad2869b452340d006389
BLAKE2b-256 db7882c978419c3ee1d145db9563f62f26e52fc3ef26675649ded7acfaf3a519

See more details on using hashes here.

File details

Details for the file genz_icp-0.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for genz_icp-0.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 82ba5af783b2df6447ec9bf59caadb545ebafeb7c48ad72689deeb3f0f7d4e7f
MD5 cdadb2c82446964c3c3073937f751e33
BLAKE2b-256 0514b18dbc1f03224c404d6af62f5430c9599255d9d3ba57a5fb6e8689f91e37

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page