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 (
/topicvstopicnormalization)
🛠️ 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.