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.

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

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

2.2 磁力计方向角

2.3 误差右手系

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

注:归一化前提下。

3. 参考资料

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

BetaFlight深入传感设计之八:坐标系相关推荐

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

    BetaFlight深入传感设计之九:传感坐标系/机体坐标系/导航坐标系/经纬度坐标系 1. 问题症结 2. 入手分析 2.1 传感坐标系 2.2 机体坐标系 2.3 导航坐标系 2.4 经纬坐标系 ...

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

    BetaFlight深入传感设计:传感模块设计框架 1. BetaFlight传感器简介 2. BetaFlight传感器嵌入式软件设计 3. HwPreInit/HwInit阶段 4. HwIo阶段 ...

  3. BetaFlight深入传感设计之十:传感器物理特性方向对齐

    BetaFlight深入传感设计之十:传感器物理特性方向对齐 1. 对齐定义 2. 常见对齐方式 3. 自定义对齐方式 4. 总结 5. 参考资料 6. 补充:gyro + mag对齐方式 AHRS( ...

  4. BetaFlight深入传感设计之六:四元数计算方法

    BetaFlight深入传感设计之六:四元数计算方法 1. 四元数理论 1.1 定义 1.2 基本运算 1.2.1 矢量加减 1.2.2 标量乘法 1.3 矢量点叉乘 1.3.1 矢量点乘 1.3.2 ...

  5. BetaFlight深入传感设计之四:GPS传感模块

    BetaFlight深入传感设计之四:GPS传感模块 1. HwPreInit/HwInit阶段 1.1 [业务HwPreInit]gpsInit 1.2 [业务HwInit]gpsInitHardw ...

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

    BetaFlight深入传感设计之五:MahonyAHRS & 方向余弦矩阵理论 1. 基础预备知识 1.1 机体坐标系 1.2 欧拉角 1.2.1 概念解释 1.2.2 动态概念 1.2.3 ...

  7. BetaFlight深入传感设计之三:IMU传感模块

    BetaFlight深入传感设计之三:IMU传感模块 1. HwPreInit/HwInit阶段 1.1 [业务HwPreInit]gyroPreInit 1.2 [业务HwInit]gyroInit ...

  8. BetaFlight深入传感设计之七:GPSBaro高度数据融合

    BetaFlight深入传感设计之七:GPS&Baro高度数据融合 1. 现象 2. 分析 2.1 程序逻辑 2.2 GPS精度 2.3 数值分析 3. 总结 传感器数据融合最主要的目的是为了 ...

  9. BetaFlight模块设计之八:GPS任务分析

    BetaFlight模块设计之八:GPS任务分析 GPS任务 gpsUpdate函数分析 gpsNewData函数分析 gpsNewFrame函数分析 onGpsNewData 函数分析 基于Beta ...

最新文章

  1. List再整理,从代码底层全面解析List(看完后保证收获满满)
  2. 华为秘密作战计划曝光,重注研发AI芯片挑战英伟达,轮值董事长挂帅
  3. 会计有必要学python吗-工作三年却被实习生抢了饭碗,学会Python到底有多吃香?...
  4. ESPCMS基本导航操作
  5. Sonya and Queries CodeForces - 714C
  6. Spring 的 BeanFactory 和 FactoryBean 傻傻分不清?
  7. vscode 新建cpp文件_Visual Studio Code (vscode)编译C++
  8. 【Python】30天进阶Python!这个Github项目你值得拥有!
  9. Boost:清理cleanup测试程序
  10. c 正则表达式替换html,正则表达式替换html元素属性的方法
  11. JavaScript跳转到页面某个锚点#
  12. 支付宝小程序面向个人开发者公测
  13. 系统分析师视频教程下载
  14. Qt的特性——信号和槽
  15. 火爆全球的区块链到底是怎么一回事?一文带你看懂
  16. 易语言大漠透明图制作与使用
  17. 解读 AppStore 新功能:自定义产品页面和 A/B Test 工具
  18. 【小技巧】苹果手机获取UDID的方法【两种UID的获取方法,非常实用】
  19. vue项目+高德地图
  20. 2.3 万 Star!直追微软 Visio,这个简洁实用的在线绘图工具必须推荐给你

热门文章

  1. 基于单片机的防盗门窗系统设计(#0451)
  2. KDJ如何找买卖点?KDJ买卖运用实战图解
  3. 第一篇:SLAM-Gmapping 代码阅读(源码详细注释)
  4. websocket+php socket实现聊天室
  5. 【UI设计】—界面设计原则
  6. http://jingyan.baidu.com/album/d8072ac47baf0eec95cefdca.html?picindex=4
  7. 不用计算机怎么连接无线,电脑不用网线怎么连接无线网 不用无线网卡连接WiFi教程...
  8. uvalive 4997 ABCD Tiles
  9. 考研英语词汇文章3-Salt
  10. java数据结构家族族谱_java数据结构41:家谱处理