从零开始学习betaflight《5-坐标系》

目录

文章目录

  • 目录
  • 摘要
  • [1. betaflight 坐标系](#1. betaflight 坐标系)
    • [1.1 机体坐标系 Body Frame(BF 标准,原点:飞行器重心)](#1.1 机体坐标系 Body Frame(BF 标准,原点:飞行器重心))
    • [1.2 地理 / 导航坐标系(Earth / Navigation Frame)](#1.2 地理 / 导航坐标系(Earth / Navigation Frame))
  • [2. betaflight 欧拉角定义](#2. betaflight 欧拉角定义)
  • [3. 关键易错对比表](#3. 关键易错对比表)
  • [4. 坐标系变换简要关系](#4. 坐标系变换简要关系)
  • [5. IMU 传感器坐标系 ≠ 机体坐标系](#5. IMU 传感器坐标系 ≠ 机体坐标系)
  • [6. 总结](#6. 总结)

摘要

本节主要记录从零开始学习betaflight《5-坐标系》,只有掌握了这个才能更好的看懂驱动及导航控制的整个细节实现,特别是为什么IMU那样放置,为什么要旋转,这些都和坐标系有联系,betaflight中有两套重要的坐标系,机体坐标系和导航坐标系。

1. betaflight 坐标系

  • Betaflight / iNav:机体系 BODY (前 - 左 - 上),导航系 ENU(东北天),和传统航空标准不一样,极易踩坑。
  • PX4/ArduPilot:FRD / NED;

1.1 机体坐标系 Body Frame(BF 标准,原点:飞行器重心)

X 轴(Roll 横滚轴):指向机头(向前 Forward)

✅ 绕 X 正方向旋转 → 向右横滚 Roll+(机身向右倾斜)

Y 轴(Pitch 俯仰轴):指向机身左侧(Left)

✅ 绕 Y 正方向旋转 → 机头向下俯冲 Pitch+

Z 轴(Yaw 偏航轴):垂直机身向上(Up)

✅ 绕 Z 正方向旋转 → 机头向右偏航 Yaw+(顺时针)

cpp 复制代码
一句话速记:前 (X)、左 (Y)、上 (Z)
❗⚠️ 传统航空 FRD 是【前 - 右 - 下】,BF 是【前 - 左 - 上】,Y、Z 全部反向!
cpp 复制代码
机体角速度正负(陀螺仪输出)
gyro.x > 0:向右滚
gyro.y > 0:低头俯冲
gyro.z > 0:机头顺时针右转

Betaflight 导航、姿态解算外部参考基准:ENU(East-North-Up 东北天,右手系)

原点:起飞点水平面

X_E:东 East

Y_N:北 North

Z_U:天 Up(远离地面,重力反方向)

  • 注意:
    很多惯性导航教材、PX4 使用 NED(北东地),二者 Z 轴完全反向,坐标系顺序不同,矩阵转换必须注意符号。

2. betaflight 欧拉角定义


姿态角含义(地面站看到的 Roll/Pitch/Yaw):

  • Yaw(ψ 偏航):机体 Z 轴在水平面投影与正北夹角
    Yaw=0°:机头朝北
    Yaw 增加:机头顺时针转向东
  • Pitch(θ 俯仰):机身 X 轴相对水平面倾角
    Pitch > 0:机头向下(这里和apm,px4的相反)
  • Roll(ϕ 横滚):机身绕机头 X 轴倾斜
    Roll > 0:机身向右倾斜

3. 关键易错对比表



4. 坐标系变换简要关系



5. IMU 传感器坐标系 ≠ 机体坐标系


飞控板上芯片原始坐标轴是Sensor Frame。

Betaflight 配置页 Board Alignment(板子旋转)作用:

把 IMU 原始传感器坐标系 → 转换到标准【前 - 左 - 上】机体坐标系。

箭头朝前平放时,IMU 默认对齐 CW0_DEG 满足:

Sensor.X → Body.X(向前)、Sensor.Y→Body.Y(向左)、Sensor.Z→Body.Z(向上)。


6. 总结


  1. 注意bf和apm,px4机体坐标系和地理坐标系差异
  2. 注意传感器坐标系和机体坐标系如何对齐
相关推荐
an12321212 小时前
ARM嵌入式学习笔记:SPI通信协议详解
arm开发·笔记·学习
by209992 小时前
从结构体到对象:正式学习C++类的骨架、封装与this指针
c++·经验分享·学习
乌暮3 小时前
深入理解 Java 泛型:把「万能盒子」用对、用稳
java·开发语言·后端·学习
小雪崩4 小时前
嵌入式学习 day60:ARM汇编——触摸屏与SPI
汇编·arm开发·学习
问天_观心5 小时前
大模型训练与推理优化(二)
人工智能·深度学习·学习·大模型·transformer
海海不掉头发6 小时前
软件项目管理学习笔记-从软件危机到敏捷与DevOps
笔记·学习·devops
传奇开心果编程6 小时前
【SwiftUI入门练中学】第7课 动画与手势:让界面更灵动
学习·macos·ui·ios·swiftui·swift
幼儿园蛋小黄7 小时前
SPI 多点触摸屏学习嵌入式总结
学习
dadaobusi7 小时前
学习:顶点着色器输出后,三角形为什么是四个分量
学习
lengxuenong7 小时前
枚举及其优化学习手册
c++·学习·算法·青少年编程