第一章:无人机系统概述

各位同学,欢迎来到《无人机轨迹跟踪与路径规划算法实战》的第一课。

我是你们这门课的主讲人。在无人机这个行当摸爬滚打了十几年,从最早的航模折腾到现在的工业级无人机,踩过的坑确实不少。今天咱们先不急着写代码,把地基打牢。第一章,我们来聊聊无人机的“家底”——分类、飞行原理、坐标系,还有那个让无数新手头疼的姿态表示。

1.1 无人机分类:别傻傻分不清

很多人一提到无人机,脑子里就是大疆的航拍机。其实,无人机家族大得很。我个人习惯按平台构型来分,这样最直观。

  • 固定翼无人机:像个小飞机。优点是续航长、速度快。缺点是不能悬停,起飞降落需要跑道或弹射。我在做测绘项目时,大面积巡检首选它。
  • 旋翼无人机:最常见的就是四旋翼。能悬停、能垂直起降,灵活得很。缺点是续航短,抗风性一般。说白了,城市里拍个照、做个小范围巡检,它最合适。
  • 混合构型无人机:比如倾转旋翼机。既有固定翼的航程,又有旋翼的悬停能力。结构复杂,控制难度大。我记得有一次调试倾转机构,差点把电机烧了,嗯,这里要注意机械限位。
我的建议:初学者入门,先玩四旋翼。控制简单,资料多,炸机了维修成本也低。别一上来就搞倾转旋翼,那玩意儿是给老手准备的。

1.2 飞行原理:它凭什么能飞起来?

你想想看,一个几公斤的铁疙瘩,凭什么能悬在半空中?核心就四个字:力的平衡

对于四旋翼来说,四个电机带动螺旋桨旋转,产生向上的拉力。当总拉力等于重力时,它就悬停了。当拉力大于重力,它就上升;反之则下降。

那怎么转弯呢?靠的是扭矩。对角线的两个电机同向旋转,相邻的电机反向旋转。通过改变不同电机的转速,就能产生俯仰、滚转和偏航的力矩。

举个例子:你想让无人机往前飞。那就让后面的两个电机转速加快,前面的两个电机转速减慢。这样机身就会前倾,拉力产生一个水平分量,飞机就往前走了。是不是很简单?

核心公式(简化版):
拉力 F = k * ω² (k是螺旋桨系数,ω是电机转速)
扭矩 M = b * ω² (b是阻力系数)
说白了,控制无人机就是控制四个电机的转速。

1.3 坐标系定义:别让你的飞机“迷路”

做路径规划,最怕坐标系搞混。我在项目中见过太多因为坐标系定义不清,导致飞机飞丢的案例。这里有两个最重要的坐标系,必须刻在脑子里。

  • 地球坐标系(NED系):也叫导航坐标系。原点在地面某点,X轴指向北,Y轴指向东,Z轴指向地心。这是你规划路径的参考系。
  • 机体坐标系(Body系):原点在飞机重心。X轴指向机头,Y轴指向右翼,Z轴指向机身下方。这是传感器测量的参考系。

所有的控制算法,本质上都是在做一件事:把机体坐标系下的测量值,转换到地球坐标系下进行控制。这个转换,就需要用到姿态表示。

1.4 姿态表示方法:欧拉角与四元数

这是本章的重头戏。姿态,说白了就是飞机相对于地球坐标系“转”了多少。

1.4.1 欧拉角:直观但有毒

欧拉角用三个角度来描述姿态:横滚角(Roll)、俯仰角(Pitch)、偏航角(Yaw)。非常直观,一看就懂。

比如:横滚角30度,就是飞机向右倾斜了30度。

但是!欧拉角有一个致命的缺陷——万向锁(Gimbal Lock)。当俯仰角达到±90度时,横滚和偏航会失去一个自由度,导致姿态解算失败。

避坑指南:我曾经在做一个特技飞行的项目时,用了欧拉角做姿态插值。结果飞机在做筋斗动作时,姿态突然跳变,差点失控。从那以后,凡是涉及大角度机动,我坚决不用欧拉角。

1.4.2 四元数:工程师的“瑞士军刀”

四元数是一个超复数,形式为 q = w + xi + yj + zk。它没有万向锁问题,计算效率高,插值平滑。说白了,它是目前无人机姿态解算的工业标准。

你不需要完全理解四元数的数学推导,但必须会用。这里给出一个最常用的转换——四元数转旋转矩阵,用于将机体坐标系的向量转换到地球坐标系:

// 四元数转旋转矩阵 (C语言风格)
// 输入: 四元数 q = [w, x, y, z]
// 输出: 3x3 旋转矩阵 R

float R[3][3];
R[0][0] = 1 - 2*y*y - 2*z*z;
R[0][1] = 2*x*y - 2*w*z;
R[0][2] = 2*x*z + 2*w*y;

R[1][0] = 2*x*y + 2*w*z;
R[1][1] = 1 - 2*x*x - 2*z*z;
R[1][2] = 2*y*z - 2*w*x;

R[2][0] = 2*x*z - 2*w*y;
R[2][1] = 2*y*z + 2*w*x;
R[2][2] = 1 - 2*x*x - 2*y*y;

有了这个矩阵,你就可以把机体坐标系下的加速度、磁场等数据,轻松转换到地球坐标系下了。

1.4.3 欧拉角与四元数的互转

虽然我们推荐用四元数,但调试时看欧拉角更直观。所以互转函数必须会写。

转换方向 公式
欧拉角 → 四元数 q = f(Roll, Pitch, Yaw) // 涉及半角公式,建议直接查库
四元数 → 欧拉角 Roll = atan2(2*(w*x+y*z), 1-2*(x*x+y*y))
Pitch = asin(2*(w*y-z*x))
Yaw = atan2(2*(w*z+x*y), 1-2*(y*y+z*z))
我的习惯:在飞控代码里,内部运算全部用四元数。只在日志记录和地面站显示时,才转成欧拉角给人看。这样既保证了计算稳定性,又方便调试。

好了,第一章的内容就到这里。这一章我们理清了无人机的分类、飞行原理、坐标系,以及欧拉角和四元数的区别。这些都是后面所有算法的基础。下一章,我们将正式进入轨迹跟踪的核心——PID控制。到时候,我会带大家手写一个简单的姿态控制器。

记住:基础不牢,地动山摇。把这些概念吃透了,后面的路会顺很多。