1. 认识你的无人机:四旋翼飞行原理、坐标系与姿态角

做飞控调参之前,先得搞清楚你手里这玩意儿到底怎么飞的。我见过不少新手上来就调PID,结果飞机乱转,连问题出在哪都不知道。说白了,你得先懂原理,再动手。

1.1 四旋翼怎么飞起来的?

四旋翼有四个电机,呈十字或X型布局。每个电机带动一个螺旋桨。相邻两个桨的旋转方向相反——一个顺时针,一个逆时针。这样做的目的是抵消反扭力矩,不然飞机会原地打转。

飞行的核心逻辑就四个字:改变升力。

  • 垂直运动:四个电机同时加速,升力大于重力,飞机上升;同时减速,下降。
  • 俯仰(前后):前两个电机转速变化,后两个保持或反向变化。机头下倾,向前飞;上仰,向后飞。
  • 横滚(左右):左边两个电机和右边两个电机产生转速差。飞机向左或向右倾斜。
  • 偏航(旋转):对角线上两个同向旋转的电机加速,另一对减速。利用反扭力差实现机身旋转。

核心要点:四旋翼是一个欠驱动系统。它只有四个输入(电机转速),却有六个自由度(三个位置 + 三个姿态)。所以飞控的核心任务就是通过控制姿态来间接控制位置。

我在项目里遇到过一个问题:电机装反了,结果解锁后飞机直接翻倒。嗯,检查电机旋转方向是装机第一步,千万别省。

1.2 坐标系:你得知道飞机在往哪偏

没有坐标系,你没法描述飞机的姿态。飞控里常用两个坐标系:机体坐标系和地理坐标系(也叫导航坐标系)。

机体坐标系(Body Frame)

这个坐标系固定在飞机上。原点在飞机重心。三根轴这样定义:

  • X轴:指向机头方向(前进方向)
  • Y轴:指向飞机右侧(右翼方向)
  • Z轴:指向飞机下方(符合右手定则)

说白了,你坐在飞机里,往前看就是X轴,右手边是Y轴,脚底下是Z轴。

地理坐标系(World Frame / NED)

这个坐标系固定在地面上。常用的是北东地(NED)坐标系:

  • X轴:指向正北
  • Y轴:指向正东
  • Z轴:指向地心(向下)

飞控里所有的导航计算、位置控制,都是在地理坐标系下完成的。而姿态控制、角速度控制,则在机体坐标系下完成。

我的习惯:调参时,我总会在心里把这两个坐标系分开。机体坐标系用来想“电机怎么转”,地理坐标系用来想“飞机往哪飞”。混在一起容易乱。

1.3 姿态角(欧拉角):描述飞机转了多少

欧拉角是描述刚体旋转最直观的方式。它用三个角度来表示从地理坐标系到机体坐标系的旋转:横滚角(Roll)、俯仰角(Pitch)、偏航角(Yaw)。

角度 旋转轴 范围 物理意义
横滚角 φ (Roll) 绕X轴(机头方向) -180° ~ 180° 飞机左右倾斜的程度。右倾为正。
俯仰角 θ (Pitch) 绕Y轴(右侧方向) -90° ~ 90° 飞机抬头或低头的程度。抬头为正。
偏航角 ψ (Yaw) 绕Z轴(向下方向) -180° ~ 180° 或 0° ~ 360° 飞机机头指向与正北的夹角。右转为正。

旋转顺序很重要。飞控里通常采用Z-Y-X顺序(先偏航,再俯仰,最后横滚)。顺序不同,最终姿态也不同。我刚开始学的时候没注意这个,算出来的姿态跟实际对不上,查了半天才发现是旋转顺序搞错了。

避坑指南:欧拉角有一个致命问题——万向锁(Gimbal Lock)。当俯仰角接近±90°时,横滚和偏航会失去一个自由度,导致姿态解算异常。所以飞控内部通常用四元数做姿态解算,只在给用户展示或做简单控制时才转成欧拉角。我曾经在调试一个特技飞行动作时,飞机几乎垂直向下俯冲,欧拉角直接跳变,差点炸机。从那以后,我坚持在核心控制回路里只用四元数。

1.4 知识体系总览

下面这张图把本章的核心逻辑串起来了。你可以把它当作后续调参的思维导图。

四旋翼飞行原理与坐标系知识体系 四旋翼飞行原理与坐标系知识体系 四旋翼飞行原理 飞行控制方式 坐标系定义 姿态角(欧拉角) 垂直运动 俯仰/横滚 偏航旋转 机体坐标系 地理坐标系 横滚角 Roll 俯仰角 Pitch 偏航角 Yaw 核心逻辑:通过改变四个电机的转速差 → 控制姿态角 → 实现空间运动 注意:飞控内部使用四元数避免万向锁,欧拉角仅用于人机交互和简单控制

1.5 本章小结

这一章我们搞清楚了三个核心问题:

  1. 四旋翼怎么飞——靠四个电机的转速差产生力矩,改变姿态,进而改变位置。
  2. 坐标系怎么定义——机体坐标系跟着飞机转,地理坐标系固定在地面。两者之间的转换是姿态解算的基础。
  3. 欧拉角是什么——三个角度描述姿态,直观但存在万向锁问题。飞控内部用四元数,展示用欧拉角。

个人建议:如果你刚开始接触飞控,先把坐标系和欧拉角的概念刻在脑子里。后面调PID、做滤波、写控制律,全都绕不开这些东西。我见过太多人跳过基础直接调参,结果连日志里的角度数据都看不懂。地基打牢,后面才走得稳。