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

Why dont inflate the covariance of position when recovering the initialization covariance? #433

Open
TianzeXie opened this issue Mar 20, 2024 · 3 comments
Labels
question Theory or implementation question

Comments

@TianzeXie
Copy link

Why dont inflate the covariance of position but the other state like orientation velocity and other two bias?

@goldbattle
Copy link
Member

goldbattle commented Mar 21, 2024 via email

@TianzeXie
Copy link
Author

TianzeXie commented Mar 22, 2024

here:

covariance.block(0, 0, 3, 3) *= params.init_dyn_inflation_orientation;

In my opinion, the reason is the covariance of position donot impact the other states because we dont use position to calculate any other state.

@goldbattle
Copy link
Member

Hi, the global position and yaw are unobservable for visual-inertial systems, so there is no need to inflate these parameters are we treat them as 100% known. You can see this in the prior we assign (can also see we put a prior on bias as it is near unobservable for small accel and gyo changes):

Eigen::MatrixXd prior_Info = Eigen::MatrixXd::Identity(10, 10);
prior_Info.block(0, 0, 4, 4) *= 1.0 / std::pow(1e-5, 2); // 4dof unobservable yaw and position
prior_Info.block(4, 4, 3, 3) *= 1.0 / std::pow(0.05, 2); // bias_g prior
prior_Info.block(7, 7, 3, 3) *= 1.0 / std::pow(0.10, 2); // bias_a prior

We just inflate the initial orientation as its roll and pitch are observable. I found in simulation that the covariance was overconfident when using short initialization windows. This is attributed to the fact that we need full 3d motion (orientation and non-constant velocity) to fully recover our states. Hope this helps.

@goldbattle goldbattle added the question Theory or implementation question label Mar 25, 2024
@goldbattle goldbattle changed the title Why dont inflate the covariance of position? Why dont inflate the covariance of position when recovering the initialization covariance? Mar 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Theory or implementation question
Projects
None yet
Development

No branches or pull requests

2 participants