登录
加入联盟
找回密码
航空人生
新一代连飞客户端下载
空管人生
中国航空运动协会推荐
WEFLY
模拟飞行玩家聊天工具
门户
文章
商城
二手市场
外包服务
模飞软件
硬件设备
飞行体验
学院
云课堂
问答
资料下载
论坛
模拟飞行
低空飞行
太空探索
航圈
资源
素材
下载
企业
无人机论坛
»
论坛
›
无人机DIY专区
›
飞控开发区
›
Pixhawk飞控
›
【干货】加速度校准分析(Pixhawk加速度校准算法简析) ...
返回列表
发新帖
查看:
812
|
回复:
0
【干货】加速度校准分析(Pixhawk加速度校准算法简析)
[复制链接]
nczhangyun
nczhangyun
当前离线
积分
1584
窥视卡
雷达卡
31
主题
798
帖子
1584
积分
金牌飞友
金牌飞友, 积分 1584, 距离下一级还需 1416 积分
金牌飞友, 积分 1584, 距离下一级还需 1416 积分
积分
1584
飞币
776
注册时间
2017-8-19
发消息
发表于 2024-9-19 14:19:15
|
显示全部楼层
|
阅读模式
文 / across
【作者简介】
不懂算法、不懂编程的飞控算法工程师
略懂飞行控制
略懂开源px4飞控
前面简单介绍过陀螺仪校准的方法(原文:【干货】陀螺仪的数据处理),主要是提供一种方案去校准数据的零偏。同样的,加速度数据一样需要进行标定,下面先看几个问题。
1. 加速度计上电校准零偏是否可行?
答案是否,以PX4飞控为例,在NED系下,水平放置时,机体测量加速度的数据应该是[0 0 -g],所以,除非你确定你的飞控校准加速度零偏的时候是绝对的水平,否则只会加大误差,更别谈每次上电自动校准,减零偏了,试想一下,如果我就是要飞机在斜坡上起飞,那飞机飞起来回平就完全不对了,飞机认为的水平已经不是你所见的水平。
2.加速度计校准有哪些方法?
主要有两种,一种是依赖于高精度的外部设备,比如转台等,进行的精确标定;主要校准安装误差,比例系数和零位偏移。方法为静态六位置法标定法。六位置法一般需要借助高精度转台进行试验测试,将姿态解算测试系统水平固定在转台测试台面上,安装过程中保证系统坐标系与转台测试面坐标系重合,对加速度传感器的各敏感轴进行竖直向上和向下测试,通过转动转台的内框-中框-外框对加速度计三个轴共测试六次。利用最小二乘法计算对六位置数据行进最小误差估计得到 12 个误差系数。具体方法可以参考一些导航方面的书籍论文。
另外一种则是重力参考标定,飞控会自动运行代码或离线数据采集进行参数计算。我们主要讲工程上最实用的,明显第二种比较简单实用,一般来讲,是不会用到转台这类设备进行精确标定的,原因就是设备太贵,买不起。所以一般采用重力参考标定方式。
3.加速度校准的原理?
静态放置情况下,无论加速度计计的位置在哪,所测的的加速度模值始终应该是当地重力加速度。
4.校准的目的?
换个说法,就是如果不校准会怎样?简单来讲,会影响你姿态解算的精度,比如互补滤波,解算的静态精度与测量的重力加速度有直接关系,所以能提高姿态解算的精度。
5.可不可以不校准?
实际应用也可以不校准加速度计,毕竟,精度再差,也不差那么一些,当然,如果对飞控的精度要求比较高,还是校准最好。
加速度计一般校准一次即可,不需要每次都上电校准,所以,也可以采集离线数据,校准之后,将参数写入你的飞控代码。
6.如何做?
主要介绍两种方法,包括pixhawk飞控的算法解析。
6.1离线数据matlab计算
飞控静止下,随便转几个面,保持一段时间,记录飞控的加速度数据。
建立模型:
带入上式,进行最小二乘拟合,matlab中用lsqcurvefit函数,求出a1-a6参数。
实验结果如图所示:
图中看出,校准后,加速度计数据的输出更接近重力加速度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个面的数据,则可以得到参考向量。
分别对应头朝上,朝下,朝左,朝右,反向,水平放置,则实测的数据accel_raw_ref[6][3]。
步骤:
一、先求出每个轴的偏移,方法是利用重力加速度在每个轴上的最大最小数据,求和后除以2得到。
二、下面求accel_T[3][3]矩阵的参数,包含9个未知参数,一个轴有3个数据,每个方向有3个轴数据,所以这时只需采样3面数据即可。
展开:
即转换成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矩阵,主要是根据你的飞控安装方向,外置罗盘的安装方向进行的数据坐标系校正;
Ø 加速度数据的标定并不能保证你的飞行是水平的,如果有几度的安装误差,飞起来会怎样?很显然,飞机会以固定的角度,一直往一个地方飘。
如果有读者对飞控研发的某些知识点,有不清楚的地方可以在评论下写明,笔者会挑一些普遍的问题进行讲解。后续文章主要方向还是算法方面,且偏向工程应用,具体的理论推导就不阐述了。
每周更新
把握产业链脉络
追踪高价值的产品
坚持深度有价值内容
定位无人机频道
微信号:auscor
93.17%做灰机不吹牛逼的都可能关注了无人机频道!
最大的梦想是带着关注无人机频道的人一起发大财!
历史爆文
【干货】大神浅谈无人机飞控软件设计 系统性总结
究竟是什么让植保无人机不赚钱?几乎都是一锤子买卖
这批无人机创业者真他Ma不行!
一种典型的无人机行业老板心理状态
【涉密】无人机植保水有多深,试验结果告诉你
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
加入联盟
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表