IMU数学模型笔记

IMU模型

参考链接:VIO(notes) —— (1)IMU模型

SLAM基础——IMU传感器(IMU误差模型、IMU离散积分)

1.基本模型

IMU误差模型

误差分类

  • 加速度计和陀螺仪的误差可以分为:确定性误差随机误差
  • 确定性误差可以事先标定确定,包括:bais、scale
  • 随机误差通常假设噪声服从高斯分布,包括:高斯白噪声、bais随机游走…

忽略scale,只考虑高斯白噪声n和bais随机游走b:

ω ~ b = ω b + b g + n g a ~ b = q b w ( a w + g w ) + b a + n a \begin{aligned} {\tilde{\mathbf{\omega}}^b} &= {\mathbf{\omega}^b} + {\mathbf{b}^g} + { \mathbf{n}^g } \\ {\tilde{\mathbf{a}}^b} &= {\mathbf{q}_{bw}} ( {\mathbf{a}^w} + {\mathbf{g}^w}) + {\mathbf{b}^a} + {\mathbf{n}^a} \end{aligned} ω~ba~b=ωb+bg+ng=qbw(aw+gw)+ba+na

有上标波浪线的代表的是陀螺仪的测量值 ω b ~ \tilde{\mathbf\omega^b} ωb~ 和加速度计的测量值 a ~ b {\tilde{\mathbf{a}}^b} a~b
右上标 b b b 表示的是 body坐标系, w w w 表示世界坐标系或惯性坐标系, a a a 表示加速度acc, g g g 表示gyro陀螺仪。

所以位移 p p p,速度 v v v,四元数 q q q 的微分形式如下所示, ⊗ {\otimes} 代表四元数之间的乘法。
p ˙ w b t = v t w v ˙ t w = a t w q ˙ w b t = q w b t ⊗ [ 0 1 2 ω b t ] \begin{aligned} {\dot{\mathbf{p}}_{wb_t}} &= {\mathbf{v}^w_t} \\ {\dot{\mathbf{v}}^w_t} &= {\mathbf{a}^w_t}\\ {\dot{\mathbf{q}}_{wb_t}} &= {\mathbf{q}_{wb_t}} {\otimes} \begin{bmatrix} 0\\ {\frac{1}{2}}{\mathbf{\omega}}^{b_t}\\ \end{bmatrix} \end{aligned} p˙wbtv˙twq˙wbt=vtw=atw=qwbt[021ωbt]

2.连续时间下IMU运动模型

根据上面的微分形式,可以从第 i i i 个时刻的位移 p w b i {\mathbf{p}_{wb_i}} pwbi,速度 v i w {\mathbf{v}^w_i} viw,四元数 q w b i {\mathbf{q}_{wb_i}} qwbi 通过IMU的测量值进行积分,得到第 j j j 时刻的位移( p w b j {\mathbf{p}_{wb_j}} pwbj )、速度( v j w {\mathbf{v}^w_j} vjw )、四元数( q w b j {\mathbf{q}_{wb_j}} qwbj )。

p w b j = p w b i + v t w △ t + ∬ t ∈ [ i , j ] ( q w b t a b t − g w ) δ t 2 v j w = v i w + ∫ t ∈ [ i , j ] ( q w b t a b t − g w ) δ t q w b j = ∫ t ∈ [ i , j ] q w b t ⊗ [ 0 1 2 ω b t ] δ t \begin{aligned} {\mathbf{p}_{wb_j}} &= {\mathbf{p}_{wb_i}} + {{\mathbf{v}}^w_t}{{\triangle}t} + {\iint_{t{\in}[i,j]}} ( {\mathbf{q}_{wb_t}} {\mathbf{a}^{b_t}} - \mathbf{g}^w ) {\delta}t^2 \\ {\mathbf{v}^w_j} &= {\mathbf{v}^w_i} + {\int_{t{\in}[i,j]}} ( {\mathbf{q}_{wb_t}} {\mathbf{a}^{b_t}} - \mathbf{g}^w ) {\delta}t \\ {\mathbf{q}_{wb_j}} &= {\int_{t{\in}[i,j]}}{\mathbf{q}_{wb_t}} {\otimes} \begin{bmatrix} 0\\ {\frac{1}{2}}{\mathbf{\omega}}^{b_t} \\ \end{bmatrix}{\delta}t \end{aligned} pwbjvjwqwbj=pwbi+vtwt+t[i,j](qwbtabtgw)δt2=viw+t[i,j](qwbtabtgw)δt=t[i,j]qwbt[021ωbt]δt

