VINS-Mono IMU Preintegration

2022. 1. 16.
#SLAM#VINS-Mono#IMU preintegration

μ‹œμž‘

VINS-Monoλ…Όλ¬Έμ˜ Appendix A β€œQuaternion-based IMU Preintegrationβ€μ˜ λ‚΄μš©μ„ 기반으둜 ν•˜κ³ , λ‹€μŒμ˜ 논문듀을 μ°Έμ‘°ν•˜μ—¬ μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

[1] Efficient Integration of Inertial Observation into Visual SLAM without Initialization

Notation

  • (β‹…)w(\cdot)^w : world frame, 쀑λ ₯의 λ°©ν–₯은 world frame의 zμΆ•κ³Ό alignλ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
  • (β‹…)b(\cdot)^b : body frame (IMU frame)
  • (β‹…)c(\cdot)^c : camera frame
  • R\mathbf{R} : rotation matrix
  • q\mathbf{q} : Hamilton quaternion
    • 주둜 state vector에 μ‚¬μš©
    • 3D vector의 νŽΈν•œ νšŒμ „ 연산을 μœ„ν•΄μ„œ μ‚¬μš©λ¨
  • qbw,pbw\mathbf{q}_{b}^{w}, \mathbf{p}_{b}^{w} : rotation and translation from the body frame to the world frame
  • bkb_k : the body frame while taking the kkth image
  • ckc_k : the camera frame while taking the kkth image.
  • βŠ—\otimes : represents the multiplication operation between two quaternions
  • gw=[0,0,g]T\mathbf{g}^w = [0,0,g]^T : the gravity vector in the world frame
  • (β‹…)^\hat{(\cdot)} : the noisy measurement or estimation of a certain quantity

정리

body frameμ—μ„œ μΈ‘μ •λœ IMU 츑정값은 acceleration bias ba\mathbf{b}_a, gyroscope bias bw\mathbf{b}_w, additive noise에 영ν–₯을 λ°›λŠ”λ‹€. accelerometer와 gyroscope의 raw measurements a^,Ο‰^\hat{\bf{a}}, \hat{\boldsymbol{\omega}}λŠ” λ‹€μŒκ³Ό 같이 ν‘œν˜„ν•  수 μžˆλ‹€.

a^t=at+bat+Rwtgw+naω^t=ωt+bωt+nω\begin{equation} \begin{align*} \hat{\mathbf{a}}_t &= \mathbf{a}_t + \mathbf{b}_{a_t} + \mathbf{R}^t_w\mathbf{g}^w + \mathbf{n}_a \\ \hat{\boldsymbol{\omega}}_t &= \boldsymbol{\omega}_t + \mathbf{b}_{\omega_t} + \mathbf{n}_\omega \end{align*} \end{equation}

이 λ•Œ, additive noiseκ°€ Gaussian white noise라고 κ°€μ •ν•œλ‹€. na∼N(0,Οƒa2),Β nΟ‰βˆΌN(0,σω2)\mathbf{n}_a \sim \mathcal{N}(\mathbf{0}, \boldsymbol{\sigma}^2_{a}),\ \mathbf{n}_\omega \sim \mathcal{N}(\mathbf{0}, \boldsymbol{\sigma}^2_\omega)

Acceleration bias와 gyroscope bias의 λͺ¨λΈμ€ random walk이고, derivativesλŠ” Gaussian white noise이닀. nba∼N(0,Οƒba2),Β nbΟ‰βˆΌN(0,ΟƒbΟ‰2)\mathbf{n}_{b_a} \sim \mathcal{N}(\mathbf{0}, \boldsymbol{\sigma}^2_{b_a}), \ \mathbf{n}_{b_\omega} \sim \mathcal{N}(\mathbf{0}, \boldsymbol{\sigma}^2_{b_\omega})

b˙at=nbab˙ωt=nbω\begin{equation} \dot{\mathbf{b}}_{a_t} = \mathbf{n}_{b_a} \quad \dot{\mathbf{b}}_{\omega_t} = \mathbf{n}_{b_\omega} \end{equation}

ν”„λ ˆμž„ bk,bk+1b_k, b_{k+1}의 μ‹œκ°„ 정보인 tk,tk+1t_k, t_{k+1}에 λŒ€ν•˜μ—¬, position, velocity, orientation stateλŠ” [tk,tk+1][t_k, t_{k+1}]의 time interval λ™μ•ˆ IMU μΈ‘μ •κ°’μ—μ˜ν•΄ propagate 될 수 μžˆλ‹€.

