从零手写vio基础(1)-旋转运动学

1 线速度与角速度

在这里插入图片描述
如上图所示:假设一个粒子在坐标中的 z = h z=h z=h平面做圆周运动,坐标为: r . = ( a c o s θ , a s i n θ , h ) T \overset{.}{r}=(acos\theta,asin\theta,h)^T r.=(acosθ,asinθ,h)T,对坐标求导得:
r . = ( − a θ . s i n θ , a θ . c o s θ , 0 ) T \overset{.}{r}=(-a\overset{.}{\theta}sin\theta,a\overset{.}{\theta}cos\theta,0)^T r.=(aθ.sinθ,aθ.cosθ,0)T
= [ 0 − θ . 0 θ . 0 0 0 0 0 ] [ a c o s θ a s i n θ h ] =\left[ \begin{matrix} 0 & -\overset{.}{\theta} & 0 \\ \overset{.}{\theta} & 0 &0 \\ 0 &0 & 0 \\ \end{matrix} \right]\left[ \begin{matrix} acos\theta \\ asin\theta \\ h \\ \end{matrix} \right] =0θ.0θ.00000acosθasinθh
= w ^ r =\hat{w}r =w^r
可以看出左边矩阵为反对称矩阵,这样其实就是 w = [ 0 0 θ . ] w=\left[ \begin{matrix} 0 \\ 0 \\ \overset{.}{\theta} \\ \end{matrix} \right] w=00θ.
∣ θ . ∣ |\overset{.}{\theta}| θ.就是角速度的大小。
我们知道,线速度大小等于角速度乘以圆的半径。即, ∣ r . ∣ = a ∣ θ . ∣ |\overset{.}{r}|=a|\overset{.}{\theta}| r.=aθ..

2 旋转坐标系下的运动学

上述简单例子是在静止坐标系下的,粒子的所有运动分析都是符合简单的牛顿定律的,那么在旋转坐标系下该怎么分析呢?如下图。
在这里插入图片描述
假设一个质量快在 b o d y body body坐标系(其实就是 i m u imu imu坐标系)下的坐标为: r B = ( x 1 , x 2 , x 3 ) T r_B=(x_1,x_2,x_3)^T rB=(x1,x2,x3)T
旋转到惯性系下有:
r I ( t ) = x 1 ( t ) i + x 2 ( t ) j + x 3 ( t ) k = R I B r B r_I(t)=x_1(t)i+x_2(t)j+x_3(t)k=R_{IB}r_B rI(t)=x1(t)i+x2(t)j+x3(t)k=RIBrB
解决旋转坐标系下这个问题 r I ( t ) = R I B r B r_I(t)=R_{IB}r_B rI(t)=RIBrB对时间求导为:
r . I = R I B r . B + R I B . r B \overset{.}{r}_I=R_{IB}\overset{.}{r}_B+\overset{.}{R_{IB}}r_B r.I=RIBr.B+RIB.rB

这里用到了旋转矩阵的求导:(采用右扰动模型)
R I B . = lim ⁡ Δ t → 0 R I B e x p ( w b ^ Δ t ) − R I B Δ t \overset{.}{R_{IB}}=\lim_{\Delta t \to 0} \frac{R_{IB}exp(\hat{w_b}\Delta t)-R_{IB}}{\Delta t} RIB.=limΔt0ΔtRIBexp(wb^Δt)RIB
≈ lim ⁡ Δ t → 0 R I B ( I + w b ^ Δ t ) − R I B Δ t \approx\lim_{\Delta t \to 0} \frac{R_{IB}(I+\hat{w_b}\Delta t)-R_{IB}}{\Delta t} limΔt0ΔtRIB(I+wb^Δt)RIB
= lim ⁡ Δ t → 0 R I B [ w b ^ ] Δ t Δ t =\lim_{\Delta t \to 0} \frac{R_{IB}[\hat{w_b}]\Delta t}{\Delta t} =limΔt0ΔtRIB[wb^]Δt
= lim ⁡ Δ t → 0 [ R I B w b ] ^ R I B Δ t Δ t =\lim_{\Delta t \to 0} \frac{\hat{[R_{IB}{w_b}]}R_{IB}\Delta t}{\Delta t} =limΔt0Δt[RIBwb]^RIBΔt
= w I ^ R I B ={\hat{w_I}R_{IB}} =wI^RIB

注意:上面第二、三步用到了一个性质: R I B [ w b ^ ] = [ R I B w b ] ^ R I B R_{IB}[\hat{w_b}]=\hat{[R_{IB}{w_b}]}R_{IB} RIB[wb^]=[RIBwb]^RIB
完成上述推导,我们再来看看求导问题:

r . I = R I B r . B + R I B . r B \overset{.}{r}_I=R_{IB}\overset{.}{r}_B+\overset{.}{R_{IB}}r_B r.I=RIBr.B+RIB.rB
= R I B v B + w b ^ R I B r B =R_{IB}v_B+{\hat{w_b}R_{IB}}r_B =RIBvB+wb^RIBrB
= v I + w b ^ r I =v_I+{\hat{w_b}}r_I =vI+wb^rI

推导到这里,我们会发现:在旋转坐标系下对 r r r求导不只是会得到一个 v I v_I vI,而是还多了一项 w b ^ r I {\hat{w_b}}r_I wb^rI

接下来对速度继续求导。
在这里插入图片描述
我关于红框内的疑惑,是忘记了 ω I = R I B ω b ω_I = R_{IB}ω_b ωI=RIBωb
至此,旋转坐标系的运动学问题推导完毕,
结论:在旋转坐标系下运动的物体(运动方向和旋转轴不为同一个轴时)会受到科氏力的作用。利用这个性质就可以测量旋转坐标系的旋转角速度

3 目的

很多同学肯定疑惑,推导这个旋转坐标系下的运动模型有啥用?
其实,从上面的结论来看,在旋转坐标系下运动的物体(运动方向和旋转轴不为同一个轴时)会受到科氏力的作用。利用科氏力这个性质就可以测量旋转坐标系的旋转角速度,在后面的陀螺仪测量原理中可以看出这一点。科氏力=2 w v wv wv,只要计算得到运动物体所受的科氏力以及运动物体速度,就可以得出角速度。

4 六轴imu的yaw角不可观

陀螺仪的构成如下图所示:
在这里插入图片描述
从3中我们知道:在旋转坐标系中,运动的物体受到科氏力作用。这里的旋转坐标系就是陀螺仪的坐标系,而运动的物体就是指陀螺主轴!
就是说,陀螺主轴在 x x x方向上做高速往复运动。当陀螺仪在非主轴方向上发生旋转时,陀螺主轴会受到科氏力的作用,可以通过公式得到角速度;而在主轴方向上发生旋转,陀螺主轴不会受到科氏力影响,也就是说在俯仰角(Pitch)和翻滚角(Roll)不变的情况下,无论偏航角是多少,加速度计测出来的值是一样的。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宛如新生

转发即鼓励,打赏价更高!哈哈。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值