Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

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): /odometry/gps output

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

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.