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][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.1.tar.gz (41.6 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.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (477.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

genz_icp-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (477.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

genz_icp-0.3.1-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.1-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.1-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.1-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.1.tar.gz.

File metadata

  • Download URL: genz_icp-0.3.1.tar.gz
  • Upload date:
  • Size: 41.6 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.1.tar.gz
Algorithm Hash digest
SHA256 7f900c0b983061857d69779af7ef1776f68660b3578a05f38ec7e176baadf077
MD5 805202291aeea591064cab33fa8b209b
BLAKE2b-256 1a8c4929b27b3a5ae66df57345573b20943f5a01ac532f5ed54150232a154f61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for genz_icp-0.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f25cd93063f6d9b1cf2dad0cce365edb0e1bd21223aca9a836b0f4f92bfbfa32
MD5 21bb2dc061b16d794b25f48a3824045c
BLAKE2b-256 28f2a6f7f938a4499e6937f3e65e6a9604f4ce56ea0ffe5e45b1cf145b60e733

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for genz_icp-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ba8c857875a55580cdda89219bb7eb533b9fb552094adeb17ec649622cd167e7
MD5 6729ae7bf435780b6d434b0dda26aaac
BLAKE2b-256 77f5cf89f991dd0b5f41ddeedd95a5870a525243769bd75896f7bc816940d09c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for genz_icp-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3ec2c5ad52d6f961979b4da28fd703296dcc0e9de02b82f8bbc9a90238e91685
MD5 f5d936caec1977f5179ab5e2409e0f06
BLAKE2b-256 c7b1abd483206ccd6c3a9f7c4c16220df37e6ed78930a0228ae3e2d92520980f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for genz_icp-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4a9d48249811843641d4aee25d0702921c7e2baa8570542248d6c688c52b2e8a
MD5 c7f44cd27c7fc53f8590d80f5c80b459
BLAKE2b-256 772c7b9944daaee12807b9f8a5c01b0fddf6abad82e19cded154b0363225306d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for genz_icp-0.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 85bd75c0b713fb91b6a22241861730ef600b814f07b11ff454d27158fd92e407
MD5 f43ed982f1cd1b35024d723d4d12c90e
BLAKE2b-256 418db0cc348598eae4a6ab2a449f9c2d2eb3e22352590b4bc2224cc228d8c045

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for genz_icp-0.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3a5410c3957849cde6a05230594196f82aa24a01dbf5e42c7b51de47ecf4d794
MD5 a9a9693609755a85a782c47d5db2c4d8
BLAKE2b-256 77eef24ed4b75d8418b548fe54aef5408aedfdd1e144374946c90f6e7ef973f8

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