3.运动模型的离散积分–欧拉法

使用欧拉法,即两个相邻时刻 k k k k + 1 k+1 k+1 的位姿是用第 k k k时刻的测量值 a \mathbf{a} a ω {\mathbf{\omega}} ω 来计算的
p w b k + 1 = p w b k + v t w △ t + 1 2 a △ t 2 v k + 1 w = v k w + a △ t q w b k + 1 = q w b k ⊗ [ 0 1 2 ω δ t ] \begin{aligned} {\mathbf{p}_{wb_{k+1}}} &= {\mathbf{p}_{wb_k}} + {{\mathbf{v}}^w_t}{{\triangle}t} + {\frac{1}{2}\mathbf{a}{{\triangle}t^2}} \\ {\mathbf{v}^w_{k+1}} &= {\mathbf{v}^w_k} + {\mathbf{a}{{\triangle}t}} \\ {\mathbf{q}_{wb_{k+1}}} &= {\mathbf{q}_{wb_{k}}} {\otimes} \begin{bmatrix} 0\\ {\frac{1}{2}}{\mathbf{\omega}{\delta}t}\\ \end{bmatrix} \end{aligned} pwbk+1vk+1wqwbk+1=pwbk+vtwt+21at2=vkw+at=qwbk[021ωδt]

其中,

a = q w b k ( a b k − b k a ) − g w ω = ω b k − b k g \begin{aligned} {\mathbf{a}} &= {\mathbf{q}_{wb_k}} ( \mathbf{a}^{b_k} - \mathbf{b}^a_k ) - {\mathbf{g}^w} \\ {\mathbf{\omega}} &= {\mathbf{\omega}^{b_k}} - {\mathbf{b}^g_k} \end{aligned} aω=qwbk(abkbka)gw=ωbkbkg

4.运动模型的离散积分–中值积分法

p w b k + 1 = p w b k + v t w △ t + 1 2 a △ t 2 v k + 1 w = v k w + a △ t q w b k + 1 = q w b k ⊗ [ 0 1 2 ω δ t ] \begin{aligned} {\mathbf{p}_{wb_{k+1}}} &= {\mathbf{p}_{wb_k}} + {{\mathbf{v}}^w_t}{{\triangle}t} + {\frac{1}{2}\mathbf{a}{{\triangle}t^2}} \\ {\mathbf{v}^w_{k+1}} &= {\mathbf{v}^w_k} + {\mathbf{a}{{\triangle}t}} \\ {\mathbf{q}_{wb_{k+1}}} &= {\mathbf{q}_{wb_{k}}} {\otimes} \begin{bmatrix} 0\\ {\frac{1}{2}}{\mathbf{\omega}{\delta}t}\\ \end{bmatrix} \end{aligned} pwbk+1vk+1wqwbk+1=pwbk+vtwt+21at2=vkw+at=qwbk[021ωδt]

其中,

a = 1 2 [ q w b k ( a b k − b k a ) − g w + q w b k + 1 ( a b k + 1 − b k a ) − g w ] ω = 1 2 [ ω b k − b k g + ω b k + 1 − b k g ] \begin{aligned} {\mathbf{a}} &= {\frac{1}{2}}[{\mathbf{q}_{wb_k}} ( \mathbf{a}^{b_k} - \mathbf{b}^a_k ) - {\mathbf{g}^w} + {\mathbf{q}_{wb_{k+1}}} ( \mathbf{a}^{b_{k+1}} - \mathbf{b}^a_k ) - {\mathbf{g}^w}] \\ {\mathbf{\omega}} &= {\frac{1}{2}}[{\mathbf{\omega}^{b_k}} - {\mathbf{b}^g_k} + {\mathbf{\omega}^{b_{k+1}}} - {\mathbf{b}^g_k}] \end{aligned} aω=21[qwbk(abkbka)gw+qwbk+1(abk+1bka)gw]=21[ωbkbkg+ωbk+1bkg]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值