robot_localization: Delay in node startup causes odom drift
I am using a simple implementation with visual odometry (ZED2) for odom and an xsens IMU for IMU data. What I'm running into is that the data buffer from the IMU starts much earlier than the visual odometry and results in robot_localization
parsing through all of the IMU values trying to estimate the pose without getting any visual odometry data. What I'm observing is that base_link
and odom
drift apart exponentially, I've seen kilometers of drift, until the visual odometry messages can catch up, and then eventually they will converge. This is with both IMU and stereo camera static on a benchtop. I'm wondering if this is expected behavior and if there is some way to ignore data from nodes until data from all nodes have been received or something to that affect? I played with relative and differential settings and they didn't seem to help. The drift did seem to settle out sooner, but then it stayed at the location instead of odom and base_link converging.
Thanks in advance