author:
by yuhongsong(hongsong.yu2010@gmail.com 18311028576)2020-06-05
转载和基于此文档编辑,请注明原作者和链接
标签 <tag> 里程计建模 ,<tag> 预积分, <tag> 残差
说明
本文内容部分是基于参考链接进行的摘抄和编辑,且已注明参考,为的是加强自己的阅读效果,留下阅读的笔记,内容做过深度阅读和改动,参照部分版权属于原作者所有。
1. update log
版本 | 时间 | 作者 | info |
---|---|---|---|
V1.0 | 2020-06-05 | 余红松 | 创建 |
2. 两帧之间建模
内建型的递推传感器
根据传感器参数,获取 x t k x_{t_k} xtk到 x t k + 1 x_{t_{k+1}} xtk+1时刻的递推关系公式
$ x = \left[ \begin{array}{c}p
\ v
\ q
\ f_l
\ f_r
\ \eta
\end{array} \right]$
已知内参
f f f:编码器系数,表一个编码器计数对应移动距离的系数 可优化参数
d d d:车轮到轴中间距离,可优化参数
η ≜ 1 d \eta \triangleq \frac{1}{d} η≜d1 轴距的逆轴距,避免后面雅克比求导中的除法问题
编码器数据上传帧率是一个固定值,每两帧之间,编码器计数增加 δ c = c t k + 1 − c t k \delta c = c_{t_{k+1}} - c_{t_{k}} δc=ctk+1−ctk,这个编码器计数数值,两帧增加的量 视移动速度而定,帧间时间间隔是固定的, c c c为 c n t cnt cnt的缩写
两帧之间根据两轮的编码器读数的不同,会是一个弧形的运动轨迹,现在将弧形的轨迹假定为直线处理
2.1. 挡位因子
挡位方向说明
τ = 1 \tau = 1 τ=1前进挡
τ = − 1 \tau = -1 τ=−1后退挡
τ = 0 \tau = 0 τ=0停车挡
$ \displaystyle \varepsilon \triangleq \left { \begin{array} {ll} \varepsilon=1 & | \tau=1
\ \varepsilon=-1 & | \tau=3
\ \varepsilon=0 & | \tau=4
\end{array} \right. $
2.2. 位置 P
两帧之间运动时间假定为 δ t \delta t δt,轴中心点 M M M运动距离为 δ S \delta S δS
时刻 t k t_{k} tk到 t k + 1 t_{k+1} tk+1的位置变化分析
左侧轮的移动距离: δ S L k = ε ⋅ ( c L k + 1 − c L k ) ⋅ f L = ε ⋅ Δ c L k ⋅ f L \delta S_{L_k} = \varepsilon \cdot \left(c_{L_{k+1}}-c_{L_{k}}\right) \cdot f_{L} = \varepsilon \cdot \Delta c_{L_k} \cdot f_L δSLk=ε⋅(cLk+1−cLk)⋅fL=ε⋅ΔcLk⋅fL
右侧轮的移动距离: δ S R k = ε ⋅ ( c R k + 1 − c R k ) ⋅ f R = ε ⋅ Δ c R k ⋅ f R \delta S_{R_{k}} = \varepsilon \cdot \left(c_{R_{k+1}}-c_{R_{k}}\right) \cdot f_{R} = \varepsilon \cdot \Delta c_{R_k} \cdot f_R δSRk=ε⋅(cRk+1−cRk)⋅fR=ε⋅ΔcRk⋅fR
轴中心的移动距离:
$\delta S_{k} =\varepsilon \cdot v_{k}^{o} \cdot \delta t = \varepsilon \cdot \frac{v_{R_{k}}+v_{L_{k}}}{2} \cdot \delta t $
= ε ⋅ δ S L + δ S R 2 = ε ⋅ ( c L k + 1 − c L k ) ⋅ f L + ( c R k + 1 − c R k ) ⋅ f R 2 = \varepsilon \cdot \frac{\delta S_L + \delta S_R}{2} = \varepsilon \cdot \frac{\left(c_{L_{k+1}}-c_{L_{k}}\right) \cdot f_{L} + \left(c_{R_{k+1}}-c_{R_{k}}\right) \cdot f_{R}}{2} =ε⋅2δSL+δSR=ε⋅2(cLk+1−cLk)⋅fL+(cRk+1−cRk)⋅fR
$ = \varepsilon \cdot \frac{\delta S_L + \delta S_R}{2} = \varepsilon \cdot \frac{ \Delta c_{L_{k}} \cdot f_{L} + \Delta c_{R_{k}} \cdot f_{R}}{2} $
p w o k = ε ⋅ [ x t k y t k z t k ] p_{wo_{k}} = \varepsilon \cdot \left[ \begin{array} {c}x_{t_k} \\ y_{t_k} \\ z_{t_k} \end{array} \right] pwok=ε⋅⎣⎡xtkytkztk⎦⎤
$p_{wo_{k+1}} = p_{wo_{k}} + \varepsilon \cdot v_{o_k}^{w} \cdot \delta t $
$= p_{wo_{k}} + \varepsilon \cdot \mathbf{q}{wo_k} \cdot v{k}^{o} \cdot \delta t $
$= p_{wo_{k}} + \varepsilon \cdot \mathbf{q}{wo_k} \cdot \left[ \begin{array} {c} \delta S{k}
\ 0
\ 0
\end{array} \right] $
$= p_{wo_{k}} + \varepsilon \cdot \mathbf{q}{wo_k} \cdot \left[ \begin{array} {c} \frac{\Delta c{L_{k}} \cdot f_{L} + \Delta c_{R_{k}} \cdot f_{R}}{2}
\ 0
\ 0
\end{array} \right]
$
p w o k p_{wo_{k}} pwo