// the find
rsasaki0109/lidar_localization_ros2
3D LIDAR Localization using NDT/GICP and pointcloud map in ROS 2 (Not SLAM)
A ROS 2 package for map-based 3D LiDAR localization using NDT/GICP against a pre-built pointcloud map. It is not SLAM — you need the map already built. Aimed at roboticists running Nav2 stacks on Humble or Jazzy who want a drop-in localizer with IMU preintegration and a bringup diagnostic tool.
The bringup doctor (`check_lidar_localization_bringup.py`) is genuinely useful — it prints OK/WARN/FAIL for each dependency before you start chasing ghost TF problems. The IMU preintegration path shows real numbers: 0.082 m vs 0.163 m RMSE on the Koide outdoor bag, not just a claim. The config generator (`create_lidar_localization_config.py`) produces a matching launch line and doctor command, which cuts the parameter-file-hand-editing loop that wastes hours in any ROS project. The experiment framework in `experiments/` is structured enough to compare variants against fixture snapshots — that is more rigorous than most robotics repos at this star count.
The Istanbul benchmark numbers have uncomfortable variance — the README acknowledges outlier runs at 3.31 m RMSE on identical seeds, which means you cannot trust a single benchmark pass. The global localization path is explicitly experimental and stops at a dry-run artifact; if you need kidnapped-robot recovery in production, this is not it yet. The repo is labeled Python in GitHub's language stats but the core is C++ with Python tooling on top — the mismatch will confuse people expecting a pure Python package. There is no map-building path here; if you don't already have a PCD map from another tool, you are blocked before you start.