pbk+1w=pbkw+vbkwΞ”tk+∫∫t∈[tk,tk+1]Rtw((a^tβˆ’batβˆ’na)βˆ’gw)dt2vbk+1w=vbkw+∫t∈[tk,tk+1]Rtw((a^tβˆ’batβˆ’na)βˆ’gw)dtqbk+1w=qbkwβŠ—βˆ«t∈[tk,tk+1]12Ξ©(Ο‰^tβˆ’bΟ‰tβˆ’nΟ‰)qtbkdt\begin{equation} \begin{align*} \mathbf{p}_{b_{k+1}}^{w} &= \mathbf{p}_{b_{k}}^{w} + \mathbf{v}_{b_{k}}^{w}\Delta t_k + &&\int\int_{t\in [t_k,t_{k+1}]} {\mathbf{R}_{t}^{w} ((\hat{\mathbf{a}}_t - \mathbf{b}_{a_t}-\mathbf{n}_a)-\mathbf{g}^w)dt^2} \\ \mathbf{v}_{b_{k+1}}^{w} &= \mathbf{v}_{b_{k}}^{w} + &&\int_{t\in [t_k,t_{k+1}]} {\mathbf{R}_{t}^{w} ((\hat{\mathbf{a}}_t - \mathbf{b}_{a_t}-\mathbf{n}_a)-\mathbf{g}^w)dt} \\ \mathbf{q}_{b_{k+1}}^{w} &= \mathbf{q}_{b_{k}}^{w} \otimes &&\int_{t\in [t_k,t_{k+1}]} {\frac{1}{2}\boldsymbol{\Omega} (\hat{\boldsymbol{\omega}}_t - \mathbf{b}_{\omega_t}-\mathbf{n}_\omega)\mathbf{q}_t^{b_k}dt} \end{align*} \end{equation}

where

Ξ©(Ο‰)=[βˆ’βŒŠΟ‰βŒ‹Γ—βˆ’Ο‰βˆ’Ο‰T0],βŒŠΟ‰βŒ‹Γ—=[0βˆ’Ο‰zΟ‰yΟ‰z0βˆ’Ο‰xβˆ’Ο‰yΟ‰x0]\begin{equation} \boldsymbol{\Omega}(\boldsymbol{\omega}) = \begin{bmatrix} -\lfloor\boldsymbol{\omega}\rfloor_\times & -\boldsymbol{\omega} \\ -\boldsymbol{\omega}^T & 0 \end{bmatrix}, \lfloor\boldsymbol{\omega}\rfloor_\times = \begin{bmatrix} 0 & -\omega_z & \omega_y \\ \omega_z & 0 & -\omega_x \\ -\omega_y& \omega_x & 0 \\ \end{bmatrix} \end{equation}

Ξ”tk\Delta t_k is the duration between the time interval [tk,tk+1][t_k, t_{k+1}].

IMU state propagation은 bkb_k frameμ—μ„œμ˜ rotation, position, velocityκ°€ ν•„μš”ν•˜λ‹€λŠ” 것을 μ•Œ 수 μžˆλ‹€. stateκ°€ λ³€ν•˜κΈ° μ‹œμž‘ν•˜λ©΄, μš°λ¦¬λŠ” IMU 츑정값을 repropagate ν•΄μ•Όλœλ‹€. optimization-based algorithmμ—μ„œλŠ” μš°λ¦¬κ°€ 맀번 poseλ₯Ό λ³΄μ •ν•˜κΈ° λ•Œλ¬Έμ— 맀번 repropagate을 ν•΄μ•Όλœλ‹€. 이것은 μ»΄ν“¨νŒ… λ¦¬μ†ŒμŠ€λ₯Ό 많이 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— 이λ₯Ό ν”Όν•˜κΈ° μœ„ν•΄ preintegration algorithm을 μ‚¬μš©ν•œλ‹€.

