Mahony互补滤波器代码详解

本文详细解读了Mahony互补滤波器的MATLAB代码实现,结合《一起深入读懂Mahony互补滤波器》进行阐述,涵盖了陀螺仪、加速度计和磁力计的测量误差模型,并探讨了Passive Complementary Filter和Explicit Complementary Filter之间的关系。
摘要由CSDN通过智能技术生成

Mahony互补滤波器代码详解

在博客文章《一起深入读懂Mahony互补滤波器》(https://blog.csdn.net/jessecw79/article/details/84668189) 的基础上,本文将对Mahony互补滤波器的Matlab代码进行详细解读。本文是Jesse Chen的原创文章,如果转载请注明出处。

回顾《一起深入读懂Mahony互补滤波器》

在上一篇文章中,我们介绍了Mahony互补滤波器的推导过程和公式。如图1是一个基本SO(3)的Mahony互补滤波器的框图。
在这里插入图片描述
图1 Block diagram of the passive complementary filter on SO(3)

如果采用估计值 R ^ \hat{R} R^作为反馈,可以得到在估计参考坐标系下的互补滤波器方程(将陀螺仪的bias考虑在内):
R ^ ˙ = R ^ ( Ω y − b ^ + ω ) × b ^ ˙ = − k b vex ⁡ ( π a ( R ~ ) ) , with  k b > 0 ω = k est vex ⁡ ( π a ( R ~ ) ) , with  k est > 0 R ~ = R ^ T R \begin{aligned} \dot{\hat{R}} &= \hat{R}\left(\Omega^y - \hat{\mathbf{b}} + \omega\right)_\times \\ \dot{\hat{\mathbf{b}}} & = -k_b\operatorname{vex}\left(\pi_a\left(\widetilde{R}\right)\right),\qquad\text{with }k_b > 0 \\ \omega &= k_{\text{est}}\operatorname{vex}\left(\pi_a\left(\widetilde{R}\right)\right),\qquad\text{with }k_\text{est} > 0 \\ \widetilde{R} &= \hat{R}^T R \end{aligned} R^˙b^˙ωR =R^(Ωyb^+ω)×=kbvex(πa(R )),with kb>0=kestvex(πa(R )),with kest>0=R^TR
假设 k P = k est k_P = k_\text{est} kP=kest k I = k b k_I = k_b kI=kb,那么很容易得到参考文献[1],[2],[3]中的passive complementary filter:
R ^ ˙ = R ^ ( Ω y − b ^ + k P ω ) × , R ^ ( 0 ) = R ^ 0 b ^ ˙ = − k I ω , b ^ ( 0 ) = b ^ 0 ω = vex ⁡ ( P a ( R ~ ) ) , R ~ = R ^ T R y \begin{aligned} \dot{\hat{R}} &= \hat{R}\left(\Omega^y - \hat{\mathbf{b}} + k_P\omega\right)_\times,\qquad\hat{R}\left(0\right) = \hat{R}_0 \\ \dot{\hat{\mathbf{b}}} &= -k_I\omega,\qquad\qquad\qquad\qquad\quad\hat{\mathbf{b}}\left(0\right) = \hat{\mathbf{b}}_0 \\ \omega &= \operatorname{vex}\left(\mathbb{P}_a\left(\widetilde{R}\right)\right),\qquad\qquad\qquad\widetilde{R} = \hat{R}^T R_y \end{aligned} R^˙b^˙ω=R^(Ωyb^+kPω)×,R^(0)=R^0=kIω,b^(0)=b^0=vex(Pa(R )),R =R^TRy
其中 P a ( ⋅ ) = π a ( ⋅ ) \mathbb{P}_a\left(\cdot\right) = \pi_a\left(\cdot\right) Pa()=πa()

IMU的测量值

一般情况下,IMU可以是9轴,包括:

  • 3轴的陀螺仪;
  • 3轴的加速度计;
  • 3轴的磁力计;

捷联式IMU的参考坐标系是和IMU固定在一起的(body fixed frame)坐标系 { B } \{\mathcal{B}\} { B},惯性参考坐标系为 { A } \{\mathcal{A}\} { A},旋转 R = B A R R = {}_\mathcal{B}^\mathcal{A}R R=BAR表示 { B } \{\mathcal{B}\} { B}相对于 { A } \{\mathcal{A}\} { A}的旋转。

陀螺仪测量误差模型

陀螺仪的测量值可以表示为:
Ω y = Ω + b + μ   ∈ R 3 \Omega^y = \Omega + \mathbf{b} + \boldsymbol{\mu}\,\in\mathbb{R}^3 Ωy=Ω+b+μR3
其中 Ω \Omega Ω是真实值, μ \boldsymbol{\mu} μ是加性高斯噪声,而

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值