While listening to the published topic of visual_slam/tracking/odometry, I see that the velocity output is delayed for about 200ms from the position. I tried rotating the velocity from the camera_link frame to the Odom frame by using the tf and still I see that weird delay between them.
What can be the cause? am I missing something in the configuration?
In the pictures below you can see that when the position reaches its peak (zero velocity) the velocity is above 0.32 m/sec.
Great analysis, thanks! The issue here is that the velocity estimate is being calculated on a window of the last 10 position estimates causing the off-phase delay you’re seeing (see here). You can change the code for velocity estimation to reduce that window and get more noisy but faster response rate messages. We’ll make this a configurable parameter in an upcoming release so one can tune this more easily.
Thanks for the answer,
I’m wondering if the calculation of the covariance will get affected due to the minimum samples of poses (10) (here)
Is changing this hard-coded number can affect the covariance calculation? or is it OK to change it to 5 or even 2?
What are you using the covariance for (an EKF over several estimates perhaps)? Reducing the number of samples used in the window to calculate covariance will increase the error but how OK it is depends on your application.