reference frame을 world frameμ—μ„œ local frame bkb_k둜 λ°”κΎΌ 후에, μš°λ¦¬λŠ” linear acceleration a^\hat{\bf{a}}κ³Ό angular velocity Ο‰^\hat{\boldsymbol{\omega}}에 κ΄€λ ¨λœ 뢀뢄듀을 preintegrateν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Rwbkpbk+1w=Rwbk(pbkw+vbkwΞ”tkβˆ’12gwΞ”tk2)+Ξ±bk+1bkRwbkvbk+1w=Rwbk(vbkwβˆ’gwΞ”tk)+Ξ²bk+1bkqwbkβŠ—qbk+1w=Ξ³bk+1bk\begin{equation} \begin{align*} \mathbf{R}_{w}^{b_k}\mathbf{p}_{b_{k+1}}^{w} &= \mathbf{R}_{w}^{b_k} \left( \mathbf{p}_{b_{k}}^{w} + \mathbf{v}_{b_{k}}^{w}\Delta t_k - \frac{1}{2}\mathbf{g}^w\Delta t_k^2 \right) + \boldsymbol{\alpha}_{b_{k+1}}^{b_k} \\ \mathbf{R}_{w}^{b_k}\mathbf{v}_{b_{k+1}}^{w} &= \mathbf{R}_{w}^{b_k} \left(\mathbf{v}_{b_{k}}^{w} - \mathbf{g}^w\Delta t_k \right) + \boldsymbol{\beta}_{b_{k+1}}^{b_k} \\ \mathbf{q}_{w}^{b_k} \otimes \mathbf{q}_{b_{k+1}}^{w} &= \boldsymbol{\gamma}_{b_{k+1}}^{b_k} \end{align*} \end{equation}

where

Ξ±bk+1bk=∫∫t∈[tk,tk+1]Rtbk(a^tβˆ’batβˆ’na)dt2Ξ²bk+1bk=∫t∈[tk,tk+1]Rtbk(a^tβˆ’batβˆ’na)dtΞ³bk+1bk=∫t∈[tk,tk+1]12Ξ©(Ο‰^tβˆ’bΟ‰tβˆ’nΟ‰)Ξ³tbkdt\begin{equation} \begin{align*} \boldsymbol{\alpha}_{b_{k+1}}^{b_k} &= \int\int_{t\in [t_k,t_{k+1}]} {\mathbf{R}_{t}^{b_k}(\hat{\mathbf{a}}_t - \mathbf{b}_{a_t} - \mathbf{n}_{a})dt^2} \\ \boldsymbol{\beta}_{b_{k+1}}^{b_k} &= \int_{t\in [t_k,t_{k+1}]} {\mathbf{R}_{t}^{b_k}(\hat{\mathbf{a}}_t - \mathbf{b}_{a_t}- \mathbf{n}_{a})dt} \\ \boldsymbol{\gamma}_{b_{k+1}}^{b_k} &= \int_{t\in [t_k,t_{k+1}]} {\frac{1}{2}\boldsymbol{\Omega}(\hat{\boldsymbol{\omega}}_t - \mathbf{b}_{\omega_t} - \mathbf{n}_{\omega})\gamma_{t}^{b_k}dt} \end{align*} \end{equation}

bkb_kλ₯Ό biasκ°€ μ£Όμ–΄μ§„ reference둜 μ΄μš©ν•˜μ—¬ preintegration term (5)이 IMU μΈ‘μ • κ°’λ§Œμ„ 톡해 ꡬ할 수 μžˆλ‹€λŠ” 것을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. Ξ±bk+1bk,Ξ²bk+1bk,Ξ³bk+1bk\boldsymbol{\alpha}_{b_{k+1}}^{b_k}, \boldsymbol{\beta}_{b_{k+1}}^{b_k}, \boldsymbol{\gamma}_{b_{k+1}}^{b_k}κ°€ 였직 IMU bias와 κ΄€λ ¨μžˆκ³  bk,bk+1b_k, b_{k+1} frameμ—μ„œμ˜ λ‹€λ₯Έ stateμ™€λŠ” 관련이 μ—†λŠ” 것을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

bias의 좔정이 λ³€ν•  λ•Œ, λ§Œμ•½ λ³€ν™”κ°€ μž‘λ‹€λ©΄ Ξ±bk+1bk,Ξ²bk+1bk,Ξ³bk+1bk\boldsymbol{\alpha}_{b_{k+1}}^{b_k}, \boldsymbol{\beta}_{b_{k+1}}^{b_k}, \boldsymbol{\gamma}_{b_{k+1}}^{b_k}λ₯Ό bias에 λŒ€ν•œ 1μ°¨ 근사λ₯Ό 톡해 값을 μ μš©ν•˜κ³ , λ³€ν™”κ°€ 크닀면 repropagate ν•©λ‹ˆλ‹€. 이런 방법은 IMU 츑정값에 λŒ€ν•œ propagate을 반볡적으둜 ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— optimization-based algorithms을 μ‚¬μš©ν•  λ•Œ μ»΄ν“¨νŒ… λ¦¬μ†ŒμŠ€λ₯Ό μƒλ‹Ήνžˆ μ ˆμ•½ν•©λ‹ˆλ‹€.

