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

Gravity estimation in initialization #75

Open
goldenminerlmg opened this issue Sep 7, 2020 · 1 comment
Open

Gravity estimation in initialization #75

goldenminerlmg opened this issue Sep 7, 2020 · 1 comment

Comments

@goldenminerlmg
Copy link

goldenminerlmg commented Sep 7, 2020

@hyye Hi , In the recommend paper ''Monocular Visual–Inertial State Estimation With Online Initialization and Camera–IMU Extrinsic Calibration'' in part V-B, I still confuse how to estimate the gravity? Can you give a detail description for these part:
1)ApproximateGravity(all_laser_transforms, g, transform_lb):
tmp_A = 0.5 * I3x3 * (dt12 * dt12 * dt23 + dt23 * dt23 * dt12);
tmp_b = (pl2 - pl1) * dt23 - (pl3 - pl2) * dt12
.+ (rl2 - rl1) * plb * dt23 - (rl3 - rl2) * plb * dt12
.+ rl2 * rlb * dp23 * dt12 + rl1 * rlb * dv12 * dt12 * dt23
.- rl1 * rlb * dp12 * dt23;

2)RefineGravityAccBias(all_laser_transforms, Vs, Bgs, g, transform_lb, R_WI)
tmp_A.block<3, 3>(0, 0) = dt12 * Matrix3d::Identity();
tmp_A.block<3, 2>(0, 6) = 0.5 * Matrix3d::Identity() * lxly * dt12 * dt12;
tmp_b.block<3, 1>(0, 0) = pl2 - pl1 - rl1 * rlb * dp12 - (rl1 - rl2) * plb - 0.5 * g_refined * dt12 * dt12;
tmp_A.block<3, 3>(3, 0) = Matrix3d::Identity();
tmp_A.block<3, 3>(3, 3) = -Matrix3d::Identity();
tmp_A.block<3, 2>(3, 6) = Matrix3d::Identity() * lxly * dt12;
tmp_b.block<3, 1>(3, 0) = -rl1 * rlb * dv12 - g_refined * dt12;
What's the physical meaning for these fomula? Hope for your answer.
Thank you very much!

@LeisureLei
Copy link

@hyye Hi , In the recommend paper ''Monocular Visual–Inertial State Estimation With Online Initialization and Camera–IMU Extrinsic Calibration'' in part V-B, I still confuse how to estimate the gravity? Can you give a detail description for these part:
1)ApproximateGravity(all_laser_transforms, g, transform_lb):
tmp_A = 0.5 * I3x3 * (dt12 * dt12 * dt23 + dt23 * dt23 * dt12);
tmp_b = (pl2 - pl1) * dt23 - (pl3 - pl2) * dt12
.+ (rl2 - rl1) * plb * dt23 - (rl3 - rl2) * plb * dt12
.+ rl2 * rlb * dp23 * dt12 + rl1 * rlb * dv12 * dt12 * dt23
.- rl1 * rlb * dp12 * dt23;

2)RefineGravityAccBias(all_laser_transforms, Vs, Bgs, g, transform_lb, R_WI)
tmp_A.block<3, 3>(0, 0) = dt12 * Matrix3d::Identity();
tmp_A.block<3, 2>(0, 6) = 0.5 * Matrix3d::Identity() * lxly * dt12 * dt12;
tmp_b.block<3, 1>(0, 0) = pl2 - pl1 - rl1 * rlb * dp12 - (rl1 - rl2) * plb - 0.5 * g_refined * dt12 * dt12;
tmp_A.block<3, 3>(3, 0) = Matrix3d::Identity();
tmp_A.block<3, 3>(3, 3) = -Matrix3d::Identity();
tmp_A.block<3, 2>(3, 6) = Matrix3d::Identity() * lxly * dt12;
tmp_b.block<3, 1>(3, 0) = -rl1 * rlb * dv12 - g_refined * dt12;
What's the physical meaning for these fomula? Hope for your answer.
Thank you very much!

Hi, have you figured out how to estimate gravity? I am confused too.

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