3、自主巡航系统架构:感知、决策、控制、通信四大模块的功能划分与整体架构设计
自主巡航系统是一个典型的“感知-决策-控制”闭环系统,同时依赖通信模块实现与地面站、云端及其他无人系统的信息交互。在无人机平台上,这四大模块并非简单的线性串联,而是通过共享数据总线、实时操作系统(RTOS)和任务调度机制形成高度耦合的分布式计算网络。本章将围绕四大模块的功能边界、数据流关系、接口协议和工程实现要点展开,帮助学习者建立从传感器原始数据到执行机构动作的完整链路认知。
3.1 感知模块:多源传感器融合与环境建模
核心原理:感知模块是自主巡航系统的“眼睛”和“前庭系统”,负责采集无人机自身状态(位置、速度、姿态)和外部环境信息(障碍物、地形、目标物)。其核心挑战在于多传感器的时间同步、空间对齐和异构数据融合。典型的感知硬件配置包括:GNSS(GPS/北斗/GLONASS)提供位置,IMU(惯性测量单元)提供高频姿态和加速度,气压计提供高度参考,而视觉传感器(单目/双目相机)和激光雷达则用于障碍物检测与地图构建。
工程实现要点:在搭建感知系统时,必须关注以下关键参数和配置:
| 传感器类型 | 典型频率 | 数据接口 | 关键指标 | 常见故障模式 |
|---|---|---|---|---|
| GNSS(U-blox F9P) | 5-20 Hz | UART/I2C | 水平精度 1-2 cm(RTK) | 卫星失锁、多路径效应 |
| IMU(BMI088) | 200-1000 Hz | SPI | 零偏稳定性 < 10°/h | 温度漂移、振动噪声 |
| 双目相机(Intel D435i) | 30-90 FPS | USB 3.0 | 基线 50mm,深度范围 0.3-3m | 光照过曝/欠曝、标定失效 |
| 激光雷达(Livox Mid-40) | 10 Hz | Ethernet | 探测距离 40m,FOV 38.4° | 电机磨损、点云畸变 |
实战场景:在电力巡检场景中,无人机需要沿高压线塔进行自主巡航。感知模块需要同时处理GNSS信号(可能受高压电场干扰)、IMU数据(电机振动大)和激光雷达点云(用于检测导线和塔架)。此时,感知融合算法通常采用扩展卡尔曼滤波(EKF)或因子图优化,将GNSS位置、IMU预积分和视觉/激光里程计进行松耦合或紧耦合融合。一个典型的配置是:GNSS更新频率10Hz,IMU频率400Hz,视觉里程计频率30Hz,通过时间戳对齐后,在EKF框架中输出50Hz的位姿估计。
3.2 决策模块:任务规划与实时重规划
核心原理:决策模块是自主巡航的“大脑”,负责将巡航任务分解为可执行的航点序列,并在飞行过程中根据实时感知结果动态调整路径。其核心架构通常采用分层状态机(Hierarchical State Machine)结合行为树(Behavior Tree)或有限状态机(FSM)。决策模块需要处理三类输入:任务目标(如“沿道路巡检2公里”)、感知模块输出的环境约束(如“前方50米有障碍物”)、以及无人机自身的健康状态(如“电量剩余30%”)。
决策流程与判断方法:一个完整的决策循环包括以下步骤:
- 任务解析:将高层任务(如“测绘某区域”)转换为航点列表和动作序列(拍照、悬停、降落)。
- 全局路径规划:使用A*、RRT*或Dubins曲线算法,在已知地图上生成从起点到终点的可行路径。
- 局部避障决策:当感知模块检测到动态障碍物时,决策模块需在毫秒级时间内选择绕行、悬停等待或爬升越过。
- 应急决策:当检测到低电量、GPS丢失、通信中断等异常时,触发返航(RTL)、紧急降落或悬停等待。
案例拆解:在某次城市物流配送测试中,无人机按预设航线飞行,当感知模块在航线前方30米处检测到一只风筝(尺寸约0.5m×0.5m,高度在飞行路径上),决策模块的局部避障逻辑启动。关键参数如下:飞行速度12m/s,制动距离约8m,侧向偏移距离设定为2m。决策模块在80ms内完成路径重规划,生成一条平滑的Dubins曲线绕行路径,同时将期望速度降至6m/s。整个决策过程通过ROS 2的realtime执行器保证确定性延迟。
3.3 控制模块:从期望轨迹到电机转速
核心原理:控制模块是自主巡航的“小脑”,负责将决策模块输出的期望轨迹(位置、速度、加速度)转化为电机转速指令。典型的级联控制结构为:位置环(外环,10-50Hz)→ 速度环(中环,50-200Hz)→ 姿态环(内环,200-500Hz)→ 角速率环(最内环,500-1000Hz)。每一级控制器通常采用PID或LQR算法,并需要根据无人机动力学模型进行参数整定。
控制链路关键参数:
位置环: Kp=2.0, Ki=0.05, Kd=0.8 (单位: 1/s)
速度环: Kp=1.5, Ki=0.1, Kd=0.2 (单位: 1/s)
姿态环: Kp=6.0, Ki=0.3, Kd=0.5 (单位: 1/s)
角速率环: Kp=0.15, Ki=0.01, Kd=0.002 (单位: V/(°/s))
混控器: 四旋翼X型, 电机方向: 1CW,2CCW,3CW,4CCW
输出协议: DShot600, 油门范围 0-1999
实战调优方法:在实机调试前,务必使用HITL(硬件在环)仿真验证控制参数。推荐流程:首先在Gazebo/Simulink中建立无人机动力学模型,使用自动调参工具(如PX4的mc_pid_tuner)获取初始PID值;然后进行实机悬停测试,观察姿态响应曲线,若出现振荡则降低Kp,若响应过慢则增大Kp。注意:不同负载(如挂载云台相机)下,控制参数需要重新整定。
3.4 通信模块:链路冗余与数据同步
核心原理:通信模块是自主巡航的“神经”,负责无人机与地面控制站(GCS)、云端服务器及其他无人机之间的数据交换。典型的通信架构包括:数传链路(低带宽、高可靠性,用于遥测和指令)、图传链路(高带宽、低延迟,用于视频流)以及可选的高带宽网桥(如5G/4G,用于云端协同)。通信协议通常采用MAVLink 2.0,其消息封装支持加密和消息签名,确保链路安全。
通信链路设计要点:
| 链路类型 | 典型设备 | 带宽 | 延迟 | 应用场景 |
|---|---|---|---|---|
| 数传电台 | Holybro Telemetry Radio V3 | 250 kbps | < 10ms | 遥测下行、指令上行 |
| 图传链路 | DJI O3 Air Unit | 50 Mbps | < 30ms | FPV视频、AI推理结果回传 |
| 4G/5G模块 | SIM7600CE | 100 Mbps | 20-50ms | 超视距远程监控、云端任务下发 |
案例拆解:在山区搜救任务中,无人机进入峡谷后数传信号衰减严重。解决方案是采用“中继无人机”模式:主无人机通过5G链路将遥测数据发送至云端,云端再通过卫星链路转发至地面站。同时,主无人机与中继无人机之间使用WiFi Mesh组网,实现动态路由。关键指标:链路切换时间< 200ms,数据丢包率< 1%。在实测中,通过调整发射功率(从20dBm提升至27dBm)和天线方向(从全向改为定向天线),将有效通信距离从1.2km提升至3.5km。
3.5 整体架构设计:数据总线与任务调度
核心原理:四大模块的集成并非简单堆叠,而是通过实时数据总线(如ROS 2 DDS、PX4 uORB、自研共享内存)和任务调度器(如NuttX、FreeRTOS)实现协同。整体架构设计需遵循以下原则:高内聚低耦合(模块间通过标准消息接口通信)、确定性调度(关键控制任务必须保证固定周期执行)、故障隔离(单个模块崩溃不应导致整机失控)。
推荐架构模式:采用“中心数据库+独立计算节点”模式。感知模块将处理后的位姿和障碍物信息写入共享内存(如Iceoryx),决策模块从共享内存读取数据并发布期望轨迹,控制模块订阅轨迹并输出PWM。通信模块作为旁路节点,负责将遥测数据打包发送至地面站。这种架构的优势在于:各模块可使用不同编程语言(C++/Python/Rust)和不同操作系统(Linux/RTOS),通过IDL(接口描述语言)定义消息格式,实现异构计算。
性能指标参考:
- 端到端延迟(传感器采集→电机响应):< 20ms
- 控制任务周期抖动:< 50μs
- CPU负载余量:≥ 30%(避免高负载下任务饿死)
- 内存占用:≤ 512MB(嵌入式平台)
3.6 系统集成与验证:从仿真到实飞
操作流程:完成四大模块的独立开发后,必须按照以下步骤进行系统集成验证:
- SIL(软件在环)仿真:在Gazebo中搭建虚拟环境,验证决策逻辑和控制算法的正确性,无需硬件。
- HITL(硬件在环)仿真:将飞控硬件接入仿真环境,测试传感器数据采集、PWM输出和通信链路的完整性。
- 系留测试:在无人机上安装保护绳,进行小范围悬停和低速巡航测试,验证实际飞行性能。
- 小范围实飞:在空旷场地进行10分钟以内的自主巡航测试,记录日志并分析。
- 全流程验收:执行完整的巡航任务,包括起飞、巡航、避障、返航和降落。
案例复盘:在某次农业植保无人机集成测试中,发现无人机在自主巡航时出现周期性偏航(每10秒偏航约5°)。通过分析飞行日志,发现偏航周期与通信模块的遥测发送周期完全一致。进一步排查发现,通信模块在发送大尺寸图像数据时,占用了I2C总线,导致磁力计数据读取延迟。解决方案:将磁力计迁移至独立的SPI总线,并将通信模块的图像传输改为DMA模式,问题彻底解决。此案例说明,模块间的资源竞争(总线、中断、内存带宽)是集成阶段的主要矛盾。
SensorImu、ObstacleArray、TrajectorySetpoint),并生成跨语言的序列化代码。同时,建立统一的日志系统(如Flight Review),记录所有模块的关键状态,便于事后故障分析。最后,务必进行至少50小时的连续运行测试,以验证系统的长期稳定性。