discrete-time implementation에 λŒ€ν•˜μ—¬ λ‹€μ–‘ν•œ integration 방법듀이 적용될 수 μžˆμŠ΅λ‹ˆλ‹€. (zero-order hold (Euler), first-order hold (midpoint), and higher order (RK4) integration…)

λ§Œμ•½ zero-order hold discretization을 μ‚¬μš©ν•œλ‹€λ©΄ 이 κ²°κ³ΌλŠ” [19], [24]λ…Όλ¬Έκ³Ό 수치적으둜 λ˜‘κ°™μŠ΅λ‹ˆλ‹€. zero-order hold discretization의 예λ₯Ό 듀어보면 μ²˜μŒμ— Ξ±bk+1bk,Ξ²bk+1bk\boldsymbol{\alpha}_{b_{k+1}}^{b_k}, \boldsymbol{\beta}_{b_{k+1}}^{b_k}λŠ” 0이고, Ξ³bk+1bk\boldsymbol{\gamma}_{b_{k+1}}^{b_k}λŠ” identity quaternionμž…λ‹ˆλ‹€. (4)에 λ”°λ₯Έ Ξ±,Ξ²,Ξ³\alpha, \beta, \gamma의 평균은 λ‹€μŒκ³Ό 같이 step by step으둜 propagateλ©λ‹ˆλ‹€.

additive noise na,nΟ‰\mathbf{n}_{a}, \mathbf{n}_{\omega}의 평균값은 0μž…λ‹ˆλ‹€.

estimate된 preintegration 값은 (β‹…)^\hat{(\cdot)}둜 ν‘œκΈ°ν•˜κ² μŠ΅λ‹ˆλ‹€.

Ξ±^i+1bk=Ξ±^ibk+Ξ²^ibkΞ΄t+12R(Ξ³^ibk)(a^iβˆ’bai)Ξ΄t2Ξ²^i+1bk=Ξ²^ibk+R(Ξ³^ibk)(a^iβˆ’bai)Ξ΄tΞ³^i+1bk=Ξ³^ibkβŠ—[112(Ο‰^iβˆ’bΟ‰i)Ξ΄t]\begin{equation} \begin{align*} \hat{\boldsymbol{\alpha}}_{i+1}^{b_k} &= \hat{\boldsymbol{\alpha}}_{i}^{b_k} + \hat{\boldsymbol{\beta}}_{i}^{b_k}\delta t + \frac{1}{2}\mathbf{R}(\hat{\boldsymbol{\gamma}}_{i}^{b_k})(\hat{\mathbf{a}}_i-\mathbf{b}_{a_i}) \delta t^2 \\ \hat{\boldsymbol{\beta}}_{i+1}^{b_k} &= \hat{\boldsymbol{\beta}}_{i}^{b_k} + \mathbf{R}(\hat{\boldsymbol{\gamma}}_{i}^{b_k})(\hat{\mathbf{a}}_i-\mathbf{b}_{a_i}) \delta t \\ \hat{\boldsymbol{\gamma}}_{i+1}^{b_k} &= \hat{\boldsymbol{\gamma}}_{i}^{b_k} \otimes \begin{bmatrix} 1 \\ \frac{1}{2} (\hat{\boldsymbol{\omega}}_i - \mathbf{b}_{\omega_i}) \delta t\end{bmatrix} \end{align*} \end{equation}

ii λŠ” [tk,tk+1][t_k, t_{k+1}]μ‚¬μ΄μ—μ„œ μΈ‘μ •λœ IMU의 μΈ‘μ • μ‹œμ μ„ μ˜λ―Έν•œλ‹€. Ξ΄t\delta tλŠ” IMU 값을 μΈ‘μ •ν•œ ii와 i+1i+1 μ‚¬μ΄μ˜ time interval이닀.

