I am trying to implement the dual ekf navsat [example](https://github.com/cra-ros-pkg/robot_localization/blob/humble-devel/params/dual_ekf_navsat_example.yaml) on my real-world robot. The local EKF with wheel odometry and IMU works quite well and has no issues. As far as I can tell, my global EKF configuration is nearly identical to the local with the only addition being the /odometry/gps. When I start both nodes, the map->odom transform blows up in X/Y and spins randomly when sitting stationary. I have tried adjusting process noise covariance and initial covariance estimate parameters, but these appear to not change the issue. My GPS appears to be working well. I have RTK Fix and it reports an accuracy of ~2cm, which my testing appears to validate. **Bag file:** I recorded a bag file of the robot sitting still, then drawing a rectangle. The odometry/local appears to draw the shape relatively well. Observing the path of the GPS points also shows relatively low noise, and draws the path well. I can't upload on this site, here is a [sharepoint/onedrive link](https://purdue0-my.sharepoint.com/:u:/g/personal/brow1633_purdue_edu/ESeVDWPf47VGnnv4pgDwNC0ByIKr5bvzTdqsUpP7oE4MeA?e=tSUei9). Here is a graph showing the /odometry/global (left) vs /odometry/gps and /odometry/local (right): ![image description](https://nandecloud.ddns.net/index.php/s/CAdHXQfYxspYKtg/download/Screenshot_2023-07-05_14-41-49.png) **Details:** - Platform: Nvidia Jetson Xavier - ROS Version: ROS2 Humble - Operating System: Ubuntu 22.04 (docker image: arm64v8/ros:humble-perception-jammy) - Robot_Localization version: 3.5.1-2 (20230525) - GPS Driver: [septentrio-gnss](https://github.com/septentrio-gnss/septentrio_gnss_driver) **robot_localization config:** (Process/Initial cov matricies are identical to [example](https://github.com/cra-ros-pkg/robot_localization/blob/humble-devel/params/dual_ekf_navsat_example.yaml)) ekf_filter_node_odom: ros__parameters: frequency: 30.0 sensor_timeout: 0.1 two_d_mode: true transform_time_offset: 0.0 transform_timeout: 0.0 print_diagnostics: true debug: false map_frame: map odom_frame: odom base_link_frame: base_link world_frame: odom odom0: diff_cont/odom odom0_config: [false, false, false, false, false, false, true, true, true, false, false, true, false, false, false] odom0_queue_size: 10 odom0_nodelay: true odom0_differential: false odom0_relative: false imu0: zed2i/zed_node/imu/data imu0_config: [false, false, false, true, true, false, false, false, false, true, true, true, true, true, true] imu0_nodelay: false imu0_differential: false imu0_relative: false imu0_queue_size: 10 imu0_remove_gravitational_acceleration: true use_control: false ekf_filter_node_map: ros__parameters: frequency: 30.0 sensor_timeout: 0.1 two_d_mode: true transform_time_offset: 0.0 transform_timeout: 0.0 print_diagnostics: true debug: false map_frame: map odom_frame: odom base_link_frame: base_link world_frame: map odom0: diff_cont/odom odom0_config: [false, false, false, false, false, false, true, true, true, false, false, true, false, false, false] odom0_queue_size: 10 odom0_nodelay: true odom0_differential: false odom0_relative: false imu0: zed2i/zed_node/imu/data imu0_config: [false, false, false, true, true, true, false, false, false, false, false, false, false, false, false] imu0_nodelay: false imu0_differential: false imu0_relative: false imu0_queue_size: 10 imu0_remove_gravitational_acceleration: true odom1: odometry/gps odom1_config: [true, true, false, false, false, false, false, false, false, false, false, false, false, false, false] odom1_queue_size: 10 odom1_nodelay: true odom1_differential: false odom1_relative: false use_control: false navsat_transform: ros__parameters: frequency: 30.0 delay: 3.0 magnetic_declination_radians: 0.0 yaw_offset: 0.0 zero_altitude: false broadcast_utm_transform: true publish_filtered_gps: true use_odometry_yaw: false wait_for_datum: false **Example Sensor Messages:** diff_cont/odom: header: stamp: sec: 1688561428 nanosec: 748273568 frame_id: odom child_frame_id: base_link pose: pose: position: x: 0.0 y: 0.0 z: 0.0 orientation: x: 0.0 y: 0.0 z: 0.0 w: 1.0 covariance: - 0.001 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.001 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.001 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.001 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.001 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 1.0e-06 twist: twist: linear: x: 0.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.0 covariance: - 0.001 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.001 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.001 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.001 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.001 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 1.0e-06 /zed2i/zed_node/imu/data: header: stamp: sec: 1688561477 nanosec: 94539456 frame_id: zed2i_imu_link orientation: x: 0.04747530817985535 y: 0.0217120498418808 z: 0.33702659606933594 w: 0.9400466680526733 orientation_covariance: - 5.814558282399458e-10 - -3.2944193591010685e-10 - 3.0220212313595557e-11 - -3.294419012791137e-10 - 8.316236808529003e-10 - 2.0890566503682616e-10 - 3.022021664246969e-11 - 2.0890566503682616e-10 - 6.456938962255484e-10 angular_velocity: x: -0.01820158927202928 y: 0.02127879501425481 z: 0.000792325946237065 angular_velocity_covariance: - 6.35957531046334e-10 - 0.0 - 0.0 - 0.0 - 6.81844497277238e-10 - 0.0 - 0.0 - -0.0 - 5.81403604702388e-10 linear_acceleration: x: 0.024594472721219063 y: 1.1347548961639404 z: 9.869213104248047 linear_acceleration_covariance: - 0.005106136202812195 - 0.0 - 0.0 - 0.0 - 0.00590071314945817 - 0.0 - 0.0 - -0.0 - 0.006188959814608097 gps/fix: header: stamp: sec: 1688561423 nanosec: 145409472 frame_id: gps_frame status: status: 2 service: 9 latitude: 40.477501743301964 longitude: -87.00108049977172 altitude: 182.53988211053635 position_covariance: - 0.00017811922589316964 - -6.650557043030858e-05 - -1.604144199518487e-05 - -6.650557043030858e-05 - 0.0003876265836879611 - -6.546182703459635e-06 - -1.604144199518487e-05 - -6.546182703459635e-06 - 0.0009483876056037843 position_covariance_type: 3