Polka v0.2 adds per-source IMU and configurable QoS for LiDAR preprocessing
New ROS2 node merges multi-LiDAR pointclouds with per-source IMU deskewing
Panav has released v0.2 of Polka, a ROS2 package for unifying pointcloud preprocessing. Originally designed as a low-latency pointcloud merger that also publishes laser scans and offers granular filtering and deskewing, this update introduces several critical features. Robots with multiple IMUs (e.g., on different body segments) can now specify a per-LiDAR IMU topic via `per_source_imu`, with a global fallback. Deskew accuracy is improved by subtracting gravity from linear acceleration using IMU orientation. Additionally, users gain full control over output topic QoS (reliability, durability, history depth, liveliness, deadline, lifespan) through `outputs.cloud.qos` and `outputs.scan.qos` parameters.
The release also fixes major bugs: IMU-to-sensor frame rotation is now correctly applied via TF to each LiDAR (fixing deskew for non-aligned sensors), degenerate quaternions cause zeroed acceleration instead of raw gravity, thread safety is improved in SourceAdapter, and stale IMU timestamps are handled with an atomic snapshot. Build mode defaults to Release, warnings are throttled, and an `ImuBuffer` class cleans up IMU management. These improvements make Polka v0.2 a reliable drop-in replacement for messy LiDAR preprocessing pipelines, especially for multi-LiDAR setups requiring per-sensor motion compensation.
- Per-source IMU topic override allows each LiDAR to use its own IMU for deskewing, with global fallback.
- Gravity subtraction in deskew corrects linear acceleration using IMU orientation for better motion compensation.
- Full QoS control (reliability, durability, history depth, liveliness, deadline, lifespan) for output pointcloud and scan topics.
Why It Matters
Enables precise multi-LiDAR fusion on complex robots by aligning each sensor's motion data per-IMU.