λ‹€μŒ covariance propagtaion을 μ²˜λ¦¬ν•©λ‹ˆλ‹€. 4D rotation quaternion Ξ³tbk\gamma_t^{b_k}κ°€ overparameterized λ˜μ–΄μžˆκΈ° λ•Œλ¬Έμ—, μš°λ¦¬λŠ” error term을 평균 μ£Όλ³€μ˜ perturbation으둜 μ •μ˜ν•©λ‹ˆλ‹€.

Ξ³tbkβ‰ˆΞ³^tbkβŠ—[112δθtbk]\begin{equation} \boldsymbol{\gamma}_{t}^{b_k} \approx \hat{\boldsymbol{\gamma}}_{t}^{b_k} \otimes \begin{bmatrix} 1 \\ \frac{1}{2} \delta \boldsymbol{\theta}_{t}^{b_k} \end{bmatrix} \end{equation}

δθtbk\delta \boldsymbol{\theta}_{t}^{b_k}λŠ” 3D small perturbationμž…λ‹ˆλ‹€.

(5)의 continuous-time dynamics of error terms을 λ‹€μŒκ³Ό 같이 μœ λ„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

[δα˙tbkδβ˙tbkδθ˙tbkΞ΄bΛ™atΞ΄bΛ™wt]=[0I00000βˆ’Rtbk⌊a^tβˆ’batβŒ‹Γ—βˆ’Rtbk000βˆ’βŒŠΟ‰^tβˆ’bwtβŒ‹Γ—0βˆ’I0000000000][δαtbkδβtbkδθtbkΞ΄batΞ΄bwt]+[0000βˆ’Rtbk0000βˆ’I0000I0000I][nanwnbanbw]=FtΞ΄ztbk+Gtnt.\begin{equation} \begin{align*} {\left[\begin{array}{c}\delta \dot{\boldsymbol{\alpha }}^{b_k}_t \\ \delta \dot{\boldsymbol{\beta }}^{b_k}_t \\ \delta \dot{\boldsymbol{\theta }}^{b_k}_t \\ \delta \dot{\mathbf {b}}_{a_t} \\ \delta \dot{\mathbf {b}}_{w_t} \end{array}\right]} =& {\left[\begin{array}{cccccc}0 & \mathbf {I} &0 & 0 & 0\\ 0 & 0 & -\mathbf {R}^{b_k}_t \lfloor \hat{\mathbf {a}}_t - \mathbf {b}_{a_t} \rfloor _{\times } & -\mathbf {R}^{b_k}_t & 0 \\ 0 & 0 & - \lfloor \hat{\boldsymbol{\omega }}_t-\mathbf {b}_{w_t} \rfloor _{\times } & 0 & - \mathbf {I} \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \end{array}\right]} {\left[\begin{array}{c}\delta {\boldsymbol{\alpha }}^{b_k}_t \\ \delta {\boldsymbol{\beta }}^{b_k}_t \\ \delta {\boldsymbol{\theta }}^{b_k}_t \\ \delta {\mathbf {b}}_{a_t} \\ \delta {\mathbf {b}}_{w_t} \end{array}\right]} \\ &+ {\left[\begin{array}{cccc}0 & 0 & 0 & 0\\ -\mathbf {R}^{b_k}_t & 0 & 0 & 0\\ 0 & -\mathbf {I} & 0 & 0\\ 0 & 0 & \mathbf {I} & 0\\ 0 & 0 & 0 & \mathbf {I} \end{array}\right]} {\left[\begin{array}{c}\mathbf {n}_{a}\\ \mathbf {n}_{w}\\ \mathbf {n}_{b_a}\\ \mathbf {n}_{b_w} \end{array}\right]} \\ =& \mathbf {F}_t \delta \mathbf {z}^{b_k}_t + \mathbf {G}_t \mathbf {n}_t. \end{align*} \end{equation}

zero-order hold discretization의 integration periodλ™μ•ˆ Ft\mathbf{F}_tλŠ” μƒμˆ˜μž…λ‹ˆλ‹€. λ”°λΌμ„œ μ£Όμ–΄μ§„ Ξ΄t\delta t에 λŒ€ν•΄ Fd=exp⁑(FtΞ΄t)\mathbf{F}_d = \exp(\mathbf{F}_t \delta t)κ°€ λ©λ‹ˆλ‹€. exponential seriesλ₯Ό ν™•μž₯ν•˜κ³ , higher order term을 μƒλž΅ν•˜μ—¬ Fdβ‰ˆI+FtΞ΄t\mathbf{F}_d \approx \mathbf{I} + \mathbf{F}_t \delta t을 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. continuous-time noise covariance matrix Qt=diag(Οƒa2,σω2,Οƒba2,ΟƒbΟ‰2)\mathbf{Q}_t = \mathrm{diag}(\boldsymbol{\sigma}_a^2, \boldsymbol{\sigma}_\omega^2, \boldsymbol{\sigma}_{b_a}^2, \boldsymbol{\sigma}_{b_\omega}^2)에 λŒ€ν•˜μ—¬ discrete-time noise covariance matrixλŠ” λ‹€μŒκ³Ό 같이 κ³„μ‚°λ©λ‹ˆλ‹€.

