ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
I'd have to see input messages and your launch file. Also, see this question. In addition, try increasing the process_noise_covariance
parameter for yaw velocity (not the measurement covariance).
2 | No.2 Revision |
I'd have to see input messages and your launch file. Also, see this question. In addition, try increasing the process_noise_covariance
parameter for yaw velocity (not the measurement covariance).
EDIT
Looking at your bag and launch files, a few things jump out at me. There are things that could be causing your issue, and things that are probably unrelated, but should be fixed.
Potential Causes for Delay
frequency
parameter, or decrease the sensor_timeout
parameter (or both).process_noise_covariance
a bit more for yaw velocity.Other Things That You Should Correct
Despite the use of yaw information from your IMU, you have your initial_estimate_covariance
yaw value set to 0.01. That will make the filter slow to integrate the yaw measurements initially, which may or may not have been your intention. Making matters worse is that your yaw covariance value in your measurement is 1000000.0, which will effectively make the filter ignore those measurements.
Your IMU is reporting at a rate of 9.89 Hz, which seems low for an IMU, and makes me wonder if it's supposed to be 10, and there's a delay in the handling of the raw data. If you can up the frequency on your IMU (and the EKF), then it might be helpful.
You have nothing measuring Y velocity. If your robot cannot move laterally, then go ahead and set Y velocity to true for your odometry, and make sure the odometry data has a small covariance value for Y velocity.