ORBSLAM3加入Odometry里程计预积分公式

Odometry预积分

Input

Eigen:Vector3d linnear_velocity //3轴线速度

Eigen:Vector3d angle_rate // 3轴角速度

ω ~ k \tilde{\omega}_k ω~k v ~ k \tilde{v}_k v~k

B i a s Bias Bias

B i a s Bias Bias部分设置了线速度 b v b^{v} bv,角速度 b r b^{r} br

N o i s e Noise Noise

N o i s e Noise Noise部分设置了线速度 η v \eta^{v} ηv,角速度 η r \eta^{r} ηr

Preintegrate

R j v j p j R_j\quad v_j\quad p_j Rjvjpj

R j = R i ⋅ ∏ k = i j − 1 E X P ( ( ω ~ k − b k r − η k r ) ⋅ Δ t ) v j = v i + ∑ k = i j − 1 R k ⋅ ( v ~ k − b k v − η k v ) p j = p i + ∑ k = i j − 1 v k ⋅ Δ t R_j = R_i \cdot \prod^{j-1}_{k=i} EXP ((\tilde{\omega}_k -b^r_k -\eta^r_k)\cdot \Delta t)\\ v_j = v_i+\sum^{j-1}_{k=i}R_k\cdot(\tilde{v}_k -b^v_k -\eta^v_k )\\ p_j = p_i + \sum^{j-1}_{k=i}v_k\cdot \Delta t Rj=Rik=ij1EXP((ω~kbkrηkr)Δt)vj=vi+k=ij1Rk(v~kbkvηkv)pj=pi+k=ij1vkΔt

Δ R i j Δ v i j Δ p i j \Delta R_{ij}\quad \Delta v_{ij}\quad \Delta p_{ij} ΔRijΔvijΔpij

Δ R i j = ∏ k = i j − 1 E X P ( ( ω ~ k − b k r − η k r ) ⋅ Δ t ) Δ v i j = ∑ k = i j − 1 R k ⋅ ( v ~ k − v i − b k v − η k v ) Δ p i j = ∑ k = i j − 1 Δ v i k ⋅ Δ t \Delta R_{ij} = \prod^{j-1}_{k=i} EXP ((\tilde{\omega}_k -b^r_k -\eta^r_k)\cdot \Delta t) \\ \Delta v_{ij} = \sum^{j-1}_{k=i}R_k\cdot(\tilde{v}_k -v_i -b^v_k -\eta^v_k ) \\ \Delta p_{ij} = \sum^{j-1}_{k=i}\Delta v_{ik}\cdot \Delta t ΔRij=k=ij1EXP((ω~kbkrηkr)Δt)Δvij=k=ij1Rk(v~kvibkvηkv)Δpij=k=ij1ΔvikΔt

η r \eta^r ηr η v \eta^v ηv

Δ R i j \Delta R_{ij} ΔRij

Δ R i j = ∏ k = i j − 1 E X P ( ( ω ~ k − b k r − η k r ) ⋅ Δ t ) Δ R ~ i j = ∏ k = i j − 1 E X P ( ( ω ~ k − b k r ) ⋅ Δ t ) E x p ( − δ ϕ ⃗ i j ) = ∏ k = i j − 1 E x p ( − Δ R ~ k + i T ⋅ J r k ⋅ η k r Δ t ) δ ϕ ⃗ i j = − L o g ( ∏ k = i j − 1 E x p ( − Δ R ~ k + i T ⋅ J r k ⋅ η k r Δ t ) ) Δ R i j = Δ Δ R ~ i j ⋅ E x p ( δ ϕ ⃗ i j ) \Delta R_{ij} = \prod^{j-1}_{k=i} EXP ((\tilde{\omega}_k -b^r_k -\eta^r_k)\cdot \Delta t) \\ \Delta \tilde R_{ij} = \prod^{j-1}_{k=i} EXP((\tilde{\omega}_k -b^r_k)\cdot \Delta t) \\ Exp(-\delta\vec\phi_{ij} ) = \prod^{j-1}_{k=i}Exp(-\Delta\tilde R^T_{k+i} \cdot J^k_r \cdot \eta^r_k\Delta t) \\ \delta \vec\phi_{ij} = -Log( \prod^{j-1}_{k=i}Exp(-\Delta\tilde R^T_{k+i} \cdot J^k_r \cdot \eta^r_k\Delta t)) \\ \Delta R_{ij}=^\Delta \Delta \tilde R_{ij}\quad\cdot Exp(\delta\vec \phi_{ij}) ΔRij=k=ij1EXP((ω~kbkrηkr)Δt)ΔR~ij=k=ij1EXP((ω~kbkr)Δt)Exp(δϕ ij)=k=ij1Exp(ΔR~k+iTJrkηkrΔt)δϕ ij=Log(k=ij1Exp(ΔR~k+iTJrkηkrΔt))ΔRij=ΔΔR~ijExp(δϕ ij)