Qd=∫0Ξ΄tFd(Ο„)GtQtGtTFd(Ο„)T=Ξ΄tFdGtQtGtTFdTβ‰ˆΞ΄tGtQtGtT\begin{equation} \begin{align*} \mathbf {Q}_d &= \int _{0}^{\delta t} \mathbf {F}_d(\tau)\mathbf {G}_t\mathbf {Q}_t\mathbf {G}^T_t \mathbf {F}_d(\tau)^T \\ &= \delta t \mathbf {F}_d\mathbf {G}_t\mathbf {Q}_t\mathbf {G}^T_t \mathbf {F}_d^T \\ &\approx \delta t\mathbf {G}_t\mathbf {Q}_t\mathbf {G}^T_t \end{align*} \end{equation}

Initial covariance Pbkbk=0\mathbf{P}_{b_{k}}^{b_k} = 0μœΌλ‘œλΆ€ν„° covariance Pbk+1bk\mathbf{P}_{b_{k+1}}^{b_k}λ₯Ό λ‹€μŒκ³Ό 같이 propagate ν•©λ‹ˆλ‹€.

Pt+δtbk=(I+Ftδt)Ptbk(I+Ftδt)T+δtGtQtGtTt∈[k,k+1]\begin{equation} \begin{align*} \mathbf {P}^{b_k}_{t+\delta t} = (\mathbf {I}+\mathbf {F}_t\delta t) \mathbf {P}^{b_k}_t (\mathbf {I}+\mathbf {F}_t\delta t)^T +& \delta t\mathbf {G}_t \mathbf {Q}_t {\mathbf {G}_t }^T \\ &t \in [k,k+1]\end{align*} \end{equation}

λ™μ‹œμ— first-order Jacobian matrix λ˜ν•œ initial Jacobian Jbk=I\mathbf{J}_{b_k} = \mathbf{I}λ₯Ό μ΄μš©ν•΄ λ‹€μŒκ³Ό 같이 반볡적으둜 propagate될 수 μžˆλ‹€.

Jt+δt=(I+Ftδt)Jt,  t∈[k,k+1].\begin{equation} \begin{aligned} \mathbf {J}_{t+\delta t} &= (\mathbf {I}+\mathbf {F}_t\delta t) \mathbf {J}_{t}, \ \ t \in [k,k+1]. \end{aligned} \end{equation}

μœ„μ˜ λ°˜λ³΅μ μ€ formulation을 톡해 covariance matrix Pbk+1bk\mathbf{P}_{b_{k+1}}^{b_k}κ³Ό Jbk+1\mathbf{J}_{b_{k+1}}을 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. bias에 λŒ€ν•œ Ξ±bk+1bk,Ξ²bk+1bk,Ξ³bk+1bk\boldsymbol{\alpha}_{b_{k+1}}^{b_k}, \boldsymbol{\beta}_{b_{k+1}}^{b_k}, \boldsymbol{\gamma}_{b_{k+1}}^{b_k}의 1μ°¨ κ·Όμ‚¬λŠ” λ‹€μŒκ³Ό 같이 μ“°μ—¬μ§‘λ‹ˆλ‹€.

