前言
飞控中使用的磁力计为HMC5983,我们通常用他来求解姿态角中的偏航角。
一、偏航角的定义
我们定义坐标系为NED坐标系,对应的偏航角为右手定则下,机头(X轴)与正北的夹角。
二、计算偏航角
1.坐标系定义
从技术手册看出,X轴朝下,Y轴朝右,Z轴朝上,当磁力计的X轴指向正南时候,我们使用yaw=arctan(my/mx)得到的偏航角就为正北0度,此时逆时针为正。
arctan不能确定象限,需要使用atan2确定,atan2得到的角度范围在【-180° ~ 180°】。如果要转换成【0° ~ 360°】,只需判断角度如果为负,加上360°即可。
2.坐标系旋转
如果你定义的载体坐标系和磁力计的坐标系不符合,你就需要旋转磁力计,我们以北东地为例:
在NED下,载体右偏为正,左偏为负。
- 磁力计水平顺时针旋转180度,此时X轴对准载体的X轴(机头),Y轴朝左,Z轴朝上。此刻得到的传感器数据需要把X轴,Y轴数据取反。此时得到的航向角是逆时针为正。
- 此刻磁力计不动,把传感器数据Y轴取反(对准载体的Y轴),这时候得到的航向角就为顺时针为正了。
3.倾斜补偿
注意:当磁力计旋转180度后,M_bx M_by轴的数据都要取反。
总结
提示:这里对文章进行总结: