前一篇帖子里发现MA10模块的BUG,问题应该是出在写固件的工程师对AHRS所使用的坐标轴系统的认识不明确。
所以这篇帖子里,要讨论一下最基础的坐标系定义。
我们常用的坐标系有以下这么几种。
地球坐标系一般用于环球飞行的导航算法,用来定义飞机位置和全球飞行的航点。
地理坐标系用于短距离的导航,用来定义飞机的航向和飞机附近的航点。
机体坐标系一般用于示飞机的过载、气动力等基于飞机本体的矢量,比如陀螺仪和加速度计的数据。
导航坐标跟飞行任务有关,一般的近距离飞行是不用考虑地球是个圆球的,所以用地理坐标系。
航姿系统输出的载体姿态实质上反映了机体坐标系相对导航坐标系之间的转动关系。
MA10模块的输出,理论上应该是以欧拉角系统来的,但是实际是用了个什么诡异系统导致这么严重的BUG,请开发者自己描述吧。
正经的欧拉角系统使用俯仰、滚转和航向3个角度来表示飞机姿态。这3个角度的定义如下。
红线里的字描述的很清楚了。
另外,方向余弦法的微分方程维数高达9维,还有非正交化误差,工程上并不实用,这儿就不提了。
重点说一下四元数
四元数是最常用的,一般用于AHRS算法内部的解算。因为人的思维并不能直观把四元数跟空间姿态对应起来,所以很多AHRS系统虽然内部是四元数解算的,但都有个额外的欧拉角输出用来做可视化。当然,这个欧拉角对姿态计算来说没什么用。
四元数系统如下:
四元数与欧拉角的关系如下:
所以,只要是正经得按上式把四元数转成欧拉角,就不可能输出像MA10模块那样的坑爹结果。
前一篇帖子里发现MA10模块的BUG,问题应该是出在写固件的工程师对AHRS所使用的坐标轴系统的认识不明确。
所以这篇帖子里,要讨论一下最基础的坐标系定义。
我们常用的坐标系有以下这么几种。
地球坐标系一般用于环球飞行的导航算法,用来定义飞机位置和全球飞行的航点。
地理坐标系用于短距离的导航,用来定义飞机的航向和飞机附近的航点。
机体坐标系一般用于示飞机的过载、气动力等基于飞机本体的矢量,比如陀螺仪和加速度计的数据。
导航坐标跟飞行任务有关,一般的近距离飞行是不用考虑地球是个圆球的,所以用地理坐标系。
航姿系统输出的载体姿态实质上反映了机体坐标系相对导航坐标系之间的转动关系。
MA10模块的输出,理论上应该是以欧拉角系统来的,但是实际是用了个什么诡异系统导致这么严重的BUG,请开发者自己描述吧。
正经的欧拉角系统使用俯仰、滚转和航向3个角度来表示飞机姿态。这3个角度的定义如下。
红线里的字描述的很清楚了。
另外,方向余弦法的微分方程维数高达9维,还有非正交化误差,工程上并不实用,这儿就不提了。
重点说一下四元数
四元数是最常用的,一般用于AHRS算法内部的解算。因为人的思维并不能直观把四元数跟空间姿态对应起来,所以很多AHRS系统虽然内部是四元数解算的,但都有个额外的欧拉角输出用来做可视化。当然,这个欧拉角对姿态计算来说没什么用。
四元数系统如下:
四元数与欧拉角的关系如下:
所以,只要是正经得按上式把四元数转成欧拉角,就不可能输出像MA10模块那样的坑爹结果。