Ξ±bk+1bkβ‰ˆΞ±^bk+1bk+JbaΞ±Ξ΄bak+JbωαδbΟ‰kΞ²bk+1bkβ‰ˆΞ²^bk+1bk+JbaΞ²Ξ΄bak+JbωβδbΟ‰kΞ³bk+1bkβ‰ˆΞ³^bk+1bkβŠ—[112JbωγδbΟ‰k]\begin{equation} \begin{align*} \boldsymbol{\alpha}_{b_{k+1}}^{b_k} &\approx \hat{\boldsymbol{\alpha}}_{b_{k+1}}^{b_k} + \mathbf{J}_{b_a}^{\alpha} \delta \mathbf{b}_{a_k} + \mathbf{J}_{b_\omega}^{\alpha} \delta \mathbf{b}_{\omega_k} \\ \boldsymbol{\beta}_{b_{k+1}}^{b_k} &\approx \hat{\boldsymbol{\beta}}_{b_{k+1}}^{b_k} + \mathbf{J}_{b_a}^{\beta} \delta \mathbf{b}_{a_k} + \mathbf{J}_{b_\omega}^{\beta} \delta \mathbf{b}_{\omega_k} \\ \boldsymbol{\gamma}_{b_{k+1}}^{b_k} &\approx \hat{\boldsymbol{\gamma}}_{b_{k+1}}^{b_k} \otimes \begin{bmatrix} 1 \\ \frac{1}{2} \mathbf{J}_{b_\omega}^{\gamma} \delta \mathbf{b}_{\omega_k} \end{bmatrix} \end{align*} \end{equation}

JbaΞ±\mathbf{J}_{b_a}^{\alpha}λŠ” μœ„μΉ˜κ°€ δαbk+1bkΞ΄bak\frac{\delta \boldsymbol\alpha_{b_{k+1}}^{b^k}}{\delta \mathbf b_{a_k} }인 Jbk+1\mathbf{J}_{b_{k+1}}의 subblock matrix μž…λ‹ˆλ‹€.

Jbωα,JbaΞ±,JbaΞ²,Jbωβ,Jbωγ\mathbf{J}_{b_\omega}^{\alpha}, \mathbf{J}_{b_a}^{\alpha}, \mathbf{J}_{b_a}^{\beta}, \mathbf{J}_{b_\omega}^{\beta}, \mathbf{J}_{b_\omega}^{\gamma}에 λŒ€ν•΄μ„œλ„ 같은 μ˜λ―Έκ°€ μ μš©λ©λ‹ˆλ‹€.

λ§Œμ•½ bias estimation값이 쑰금 λ³€κ²½λœλ‹€λ©΄ repropagationν•˜λŠ” λŒ€μ‹  식 (11)을 μ΄μš©ν•΄ preintegration κ²°κ³Όλ₯Ό λ³΄μ •ν•©λ‹ˆλ‹€.

이제 μš°λ¦¬λŠ” corresponding covariance Pbk+1bk\mathbf{P}_{b_{k+1}}^{b_k} 값을 μ΄μš©ν•΄ IMU μΈ‘μ •κ°’ λͺ¨λΈμ„ λ‹€μŒκ³Ό 같이 μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

[Ξ±^bk+1bkΞ²^bk+1bkΞ³^bk+1bk00]=[Rwbk(pbk+1wβˆ’pbkw+12gwΞ”tk2βˆ’vbkwΞ”tk)Rwbk(vbk+1w+gwΞ”tkβˆ’vbkw)qbkwβˆ’1βŠ—qbk+1wbabk+1βˆ’babkbwbk+1βˆ’bwbk]\begin{equation} {\left[\begin{array}{c}\hat{\boldsymbol{\alpha }}^{b_k}_{b_{k+1}}\\ \hat{\boldsymbol{\beta }}^{b_k}_{b_{k+1}}\\ \hat{\boldsymbol{\gamma }}^{b_k}_{b_{k+1}}\\ \mathbf {0}\\ \mathbf {0}\\ \end{array}\right]} = {\left[\begin{array}{c}\mathbf {R}^{b_k}_{w}(\mathbf {p}^{w}_{b_{k+1}} - \mathbf {p}^{w}_{b_k} + \frac{1}{2}\mathbf {g}^{w} \Delta t_k^2 - \mathbf {v}^{w}_{b_k} \Delta t_k) \\ \mathbf {R}^{b_k}_{w}(\mathbf {v}^{w}_{b_{k+1}} + \mathbf {g}^{w} \Delta t_k- \mathbf {v}^{w}_{b_k}) \\ \mathbf {q}^{w^{-1}}_{b_{k}} \otimes \mathbf {q}^{w}_{b_{k+1}}\\ {\mathbf {b}_a}_{b_{k+1}} - {\mathbf {b}_a}_{b_k}\\ {\mathbf {b}_w}_{b_{k+1}} -{\mathbf {b}_w}_{b_k}\\ \end{array}\right]} \end{equation}