融合磁力计的Mahony互补滤波算法

...
摘要由CSDN通过智能技术生成

https://blog.csdn.net/qq_21842557/article/details/50993809

上面博客有关于磁力计的详细解释,不过由于本人资质愚钝,至今还不是完全理解,不过思想大致和加速度计差不多。
结合下面代码看效果更好

大致意思如下

  1. 加速度计 已知地理坐标系的标准重力加速度 [0 0 1],然后变换到机体坐标系,理论与实际叉乘求出误差
  2. 磁力计 由于标准重力加速度在所有地方都是一样的,可以由其直接从地理坐标系变换到机体坐标系,但是在地理坐标系中,地磁大小却不是相同的,需要根据实际情况测出来,因此磁力计的来源则必然是实际测量,结合代码,首先进行机体坐标系变换到地理坐标系,相当于求出理论地磁(至于怎么求出的原谅我愚钝,看了几遍没看懂),然后变换到机体坐标系中,和重力加速度类似,利用理论和实际测量叉乘求出误差
  3. 将误差累加,利用PI补偿至陀螺仪,求解四元数,变换成欧拉角。
// 加速度计、地磁计、陀螺仪数据融合,更新四元数
/*
   [gx,gy,gz]为陀螺仪的测量值
   [ax,at,az]为加速度的测量值
   [mx,my,mz]为地磁计的测量值 
*/
void AHRSupdate(float gx, float gy, float gz, float ax, float ay, float az, float mx, float my, float mz) 
{  
            float norm;               
            float hx, hy, hz, bx, bz;
         
  • 4
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值