BetaFlight深入传感设计之八:坐标系

2023-05-16

BetaFlight深入传感设计之八:坐标系

  • 1. 坐标系统应用
    • 1.1 Geographic Coordinate System: LLH, Longitude-Latitude-Height
    • 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. 实际飞控应用
    • 2.1 导航方向角
    • 2.2 磁力计方向角
    • 2.3 误差右手系
  • 3. 参考资料

关于坐标系、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

其实就飞行器在空中飞行,比较重要的几大坐标系统:

  1. Geographic Coordinate System
  2. Navigation Coordinate System
  3. Body frame Coordinate System

注:矢量运算遵循的是右手系法则。

1. 坐标系统应用

这里针对BetaFlight/iNav/CleanFlight所使用的坐标系统罗列出来,方便理解实际代码操作中+/-问题。

1.1 Geographic Coordinate System: LLH, Longitude-Latitude-Height

Height: altitude above the mean sea level.
LLH, Longitude-Latitude-Height

1.2 Navigation Coordinate System: xNorth-yEast-zUp, left-handed (LH) cartesian 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

xEast-yNorth-zUp, right-handed (RH) cartesian coordinate system

2. 实际飞控应用

实际飞控程序计算层面:

  1. 在垂直方向使用了Body frame(zUp) + Geographic(Altitude)
  2. 在水平方向使用了Body frame(xEast-yNorth) + Navigation(xNorth-yEast)
  3. 在误差方面使用了右手系叉乘运算

2.1 导航方向角

这里还是和BetaFlight深入传感设计之五:MahonyAHRS & 方向余弦矩阵理论中5.1章节中的问题一样,叉乘的结果没有问题,关键在于“Compute heading vector in EF from scalar CoG,x axis of accelerometer is pointing backwards.”,具体源由没有搞明白。

注:有兴趣的朋友可以看下这里的分析BetaFlight深入传感设计之九:传感坐标系/机体坐标系/导航坐标系/经纬度坐标系

导航方向角

2.2 磁力计方向角

磁北方向角

2.3 误差右手系

测量 → × 计算 → \overrightarrow{测量} \times \overrightarrow{计算} 测量 ×计算 = 误差 → \overrightarrow{误差} 误差

注:归一化前提下。

误差右手系

3. 参考资料

【1】BetaFlight深入传感设计:传感模块设计框架
【2】BetaFlight深入传感设计之五:MahonyAHRS & 方向余弦矩阵理论
【3】BetaFlight深入传感设计之六:四元数计算方法
【4】BetaFlight深入传感设计之七:GPS&Baro高度数据融合

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BetaFlight深入传感设计之八:坐标系 的相关文章

随机推荐