If you're building an outdoor mobile robot in ROS 2 and need to fuse GPS, IMU and wheel encoders into a single position estimate, you have three real options right now. I've used all three and benchmarked two of them on a public dataset. Here's the honest picture. robot_localization The default answer for years. Mature, well documented, large community. It ships an EKF and a UKF node and handles GPS through a separate navsat_transform node that converts GPS coordinates into odometry the filter can consume. The problems in practice: navsat_transform uses UTM projection internally. UTM zones are 6 degrees of longitude wide. If your robot crosses a zone boundary mid-mission, the coordinate origin shifts and your position estimate jumps. For most indoor or small outdoor missions this never matters. For large area agricultural or survey robots it's a real issue. There's no IMU bias estimation.…