2、无人机基础与坐标系:机体坐标系、地面坐标系、欧拉角与四元数、旋转矩阵、常用单位与转换方法
无人机飞控系统的核心任务之一,是实时、准确地描述无人机在三维空间中的姿态与位置。无论是姿态解算、导航定位,还是轨迹跟踪控制,都离不开一套严谨的坐标系定义与数学表达工具。本章将系统梳理无人机开发中最基础的坐标系体系(机体坐标系与地面坐标系)、姿态描述方法(欧拉角、四元数、旋转矩阵),以及工程中常用的单位与转换流程。这些内容构成了飞控算法(如互补滤波、卡尔曼滤波、PID控制)的数学地基,理解不透彻将直接导致姿态解算发散、控制发散甚至飞行器失控。
2.1 核心原理:两大坐标系的定义与物理意义
无人机飞控中涉及的所有运动学与动力学方程,都必须明确参考系。工程上最常用的是地面坐标系(NED,North-East-Down)与机体坐标系(BRF,Body Reference Frame)。地面坐标系的原点通常取起飞点或无人机重心在地面的投影,X轴指向正北,Y轴指向正东,Z轴垂直向下,构成右手直角坐标系。该坐标系是导航、定位、航迹规划的统一基准,GPS/RTK输出的经纬高数据最终都会转换到NED系下参与位置环控制。
机体坐标系的原点固定在无人机重心,X轴沿机体纵轴指向机头,Y轴垂直于X轴指向右翼,Z轴垂直于机体平面指向下方。IMU(惯性测量单元)中的加速度计与陀螺仪直接测量的是机体坐标系下的物理量,因此所有传感器原始数据都必须经过坐标变换才能用于导航与控制。两个坐标系之间的转换关系由姿态决定,而姿态的数学表达正是本章的核心。
2.2 姿态描述方法:欧拉角、旋转矩阵与四元数
姿态描述本质上是确定机体坐标系相对于地面坐标系的旋转关系。工程中主要有三种表达方式,各有优劣,飞控开发中往往需要频繁切换。
2.2.1 欧拉角(Roll, Pitch, Yaw)
欧拉角通过三次绕不同轴的旋转来描述姿态,飞控中约定使用Z-Y-X内旋顺序(即先偏航、再俯仰、最后横滚)。具体定义为:
- 偏航角 Yaw (ψ):绕地面系Z_N轴旋转,范围通常为 [-π, π] 或 [0, 2π];
- 俯仰角 Pitch (θ):绕旋转后的Y'轴旋转,范围 [-π/2, π/2];
- 横滚角 Roll (φ):绕再次旋转后的X''轴旋转,范围 [-π, π]。
欧拉角的优点是物理意义直观,便于人机交互与调试。但其存在著名的万向节锁(Gimbal Lock)问题:当俯仰角接近 ±90° 时,横滚与偏航的旋转轴重合,导致自由度丢失,姿态解算出现奇异。因此,欧拉角通常仅用于显示与参数记录,不用于内部姿态递推。
2.2.2 旋转矩阵(Direction Cosine Matrix, DCM)
旋转矩阵是一个 3×3 的正交矩阵,记为 R,它将机体坐标系下的向量映射到地面坐标系:v_N = R · v_B。由Z-Y-X顺序生成的旋转矩阵为:
R = Rz(ψ) · Ry(θ) · Rx(φ)
其中:
Rz(ψ) = [cosψ -sinψ 0; sinψ cosψ 0; 0 0 1]
Ry(θ) = [cosθ 0 sinθ; 0 1 0; -sinθ 0 cosθ]
Rx(φ) = [1 0 0; 0 cosφ -sinφ; 0 sinφ cosφ]
旋转矩阵无奇异问题,且可以直接用于向量旋转,但包含9个元素,存在冗余,且多次连续旋转后需正交化修正,计算量较大。在飞控中,DCM常用于将加速度计测量的比力从机体系转换到地面系,以便进行速度与位置积分。
2.2.3 四元数(Quaternion)
四元数是一种超复数,表示为 q = q0 + q1·i + q2·j + q3·k,其中 q0 为标量部分,[q1, q2, q3] 为矢量部分。单位四元数满足 q0² + q1² + q2² + q3² = 1,可描述刚体绕任意轴 n̂ 旋转角度 θ:
q = [cos(θ/2), sin(θ/2)·n̂x, sin(θ/2)·n̂y, sin(θ/2)·n̂z]
四元数避免了欧拉角的万向节锁问题,且仅需4个参数,无冗余,非常适合计算机递推。飞控中姿态解算(如互补滤波、Mahony算法、EKF)普遍使用四元数作为姿态状态量。四元数乘法可表示旋转合成,且归一化操作简单(除以模长),保证了数值稳定性。
| 描述方法 | 参数个数 | 奇异问题 | 计算效率 | 工程应用场景 |
|---|---|---|---|---|
| 欧拉角 | 3 | 有(万向节锁) | 高(三角函数) | 地面站显示、遥控器输入、姿态指令生成 |
| 旋转矩阵 | 9 | 无 | 中(矩阵乘法) | 向量坐标变换、加速度计数据投影 |
| 四元数 | 4 | 无 | 高(四则运算) | 姿态解算核心、控制律内部状态、滤波递推 |
2.3 判断方法与操作流程:姿态转换的工程实现
在飞控代码中,姿态转换是高频操作。以下给出标准流程与关键判断准则。
- 传感器数据读取:从IMU获取原始角速度 (p, q, r) 与加速度 (ax, ay, az),单位分别为 rad/s 与 m/s²。
- 姿态初始化:上电时通过加速度计静态对齐估算初始横滚与俯仰角,通过磁力计或外部航向参考获取初始偏航角,生成初始四元数。
- 姿态递推:使用陀螺仪角速度通过四元数微分方程更新姿态:
其中 ⊗ 表示四元数乘法。实际代码中采用一阶或二阶龙格-库塔积分。dq/dt = 0.5 · q ⊗ [0, p, q, r] - 姿态校正:利用加速度计测量的重力方向与四元数推算的重力方向之间的误差,通过PI控制器修正陀螺仪漂移(即互补滤波的核心思想)。
- 坐标转换:将加速度计数据从机体系转换到地面系:
其中 R(q) 由四元数生成旋转矩阵。a_NED = R(q) · a_body - 单位统一:确保所有角速度统一为 rad/s,角度统一为 rad,加速度统一为 m/s²。若外部输入为角度(如遥控器通道),需先转换为弧度。
2.4 案例拆解:基于四元数的姿态解算与坐标转换实战
以某四旋翼开发项目为例,飞控主控采用STM32F405,IMU为MPU6000(陀螺仪量程 ±2000°/s,加速度计量程 ±8g)。系统上电后,地面站发送解锁指令,飞控进入姿态模式。
初始现象:无人机在地面静止时,地面站显示的Roll/Pitch角在 ±2° 范围内波动,但Yaw角缓慢漂移,约每分钟增加 0.5°。飞行时,飞机出现“低头”现象,且水平位置漂移明显。
关键数据与参数:
- 陀螺仪零偏:±0.05 °/s(出厂值),但实际温度变化后达 ±0.2 °/s;
- 加速度计噪声:0.01 g RMS;
- 控制频率:500 Hz;姿态解算频率:1000 Hz。
分析判断过程:Yaw漂移主要源于陀螺仪Z轴零偏未完全补偿,且磁力计未参与融合。低头现象则是因为加速度计在机体坐标系下的重力分量投影到地面系时,由于姿态误差导致水平加速度计算错误,进而使速度环产生虚假反馈。
实际操作步骤:
- 在静止状态下采集1000组陀螺仪数据,计算平均零偏并写入校准参数;
- 将姿态解算中的陀螺仪积分改为:
gyro_bias += 0.001 * error_acc; // 互补滤波积分项 gyro_corrected = gyro_raw - gyro_bias; - 将加速度计数据通过旋转矩阵投影到NED系,并减去重力分量 [0, 0, 9.80665];
- 在位置控制中,将水平加速度积分前先经过低通滤波(截止频率 20 Hz),抑制高频噪声。
结果对比:修改后,Yaw漂移降至每分钟 0.05° 以内;飞行中低头现象消失,水平位置漂移在10秒悬停测试中从 1.2m 降至 0.15m。
风险与代价:增加互补滤波积分项后,若加速度计受到剧烈振动(如桨叶不平衡),会导致姿态估计引入高频噪声。因此需在积分项前加入死区或动态权重调整。
复盘经验:坐标系转换的精度直接取决于姿态估计的准确性。工程中应优先保证陀螺仪零偏校准与四元数归一化,再考虑滤波算法复杂度。
2.5 常用单位与转换方法
飞控开发中单位错误是低级但致命的错误。以下列出最常用的单位转换关系:
| 物理量 | 常用单位 | 转换关系 | 典型场景 |
|---|---|---|---|
| 角度 | 度 (°) / 弧度 (rad) | rad = deg × π/180 ≈ deg × 0.01745 | 遥控器输入为角度,姿态控制内部用弧度 |
| 角速度 | °/s / rad/s | rad/s = °/s × π/180 | 陀螺仪输出为°/s,控制律需rad/s |
| 加速度 | g / m/s² | 1g = 9.80665 m/s² | 加速度计输出为g,导航计算用m/s² |
| 高度 | 米 (m) / 英尺 (ft) | 1m = 3.28084 ft | GPS高度为m,部分地面站显示ft |
| 速度 | m/s / km/h / knot | 1m/s = 3.6 km/h = 1.94384 knot | 空速管输出为m/s,航迹规划用km/h |
2.6 常见误区与总结复盘
在无人机飞控开发中,坐标系与姿态相关错误往往隐蔽且难以排查。以下列出高频误区:
- 误区一:混淆旋转方向。旋转矩阵 R 表示“从机体到地面”还是“从地面到机体”必须明确。PX4中使用 R_body_to_ned,而部分算法库使用 R_ned_to_body,两者互为转置。若搞反,会导致控制量反向,飞机会立即翻转。
- 误区二:欧拉角旋转顺序不一致。不同飞控可能采用不同的旋转顺序(如Z-Y-X或Z-X-Y)。在将欧拉角转换为四元数时,必须严格遵循约定顺序,否则姿态解算结果与真实姿态偏差巨大。
- 误区三:忽略四元数归一化。长时间运行后四元数模长漂移,导致旋转矩阵非正交,加速度投影产生误差。应在每次更新后执行 q = q / ||q||。
- 误区四:单位混用。将陀螺仪输出的 °/s 直接代入期望 rad/s 的控制律中,会导致角速度环增益缩小57.3倍,表现为飞机反应迟钝或振荡。
- 误区五:忽略重力补偿。在将加速度计数据用于位置估计时,必须减去重力分量 [0, 0, 9.80665](NED系下)。若未补偿,水平加速度计算将包含重力分量,导致速度发散。