加速度校准分析(Pixhawk加速度校准算法简析)

1. 加速度计上电校准零偏是否可行?

答案是,以PX4飞控为例,在NED系下,水平放置时,机体测量加速度的数据应该是[0 0 -g],所以,除非你确定你的飞控校准加速度零偏的时候是绝对的水平,否则只会加大误差,更别谈每次上电自动校准,减零偏了,试想一下,如果我就是要飞机在斜坡上起飞,那飞机飞起来回平就完全不对了,飞机认为的水平已经不是你所见的水平。

2.加速度计校准有哪些方法?

主要有两种,一种是依赖于高精度的外部设备,比如转台等,进行的精确标定;主要校准安装误差,比例系数和零位偏移。方法为静态六位置法标定法。六位置法一般需要借助高精度转台进行试验测试,将姿态解算测试系统水平固定在转台测试台面上,安装过程中保证系统坐标系与转台测试面坐标系重合,对加速度传感器的各敏感轴进行竖直向上和向下测试,通过转动转台的内框-中框-外框对加速度计三个轴共测试六次。利用最小二乘法计算对六位置数据行进最小误差估计得到 12 个误差系数。具体方法可以参考一些导航方面的书籍论文。

加速度校准分析(Pixhawk加速度校准算法简析)_第1张图片

另外一种则是重力参考标定,飞控会自动运行代码或离线数据采集进行参数计算。我们主要讲工程上最实用的,明显第二种比较简单实用,一般来讲,是不会用到转台这类设备进行精确标定的,原因就是设备太贵,买不起。所以一般采用重力参考标定方式。

3.加速度校准的原理?

静态放置情况下,无论加速度计计的位置在哪,所测的的加速度模值始终应该是当地重力加速度。

4.校准的目的?

换个说法,就是如果不校准会怎样?简单来讲,会影响你姿态解算的精度,比如互补滤波,解算的静态精度与测量的重力加速度有直接关系,所以能提高姿态解算的精度。

5.可不可以不校准?

实际应用也可以不校准加速度计,毕竟,精度再差,也不差那么一些,当然,如果对飞控的精度要求比较高,还是校准最好。

加速度计一般校准一次即可,不需要每次都上电校准,所以,也可以采集离线数据,校准之后,将参数写入你的飞控代码。

6.如何做?

主要介绍两种方法,包括pixhawk飞控的算法解析。

6.1离线数据matlab计算

飞控静止下,随便转几个面,保持一段时间,记录飞控的加速度数据。

建立模型:加速度校准分析(Pixhawk加速度校准算法简析)_第2张图片

带入上式,进行最小二乘拟合,matlab中用lsqcurvefit函数,求出a1-a6参数。

实验结果如图所示:

加速度校准分析(Pixhawk加速度校准算法简析)_第3张图片加速度校准分析(Pixhawk加速度校准算法简析)_第4张图片

图中看出,校准后,加速度计数据的输出更接近重力加速度g,与重力加速度的误差更小。

得到参数如下:

1.0010    0.1178   1.0059   -0.2940    0.9926   0.1514

6.2 PX4固件加速度计校准算法

因为不是外部设备(转台)进行标定,所以校准的原理与前面介绍的一样,都采用重力加速度作为参考。

建立模型:

accel_corr[3]是参考向量,也就是重力加速度向量

accel_T[3][3]是转换矩阵,包含旋转和尺度缩放

accel_raw[3]是实际测量的加速度向量

accel_offs[3]是加速度数据的零点偏移

飞控采用六面校准,即取6个面的数据,则可以得到参考向量。

加速度校准分析(Pixhawk加速度校准算法简析)_第5张图片

分别对应头朝上,朝下,朝左,朝右,反向,水平放置,则实测的数据accel_raw_ref[6][3]。

步骤:

一、先求出每个轴的偏移,方法是利用重力加速度在每个轴上的最大最小数据,求和后除以2得到。

加速度校准分析(Pixhawk加速度校准算法简析)_第6张图片

二、下面求accel_T[3][3]矩阵的参数,包含9个未知参数,一个轴有3个数据,每个方向有3个轴数据,所以这时只需采样3面数据即可。

加速度校准分析(Pixhawk加速度校准算法简析)_第7张图片

展开:

即转换成A * x = b形式。

x = A^-1 * b

接着就是求解线性方程组,求出x矩阵,即accel_T[3][3]

具体代码见src\modules\commander\accelerometer_calibration.cpp文件。

7.几个需要注意的点

Ø  前面有提到,在采集数据的时候,主要是要获得静态状态下数据,所以最好不要加速晃动飞控采集,同样的原理,比如开源pixhawk飞控校准的时候,在摆6个面的时候,尽量缓慢,且保持一段时间;

Ø  虽然求出了12个参数,但是pixhawk飞控输出加速度数据的时候,也只用了6个数据,3个零偏,3个尺度变换因子,即accel_T矩阵的对角元素

Ø  前面所述的算法,只是核心的思想,PX4飞控实际的模型还包含了旋转信息

这里的rot矩阵,主要是根据你的飞控安装方向,外置罗盘的安装方向进行的数据坐标系校正

Ø  加速度数据的标定并不能保证你的飞行是水平的,如果有几度的安装误差,飞起来会怎样?很显然,飞机会以固定的角度,一直往一个地方飘。

如果有读者对飞控研发的某些知识点,有不清楚的地方可以在评论下写明,笔者会挑一些普遍的问题进行讲解。后续文章主要方向还是算法方面,且偏向工程应用,具体的理论推导就不阐述了。

你可能感兴趣的:(开源飞控,加速度计,校准,最小二乘法,飞控)