Is there any quality / degradation metric associated to the estimate in beluga_acml? #562
|
For context, we were thinking of creating a covariance observer component to signal when the EKF fusing sensors and sending an odometry input to beluga_amcl is going bananas. Additionally, wouldn't a time synchronized update together with kinematic constraints deal with jumps or out of bounds estimates? I think it may be connected to #509 |
Replies: 5 comments 4 replies
|
There is not, for the time being, other than the pose covariance. #509 is in that direction but is pending. A cheap solution is to think that a healthy filter operates as a balance between the uncertainty that the motion model adds and the uncertainty that the sensor model removes from the particle set. That being true, you can turn that around and assume that the motion model uncertainty and the expected localization performance can both help set a reasonable (if conservative) upper bound for what the covariance of the solution should be after any given update. Therefore, a rule of thumb can be that if after any given update the cov ellipse is measurably larger along any dimension than the uncertainty "ellipse" of the motion model for that step + your nominal (expected) pose error (i.e the nominal particle spread in healthy conditions), then that may be an early symptom that the filter is diverging. |
|
Thank you @glpuga ! Interesting answer approach! |
|
I think it could be calculated after estimation. After calculating the actual solution covariance you would:
I think all of this can be done with the existing code in the repo. |
|
It's worth adding that theoretically, since Beluga/Nav2 use KLD sampling, you can also use the particle count as a measure of the particle spread. If you're near the top of the allowed range of particles, the filter is probably struggling to converge. This number is not published per-se, but it's available as the vector length in the message that carries the whole particle set for plotting in rviz. The number is also regularly logged to the terminal. Sadly this criteria is rather soft, and does not provide clear thresholds. To some extent depends on the parameter values you give for the lower and limit particle counts. You can probably use it to know which areas of the map are better and which ones are worse, though. |
I think it could be calculated after estimation. After calculating the actual solution covariance you would: