genz-icp

cocel-postech活跃维护

面向 LiDAR 里程计的鲁棒 ICP 算法,专门解决走廊、隧道等几何退化场景下位姿估计失准的问题,是 IEEE RA-L 2025 的 SOTA 方案。

GenZ-ICP: SOTA robust LiDAR odometry (IEEE RA-L 2025)

v0.3.2发布于 2026-05-05 12:55 UTC728star120fork同步于 2026-11-10 17:56 UTC

怎么上手

由 README 提炼,执行前请确认
pip install genz-icp
genz_icp_pipeline --help
硬件要求按 README 说明

README 未说明显存、CPU 或 GPU 型号要求,仅标注支持 Linux

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

基于自适应加权的泛化性强、抗退化 LiDAR 里程计,提供 Python 包与 ROS1/ROS2 接口

面向 LiDAR 里程计的鲁棒 ICP 算法,专门解决走廊、隧道等几何退化场景下位姿估计失准的问题,是 IEEE RA-L 2025 的 SOTA 方案。

核心能力

  • 用自适应加权提升退化场景下的鲁棒性
  • 提供 pip 安装的 Python 包与命令行管线
  • 支持 ROS1 与 ROS2 的 odometry launch
  • 附带预调参配置与参数调优指南
  • 提供 C++ 与 Python 两套实现

容易踩的坑

ROS 使用需先按 catkin 或 colcon 单独编译工作空间;运行需自备 rosbag 或数据集,README 未内置数据;ROS 启动需指定 topic 参数

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

4 个版本v0.3.2
  1. v0.3.2最新正式版2026-05-05 · 2026-05-05 12:55 UTC

    GenZ-ICP v0.3.2: PyPI Support and ROS 2 Stability Improvements

    This release introduces official PyPI support for GenZ-ICP and major ROS 2 stability improvements.

    🚀 PyPI Support (Major Update)

    • Official Python package support: pip install genz-icp
    • CLI tool: genz_icp_pipeline
    • Updated the visualizer for GenZ-ICP's status representation
    • Packaged pre-tuned configs for quick start
    • Config parser support for both:
      • Python-style sectioned YAML
      • ROS-style flat YAML
    • Improved dataset topic handling (/topic vs topic normalization)

    🛠️ ROS 2 Stability and Build Fixes (Major Update)

    • During real-time playback of recorded LiDAR bags in ROS 2, a QoS mismatch between the point cloud publisher and subscriber caused intermittent frame drops and timing jitter, leading to visible stuttering and occasional odometry drift.
    • Fix: switched the point cloud subscriber to a RELIABLE QoS profile for stable frame delivery, improving consistency of scan integration and odometry tracking.
    • Build robustness: added FetchContent/CMake compatibility handling for newer CMake environments (e.g., >= 3.31), reducing ROS 2 build failures across different systems.

    Packaging and Build

    • Added/updated Python packaging scaffold (pyproject.toml, build config, metadata)
    • Fixed wheel-from-sdist packaging issues in the release flow
    • Published PyPI package genz-icp==0.3.2

    Environment Validation

    Tested and validated on Ubuntu 20.04, 22.04 environments.

    Documentation

    • Refreshed root/Python README for:
      • installation
      • pipeline usage
      • config usage
      • pre-tuned config examples

    Acknowledgement

    • We gratefully acknowledge the KISS-ICP project and team.
    • The PyPI packaging/release workflow for GenZ-ICP was developed with reference to KISS-ICP’s open-source structure and practices.
  2. v0.2.02025-04-17 · 2025-04-17 11:05 UTC
    查看更新说明

    What's Changed

    New Contributors

    Full Changelog: https://github.com/cocel-postech/genz-icp/compare/v0.1.0...v0.2.0

  3. v0.1.02025-03-07 · 2025-03-07 12:28 UTC
    查看更新说明

    What's Changed

    • Resolve the RViz visualization issue (flickering problem when visualizing planar and non-planar points)
    • Fix Geman-McClure weighting for the point-to-plane residual
    • Update Adaptive voxelization strategy based on the desired_num_voxelized_points (using LOCUS 2.0's approach)
    • Modify centroid calculation process to avoid unnecessary use of a for loop
  4. v0.0.02024-11-19 · 2024-11-19 01:44 UTC
    查看更新说明

    Version 0.0.0

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    GenZ-ICP is a Generalizable and Degeneracy-Robust LiDAR Odometry Using an Adaptive Weighting

    Install

    pip install genz-icp
    

    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.

    For advanced instructions on the Python package please see this README

    ROS support

    Build

    mkdir -p ~/catkin_ws/src
    cd ~/catkin_ws/src
    git clone https://github.com/cocel-postech/genz-icp.git
    cd ..
    catkin build genz_icp --cmake-args -DCMAKE_BUILD_TYPE=Release
    source ~/catkin_ws/devel/setup.bash
    

    Run with pre-tuned config

    roslaunch genz_icp odometry.launch topic:=<topic_name> config_file:=<config_file_name>.yaml
    rosbag play <rosbag_file_name>.bag
    

    Run with only topic

    roslaunch genz_icp odometry.launch topic:=<topic_name>
    rosbag play <rosbag_file_name>.bag
    

    Examples and download links for demo datasets are available in ros/README.md.

    Parameter tuning guide: ros/config/parameter_tuning_guide.md

    Build

    mkdir -p ~/colcon_ws/src
    cd ~/colcon_ws/src
    git clone https://github.com/cocel-postech/genz-icp.git
    cd ..
    colcon build --packages-select genz_icp --cmake-args -DCMAKE_BUILD_TYPE=Release --symlink-install
    source ~/colcon_ws/install/setup.bash
    

    Run with pre-tuned config

    ros2 launch genz_icp odometry.launch.py topic:=<topic_name> config_file:=<config_file_name>.yaml
    ros2 bag play <rosbag_file_name>.db3
    

    Run with only topic

    ros2 launch genz_icp odometry.launch.py topic:=<topic_name>
    ros2 bag play <rosbag_file_name>.db3
    

    Examples and download links for demo datasets are available in ros/README.md.

    Parameter tuning guide: ros/config/parameter_tuning_guide.md

    :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}
    }
    

    For the LiDAR-inertial odometry (LIO) extension of GenZ-ICP, please also refer to GenZ-LIO.

    @article{lee2026genzlio,
      title={{GenZ-LIO: Generalizable LiDAR-Inertial Odometry Beyond Confined--Open Boundaries}},
      author={Lee, Daehan and Lim, Hyungtae and Kim, Seongjun and Rho, Soonbin and Lee, Changhyeon and Park, Sanghyun and Hong, Junwoo and Choi, Eunseon and Jo, Hyunyoung and Han, Soohee},
      journal={arXiv preprint arXiv:2603.16273},
      year={2026}
    }
    

    :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