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

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

  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.

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. 实际飞控应用

实际飞控程序计算层面:

  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.”,具体源由没有搞明白。

2.2 磁力计方向角

2.3 误差右手系

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

注:归一化前提下。

3. 参考资料

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

以上是关于BetaFlight深入传感设计之八:坐标系的主要内容,如果未能解决你的问题,请参考以下文章

BetaFlight深入传感设计之九:传感坐标系/机体坐标系/导航坐标系/经纬度坐标系

BetaFlight深入传感设计之五:MahonyAHRS & 方向余弦矩阵理论

BetaFlight模块设计之十:磁力计任务分析

BetaFlight深入传感设计:传感模块设计框架

BetaFlight深入传感设计:传感模块设计框架

BetaFlight深入传感设计之二:Mag传感模块