Pixhawk学习5.2——传感器标定之陀螺仪

相对于加速度计,Pixhawk中陀螺仪的校准比较简单。
陀螺仪的主要量测量为角速度,其安装在飞控中之后的量测模型如下:
Wm = K * Mi * Wb + delta + n
其中:
Wm[3] 为陀螺仪实际测到的角速度;
K[3][3] 为陀螺仪的刻度系数;
Mi[3][3] 为陀螺仪的安装矩阵,即陀螺仪与机体之间的旋转矩阵;
delta[3] 为陀螺仪零偏;
n[3] 为噪声。

由于Pixhawk中MEMS陀螺的精度都比较差,而实际使用时也只是提供瞬时的角速度值,且在姿态解算时算法会根据其他传感器的数据对陀螺数据进行修正。因此该模型可近似为:
Wm = K * Mi *Wb + delta
即略去了噪声项,剩下K,MI,delta三个参数需要标定。

首先,不同于加计有重力加速度g作为衡量标准来进行标定,陀螺仪的标定没有外界参考,总不能把飞机放在速率转台上进行标定测试。有人说不是有地球自转角速度吗?要知道,地球自转约24小时360度,折算下来大约0.004度/秒,这对于这种贴片式MEMS陀螺仪来说是根本测不到的。因此,陀螺仪的刻度系数K就没法精确测量了。(其实MEMS陀螺出厂有一个大致的标定,且刻度系数K的误差可在姿态解算时采用的比例系数进行纠正,因此该系数在程序中设定为1。)

其次,根据上述分析,Mi应该也无法测量。好在IMU要么是一体(即陀螺和加计的安装矢量一致),要么陀螺加计分开,但在制版贴片时一般也会将安装矢量对其。所以Mi可以采用标定加计时的旋转矩阵确定。

最后,就剩下delta了。前面也讲到,地球自转角速度为0.004度/秒,这相对于飞机的运动角速度简直就可以忽略,因此陀螺仪在静态下的输出Wm = 0 + delta,就是陀螺仪的零偏。

Pixhawk程序中就是将静态采集的陀螺仪数据累加求平均,作为零偏值进行补偿。

陀螺仪的校准程序位置:
src/modules/commander/gyro_calibration.cpp
主要用到函数
do_gyro_calibration(orb_advert_t mavlink_log_pub)

static calibrate_return gyro_calibration_worker(int cancel_sub, void
data)。
在此不再粘贴具体程序。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值