从零开始学习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. 注意传感器坐标系和机体坐标系如何对齐
相关推荐
春风解人意12 分钟前
从零开始学习嵌入式P32----网络基础之TCP
c语言·网络·学习·tcp/ip
传奇开心果编程2 小时前
【Rust入门知识点学与练】第21课:Trait 进阶 Advanced Traits
开发语言·学习·rust
水巷石子2 小时前
备考系统架构设计师第一天
学习·架构·软考·设计·考试
是隼人3 小时前
buuctf-pwn inndy_echo(32位fmt)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
xian_wwq4 小时前
【学习笔记】深度认知系列-第16讲-提示词工程
人工智能·笔记·学习
洛阳纸贵4 小时前
MATLAB-matlab基础知识
学习·算法·matlab
Vcaker4 小时前
Linux学习25-harbor私有仓库部署
linux·运维·学习
留白_4 小时前
【tableau入门学习】5、筛选器、参考线和集
学习·tableau
youm20034 小时前
认识Redis
redis·笔记·学习
亮工硬件5 小时前
1-11 STM32内部FLASH(数据掉电保存)
笔记·stm32·单片机·嵌入式硬件·学习