飞控开发
长期更新,有单纯记录飞控的开发历程,也有对飞控的开源
文号D927720
1868
0
收藏
编辑文章

1.2 mpu9250的标定思路

关键词

惯性导航mpu9250校准标定

mpu的标定,简单来说就是校准,是个非常大的坑,所以要分五期,这一期先说总体思路,下一期分析均值滤波的最优值,接下来三期实现加速度传感器,磁力计和角速度传感器的校准。(用这个顺序大概是由易到难的,后面细说。)

这里的标定,不止第一代可以使用,以后也都可以使用,只需要减去均值滤波的部分,然后加上卡尔曼滤波即可。

mpl库的自带校准只有减去零偏,显然是不够的,而且实测他根本没有减。可能这个要哪里配置吧……不过配置了也绝对不够用。

阿米诺斯基曾经说过“软件基础硬件就不基础,硬件基础软件就不基础,硬件软件都基础操作就不基础”。

其实要惯性导航,硬件软件和校准操作都得跟上,我们要便宜,硬件跟不上,就要在其他两个方面下功夫。

现在说下误差模型和校准方法。

这部分参考论文A Robust and Easy to Implement Method for IMU Calibration without,有CSDN博客对其简要介绍

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

大家可以参考。不过我后面会说的,而且我的校准方法会有部分改动。主要原因是原论文认为传感器坐标x轴与载体x轴一致,但是我们用的这个模块肯定做不到……另外他的角速度校准方法程序实现太复杂,我还在想要不要这么做,还是简单地减去零偏,忍受误差,还是找别的方法,如果使用的话应该要拖更一会。

总之,下面我们开始分析误差模型,并给出校准的大概思路。

[修改于 1年1个月前 - 2025/09/26 11:10:57]

5
tmn_A 作者
1年1个月前 修改于 1年1个月前 IP:广东
D927722

传感器有哪些误差呢?首先是随机误差,这个的处理其实很麻烦,涉及到很多数学知识,但是我们这里处理方法很简单,求平均。这就类似A类不确定度的计算,有:

$\sigma \propto \frac{1}{\sqrt{N-1}}$

N是取平均的数量。数据越多,随机误差越小

这里我们直接用标准差衡量数据的误差,不用常用惯性器件的阿兰方差是因为这里完全没必要,阿兰方差的优势在于中长时间的稳定性衡量,但是探空火箭是个非常短时间的过程,再加上mpu9250本身的低精度,完全没有必要像光纤陀螺那样在这里用阿兰方差把误差分析清楚,至少第一代不用。

我们后面也不会使用阿兰方差,而是用标准差代替。

(好吧原因主要是我也学得半懂不懂,而且不想写新的程序了……)

所以我们到时候这么做:用取平均的方法滤波,参与取平均的数量由于要兼顾平滑和动态,所以值下期讨论。

tmn_A作者
1年1个月前 修改于 1年1个月前 IP:广东
D927771

接下来就是系统误差,分为几类,以下列举主要的四种:

一是各轴感知灵敏度不同,表现为对同一个物理量传回数值不同。

二是各轴非正交,导致某个轴的输出受其他轴干扰。

三是零偏,即某个轴检测的物理量为零时仍有输出。

四是非线性关系,即数值与物理量的关系偏离线性。

我们打算针对一二三进行校准,四的话校准难度过大,对于低成本短时间惯性导航没有必要。论文中也未考虑该误差。

tmn_A作者
1年1个月前 IP:广东
D927970

对任意一个量$x$(可以是加速度角速度或磁感应强度,注意它是个三维向量)

那么它的校准模型就应该是:

$x_c = TAx_r+p$(1)

为了和后面的式子中的量区分,这里字母有点不常见。

(1)式中量的物理意义:

$x_c$:校准后的物理量

$x_r$:经过滤波后的原始物理量

$T$:非正交校准矩阵,接近单位矩阵

$K$:灵敏度校准矩阵

$p$:零偏向量

为了以后校准方便,一会针对校准的方法给出三个物理量的校准方程。

这里提一个抽象的事,mpu9250的加速度传感器和角速度传感器都是常见的右手系,但是磁力计三轴是左手系……到时候校准要注意,或者说我搞个程序把这些功能全部搞上去,但这可能要一段时间……



tmn_A作者
1年1个月前 修改于 1年1个月前 IP:广东
D927976

先说加速度,它的校准的特点是,静止状态下,传感器能输出一个恒定的量——一个重力加速度对应的值。当传感器姿态改变时,这个值的大小应该不变,所以这个向量若起点在原点,则终点应该在一个中心为原点的球上,或者说这个向量对应的数组对应的点分布在球面上。然而,由于有误差,不能做到这点。而我们的第一步就是用最小二乘法确定校准数据让这些点先分布在这个球面上。这一步后测量的向量模长就没问题了,接下来要用一个类似姿态转移矩阵的东西把它和实际的重力向量对齐。具体的误差模型和前面有些改动,后面写到了再说。

磁力计类似,因为地球磁场也是可以恒定不变的,但是有几个要注意的地方。一是之前说的坐标定义的问题,二是不能在室内校准,金属家具会显著影响磁场,三是测量地磁时要手机下个软件(当然也可以买磁力计,但是贵啊),这个软件能测量三轴磁场,精度不知道,不过肯定比mpu9250的磁力计高,而且这个1.0版本还暂时不需要多高的精度,肯定够用了。

操作细节后面几篇文章会写。


tmn_A作者
1年1个月前 修改于 1年1个月前 IP:广东
D928028

角速度的校准要复杂很多,首先用阿兰方差或者直接暴力求均值的方法搞出零偏,减去零偏后,需要多次从一个姿态转为另一个姿态,获取角速度数据,两个姿态下静止时的加速度数据。通过角速度乘一个待定矩阵,积分,解算姿态,求出末状态下的加速度向量,它肯定和实测的重力加速度向量不重合,然后就时通过最小二乘法求解待定矩阵的参数,使得误差最小。

由于太复杂了,我现在正在考虑可不可以忍受一些误差来取消后一步。

想参与大家的讨论?现在就 登录 或者 注册。

主体信息
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:广东
 内容统计
2026年10月
1 篇
2026年09月
1 篇
2026年08月
3 篇
2026年07月
2 篇
2026年06月
1 篇
2026年05月
1 篇
2026年04月
1 篇
2026年03月
1 篇
2026年02月
2 篇
2026年01月
1 篇
2025年
10 篇
ID: {{ user.uid }}
投诉或举报
加载中...
{{ tip }}
请选择违规类型:
{{ reason.type }}

空空如也

加载中...
回复
设为精选取消精选
评学术分
鼓励
编辑
查看历史
通过审核
移动文章
加入收藏取消收藏
退修或删除
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{ format('YYYY/MM/DD HH:mm:ss', toc) }}
回复
加入收藏取消收藏