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 (optional) dependencies, like Open3D/Polyscope for visualization:

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][arXivLink], 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.0.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.0-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.0-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.0-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.0-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.0-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.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (475.7 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

File details

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

File metadata

  • Download URL: genz_icp-0.3.0.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.0.tar.gz
Algorithm Hash digest
SHA256 171ee9db2814e59e8e0fe66a09889a503cea648c3576b06dd3e7f5d9985db742
MD5 f81ed174eb81ca2bd8859caef62d5b0f
BLAKE2b-256 1720973b9d01887a8c93dc823e71ffe610ccea4530a13b0d4e970801b9a9c033

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for genz_icp-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9a7d1e60f48030d6c6663ec69529816418c68a3af27db0429a0057b40f2e2c04
MD5 ec8ca128b1152b04811bb6b56071b055
BLAKE2b-256 7327c7f5e3ea367ddeee58bbe2c1d9dce2f7e66f7c6f4fe7d72b83e1b178eab3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for genz_icp-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eb3d79c043306ed952e74ab9a98ce534c2c8c655eb95df77c9d05759397d86d1
MD5 d6c8bfb436960607af7c7d141f68b86e
BLAKE2b-256 9de05ef551ced5f6bb837c89ddd9e76c2c9ea61c5931161b09adb121d14947e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for genz_icp-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 88abe816ffc0c4bc1b7de99316d1c086d3fc915fa1da382f0bc7900562333f40
MD5 25e426d17eb16a910ae596e3f74b9af2
BLAKE2b-256 f421652f996d62a5c9f9602de07492bc13aaf84b9dcf6c190d2bea498904f3c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for genz_icp-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 de17591aa2b340934a8e68bfeae2128de833372a80260648ab4b98656a34cd36
MD5 f64ee7741f93357c69a2b7d1a0950474
BLAKE2b-256 08eb984f3335f10a347daca2279cde8301aee697efe4fb217cfdc0e62d232b06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for genz_icp-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4cadd9b41bbcc9981ca654475fc6d3f04f149a5672be430ba2850f0f84309c98
MD5 6e6dc3b0b2256e8290c2e9a0766f75ef
BLAKE2b-256 1ae84a7d585df5ce9dc2d9f87a7cb7230e345804c9bed0ba652563929fa337d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for genz_icp-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d541d2de56e340a0faf96dfcc661e2dd7cd5a6e1f45bf627f4bb6d58e0e159f3
MD5 1fa47b7233cff70c11a2b8da0af9464b
BLAKE2b-256 a47d8b02a180d2d886118ea722a8523f6c4165c69ac2bb97f7154a035b494455

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