rpng / open_vins

An open source platform for visual-inertial navigation research.
https://docs.openvins.com
GNU General Public License v3.0
2.06k stars 615 forks source link

One possible bug about Qc #372

Closed KleistvonLiu closed 10 months ago

KleistvonLiu commented 10 months ago

I think I found a bug from line 459 of Propagator.cpp:

// Construct our discrete noise covariance matrix // Note that we need to convert our continuous time noises to discrete // Equations (129) amd (130) of Trawny tech report Eigen::Matrix<double, 12, 12> Qc = Eigen::Matrix<double, 12, 12>::Zero(); Qc.block(0, 0, 3, 3) = std::pow(_noises.sigma_w, 2) / dt Eigen::Matrix3d::Identity(); Qc.block(3, 3, 3, 3) = std::pow(_noises.sigma_a, 2) / dt Eigen::Matrix3d::Identity(); Qc.block(6, 6, 3, 3) = std::pow(_noises.sigma_wb, 2) / dt Eigen::Matrix3d::Identity(); Qc.block(9, 9, 3, 3) = std::pow(_noises.sigma_ab, 2) / dt Eigen::Matrix3d::Identity();

Should it be: Qc.block(6, 6, 3, 3) = std::pow(_noises.sigma_wb, 2) dt Eigen::Matrix3d::Identity(); Qc.block(9, 9, 3, 3) = std::pow(_noises.sigma_ab, 2) dt Eigen::Matrix3d::Identity();

goldbattle commented 10 months ago

Hi, have you compared against the technical report and searched all issues? I remember this being discussed many times before, so please search first and feel free to link to the issues if that doesn't answer your question.

Additionally, please provide a bit of reasoning why it "should be" what you have posted. Thanks!

On Sun, Aug 20, 2023 at 8:11 PM kleist @.***> wrote:

I think I found a bug from line 459 of Propagator.cpp:

// Construct our discrete noise covariance matrix // Note that we need to convert our continuous time noises to discrete // Equations (129) amd (130) of Trawny tech report Eigen::Matrix<double, 12, 12> Qc = Eigen::Matrix<double, 12, 12>::Zero(); Qc.block(0, 0, 3, 3) = std::pow(_noises.sigma_w, 2) / dt Eigen::Matrix3d::Identity(); Qc.block(3, 3, 3, 3) = std::pow(_noises.sigma_a, 2) / dt Eigen::Matrix3d::Identity(); Qc.block(6, 6, 3, 3) = std::pow(_noises.sigma_wb, 2) / dt Eigen::Matrix3d::Identity(); Qc.block(9, 9, 3, 3) = std::pow(_noises.sigma_ab, 2) / dt Eigen::Matrix3d::Identity();

Should it be: Qc.block(6, 6, 3, 3) = std::pow(_noises.sigma_wb, 2) dt Eigen::Matrix3d::Identity(); Qc.block(9, 9, 3, 3) = std::pow(_noises.sigma_ab, 2) dt Eigen::Matrix3d::Identity();

— Reply to this email directly, view it on GitHub https://github.com/rpng/open_vins/issues/372, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQ6TYQCDC2CR6EMXY7Y25DXWLGUXANCNFSM6AAAAAA3XXRKEA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

KleistvonLiu commented 10 months ago

I get it! Thanks for your reply!