BetaFlight深入传感设计之八:坐标系
Posted lida2003
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BetaFlight深入传感设计之八:坐标系相关的知识,希望对你有一定的参考价值。
BetaFlight深入传感设计之八:坐标系
关于坐标系、BF代码中的+/-问题,搞了一段时间,始终没有搞清楚,有点晕头转向的。在Git Hub也发起了一些问题,不过真的一针见血的答复也没有看到。
不过通过专家们对问题的反馈信息,逐步的琢磨出一些端倪。
【1】What type of coordinates is used in iNav code, and why comments “x axis of accelerometer is pointing backwards”? #8483
【2】Flight controller is different from the airframe coordinate system? #11903
【3】iNav, Cullen Jennings 27 Jul 2020 · 3 revisions, Developer info
【4】Comparison of 3-D Coordinate Systems
【5】About Aerospace Coordinate Systems
其实就飞行器在空中飞行,比较重要的几大坐标系统:
- Geographic Coordinate System
- Navigation Coordinate System
- Body frame Coordinate System
注:矢量运算遵循的是右手系法则。
1. 坐标系统应用
这里针对BetaFlight/iNav/CleanFlight所使用的坐标系统罗列出来,方便理解实际代码操作中+/-问题。
1.1 Geographic Coordinate System: LLH, Longitude-Latitude-Height
Height: altitude above the mean sea level.
1.2 Navigation Coordinate System: xNorth-yEast-zUp, left-handed (LH) cartesian coordinate system
1.3 Body frame Coordinate System: xEast-yNorth-zUp, right-handed (RH) cartesian coordinate system
2. 实际飞控应用
实际飞控程序计算层面:
- 在垂直方向使用了Body frame(zUp) + Geographic(Altitude)
- 在水平方向使用了Body frame(xEast-yNorth) + Navigation(xNorth-yEast)
- 在误差方面使用了右手系叉乘运算
2.1 导航方向角
这里还是和BetaFlight深入传感设计之五:MahonyAHRS & 方向余弦矩阵理论中5.1章节中的问题一样,叉乘的结果没有问题,关键在于“Compute heading vector in EF from scalar CoG,x axis of accelerometer is pointing backwards.”,具体源由没有搞明白。
2.2 磁力计方向角
2.3 误差右手系
测量 → × 计算 → \\overrightarrow测量 \\times \\overrightarrow计算 测量×计算 = 误差 → \\overrightarrow误差 误差
注:归一化前提下。
3. 参考资料
【1】BetaFlight深入传感设计:传感模块设计框架
【2】BetaFlight深入传感设计之五:MahonyAHRS & 方向余弦矩阵理论
【3】BetaFlight深入传感设计之六:四元数计算方法
【4】BetaFlight深入传感设计之七:GPS&Baro高度数据融合
以上是关于BetaFlight深入传感设计之八:坐标系的主要内容,如果未能解决你的问题,请参考以下文章
BetaFlight深入传感设计之九:传感坐标系/机体坐标系/导航坐标系/经纬度坐标系