低空经济与计算机技术深度手册
适用于:人大低空智能与智慧治理计算机方向复试准备
编制时间:2026年3月
文档性质:计算机技术专题深度汇编
目录
第一部分:嵌入式与飞控系统
第二部分:人工智能与机器学习
第三部分:感知与导航
第四部分:通信与网络
第五部分:系统架构与平台
第六部分:安全与可靠性
第七部分:前沿技术与应用
第八部分:研究热点与复试准备
第一部分:嵌入式与飞控系统
一、无人机飞控系统架构
1.1 飞控系统概述
无人机飞控系统(Flight Control System,FCS)是无人机的核心控制系统,负责控制无人机的姿态、位置、速度等飞行参数,实现稳定飞行和自主导航。飞控系统可以类比为无人机的"大脑"和"小脑",承担着感知处理、决策规划、控制执行等关键功能。
从计算机科学的角度看,飞控系统是一个典型的嵌入式实时控制系统,具有以下特点:
- 实时性强:需要在毫秒级时间内完成传感器数据采集、状态估计、控制律解算、执行机构驱动等任务
- 可靠性高:需要具备故障检测、容错处理、安全保护等能力
- 资源受限:需要在有限的计算资源、存储空间、功耗预算下完成复杂的控制任务
现代飞控系统已经从简单的姿态稳定控制发展到具备自主飞行能力的智能系统。这一演进过程体现了嵌入式系统、控制理论、人工智能等技术的深度融合。
1.2 硬件架构
飞控系统的硬件架构通常采用分层设计,包括感知层、计算层、执行层三个层次。
感知层
感知层负责采集无人机的状态信息和环境信息。主要传感器包括:
惯性测量单元(IMU):飞控系统的核心传感器,包含三轴加速度计和三轴陀螺仪,用于测量无人机的线加速度和角速度。IMU的数据更新率通常在100Hz-1000Hz之间,是飞控系统中采样率最高的传感器。
IMU数据格式示例:
- 加速度: ax, ay, az (m/s²)
- 角速度: wx, wy, wz (rad/s)
- 采样率: 100-1000 Hz
全球导航卫星系统(GNSS)接收机:提供无人机的绝对位置信息,包括GPS、北斗、GLONASS、Galileo等多系统支持。GNSS的定位精度通常在米级,通过差分技术(RTK)可以达到厘米级。
GNSS数据格式示例:
- 经度: longitude (度)
- 纬度: latitude (度)
- 高度: altitude (m)
- 速度: vn, ve, vd (m/s)
- 采样率: 1-10 Hz
气压计:用于测量大气压力,进而计算无人机的相对高度。气压高度计的精度通常在±1米左右。
磁力计:用于测量地磁场方向,提供航向参考。磁力计容易受到电机、电池等机载电子设备的干扰,需要校准和补偿。
距离传感器:包括超声波传感器、激光测距仪、毫米波雷达等,用于测量无人机与地面或障碍物的距离。
视觉传感器:包括单目相机、双目相机、深度相机等,用于环境感知和视觉导航。
计算层
计算层是飞控系统的核心,负责传感器数据处理、状态估计、控制律解算、任务规划等功能。计算层通常采用主从式架构:
主处理器:通常采用高性能ARM处理器(如STM32H7系列)或FPGA,负责实时控制任务。
典型主处理器规格:
- 内核: ARM Cortex-M7
- 主频: 400-480 MHz
- Flash: 1-2 MB
- RAM: 512 KB - 1 MB
- 外设: SPI, I2C, UART, CAN, PWM
协处理器:通常采用专用芯片或FPGA,负责图像处理、神经网络推理等计算密集型任务。随着边缘AI的发展,越来越多的飞控系统集成了NPU(神经网络处理单元)。
执行层
执行层负责执行飞控系统的控制指令,驱动无人机的运动。
电子调速器(ESC):控制电机的转速,是无人机动力系统的关键部件。现代ESC采用FOC(磁场定向控制)算法,可以实现精确的转矩控制。
ESC通信协议:
- PWM: 传统协议,1-2ms脉宽
- DShot: 数字协议,支持双向通信
- Multishot: 高速协议,响应更快
舵机:用于控制固定翼无人机的舵面偏转或多旋翼无人机的云台运动。
1.3 软件架构
飞控系统的软件架构通常采用分层模块化设计,包括硬件抽象层、中间件层、应用层三个层次。
┌─────────────────────────────────────────────────┐
│ 应用层 │
│ 任务管理器 │ 故障处理器 │ 日志记录器 │
├─────────────────────────────────────────────────┤
│ 中间件层 │
│ 传感器驱动 │ 状态估计 │ 控制律 │ 导航 │ 通信 │
├─────────────────────────────────────────────────┤
│ 硬件抽象层 (HAL) │
│ GPIO │ ADC │ PWM │ SPI │ I2C │ UART │ CAN │
├─────────────────────────────────────────────────┤
│ 硬件层 │
│ IMU │ GNSS │ 气压计 │ 磁力计 │ 电机 │ 舵机 │
└─────────────────────────────────────────────────┘
硬件抽象层(HAL)
HAL封装了底层硬件的访问接口,为上层软件提供统一的硬件服务:
- GPIO抽象:提供数字输入输出的统一接口
- ADC抽象:提供模数转换的统一接口
- PWM抽象:提供脉宽调制输出的统一接口
- 通信接口抽象:提供UART、SPI、I2C、CAN等通信接口的统一驱动
- 定时器抽象:提供定时器、计数器、PWM生成等功能的统一接口
中间件层
中间件层提供飞控系统的核心功能模块:
- 传感器驱动模块:负责各类传感器的初始化、数据采集、数据校准、数据滤波
- 状态估计模块:融合多传感器数据,估计无人机的姿态、位置、速度等状态
- 控制律模块:根据期望状态和当前状态计算控制指令
- 导航模块:负责航路点管理、路径规划、轨迹跟踪
- 通信模块:负责与地面站、其他无人机、云端平台的数据通信
应用层
应用层实现具体的飞行任务和用户功能:
- 任务管理器:负责飞行任务的调度和执行
- 故障处理器:负责故障检测、故障诊断、故障处理
- 日志记录器:负责飞行数据的记录和存储
- 参数管理器:负责飞控参数的存储和加载
1.4 数据流架构
飞控系统的数据流架构描述了数据在系统中的流动和处理过程:
传感器数据采集 → 数据预处理 → 状态估计 → 控制律解算 → 执行机构驱动
具体流程:
IMU(1kHz) ──┐
GNSS(5Hz) ──┼──→ 数据预处理 ──→ 状态估计(EKF) ──→ 控制律(PID) ──→ 混控 ──→ 电机
磁力计 ─────┤
气压计 ─────┘
传感器数据采集:各传感器以不同的采样率产生原始数据,需要打上时间戳以便时间同步。
数据预处理:对原始传感器数据进行滤波、校准、坐标变换等预处理。
状态估计:融合多传感器数据,估计无人机的完整状态向量(位置、速度、姿态、角速度)。
控制律解算:根据期望状态和当前状态,计算控制指令。通常采用级联结构: - 位置环(50-100Hz) - 速度环(50-100Hz) - 姿态环(250-500Hz) - 角速度环(500-1000Hz)
执行机构驱动:将控制指令转换为执行机构的驱动信号。对于多旋翼无人机,需要将控制指令分配到各个电机(混控)。
1.5 典型飞控系统对比
| 特性 | Pixhawk 4 | DJI N3 | CUAV V5+ |
|---|---|---|---|
| 主处理器 | STM32F765 | 未知 | STM32F765 |
| 协处理器 | STM32F100 | 未知 | STM32F100 |
| IMU | ICM20689 ×2 | 未知 | ICM20689 ×2 |
| 气压计 | MS5611 ×2 | 未知 | MS5611 ×2 |
| 支持固件 | PX4/ArduPilot | DJI专有 | PX4/ArduPilot |
| 价格 | 约$200 | 约$300 | 约$250 |
二、嵌入式系统与实时操作系统
2.1 嵌入式系统特点
无人机飞控系统是典型的嵌入式系统,具有以下特点:
资源受限: - 计算资源:CPU主频、核心数有限 - 存储资源:Flash、RAM容量有限 - 功耗预算:电池供电,功耗受限
实时性要求: - 硬实时系统:控制任务必须在严格的时间约束内完成 - 控制周期:通常1-4ms,超时可能导致失稳
可靠性要求: - 飞行安全:系统故障可能导致坠机 - 环境适应:需要适应温度变化、振动冲击、电磁干扰
2.2 实时操作系统基础
实时操作系统(RTOS)是飞控系统的软件基础,与通用操作系统的主要区别在于对实时性的保证。
RTOS核心特性:
- 确定性:任务的响应时间有确定的上界
- 优先级调度:高优先级任务可以抢占低优先级任务
- 快速响应:中断延迟和任务切换时间在微秒级
- 资源管理:提供信号量、互斥锁、消息队列等同步机制
调度算法:
优先级抢占式调度:
- 每个任务有固定优先级
- 就绪队列中优先级最高的任务获得CPU
- 高优先级任务就绪时,可以抢占低优先级任务
示例:
任务A (优先级1,最高) - 角速度控制 (1kHz)
任务B (优先级2) - 姿态控制 (500Hz)
任务C (优先级3) - 位置控制 (100Hz)
任务D (优先级4,最低) - 日志记录 (后台)
2.3 常用RTOS分析
FreeRTOS
FreeRTOS是最流行的开源RTOS之一,被广泛应用于无人机飞控系统。
特点: - 内核小巧:最小内核仅需几KB的ROM和RAM - 支持优先级抢占调度 - 提供任务管理、信号量、互斥锁、消息队列、软件定时器等核心功能 - 支持多种处理器架构(ARM Cortex-M、RISC-V等)
核心API:
// 任务创建
BaseType_t xTaskCreate(
TaskFunction_t pvTaskCode,
const char * const pcName,
uint16_t usStackDepth,
void *pvParameters,
UBaseType_t uxPriority,
TaskHandle_t *pxCreatedTask
);
// 信号量
SemaphoreHandle_t xSemaphoreCreateBinary(void);
BaseType_t xSemaphoreTake(SemaphoreHandle_t xSemaphore, TickType_t xTicksToWait);
BaseType_t xSemaphoreGive(SemaphoreHandle_t xSemaphore);
// 消息队列
QueueHandle_t xQueueCreate(UBaseType_t uxQueueLength, UBaseType_t uxItemSize);
BaseType_t xQueueSend(QueueHandle_t xQueue, const void *pvItemToQueue, TickType_t xTicksToWait);
BaseType_t xQueueReceive(QueueHandle_t xQueue, void *pvBuffer, TickType_t xTicksToWait);
NuttX
NuttX是一个类POSIX的实时操作系统,被Pixhawk系列飞控采用。
特点: - 提供完整的POSIX接口 - 支持多进程、多线程 - 支持文件系统、网络协议栈 - 内核可配置性强
2.4 任务调度设计
飞控系统的任务调度设计需要考虑实时性、优先级、资源竞争等因素:
任务优先级设计:
┌─────────────────────────────────────────────────────┐
│ 优先级1 (最高) │ IMU数据采集、角速度控制 (1kHz) │
├─────────────────────────────────────────────────────┤
│ 优先级2 │ 姿态估计、姿态控制 (500Hz) │
├─────────────────────────────────────────────────────┤
│ 优先级3 │ 位置估计、位置控制 (100Hz) │
├─────────────────────────────────────────────────────┤
│ 优先级4 │ 导航、任务管理 (50Hz) │
├─────────────────────────────────────────────────────┤
│ 优先级5 │ 通信处理 (50Hz) │
├─────────────────────────────────────────────────────┤
│ 优先级6 (最低) │ 日志写入、数据传输 (后台) │
└─────────────────────────────────────────────────────┘
优先级反转问题:
当低优先级任务持有高优先级任务所需的资源时,会导致高优先级任务被阻塞。
解决方案: - 优先级继承协议:低优先级任务继承等待资源的高优先级任务的优先级 - 优先级天花板协议:资源被占用时,任务优先级提升到预设的最高值
2.5 中断处理机制
中断处理是RTOS的关键机制,直接影响系统的实时响应能力。
中断处理原则:
- 中断服务程序(ISR)尽量短:ISR中只做最必要的处理,耗时处理放到任务中
- 使用中断安全的数据传输机制:如环形缓冲区、消息队列
- 合理设置中断优先级:高频率、高实时性要求的中断设为高优先级
// 典型的中断处理模式
void USART1_IRQHandler(void) // ISR
{
uint8_t data = USART1->DR;
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
// 将数据放入队列,唤醒处理任务
xQueueSendFromISR(xUartQueue, &data, &xHigherPriorityTaskWoken);
// 如果唤醒了更高优先级任务,触发上下文切换
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
void UART_Task(void *pvParameters) // 处理任务
{
uint8_t data;
while(1) {
xQueueReceive(xUartQueue, &data, portMAX_DELAY);
// 处理数据...
}
}
2.6 内存管理策略
嵌入式系统的内存资源有限,内存管理策略对系统性能和稳定性有重要影响。
静态内存分配: - 在编译时确定内存分配 - 优点:确定性高、无内存碎片、无分配失败风险 - 缺点:灵活性差、可能造成内存浪费 - 适用:关键数据结构
内存池: - 预先分配一块大内存,运行时分配固定大小的内存块 - 优点:分配速度快、无内存碎片 - 适用:消息缓冲区、数据包缓冲区
动态内存分配: - 运行时根据需要分配和释放内存 - 优点:灵活 - 缺点:可能产生内存碎片、分配时间不确定 - 注意:关键控制路径上应谨慎使用
三、开源飞控系统分析
3.1 PX4飞控系统
PX4是一个专业的开源飞控软件项目,由Dronecode联盟维护。
架构设计
PX4采用微内核架构思想,将系统划分为多个独立模块,通过uORB消息中间件进行通信。
PX4架构图:
┌─────────────────────────────────────────────────────────┐
│ 应用模块 │
│ Commander │ Navigator │ Mission │ Logger │
├─────────────────────────────────────────────────────────┤
│ 控制模块 │
│ mc_pos_control │ mc_att_control │ fw_pos_control │
├─────────────────────────────────────────────────────────┤
│ 估计模块 │
│ ekf2 │ attitude_estimator_q │
├─────────────────────────────────────────────────────────┤
│ 驱动模块 │
│ imu │ gps │ mag │ baro │ pwm_out │
├─────────────────────────────────────────────────────────┤
│ uORB消息中间件 │
├─────────────────────────────────────────────────────────┤
│ NuttX操作系统 │
└─────────────────────────────────────────────────────────┘
uORB消息中间件
uORB是PX4的核心组件,实现了发布-订阅模式的消息传递机制:
// 发布者
struct vehicle_attitude_s att;
orb_advert_t att_pub = orb_advertise(ORB_ID(vehicle_attitude), &att);
// 更新数据
orb_publish(ORB_ID(vehicle_attitude), att_pub, &att);
// 订阅者
int att_sub = orb_subscribe(ORB_ID(vehicle_attitude));
struct vehicle_attitude_s att;
// 检查更新
bool updated;
orb_check(att_sub, &updated);
// 读取数据
orb_copy(ORB_ID(vehicle_attitude), att_sub, &att);
主要模块
commander模块:系统状态管理,负责飞行模式切换、安全检查、故障处理
navigator模块:任务管理,负责航点导航、任务执行、返航
mc_pos_control模块:多旋翼位置控制器,实现位置环和速度环控制
mc_att_control模块:多旋翼姿态控制器,实现姿态环和角速度环控制
ekf2模块:扩展卡尔曼滤波器,实现状态估计
3.2 ArduPilot飞控系统
ArduPilot是另一个主流的开源飞控项目,支持多种飞行器类型。
架构设计
ArduPilot采用单体内核架构,所有模块编译为一个可执行文件:
ArduPilot架构:
┌─────────────────────────────────────────────────────────┐
│ 主循环 (400Hz) │
│ ┌─────────────────────────────────────────────────┐ │
│ │ 1. 读取传感器 │ │
│ │ 2. 运行AHRS (姿态估计) │ │
│ │ 3. 运行导航 │ │
│ │ 4. 运行控制 │ │
│ │ 5. 输出到电机 │ │
│ └─────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────┤
│ 后台任务 │
│ 日志 │ 通信 │ 参数 │ 任务 │
└─────────────────────────────────────────────────────────┘
主要类
AHRS (Attitude and Heading Reference System):姿态航向参考系统
AP_InertialNav:惯性导航系统
AC_AttitudeControl:姿态控制
AC_PosControl:位置控制
AP_Mission:任务管理
3.3 开源飞控对比
| 特性 | PX4 | ArduPilot |
|---|---|---|
| 架构 | 微内核,模块化 | 单体内核 |
| 操作系统 | NuttX | NuttX/Linux/SITL |
| 支持机型 | 多旋翼、固定翼、VTOL | 多旋翼、固定翼、直升机、地面车辆、船只 |
| 状态估计 | EKF2 | DCM/EKF2/EKF3 |
| 地面站 | QGroundControl | Mission Planner/QGroundControl |
| 学习曲线 | 较陡 | 较平缓 |
| 社区活跃度 | 高 | 高 |
3.4 ROS与无人机
ROS(Robot Operating System)是机器人领域的通用软件框架,在无人机开发中也有广泛应用。
ROS在无人机中的应用:
- 作为无人机的高级控制层,负责感知处理、路径规划、任务调度
- 飞控系统作为底层控制器,负责姿态稳定和位置控制
- ROS与飞控之间通过MAVLink协议通信
ROS2优势:
- 支持实时系统
- 支持DDS(数据分发服务)
- 支持多平台(Linux、Windows、RTOS)
- 安全性增强
四、飞行控制算法
4.1 姿态表示与坐标变换
姿态表示方法
欧拉角:使用三个角度(滚转角φ、俯仰角θ、偏航角ψ)描述姿态
优点:直观易懂
缺点:万向锁问题(当俯仰角为±90°时,滚转角和偏航角无法区分)
四元数:使用四个数(q0, q1, q2, q3)描述姿态
q = [q0, q1, q2, q3] = [cos(θ/2), sin(θ/2)*axis]
优点:无奇异性、计算效率高
约束:||q|| = 1(单位四元数)
方向余弦矩阵(DCM):使用3×3的正交矩阵描述姿态
DCM = [cθ*cψ, sφ*sθ*cψ-cφ*sψ, cφ*sθ*cψ+sφ*sψ]
[cθ*sψ, sφ*sθ*sψ+cφ*cψ, cφ*sθ*sψ-sφ*cψ]
[-sθ, sφ*cθ, cφ*cθ ]
优点:无奇异性
缺点:需要满足正交约束,计算量较大
坐标系定义
机体坐标系: - 原点:无人机质心 - x轴:指向机头方向(前方) - y轴:指向右侧 - z轴:指向机腹方向(下方)
导航坐标系(NED): - 原点:起飞点 - x轴:指向北 - y轴:指向东 - z轴:指向地心(向下)
坐标变换:
从机体坐标系到导航坐标系的旋转矩阵:
R_nb = Rz(ψ) * Ry(θ) * Rx(φ)
其中:
Rx(φ) = [1, 0, 0; 0, cos(φ), -sin(φ); 0, sin(φ), cos(φ)]
Ry(θ) = [cos(θ), 0, sin(θ); 0, 1, 0; -sin(θ), 0, cos(θ)]
Rz(ψ) = [cos(ψ), -sin(ψ), 0; sin(ψ), cos(ψ), 0; 0, 0, 1]
4.2 PID控制算法
PID控制器原理
PID控制是最经典的控制算法,结构简单、参数整定方便、鲁棒性强。
控制律:
u(t) = Kp * e(t) + Ki * ∫e(τ)dτ + Kd * de(t)/dt
离散形式:
u(k) = Kp * e(k) + Ki * Σe(j)*Δt + Kd * (e(k) - e(k-1))/Δt
各环节作用:
- 比例项(P):与误差成正比,提供主要控制作用
- 积分项(I):消除稳态误差,但可能导致积分饱和
- 微分项(D):提供阻尼作用,改善稳定性,但对噪声敏感
串级PID控制
飞控系统通常采用串级PID结构:
位置控制(外环,50-100Hz):
位置误差 → 期望速度
速度误差 → 期望姿态
姿态控制(中环,250-500Hz):
姿态误差 → 期望角速度
角速度误差 → 控制力矩
角速度控制(内环,500-1000Hz):
角速度误差 → 电机控制量
串级PID控制框图:
位置设定 ─→ [位置PID] ─→ 速度设定 ─→ [速度PID] ─→ 姿态设定
│
↓
[角速度PID] ←─ 角速度设定 ←─ [姿态PID]
│
↓
电机输出
PID参数整定
试凑法: 1. 先整定Kp,使系统有足够的响应速度 2. 再整定Kd,改善稳定性,减少超调 3. 最后整定Ki,消除稳态误差
Ziegler-Nichols法: 1. 将Ki和Kd设为零 2. 逐渐增大Kp直到系统开始振荡,记录临界增益Ku和振荡周期Tu 3. 根据经验公式计算参数: - Kp = 0.6 * Ku - Ki = 2 * Kp / Tu - Kd = Kp * Tu / 8
4.3 状态估计与卡尔曼滤波
卡尔曼滤波原理
卡尔曼滤波是一种最优递归滤波器,用于估计线性动态系统的状态。
状态空间模型:
状态方程:x(k+1) = A * x(k) + B * u(k) + w(k)
观测方程:z(k) = H * x(k) + v(k)
其中:
x(k):状态向量
u(k):控制输入
z(k):观测向量
w(k):过程噪声,协方差Q
v(k):观测噪声,协方差R
滤波步骤:
预测步骤:
x̂(k|k-1) = A * x̂(k-1|k-1) + B * u(k-1)
P(k|k-1) = A * P(k-1|k-1) * A^T + Q
更新步骤:
K(k) = P(k|k-1) * H^T * (H * P(k|k-1) * H^T + R)^(-1)
x̂(k|k) = x̂(k|k-1) + K(k) * (z(k) - H * x̂(k|k-1))
P(k|k) = (I - K(k) * H) * P(k|k-1)
扩展卡尔曼滤波(EKF)
对于非线性系统,使用泰勒展开线性化:
状态方程:x(k+1) = f(x(k), u(k)) + w(k)
观测方程:z(k) = h(x(k)) + v(k)
预测步骤:
x̂(k|k-1) = f(x̂(k-1|k-1), u(k-1))
P(k|k-1) = F * P(k-1|k-1) * F^T + Q
其中F是f在x̂(k-1|k-1)处的雅可比矩阵:
F = ∂f/∂x |_{x=x̂(k-1|k-1)}
更新步骤:
K(k) = P(k|k-1) * H^T * (H * P(k|k-1) * H^T + R)^(-1)
x̂(k|k) = x̂(k|k-1) + K(k) * (z(k) - h(x̂(k|k-1)))
P(k|k) = (I - K(k) * H) * P(k|k-1)
其中H是h在x̂(k|k-1)处的雅可比矩阵:
H = ∂h/∂x |_{x=x̂(k|k-1)}
无人机状态估计
无人机状态向量通常包括:
x = [位置, 速度, 姿态, 角速度, IMU零偏]^T
= [pn, pe, pd, vn, ve, vd, φ, θ, ψ, p, q, r, bax, bay, baz, bwx, bwy, bwz]^T
传感器融合:
- IMU:提供高频姿态和角速度测量
- GNSS:提供低频位置和速度测量
- 磁力计:提供航向参考
- 气压计:提供高度参考
4.4 高级控制算法
线性二次调节器(LQR)
LQR是一种最优控制方法,通过最小化二次型性能指标设计控制器:
性能指标:
J = ∫(x^T * Q * x + u^T * R * u) dt
最优控制律:
u = -K * x
其中K通过求解Riccati方程得到:
A^T * P + P * A - P * B * R^(-1) * B^T * P + Q = 0
K = R^(-1) * B^T * P
模型预测控制(MPC)
MPC在每个控制周期求解有限时域优化问题:
优化问题:
min J = Σ(x(k+i)^T * Q * x(k+i) + u(k+i)^T * R * u(k+i))
s.t. x(k+i+1) = f(x(k+i), u(k+i))
x_min ≤ x(k+i) ≤ x_max
u_min ≤ u(k+i) ≤ u_max
优点:
- 可以显式处理约束
- 适合复杂约束控制问题
缺点:
- 计算量大,需要高效优化求解器
第二部分:人工智能与机器学习
五、深度学习在无人机中的应用
5.1 深度学习概述
深度学习是机器学习的一个分支,通过多层神经网络学习数据的层次化表示。在无人机领域,深度学习主要应用于:
- 环境感知:目标检测、图像分割、场景理解、深度估计
- 自主导航:端到端学习、模仿学习、强化学习
- 智能决策:任务规划、行为决策、多机协同
- 数据分析:遥感图像分析、数据挖掘、异常检测
5.2 目标检测算法
两阶段检测器
Faster R-CNN:
流程:
1. 骨干网络提取特征图
2. 区域建议网络(RPN)生成候选区域
3. ROI Pooling提取候选区域特征
4. 分类和回归头预测类别和边界框
优点:精度高
缺点:速度较慢
单阶段检测器
YOLO系列:
YOLOv8架构:
┌─────────────────────────────────────────┐
│ Backbone (CSPDarknet) │
│ Conv → Conv → Conv → ... → Conv │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ Neck (PANet) │
│ 多尺度特征融合 │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ Head (Decoupled) │
│ 分类头 │ 边界框回归头 │
└─────────────────────────────────────────┘
优点:速度快,适合实时应用
缺点:小目标检测效果较差
无人机目标检测挑战
| 挑战 | 描述 | 解决方案 |
|---|---|---|
| 视角变化 | 俯视视角与地面视角差异大 | 专门的数据集、数据增强 |
| 尺度变化 | 高度变化导致目标尺度变化大 | 多尺度检测、FPN |
| 小目标检测 | 远距离目标占比小 | 特征金字塔、注意力机制 |
| 实时性要求 | 计算资源有限 | 模型压缩、轻量化网络 |
5.3 图像分割算法
语义分割
U-Net:
架构:
编码器(下采样) 解码器(上采样)
Conv ──┐ ┌── Conv
Conv ──┼──→ 跳跃连接 ──→ ──┼── Conv
Pool ──┘ └── UpConv
特点:
- 编码器-解码器结构
- 跳跃连接融合多尺度特征
- 适合小数据集训练
DeepLab v3+:
架构:
┌─────────────────────────────────────────┐
│ Backbone (Xception) │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ ASPP (空洞空间金字塔池化) │
│ Rate=6 │ Rate=12 │ Rate=18 │ Global │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ Decoder │
│ 上采样 + 低级特征融合 │
└─────────────────────────────────────────┘
特点:
- 空洞卷积扩大感受野
- ASPP捕获多尺度上下文
- 编码器-解码器结构
5.4 深度估计
单目深度估计
自监督学习方法:
训练流程:
1. 使用立体图像对或视频序列
2. 通过视图合成构建损失函数
3. 网络学习预测深度
损失函数:
L = |I_t - I_t→s| (光度误差)
优点:不需要深度标注
缺点:尺度模糊
立体深度估计
立体匹配网络:
流程:
1. 左右图像特征提取
2. 构建代价体(Cost Volume)
3. 代价聚合
4. 视差回归
代表方法:PSMNet、GCNet
5.5 模型部署与优化
模型压缩
剪枝:
结构化剪枝:
- 移除整个通道或层
- 保持模型结构规整
- 便于硬件加速
非结构化剪枝:
- 移除单个权重
- 压缩率高
- 需要稀疏计算支持
量化:
训练后量化(PTQ):
- 训练完成后量化
- 简单快速
- 精度损失较大
量化感知训练(QAT):
- 训练时模拟量化
- 精度损失小
- 需要重新训练
量化精度:
- FP32:32位浮点
- FP16:16位浮点
- INT8:8位整数
- INT4:4位整数
知识蒸馏:
教师-学生框架:
教师模型(大)──→ 软标签 ──→ 学生模型(小)
损失函数:
L = α * L_hard + (1-α) * L_soft
其中:
L_hard:与真实标签的交叉熵
L_soft:与教师输出的KL散度
边缘推理框架
| 框架 | 平台 | 特点 |
|---|---|---|
| TensorRT | NVIDIA GPU | 高性能,支持FP16/INT8 |
| ONNX Runtime | 跨平台 | 支持多种硬件后端 |
| TensorFlow Lite | 移动端 | 轻量级,支持NNAPI |
| NCNN | 移动端 | 腾讯开源,无依赖 |
| OpenVINO | Intel | 针对Intel硬件优化 |
| TFLite Micro | 微控制器 | 超轻量,支持Cortex-M |
六、计算机视觉技术
6.1 视觉里程计
视觉里程计(Visual Odometry,VO)是通过分析连续图像序列估计相机运动的技术。
特征点法
特征提取:
ORB特征:
1. FAST角点检测
2. 计算角点响应函数
3. 非极大值抑制
4. 计算BRIEF描述符
5. 方向归一化
优点:速度快,适合实时应用
缺点:对尺度变化敏感
特征匹配:
暴力匹配:
- 计算所有描述符对的距离
- 选择距离最小的匹配
FLANN匹配:
- 构建KD树索引
- 快速近似最近邻搜索
外点剔除:
- RANSAC + 基本矩阵
- 保留内点匹配
位姿估计:
对极几何:
1. 从匹配点计算基本矩阵F
2. 从F分解得到R和t
3. 三角化得到3D点
PnP问题:
1. 给定3D点和2D投影
2. 使用DLT或EPnP求解
3. RANSAC剔除异常点
直接法
光流法:
Lucas-Kanade光流:
假设:像素亮度在短时间内不变
I(x+dx, y+dy, t+dt) = I(x, y, t)
光流方程:
Ix * vx + Iy * vy = -It
求解:
[vx, vy]^T = (A^T A)^(-1) A^T b
直接对齐:
DSO(Direct Sparse Odometry):
1. 选择高梯度像素点
2. 最小化光度误差
3. 滑动窗口优化
优点:利用所有图像信息
缺点:对光照变化敏感
6.2 SLAM技术
视觉SLAM
ORB-SLAM3:
系统架构:
┌─────────────────────────────────────────────────────┐
│ 跟踪线程 │
│ 特征提取 → 特征匹配 → 位姿估计 → 局部地图跟踪 │
└─────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────┐
│ 局部建图线程 │
│ 关键帧插入 → 地图点三角化 → 局部BA → 关键帧剔除 │
└─────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────┐
│ 回环检测线程 │
│ 词袋匹配 → 几何验证 → 位姿图优化 → 全局BA │
└─────────────────────────────────────────────────────┘
特点:
- 支持单目、双目、RGB-D
- 支持视觉惯性融合
- 支持多地图
VINS-Mono:
系统架构:
┌─────────────────────────────────────────────────────┐
│ 预处理 │
│ 图像特征提取 → IMU预积分 │
└─────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────┐
│ 初始化 │
│ 视觉-IMU对齐 → 尺度恢复 → 重力方向估计 │
└─────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────┐
│ 状态估计 │
│ 滑动窗口优化 → 边缘化 → 求解 │
└─────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────┐
│ 回环检测 │
│ DBoW2 → 位姿图优化 │
└─────────────────────────────────────────────────────┘
激光SLAM
LOAM:
算法流程:
1. 点云预处理
- 去除离群点
- 地面分割
2. 特征提取
- 边缘特征:曲率大的点
- 平面特征:曲率小的点
3. 里程计
- 边缘点到边缘线的距离
- 平面点到平面的距离
- Levenberg-Marquardt优化
4. 建图
- 更低频率运行
- 更精细的配准
6.3 目标跟踪
单目标跟踪
SiamRPN:
架构:
模板分支 ──→ 特征提取 ──┐
├──→ 互相关 ──→ 分类+回归
搜索分支 ──→ 特征提取 ──┘
特点:
- 孪生网络结构
- 区域建议网络
- 端到端训练
多目标跟踪
DeepSORT:
流程:
1. 检测:使用检测器获取目标框
2. 预测:卡尔曼滤波预测目标位置
3. 关联:匈牙利算法匹配检测和轨迹
- 运动信息:马氏距离
- 外观信息:余弦距离
4. 更新:更新卡尔曼滤波状态
5. 管理:创建新轨迹、删除丢失轨迹
七、强化学习与自主决策
7.1 强化学习基础
马尔可夫决策过程(MDP)
强化学习可以建模为马尔可夫决策过程,包含:
- 状态空间S:环境的所有可能状态
- 动作空间A:智能体的所有可能动作
- 转移概率P(s'|s,a):状态转移概率
- 奖励函数R(s,a):即时奖励
- 折扣因子γ:未来奖励的折扣系数
目标:找到最优策略π*,使得期望累积奖励最大:
π* = argmax E[Σ γ^t * R(st, at)]
值函数
状态值函数V(s):
Vπ(s) = Eπ[Σ γ^t * R(st, at) | s0 = s]
状态-动作值函数Q(s,a):
Qπ(s,a) = Eπ[Σ γ^t * R(st, at) | s0 = s, a0 = a]
贝尔曼方程:
Vπ(s) = Σ π(a|s) * [R(s,a) + γ * Σ P(s'|s,a) * Vπ(s')]
Qπ(s,a) = R(s,a) + γ * Σ P(s'|s,a) * Σ π(a'|s') * Qπ(s',a')
7.2 强化学习算法
值函数方法
DQN(Deep Q-Network):
算法流程:
1. 初始化经验回放缓冲区D
2. 初始化Q网络和目标网络
3. for episode = 1, M do
初始化状态s
for t = 1, T do
以ε概率随机选择动作,否则选择a = argmax Q(s,a)
执行动作a,观察r和s'
存储(s, a, r, s')到D
从D采样小批量
计算目标:y = r + γ * max Q_target(s', a')
更新Q网络:最小化(y - Q(s,a))^2
定期更新目标网络
end for
end for
关键技巧:
- 经验回放:打破数据相关性
- 目标网络:稳定训练
- ε-贪心:平衡探索和利用
策略梯度方法
PPO(Proximal Policy Optimization):
目标函数:
L(θ) = E[min(r(θ) * A, clip(r(θ), 1-ε, 1+ε) * A)]
其中:
r(θ) = π_θ(a|s) / π_θold(a|s) (重要性采样比)
A = 优势函数估计
优点:
- 稳定训练
- 样本效率高
- 易于实现
SAC(Soft Actor-Critic):
目标函数:
J(π) = E[Σ γ^t (R(s_t, a_t) + α H(π(·|s_t)))]
其中:
H(π(·|s)) = -Σ π(a|s) log π(a|s) (策略熵)
α:温度参数
特点:
- 最大熵强化学习
- 探索能力强
- 鲁棒性好
7.3 强化学习在无人机中的应用
自主飞行
状态空间:
- 位置、速度、姿态、角速度
- 目标相对位置
- 障碍物信息
动作空间:
- 连续:推力、角速度
- 离散:上、下、左、右、前、后
奖励函数:
- 到达目标:+100
- 碰撞障碍:-100
- 每步:-0.1(鼓励快速到达)
- 平滑控制:-0.01 * |动作|
避障导航
端到端学习:
传感器输入 ──→ 神经网络 ──→ 控制输出
挑战:
- 样本效率低
- 安全性问题
- 仿真到现实迁移
解决方案:
- 仿真训练 + 域适应
- 安全强化学习
- 模仿学习初始化
7.4 模仿学习
行为克隆
方法:
min Σ L(π(a|s), a_expert)
优点:简单直接
缺点:分布偏移问题
DAgger
算法流程:
1. 使用初始策略收集轨迹
2. 请专家标注动作
3. 将新数据加入训练集
4. 重新训练策略
5. 重复直到收敛
优点:解决分布偏移问题
缺点:需要专家在线标注
八、大模型与多模态AI
8.1 大语言模型概述
大语言模型(LLM)是基于Transformer架构的大规模预训练语言模型。
Transformer核心组件:
自注意力机制:
Attention(Q, K, V) = softmax(QK^T / √dk) V
多头注意力:
MultiHead(Q, K, V) = Concat(head1, ..., headh) W^O
其中 headi = Attention(QWi^Q, KWi^K, VWi^V)
位置编码:
PE(pos, 2i) = sin(pos / 10000^(2i/d))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d))
8.2 大模型在无人机中的应用
自然语言交互
应用场景:
- 任务理解:"飞到那栋高楼旁边拍一张照片"
- 对话交互:多轮对话澄清任务细节
- 语音控制:结合语音识别实现语音控制
技术方案:
语音 ──→ ASR ──→ LLM ──→ 任务解析 ──→ 飞控指令
任务规划
任务分解:
用户指令 ──→ LLM ──→ 子任务序列
示例:
"巡检整个园区" → [
"起飞到50米高度",
"飞到园区入口",
"沿园区边界飞行",
"拍摄关键区域",
"返回起飞点",
"降落"
]
8.3 多模态AI
视觉-语言模型
CLIP架构:
图像 ──→ 图像编码器 ──→ 图像特征 ──┐
├──→ 对比学习
文本 ──→ 文本编码器 ──→ 文本特征 ──┘
应用:
- 图像描述生成
- 视觉问答
- 图像-文本检索
多模态导航
语言导航:
"飞到那栋红色建筑旁边"
↓
场景理解 + 目标识别 + 路径规划
↓
导航到目标位置
九、联邦学习与隐私计算
9.1 联邦学习概述
联邦学习是一种分布式机器学习方法,允许多个参与方在不共享原始数据的情况下协同训练模型。
联邦学习流程:
参与方1 ──→ 本地训练 ──→ 参数上传 ──┐
参与方2 ──→ 本地训练 ──→ 参数上传 ──┼──→ 参数聚合 ──→ 全局模型
参与方N ──→ 本地训练 ──→ 参数上传 ──┘
↑ ↓
└──────────── 参数下发 ←─────────────────┘
9.2 联邦学习算法
FedAvg
算法:
1. 服务器初始化全局模型w0
2. for t = 1, 2, ... do
服务器选择参与方子集S_t
每个参与方k ∈ S_t:
接收全局模型w_t
本地训练:w_k = w_t - η ∇L_k(w_t)
上传参数w_k
服务器聚合:w_{t+1} = Σ nk/n * w_k
end for
9.3 联邦学习在无人机中的应用
应用场景:
协同建图:
多架无人机各自采集数据 → 本地训练建图模型 → 聚合得到全局模型
协同目标识别:
多架无人机各自采集目标图像 → 本地训练识别模型 → 聚合得到鲁棒模型
协同异常检测:
多架无人机各自记录飞行数据 → 本地训练检测模型 → 聚合得到准确模型
第三部分:感知与导航
十、SLAM技术
10.1 SLAM问题定义
SLAM(同时定位与地图构建)是在未知环境中同时估计机器人位姿并构建环境地图的技术。
概率SLAM公式:
目标:估计后验概率
p(x1:t, m | z1:t, u1:t)
其中:
x1:t:机器人轨迹
m:地图
z1:t:观测序列
u1:t:控制输入序列
10.2 视觉SLAM技术细节
特征提取与匹配
ORB特征提取流程:
1. FAST角点检测
- 比较中心像素与周围像素亮度
- 连续N个像素亮度差异超过阈值则为角点
2. 方向计算
- 计算角点邻域的图像矩
- 得到角点主方向
3. BRIEF描述符
- 在角点邻域选择点对
- 比较点对亮度得到二进制描述符
4. 旋转不变性
- 根据角点方向旋转点对
Bundle Adjustment
优化问题:
min Σ ||pi - π(Ti * Pj)||²
其中:
pi:观测的2D点
π:投影函数
Ti:相机位姿
Pj:3D点
求解方法:
1. 线性化:J * δx = r
2. 求解:δx = (J^T J)^(-1) J^T r
3. 更新:x = x + δx
4. 迭代直到收敛
稀疏性利用:
- Hessian矩阵具有稀疏结构
- 使用Schur消元加速求解
10.3 激光SLAM技术细节
点云配准
ICP算法:
1. 初始化变换T0
2. for k = 0, 1, ... do
建立对应关系:对每个点找最近点
计算最优变换:Tk = argmin Σ ||Tk * pi - qi||²
检查收敛
end for
NDT算法:
1. 将目标点云划分为体素
2. 每个体素计算正态分布参数(均值、协方差)
3. 优化变换使源点云落入高概率区域
十一、传感器融合算法
11.1 多传感器融合基础
融合层次:
- 数据级融合:原始数据融合
- 特征级融合:特征向量融合
- 决策级融合:决策结果融合
融合结构:
- 集中式:所有数据发送到中心节点
- 分布式:各节点独立处理后交换信息
- 混合式:结合集中式和分布式
11.2 卡尔曼滤波融合
多传感器融合EKF:
预测步骤:
x̂(k|k-1) = f(x̂(k-1|k-1), u(k-1))
P(k|k-1) = F * P(k-1|k-1) * F^T + Q
更新步骤(顺序处理各传感器):
for 每个传感器i do
Ki = P(k|k-1) * Hi^T * (Hi * P(k|k-1) * Hi^T + Ri)^(-1)
x̂ = x̂ + Ki * (zi - hi(x̂))
P = (I - Ki * Hi) * P
end for
11.3 因子图优化融合
因子图表示:
- 变量节点:待估计的状态
- 因子节点:观测约束
优化问题:
min Σ ||hi(xi) - zi||²_Σi
求解框架:
- g2o:通用图优化
- GTSAM:因子图优化工具箱
- Ceres Solver:通用非线性优化
十二、路径规划算法
12.1 图搜索算法
A*算法
算法流程:
1. 初始化开放列表和关闭列表
2. 将起点加入开放列表
3. while 开放列表不为空 do
从开放列表取出f值最小的节点n
if n是终点 then
返回路径
end if
将n加入关闭列表
for 每个邻居节点m do
if m在关闭列表 then
continue
end if
计算g(m) = g(n) + cost(n,m)
if m不在开放列表 or g(m)更小 then
更新m的父节点为n
f(m) = g(m) + h(m)
将m加入开放列表
end if
end for
end while
启发函数:
- 欧几里得距离:h(n) = ||n - goal||
- 曼哈顿距离:h(n) = |xn - xgoal| + |yn - ygoal|
12.2 采样规划算法
RRT算法
算法流程:
1. 初始化树T,根节点为起点
2. for i = 1 to N do
随机采样点xrand
在T中找最近节点xnearest
从xnearest向xrand方向扩展,得到xnew
if xnew无碰撞 then
将xnew加入T
if xnew接近终点 then
返回路径
end if
end if
end for
RRT*改进:
1. 扩展新节点后,在邻域内重新选择父节点
2. 尝试重连邻域内的节点
3. 具有渐近最优性
12.3 优化规划算法
模型预测控制(MPC)
优化问题:
min J = Σ (x(k+i)^T Q x(k+i) + u(k+i)^T R u(k+i))
s.t. x(k+i+1) = f(x(k+i), u(k+i))
x_min ≤ x(k+i) ≤ x_max
u_min ≤ u(k+i) ≤ u_max
求解步骤:
1. 在当前状态x(k)求解优化问题
2. 得到最优控制序列u*(k), u*(k+1), ...
3. 只执行第一个控制u*(k)
4. 在下一时刻重复上述过程
十三、避障算法
13.1 势场法
势场定义:
- 引力场:目标点产生引力
- 斥力场:障碍物产生斥力
合力计算:
F = Fatt + Frep
Fatt = katt * (xgoal - x)
Frep = krep * Σ (1/di - 1/d0) * ∇di
优点:计算简单,适合实时避障
缺点:可能陷入局部最小值
13.2 速度障碍法
速度障碍定义:
VO = {v | ∃t > 0, p + v*t ∈ O}
安全速度选择:
Vs = {v | v ∉ VO}
选择策略:
在安全速度集中选择最接近期望速度的速度
13.3 动态窗口法
算法流程:
1. 计算可达速度空间Vs
Vs = {v | v ∈ V, v' ∈ V', 可达}
2. 计算安全速度空间Va
Va = {v | v ∈ Vs, 安全}
3. 选择最优速度
v* = argmax H(v)
评价函数:
H(v) = α * heading(v) + β * dist(v) + γ * velocity(v)
十四、轨迹预测与状态估计
14.1 轨迹预测
基于物理模型的方法
恒速模型(CV):
x(k+1) = x(k) + v(k) * Δt
v(k+1) = v(k)
恒加速模型(CA):
x(k+1) = x(k) + v(k) * Δt + 0.5 * a(k) * Δt²
v(k+1) = v(k) + a(k) * Δt
a(k+1) = a(k)
基于深度学习的方法
LSTM预测模型:
输入:历史轨迹 [x(t-n), ..., x(t)]
输出:未来轨迹 [x(t+1), ..., x(t+m)]
架构:
历史轨迹 ──→ LSTM编码器 ──→ 隐状态 ──→ LSTM解码器 ──→ 未来轨迹
14.2 多目标跟踪
检测跟踪范式:
1. 检测:在每帧中检测目标
2. 关联:将检测框与已有轨迹关联
3. 更新:更新轨迹状态
4. 管理:创建新轨迹、删除丢失轨迹
关联算法:
匈牙利算法:求解最优二分图匹配
代价矩阵:位置距离 + 外观相似度
第四部分:通信与网络
十五、无人机通信协议
15.1 MAVLink协议
MAVLink是无人机领域最常用的通信协议。
消息结构:
| STX | LEN | SEQ | SYSID | COMPID | MSGID | PAYLOAD | CRC |
| 1 | 1 | 1 | 1 | 1 | 1 | 0-255 | 2 |
字段说明:
- STX:起始标志(0xFD)
- LEN:负载长度
- SEQ:消息序列号
- SYSID:系统ID
- COMPID:组件ID
- MSGID:消息ID
- PAYLOAD:消息负载
- CRC:循环冗余校验
15.2 常用消息类型
心跳消息(HEARTBEAT):
- 消息ID:0
- 包含:系统类型、自动驾驶仪类型、飞行模式
姿态消息(ATTITUDE):
- 消息ID:30
- 包含:滚转角、俯仰角、偏航角、角速度
位置消息(GLOBAL_POSITION_INT):
- 消息ID:33
- 包含:经度、纬度、高度、速度
控制消息(SET_POSITION_TARGET_LOCAL_NED):
- 消息ID:84
- 用于:发送控制指令
十六、数据链路与图传系统
16.1 数据链路类型
数传链路:
- 传输飞行数据、控制指令
- 要求:低延迟、高可靠性
图传链路:
- 传输视频图像
- 要求:高带宽、低延迟
遥测链路:
- 传输传感器数据
- 要求:高可靠性
16.2 图传技术
视频编码:
- H.264:广泛使用,兼容性好
- H.265/HEVC:更高压缩效率
传输协议:
- RTSP:实时流协议
- WebRTC:网页实时通信,低延迟
抗干扰技术:
- 跳频:频率跳变避免干扰
- 自适应编码:根据信道质量调整
十七、5G-A通感一体化
17.1 5G-A技术特点
关键特性:
- 更大带宽:支持更高数据速率
- 更低时延:满足实时控制需求
- 更多连接:支持大规模设备连接
- 通感一体:通信与感知融合
17.2 低空感知应用
无人机探测:
- 基站发射信号
- 信号被无人机反射
- 基站接收反射信号
- 分析信号特征估计无人机位置
探测能力:
- 探测距离:数公里
- 探测高度:覆盖低空空域
- 探测精度:米级定位精度
十八、低延迟通信技术
18.1 延迟分析
延迟组成:
- 传播延迟:信号在介质中传播的时间
- 传输延迟:数据包发送的时间
- 处理延迟:节点处理数据包的时间
- 排队延迟:数据包在队列中等待的时间
无人机通信延迟要求:
- 飞行控制:< 100ms
- 视频传输:< 200ms
- 遥测数据:< 500ms
18.2 降低延迟的技术
协议优化:
- 使用UDP代替TCP
- 使用轻量级协议
- 使用QUIC协议
网络优化:
- 边缘计算
- 专用网络
- QoS机制
应用优化:
- 增量编码
- 预测算法
- 流水线处理
第五部分:系统架构与平台
十九、软件系统架构
19.1 分层架构
┌─────────────────────────────────────────┐
│ 应用层 │
│ 任务管理 │ 用户交互 │ 日志记录 │
├─────────────────────────────────────────┤
│ 服务层 │
│ 导航服务 │ 感知服务 │ 通信服务 │
├─────────────────────────────────────────┤
│ 中间件层 │
│ 消息中间件 │ 数据管理 │ 日志服务 │
├─────────────────────────────────────────┤
│ 硬件抽象层 │
│ 传感器驱动 │ 执行器驱动 │
├─────────────────────────────────────────┤
│ 硬件层 │
│ 传感器 │ 执行器 │ 通信模块 │
└─────────────────────────────────────────┘
19.2 微服务架构
服务划分:
- 飞控服务:负责飞行控制
- 导航服务:负责路径规划和导航
- 感知服务:负责环境感知
- 通信服务:负责数据通信
- 任务服务:负责任务调度
- 数据服务:负责数据存储和分析
服务通信:
- RESTful API:同步通信
- 消息队列:异步通信
- gRPC:高性能RPC通信
二十、云平台与大数据
20.1 云平台架构
架构层次:
- IaaS:基础设施即服务
- PaaS:平台即服务
- SaaS:软件即服务
核心功能:
- 设备管理:无人机注册、状态监控、远程控制
- 数据管理:飞行数据存储、分析、可视化
- 任务管理:任务规划、调度、执行监控
- 空域管理:空域申请、飞行计划审批
20.2 大数据处理
数据采集:Kafka消息队列
数据存储:HDFS、S3、数据湖
数据处理:Spark、Flink
数据分析:Hive、ClickHouse
数据可视化:Grafana、ECharts
二十一、边缘计算与端侧AI
21.1 边缘计算优势
- 低延迟:计算在本地进行
- 高带宽效率:减少数据传输量
- 隐私保护:敏感数据不上传云端
- 离线能力:网络断开时仍可工作
21.2 端侧AI优化
模型压缩:
- 剪枝:移除冗余连接
- 量化:降低参数精度
- 知识蒸馏:小模型学习大模型
高效网络:
- MobileNet:深度可分离卷积
- ShuffleNet:通道混洗
- EfficientNet:复合缩放
二十二、数字孪生技术
22.1 数字孪生概念
定义:物理实体的虚拟映射
特点:
- 实时性:虚拟模型与物理实体实时同步
- 双向映射:物理世界和虚拟世界双向交互
- 全生命周期:覆盖实体的全生命周期
- 智能分析:基于数据进行预测和优化
22.2 应用场景
- 空域管理:构建低空空域的数字孪生
- 无人机仿真:在虚拟环境中测试无人机系统
- 飞行模拟:提供逼真的飞行训练环境
- 故障预测:基于数字孪生进行故障预测
二十三、仿真系统与飞行模拟器
23.1 仿真系统类型
- 软件在环仿真(SITL):飞控软件在PC上运行
- 硬件在环仿真(HITL):飞控硬件连接仿真器
- 全数字仿真:所有组件都是软件模拟
- 半实物仿真:部分组件是真实硬件
23.2 常用仿真平台
Gazebo:
- 开源免费
- 支持ROS集成
- 丰富的插件生态
AirSim:
- 基于Unreal Engine
- 高保真视觉
- 支持深度学习
jMAVSim:
- 轻量级
- 支持多机仿真
第六部分:安全与可靠性
二十四、网络安全与信息安全
24.1 安全威胁
通信安全威胁:
- 窃听:攻击者截获通信数据
- 篡改:攻击者修改通信数据
- 重放攻击:攻击者重放历史数据
- 拒绝服务:攻击者阻塞通信信道
控制安全威胁:
- 劫持:攻击者夺取无人机控制权
- 欺骗:攻击者发送伪造的控制指令
24.2 安全防护
加密技术:
- 对称加密:AES
- 非对称加密:RSA、ECC
- 混合加密
认证技术:
- 数字签名
- 数字证书
- 双向认证
二十五、GPS欺骗与干扰对抗
25.1 GPS欺骗原理
欺骗过程:
1. 攻击者获取真实GPS信号
2. 攻击者生成伪造信号
3. 攻击者逐渐增大伪造信号功率
4. 接收机锁定伪造信号
5. 攻击者控制定位结果
25.2 抗干扰技术
天线技术:
- 定向天线
- 天线阵列
- 抗干扰天线
信号处理:
- 自适应滤波
- 相关检测
- 多频接收
多传感器融合:
- IMU辅助
- 视觉辅助
二十六、故障诊断与健康管理
26.1 故障类型
- 传感器故障:传感器输出异常
- 执行器故障:执行器响应异常
- 通信故障:通信中断或数据错误
- 软件故障:软件运行异常
26.2 故障检测方法
- 残差分析:比较实际输出与模型预测
- 参数估计:估计系统参数变化
- 状态估计:使用观测器检测异常
- 机器学习:使用分类或异常检测算法
二十七、分布式系统与容错设计
27.1 CAP定理
分布式系统最多只能同时满足三项中的两项:
- 一致性(Consistency)
- 可用性(Availability)
- 分区容错(Partition tolerance)
27.2 容错策略
- 冗余:使用冗余组件
- 复制:复制数据到多个节点
- 检查点:定期保存系统状态
- 恢复:故障后恢复系统状态
第七部分:前沿技术与应用
二十八、多智能体协同控制
28.1 编队控制方法
领导者-跟随者:
- 一架无人机作为领导者
- 其他无人机跟随领导者运动
虚拟结构:
- 将编队视为刚体
- 各无人机跟踪刚体上的对应点
一致性方法:
- 通过信息交换使状态趋于一致
28.2 任务分配
集中式分配:
- 中央节点收集所有信息
- 求解最优分配
分布式分配:
- 各无人机协商分配任务
市场拍卖:
- 使用拍卖机制分配任务
二十九、物联网技术
29.1 物联网架构
感知层:传感器、执行器
网络层:WiFi、4G/5G、LoRa
平台层:设备管理、数据处理
应用层:物联网应用
29.2 无人机物联网应用
- 智能巡检:采集巡检数据并上传
- 环境监测:监测空气质量、水质
- 智慧农业:精准灌溉、施肥
- 智慧城市:交通监控、安防巡逻
三十、区块链应用
30.1 区块链特点
- 去中心化:没有中央控制
- 不可篡改:数据一旦写入不可修改
- 可追溯:可以追溯数据来源
- 透明性:所有参与者可以验证数据
30.2 无人机领域应用
- 飞行数据存证:保证数据不可篡改
- 空域管理:去中心化的空域分配
- 身份认证:防止伪造身份
- 数据共享:保护数据所有权
三十一、知识图谱与智能推理
31.1 知识图谱组成
- 实体:节点,表示事物
- 关系:边,表示实体之间的联系
- 属性:实体的特征
31.2 无人机领域应用
- 空域知识图谱:空域类型、限制条件、申请流程
- 故障诊断知识图谱:辅助故障诊断和维修
- 法规知识图谱:支持法规查询和合规检查
第八部分:研究热点与复试准备
三十二、计算机方向研究热点
32.1 自主飞行与智能决策
端到端学习: - 从传感器输入直接学习控制输出 - 挑战:长尾场景、安全性、可解释性
模仿学习与强化学习结合: - 利用专家演示初始化策略 - 通过强化学习优化
32.2 多机协同与群体智能
分布式协同决策: - 多架无人机协同决策,没有中央控制 - 挑战:通信延迟、异构无人机、收敛性
32.3 安全与可信AI
对抗鲁棒性: - 提高AI模型对对抗攻击的鲁棒性
可解释AI: - 使AI决策过程可解释
32.4 低空智联网
通感算一体化: - 通信、感知、计算一体化设计
数字孪生低空: - 构建低空空域的数字孪生
三十三、复试专业问题精编
一、基础理论类
1. 请解释PID控制器的工作原理,并说明P、I、D三个参数的作用。
PID控制器由比例(P)、积分(I)、微分(D)三个环节组成。比例环节与误差成正比,提供主要的控制作用;积分环节对误差积分,消除稳态误差;微分环节对误差微分,提供阻尼作用,改善系统稳定性。在无人机飞控中,通常采用串级PID结构,包括角速度环、姿态环、速度环、位置环等。
2. 什么是卡尔曼滤波?它在无人机中有什么应用?
卡尔曼滤波是一种最优递归滤波器,用于估计线性动态系统的状态。它包含预测和更新两个步骤,通过融合预测值和观测值得到最优估计。在无人机中,卡尔曼滤波用于状态估计,融合IMU、GNSS、磁力计、气压计等传感器数据,估计无人机的位置、速度、姿态等状态。
3. 请解释SLAM的基本原理。
SLAM(同时定位与地图构建)是在未知环境中同时估计机器人位姿并构建环境地图的技术。SLAM可以建模为状态估计问题,通过贝叶斯滤波或图优化方法求解。视觉SLAM使用相机作为传感器,通过特征提取、特征匹配、位姿估计、地图构建等步骤实现定位和建图。
4. 什么是A*算法?它如何保证找到最优路径?
A算法是一种启发式搜索算法,使用评价函数f(n) = g(n) + h(n),其中g(n)是从起点到节点n的实际代价,h(n)是从节点n到终点的估计代价。如果启发函数h(n)是可接受的(即h(n) ≤ h(n)),A*算法保证找到最优解。
5. 请解释深度学习中的卷积神经网络(CNN)的基本结构。
卷积神经网络主要由卷积层、池化层、全连接层组成。卷积层通过卷积核提取图像特征;池化层降低特征图尺寸,减少参数量;全连接层进行分类或回归。CNN的关键特点包括局部连接、权值共享、平移不变性。
二、系统设计类
6. 请设计一个无人机飞控系统的软件架构。
无人机飞控系统软件架构通常采用分层设计: - 硬件抽象层(HAL):封装硬件访问接口 - 中间件层:提供消息传递、数据管理等服务 - 功能模块层:包括传感器驱动、状态估计、控制律、导航等 - 应用层:实现任务管理、故障处理、用户交互等功能
7. 如何实现无人机的自主避障?
无人机自主避障系统包括: - 感知模块:使用视觉、激光雷达等传感器感知环境 - 建图模块:构建局部环境地图 - 规划模块:根据环境地图规划避障路径 - 控制模块:执行避障轨迹
三、算法实现类
8. 请描述RRT算法的基本流程。
RRT算法流程: 1. 初始化树,根节点为起点 2. 在状态空间中随机采样一个点xrand 3. 在树中找到距离xrand最近的节点xnearest 4. 从xnearest向xrand方向扩展一步,得到xnew 5. 检查xnew是否与障碍物碰撞 6. 如果无碰撞,将xnew加入树 7. 重复直到到达终点附近
9. 请描述ORB-SLAM的基本流程。
ORB-SLAM包含三个并行线程: - 跟踪线程:提取特征、匹配特征、估计位姿 - 局部建图线程:处理关键帧、三角化地图点、局部BA - 回环检测线程:检测回环、位姿图优化、全局BA
四、前沿技术类
10. 深度强化学习在无人机自主飞行中有哪些应用?
深度强化学习在无人机自主飞行中的应用包括: - 端到端控制:从图像输入直接学习控制输出 - 避障导航:在复杂环境中学习避障策略 - 任务规划:学习最优的任务执行策略 - 多机协同:学习多机协同策略
挑战包括:样本效率低、安全性问题、仿真到现实的迁移等。
三十四、专业术语速查表
嵌入式与飞控
| 术语 | 英文 | 解释 |
|---|---|---|
| 飞控系统 | Flight Control System | 无人机的核心控制系统 |
| IMU | Inertial Measurement Unit | 惯性测量单元 |
| RTOS | Real-Time Operating System | 实时操作系统 |
| HAL | Hardware Abstraction Layer | 硬件抽象层 |
| ESC | Electronic Speed Controller | 电子调速器 |
| PID | Proportional-Integral-Derivative | 比例-积分-微分控制器 |
| EKF | Extended Kalman Filter | 扩展卡尔曼滤波 |
| MAVLink | Micro Air Vehicle Link | 无人机通信协议 |
人工智能与机器学习
| 术语 | 英文 | 解释 |
|---|---|---|
| CNN | Convolutional Neural Network | 卷积神经网络 |
| RNN | Recurrent Neural Network | 循环神经网络 |
| YOLO | You Only Look Once | 实时目标检测算法 |
| SLAM | Simultaneous Localization and Mapping | 同时定位与地图构建 |
| VO | Visual Odometry | 视觉里程计 |
| RL | Reinforcement Learning | 强化学习 |
| FL | Federated Learning | 联邦学习 |
感知与导航
| 术语 | 英文 | 解释 |
|---|---|---|
| GNSS | Global Navigation Satellite System | 全球导航卫星系统 |
| LiDAR | Light Detection and Ranging | 激光雷达 |
| RRT | Rapidly-exploring Random Tree | 快速探索随机树 |
| MPC | Model Predictive Control | 模型预测控制 |
通信与网络
| 术语 | 英文 | 解释 |
|---|---|---|
| 5G-A | 5G-Advanced | 5G增强版本 |
| UTM | Unmanned Traffic Management | 无人机交通管理 |
| QoS | Quality of Service | 服务质量 |
附录:推荐学习资源
开源项目
- PX4:https://github.com/PX4/PX4-Autopilot
- ArduPilot:https://github.com/ArduPilot/ardupilot
- ORB-SLAM3:https://github.com/UZ-SLAMLab/ORB_SLAM3
- VINS-Mono:https://github.com/HKUST-Aerial-Robotics/VINS-Mono
- AirSim:https://github.com/microsoft/AirSim
学术会议
- ICRA:IEEE International Conference on Robotics and Automation
- IROS:IEEE/RSJ International Conference on Intelligent Robots and Systems
- CVPR:IEEE Conference on Computer Vision and Pattern Recognition
- NeurIPS:Conference on Neural Information Processing Systems
学术期刊
- IEEE Transactions on Robotics (T-RO)
- IEEE Robotics and Automation Letters (RA-L)
- Journal of Field Robotics
- International Journal of Robotics Research (IJRR)
本手册内容仅供参考,具体技术细节请参考相关文献和文档。祝复试顺利!