rpng / open_vins

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

The Jacobian of stochastic cloning #229

Closed RuPingCen closed 2 years ago

RuPingCen commented 2 years ago

Thank you for sharing this multifunctional platform. I encountered the following problems when reading the code. Adding a new camera state to the system state in MSCKF requires augmenting the covariance, such as (15)(16)in [1], but I didn't see the corresponding code segment when I read the code, can you give me some guidance?

image

[1] Mourikis A I, Roumeliotis S I. A Multi-State Constraint Kalman Filter for Vision-aided Inertial Navigation[C]//ICRA. 2007, 2: 6.

goldbattle commented 2 years ago

The documentation should explain what exactly we perform, please take a look: https://docs.openvins.com/classov__msckf_1_1StateHelper.html#ade3a86a89f15cc6e03a6430fd1dee694

After propagation, normally we augment the state with an new clone that is at the new update timestep. This augmentation clones the IMU pose and adds it to our state's clone map. If we are doing time offset calibration we also make our cloning a function of the time offset.

I hope these issues also help you:

You can additionally refer to the paper state definition (eq (3)). http://udel.edu/~pgeneva/downloads/papers/c10.pdf image

RuPingCen commented 2 years ago

Thank you for your patient guidance. I guess I have some misunderstanding about the OpenVINS . When I read the code carefully again, I have the following opinions:

  1. literature [1] saves N camera poses in sliding window? So, the Jacobian matrix J of the camera state at time k+1|k relative to the IMU error state is calculated, and the system covariance P matrix is updated with equation (15)(16)in [1] .

  2. But the sliding window of OpenVINS saves N IMU states, which are called anchor pose. So, when a new IMU state is added to the sliding window, the system covariance matrix is directly copy the variance related to the IMU.

Is this statement correct?

[1] Mourikis A I, Roumeliotis S I. A Multi-State Constraint Kalman Filter for Vision-aided Inertial Navigation[C]//ICRA. 2007, 2: 6.

WoosikLee2510 commented 2 years ago

Yes

yangyulin commented 2 years ago

It is equivalent to understanding that the J in [1] equals the identity matrix in OpenVINS.

On Sat, Mar 12, 2022 at 6:28 AM Woosik Lee @.***> wrote:

Yes

— Reply to this email directly, view it on GitHub https://github.com/rpng/open_vins/issues/229#issuecomment-1065892777, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADJAQCHO4AYB7H2677M6N23U7SSXZANCNFSM5QCNBCTA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you are subscribed to this thread.Message ID: @.***>

-- With Best Regards, Linde Yang / Yulin Yang

UNIVERSITY of DELAWARE PhD, Department of Mechanical Engineering 328 Spencer Lab, Newark, DE, USA, 19716-3140 Mobile: +(01) 302-690-3926 mailto: @.> @. Web: https://yangyulin.net https://yangyulin.net