飞控相关的地磁知识小结

1、飞控里面的地磁计的作用?

飞控里的传感器单元,最重要的是IMU,这里一般是泛指,准确的说法是AHRS(姿态航向参考系统),前面有提到过,加速度计和陀螺仪能准确估计出飞行器的roll和pitch,然而yaw是不能通过这两个准确得到的,这里就需要地磁计了。地磁计主要是根据地磁向量,求出飞行器与磁北的夹角。

2、地磁计的原始数据?

姿态解算算法运行前,飞控驱动层要能准确获取地磁计的数据,然而如何判定数据的有效性呢?

根据手册,一般会提供如何配置,并转换成高斯单位。判定数据的方法就是当模块指向真北的时候,x/y轴的数据正向最大,指南的时候,为负值最大。而且一般地球磁场(忽略干扰的话)数值很小,大约只有0.5高斯。

3、计算yaw需要加速度计吗?

需要用到加速度计校准飞行器的水平误差,补偿倾斜角度。

4、磁偏角?

姿态解算的时候,如要得到精确的yaw,则需要考虑磁偏角,这是什么?

因为基于磁北方向的航向角与真北方向的航向角是有差异的,也就是磁北和真北存在角度偏差,而我们姿态解算是靠磁北来算与真北的角度,所以要补偿这个夹角,这个就是磁偏角,因为地磁是会随着时间、地点变化而变化,所以磁偏角也不是一个固定值。

当然,一般这个角度不是很大的值,大约在5度左右,精度要求高的话可以补偿。

5、如何计算磁偏角?

可以根据GPS得到当前飞行器的经纬度,通过经纬度去计算磁偏角,相应的计算参看开源飞控PX4代码。

6、地磁干扰?

由于地磁磁场太过微弱,只有0.5高斯,所以很容易受到外界干扰,数据变化较大。

一般将地磁干扰分成两种,一种是硬磁干扰,另一种是软磁干扰。

硬磁干扰:认为是飞行器上被磁化的物质所产生的,一般干扰是一个固定值,不随着航向的变化而变化;

软磁干扰:认为是地磁磁场与飞行器周围的磁化物质相互作用而产生的,这个干扰数值通常不是一个固定值,与航向有关。

7、地磁校准?

那如何去除干扰?通常是在使用前进行校准。

一般方法就是将飞行器按特定角度进行转动,得到不同姿态下的磁场强度值,通过对测量值进行分析来校准,主要用来纠正零偏。

8、校准方法的区别?

校准地磁的算法,常见的有最小二乘拟合椭球、求取零点偏移等方法。

9、不校准的影响?

Mag如果不进行校准,而原始数据的零点偏移很大的时候,这时候计算yaw会有很大的误差。

10、如何判定是否需要校准?

为什么到一个新地方就需要校准?

不同的地理环境,会让地磁数据发生变化,即零偏会发生变化,所以一般在新的地理环境下都需要进行校准。

a)看mag的原始数据值,旋转一圈,最大最小值得到的零点是否偏离0很大;

b)又或者通过yaw进行判定,飞行过程中,飞行器往前飞行(只打pitch杆),是否飞的很直;c)地面实时看yaw,每次旋转90度,转一圈,看每次yaw的收敛情况和收敛方向,如最终收敛的角度与旋转的90度较大误差,则需要进行校准。

11、地磁校准能解决一切问题吗?

答案是否定的,在某些极端情况下,地磁的干扰不能完全通过校准进行消除。

简单来说,比如外界的干扰造成地磁向量出现偏差,所以这时候通过这个有偏差的地磁向量作为参考去校准,所得到的值也是不正确的,校准只能解决数据偏移问题,不能解决干扰问题。因此会造成yaw不够精确,保证飞行的直线,这个要求在植保机尤为重要。出现这种情况下,只能通过其他办法进行补偿,比如加入GPS数据,这里笔者提供一个思路,前飞时,获取gps的heading_2d信息,即飞行器前进的角度,如果不是直线飞行,yaw有误差,则两者之间会有误差,将该误差进入解算中进行补偿,可得到较为准确的yaw(注:该方法只适用于飞行速度较快的情况下)。

12、地磁如何作用姿态解算?

举两个常见的例子说明:

a)mahony算法中,地磁校正的原理是,将参考坐标系(NED系)中的地磁向量作为参考,认为是(bx,0,bz)’,因为前面讲过,地磁向量指向正北是,水平的x/y轴,值最大。所以飞行器的地磁在机体系下的测量值(mx,my,mz)’,经过矩阵转换,得到参考坐标系下的值(hx,hy,hz)’,与参考向量相比,水平上的地磁向量值,肯定是相同的(不管坐标系如何变化),即bx2= hx2+hy2,再将其转换到机体坐标系,得到的向量与测量向量(mx,my,mz)’求误差,这个误差就认为是yaw的误差角度,对其做PI修正。

注意,这里的z轴可以不考虑,即假定参考向量是(bx,0,0)’,参考坐标系的测量值为(hx,hy,0)’,这种方法的好处是mag数据只会影响到yaw的计算,而不会与roll、pitch耦合。

b)PX4的attitude_estimator_q中,本质与mahony算法一样,不过形式上地磁的部分处理有些不一样。

将地磁的测量值转换到参考坐标系(NED系)下后,通过atan(y/x)来得到yaw,不管角度是否正确,假定为有误差的,水平认为是没有误差的,形成(0,0,mag_err)向量,再转换到机体坐标系,乘以一个校正的参数,作为补偿加入到解算中。(来源网络)