Robot Localization - Is it good practice to continually update sensor covariance matricies?
Does the Robot Localization package need/benefit from:
- The variances in sensor message variance-covariance matrices being updated in real-time from the sensors readings?
- Likewise, populating the covariances in the covariance-matrix with real-time values?
- If real-time sensor covariances (not variances) are not available, is it preferred that the covariances in the sensor topic/message are set to zero or some static pre-calculated non-zero value?
Background: We have a setup where each sensor (wheel encoders, IMUs) is interfaced via an Arduino; so calculating running/streaming variances, on the microprocessor, before passing each sensor topic/message to robot-localization is not an issue. Real-time covariances are more difficult so we'd prefer just to pass zeroes or a static non-zero value.
Asked by Marvin on 2019-11-28 16:20:18 UTC
Answers
Robot localization is essentially an ekf or ukf (Extended or unscented Kalman Filter). And kalman filter benefits greatly from (good) covariance values. Having no covariance might start giving you averaging which is probably not desired. I would suggest to try some random values and see what works best for you since a lot of times when covariances are not available they are done by intelligent guess work.
Asked by Choco93 on 2019-11-29 03:14:49 UTC
Comments