Δ v i j \Delta v_{ij} Δvij

Δ v i j = ∑ k = i j − 1 R k ⋅ ( v ~ k − v i − b k v − η k v ) Δ v ~ i j = ∑ k = i j − 1 Δ R ~ i k ⋅ ( v ~ k − v i − b k v ) δ v i j = ∑ k = i j − 1 ( Δ R ~ i k η k v − Δ R ~ i k ⋅ ( v ~ k − v i − b k v ) Λ ⋅ δ ϕ ⃗ i k ) Δ v i j = Δ v ~ i j − δ v i j \Delta v_{ij} = \sum^{j-1}_{k=i}R_k\cdot(\tilde{v}_k -v_i -b^v_k -\eta^v_k ) \\ \Delta \tilde v_{ij} = \sum^{j-1}_{k=i} \Delta \tilde R_{ik}\cdot(\tilde{v}_k - v_i -b^v_k ) \\ \delta v_{ij} = \sum^{j-1}_{k=i}(\Delta \tilde R_{ik}\eta^v_k - \Delta \tilde R_{ik} \cdot (\tilde{v}_k -v_i-b^v_k)^{\Lambda}\cdot \delta\vec\phi_{ik})\\ \Delta v_{ij} =\Delta \tilde v_{ij}-\delta v_{ij} Δvij=k=ij1Rk(v~kvibkvηkv)Δv~ij=k=ij1ΔR~ik(v~kvibkv)δvij=k=ij1(ΔR~ikηkvΔR~ik(v~kvibkv)Λδϕ ik)Δvij=Δv~ijδvij

Δ p i j \Delta p_{ij} Δpij

Δ p i j = ∑ k = i j − 1 Δ v i k ⋅ Δ t Δ p ~ i j = ∑ k = i j − 1 Δ v ~ i k ⋅ Δ t δ p i j = ∑ k = i j − 1 δ v i k ⋅ Δ t Δ p i j = Δ p ~ i j − δ p i j \Delta p_{ij} = \sum^{j-1}_{k=i}\Delta v_{ik}\cdot \Delta t \\ \Delta \tilde p_{ij} = \sum^{j-1}_{k=i}\Delta\tilde v_{ik}\cdot \Delta t \\ \delta p_{ij} = \sum^{j-1}_{k=i}\delta v_{ik}\cdot \Delta t \\ \Delta p_{ij} = \Delta \tilde p_{ij} - \delta p_{ij} Δpij=k=ij1ΔvikΔtΔp~ij=k=ij1Δv~ikΔtδpij=k=ij1δvikΔtΔpij=Δp~ijδpij

η i j Δ \eta^\Delta_{ij} ηijΔ

η i j Δ = [ δ ϕ ⃗ i j T δ v ⃗ i j T δ p ⃗ i j T ] \eta^\Delta_{ij} = [\delta\vec\phi^T_{ij}\quad\delta\vec v^T_{ij}\quad \delta\vec p^T_{ij}] ηijΔ=[δϕ ijTδv ijTδp ijT]

δ ϕ ⃗ i j − 1 → δ ϕ ⃗ i j \delta\vec\phi_{ij-1}\rightarrow \delta\vec\phi_{ij} δϕ ij1δϕ ij

δ ϕ ⃗ i j = − L o g ( ∏ k = i j − 1 E x p ( − Δ R ~ k + i T ⋅ J r k ⋅ η k r Δ t ) ) δ ϕ ⃗ i j = Δ R ~ j   j − 1 δ ϕ ⃗ i j − 1 + J r j − 1 η j − 1 r Δ t \delta \vec\phi_{ij} = -Log( \prod^{j-1}_{k=i}Exp(-\Delta\tilde R^T_{k+i} \cdot J^k_r \cdot \eta^r_k\Delta t)) \\ \delta\vec\phi_{ij} = \Delta\tilde R_{j\ j-1}\delta\vec\phi_{ij-1}+J^{j-1}_r\eta^r_{j-1}\Delta t \\ δϕ ij=Log(k=ij1Exp(ΔR~k+iTJrkηkrΔt))δϕ ij=ΔR~j j1δϕ ij1+Jrj1ηj1rΔt

δ v i j − 1 → δ v i j \delta v_{ij-1}\rightarrow \delta v_{ij} δvij1δvij

