PIXHAWK 飞控中的EKF姿态估计的欧拉角求解

本文介绍了EKF(扩展卡尔曼滤波)姿态解算的基本原理及步骤,包括建模、状态变量设置、状态转移矩阵推导等,适用于希望了解无人机或机器人定位导航算法的读者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


题主没有说明是原生固件还是APM版的固件,原生固件已经取消EKF姿态解算了,官方解释的原因是占RAM太大。估且就认为你问的是原生固件EKF姿态解算算法的步骤吧,简单的介绍下,看不明白,以及相关理论不清楚的查阅介绍惯性导航的书籍即可,应该没多少人需要真正研究算法的吧~
首先是建模,设状态变量,

其中w为体系角速度,wa为体系角加速度,ze为重力向量,mu为磁场向量。如果使用惯性矩阵修正当前角加速度,那么:

则机体系角速度为:

再根据机体坐标系相对地理坐标系的旋转角速度变换矩阵:

如果采用指数函数的一阶泰勒近似有:

则状态转移A矩阵为:

过程噪声矩阵为:

分别表示陀螺角速度过程噪声,角加速度过程噪声,加速度过程噪声,磁力计过程噪声。

协方差阵为:

测量噪声矩阵:

观测矩阵H为:

测量方程为:

引入测量噪声:

EKF的卡尔曼增益矩阵:

状态估计:

更新协方差矩阵:

提取状态信息:

最后得到参考系和机体系的变换矩阵:

转换成欧拉角:

EKF方法计算量大,在计算状态转换阵和基础矩阵时采用了一阶近似,这种近似误差较大,如果计算量允许,可以用2-3阶。

原生固件有关EKF解算的,嵌入式代码是matlab自动生成的,千万不要直接看C代码。。。。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值