robot_localization not receiving odometer data despite listening
I am trying to fuse odometry from navsat_transform and an IMU using an ekf_localization_node, the orientation is working, but it is constantly stuck at 0, 0, 0.
The output of the odometry is broadcasting sensible output (which I can confirm by mapping it independently in RVIZ too):
I've turned on the debugging output file and when I open it I observe the following:
Subscribed to /odometry/gps (odom0)
odom0_differential is false
odom0_pose_rejection_threshold is 1.7977e+308
odom0_twist_rejection_threshold is 1.7977e+308
odom0_queue_size is 10
odom0 pose update vector is [t t t f f f f f f f f f f f f ]
odom0 twist update vector is [f f f f f f f f f f f f f f f ]
Subscribed to /os1_cloud_node/imu/fixed (imu0)
imu0_differential is false
imu0_pose_rejection_threshold is 1.7977e+308
imu0_twist_rejection_threshold is 1.7977e+308
imu0_linear_acceleration_rejection_threshold is 1.7977e+308
imu0_remove_gravitational_acceleration is true
imu0_queue_size is 10
///etc
What is strange is that there are thousands of mentions of the imu0 callback being activated, but past these lines odom0 is never mentioned again, in relation to anything.
So the callback for odom0 is never being called. is base_link.However I leave this node running and echo /odometry/gps and plenty of data comes out as shown previously.
Any idea why this is? Using ROS Melodic and the frame_id for /odometry/gps.
Thanks
Do your TF transformations between the sensor frame in the messages and robot base frame exist?
Are you sure the topics are in the correct namespace, checking with rostopic list and info?
Please post sample input messages for every sensor input, as well as your EKF config.
Any update here?