δ v i j = ∑ k = i j − 1 ( Δ R ~ i k η k v − Δ R ~ i k ⋅ ( v ~ k − v i − b k v ) Λ ⋅ δ ϕ ⃗ i k ) δ v i j = δ v i   j − 1 + Δ R ~ i j − 1 η j − 1 v − Δ R ~ i j − 1 ⋅ ( v ~ j − 1 − v i − b i v ) Λ ⋅ δ ϕ ⃗ i j − 1 \delta v_{ij} = \sum^{j-1}_{k=i}(\Delta \tilde R_{ik}\eta^v_k - \Delta \tilde R_{ik} \cdot (\tilde{v}_k -v_i-b^v_k)^{\Lambda}\cdot \delta\vec\phi_{ik})\\ \delta v_{ij} =\delta v_{i\ j-1} + \Delta \tilde R_{ij-1}\eta^v_{j-1} - \Delta \tilde R_{ij-1} \cdot (\tilde{v}_{j-1} -v_i-b^v_i)^{\Lambda}\cdot \delta\vec\phi_{ij-1} δvij=k=ij1(ΔR~ikηkvΔR~ik(v~kvibkv)Λδϕ ik)δvij=δvi j1+ΔR~ij1ηj1vΔR~ij1(v~j1vibiv)Λδϕ ij1

δ p i j − 1 → δ p i j \delta p_{ij-1}\rightarrow \delta p_{ij} δpij1δpij

δ p i j = ∑ k = i j − 1 δ v i k ⋅ Δ t δ p i j = δ p i j − 1 + δ v i j − 1 ⋅ Δ t \delta p_{ij} = \sum^{j-1}_{k=i}\delta v_{ik}\cdot \Delta t \\ \delta p_{ij} = \delta p_{ij-1} + \delta v_{ij-1}\cdot \Delta t δpij=k=ij1δvikΔtδpij=δpij1+δvij1Δt

A j − 1 A_{j-1} Aj1

A j − 1 = [ Δ R ~ i j − 1 0 0 − Δ R ~ i j − 1 ( v ~ j − 1 − v i − b i v ) Λ I 0 0 Δ t I I ] A_{j-1} =\left[\begin{array}{ll} \Delta \tilde R_{i j-1} & 0 & 0 \\ -\Delta \tilde R_{i j-1} (\tilde{v}_{j-1} -v_i-b^v_i)^{\Lambda} & I & 0 \\ 0 & \Delta t I &I \end{array}\right] Aj1= ΔR~ij1ΔR~ij1(v~j1vibiv)Λ00IΔtI00I

B j − 1 B_{j-1} Bj1

B j − 1 = [ J r j − 1 Δ t 0 0 Δ R ~ i j − 1 0 0 ] B_{j-1} =\left[\begin{array}{ll} J^{j-1}_r\Delta t & 0 \\ 0 &\Delta \tilde R_{ij-1} \\ 0 & 0 \end{array}\right] Bj1= Jrj1Δt000ΔR~ij10

η i j Δ \eta^\Delta_{ij} ηijΔ

η i j Δ = [ Δ R ~ i j − 1 0 0 − Δ R ~ i j − 1 ( ˙ v ~ j − 1 − v i − b i v ) Λ I 0 0 Δ t I I ] η i j − 1 Δ … + [ J r j − 1 Δ t 0 0 Δ R ~ i j − 1 0 0 ] η j − 1 d η i j Δ = A j − 1 η i j − 1 Δ + B j − 1 η j − 1 d \eta^\Delta_{i j} =\left[\begin{array}{ll} \Delta \tilde R_{i j-1} & 0 & 0 \\ -\Delta \tilde R_{i j-1} \dot (\tilde{v}_{j-1} -v_i-b^v_i)^{\Lambda} & I & 0 \\ 0 & \Delta t I &I \end{array}\right] \eta^\Delta_{i j-1} \ldots \\ +\left[\begin{array}{ll} J^{j-1}_r\Delta t & 0 \\ 0 &\Delta \tilde R_{i j-1} \\ 0 & 0 \end{array}\right] \eta^d_{j-1}\\ \eta^\Delta_{i j} = A_{j-1}\eta^\Delta_{i j-1}+B_{j-1}\eta^d_{j-1} ηijΔ= ΔR~ij1ΔR~ij1(˙v~j1vibiv)Λ00IΔtI00I ηij1Δ+ Jrj1Δt000ΔR~ij10 ηj1dηijΔ=Aj1ηij1Δ+Bj1ηj1d

Σ i j \Sigma_{ij} Σij

Σ i j = A j − 1 Σ i j − 1 A j − 1 T + B j − 1 Σ η + B j − 1 T \Sigma_{ij} = A_{j-1}\Sigma_{ij-1}A^T_{j-1} +B_{j-1}\Sigma_\eta+B^T_{j-1} Σij=Aj1Σij1Aj1T+Bj1Ση+Bj1T

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值