Assuming that you specifically want to use an EKF-based approach and not just a particle filter with Monte Carlo localization like amcl
, you could for instance use the EKF (or UKF) implementations in the robot_localization
package to fuse your existing source of odometry with another odometry estimate made by a scan matcher like laser_scan_matcher
.
Note that unless you have specific instructions not to use amcl
, I would give it a try first since it is the most widely used localization tool for LIDAR+odometry robots with ROS.
Edit : If you want to use an existing map, you indeed need a scan-to-map matcher. Then robot_localization
can help fuse the estimate of the scan-to-map matcher with your odometry using an EKF. But I am afraid I don't know about individual ROS packages providing a scan-to-map matching feature in isolation, you would have to look at how it is implemented in the various localization/SLAM packages out there.