Polka was intended to be a low latency pointcloud merger which also publishes laser scans, provides you with granular control over filtering, even deskewing, here are some features and bug fixes that have been implemented in the latest release.

New Features
- Per-source IMU topic override: each LiDAR source can specify its own
imu_topicfor robots with multiple IMUs on different body segments. Falls back to globalmotion_compensation.imu_topicwhen unset.
-
Gravity subtraction in deskew: linear acceleration corrected by removing gravity using IMU orientation, improving motion compensation accuracy.
-
Configurable output QoS: full QoS control (reliability, durability, history depth, liveliness, deadline, lifespan) via
outputs.cloud.qos/outputs.scan.qosparameters.
- Multi-LiDAR deskew example config in
config/example_params.yaml.
Bug Fixes
-
Fix IMU-to-sensor frame rotation in deskew: angular velocity and acceleration now rotated from IMU frame into each sensor’s frame via TF. Previously only sensors aligned with the IMU got correct deskewing. (fixes #3)
-
Fix degenerate quaternion fallthrough: zeroes acceleration instead of passing raw gravity through when IMU orientation is degenerate.
-
Fix thread safety in SourceAdapter: mutex protection for frame_id/timestamp during concurrent deskewing.
-
Fix stale IMU timestamps: removed dead
average_imu(), simplified to atomic snapshot pattern. -
Fix duplicate missing-intensity warning.
-
Add CUDA error checking in merge engine kernels.
Improvements
-
Default build mode set to Release.
-
Throttled warnings for IMU-to-sensor TF lookup failures and missing intensity fields.
-
Extracted
ImuBufferclass for cleaner IMU management. -
Eliminated config duplication between
load()andreload().Please visit and star
the repository here at : GitHub - Pana1v/polka: A drop in clean and efficient replacement for your messy lidar pre-processing · GitHubA look here would really help you understand the capabilities! : polka/config/example_params.yaml at humble · Pana1v/polka · GitHub


