Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Odometry covariance computation bug? #17

Open
peci1 opened this issue Jun 7, 2022 · 2 comments
Open

Odometry covariance computation bug? #17

peci1 opened this issue Jun 7, 2022 · 2 comments

Comments

@peci1
Copy link

peci1 commented Jun 7, 2022

Thanks for the covariance computations at https://github.com/Sollimann/CleanIt/blob/main/autonomy/src/slam/README.md !

However, in the definition of $F_p = \frac{\delta f}{\delta x, \delta y, \delta\theta}$, it seems to me the equation for $\frac{\delta f}{\delta\theta}$ should have $\Delta s$ in absolute values (on both first and second row). I can't figure out mathematically why it should be so, but practically, if I use the signed $\Delta s$, the covariance decreases when the robot reverses, which is probably not what you want.

Do you also observe this behavior?

@Sollimann
Copy link
Owner

Sollimann commented Jul 21, 2023

Sorry, I didn't see this before now. The covariance should continue to grow regardless if your driving forward or in reverse because all motion (forward, backward, sideways etc..) introduces uncertainties and motion errors that is then integrated. So the covariance matrix of the odometric position estimate should be a strictly positive value

See section 5.2.4 here: https://github.com/Sollimann/CleanIt/blob/main/autonomy/docs/autonomous_mobile_robots.pdf

ref:
image

@peci1
Copy link
Author

peci1 commented Jul 25, 2023

I agree with everything you said. However, no matter what I do (except adding the abs in the derivative $\frac{\delta f}{\delta \theta}$), the position covariance decreases when reversing. I wanted to figure out why. I triple-checked my implementation and it follows these equations exactly.

The $\Delta s$ values have to be signed (otherwise yaw rate calculation would not work). They go the the $\Sigma_\Delta$ covariance matrix in abs values, so the covariance is positive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants