Pixhawk学习5.1——传感器标定之加速度计

加速度计作为飞控系统的核心传感器,在Pixhawk中主要充当姿态解算、加速度敏感等任务。由于Pixhawk中采用的为MEMS加速度计,其使用过程中存在着零偏、刻度系数、安装偏角等误差,如果直接使用,即加速度计的输出并非飞机本体的加速度,因此需要提前标定这些误差,在使用时提前补偿掉。
Pixhawk中给出了加速度计的标定模型,在这里稍作总结并提出自己的一些想法。
加速度计标定的程序主要涉及到以下文件:
src/modules/commander/accelermeter_calibration.cpp

加速度计的标定模型如下:
accel_corr = accel_T * (accel_raw - accel_offs)
其中:
accel_corr[3]——为飞机机体系下的加速度值;
accel_T[3][3]——为飞机机体系与飞控坐标系(这里假设加速度计与飞控机壳固连且加计的敏感轴坐标系与飞控机壳坐标系重合);
accel_raw[3]——为加速度计敏感输出的加速度;
accel_offs[3]——为加速度计敏感轴下的零偏。
该模型的含义为,加速度计敏感到的信息,减去自身零偏之后,再乘以飞控与机体之间的旋转矩阵,可以得到机体系下的加速度。那么标定方法为采用机体系下的加速度值和传感器敏感到的加速度,反算 accel_T[3][3]和 accel_offs[3]。

标定方法采用六位置法,此时机体系下的加速度值为:

 * accel_corr_ref[6][3] = [  g  0  0 ]     // 机头朝上  X 
 *                        | -g  0  0 |     // 机头朝下
 *                        |  0  g  0 |     // 机身左倾  
 *                        |  0 -g  0 |     // 机身右倾  Y
 *                        |  0  0  g |     // 机背朝上
 *                        [  0  0 -g ]     // 机背朝下  Z

那么针对上述每一个位置,都有公式:
accel_corr_ref[i] = accel_T*(accel_raw_ref[i] - accel_offs); i=0~5,对应每个位置。(公式1)
根据上述方法,总共可产生3*6=18个式子,而需要确定 9(accel_T) + 3(accel_offs) = 12个变量。

1、零偏accel_offs标定

零偏accel_offs可根据每个方向的正反两次放置来得到。以i=0和i=1为例(机头向上和向下),两式相加==> 0=accel_T*(accel_raw_ref[0] + accel_raw_ref[1] - 2accel_offs)
由于i=0和i=1两种情况时g主要在X轴上,Y和Z基本为零。因此:
accel_offs(X) = 1/2
(accel_raw_ref[0] + accel_raw_ref[1])。accel_offs(Y) 和 accel_offs(Z) 一次类推。

2、零偏accel_offs标定
标定好accel_offs之后,选取公式1中i=0,i=2,i=4项,则有以下公式:
在这里插入图片描述
通过简单矩阵运算就可以得到accel_T。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值