1. 引言
随着人工智能与控制理论的飞速发展,无人机系统正从单机作业向多机协同作业模式演进。无人机集群(UAV Swarm)通过多架次无人机的协同配合,利用分布式计算与感知能力,能够完成单机无法胜任的复杂任务,如大范围搜索救援、环境监测及协同作战等。集群智能的核心在于个体间的局部交互涌现出的全局有序行为,这要求控制算法具备极高的鲁棒性与自适应性[1]-[3]。
然而,无人机集群技术的落地应用面临着严峻的验证挑战。在算法开发初期,研究人员主要依赖MATLAB/Simulink或基于通用物理引擎(如Unity, Unreal Engine等)的纯软件仿真平台。这类仿真虽然开发效率高,但往往忽略了真实物理环境中的不确定性因素,如空气动力学干扰、通信链路丢包、传感器噪声以及机载计算平台的资源限制。研究表明,在纯虚拟环境中验证通过的算法,在直接部署到真实硬件时,往往因为模型偏差(Reality Gap)而导致任务失败甚至坠机[1]。
当前主流的仿真验证手段主要分为三类[2]-[7]:
1. 纯软件仿真(SITL):在计算机上运行飞控代码的编译版本,通过模拟传感器数据闭环。其优势在于无需硬件投入,可快速迭代。但其缺点在于缺乏对真实硬件时钟漂移、处理延迟及电气特性的模拟,导致实时性与真实性存疑。
2. 硬件在环仿真(HIL):将真实的飞控硬件如Pixhawk接入仿真计算机,飞控运行在真实嵌入式环境中,而动力学环境由计算机模拟。这种方式能有效验证嵌入式代码的执行效率与稳定性,但构建大规模集群的HIL平台需要大量的飞控硬件与复杂的布线,扩展性较差。
3. 全实物飞行测试:这是验证算法最可靠的手段,但成本极为高昂。对于包含数十架甚至上百架无人机的集群,场地租赁、人员配置、电池维护及潜在的炸机风险使得全实物测试在研发早期难以频繁开展。
为了平衡仿真可信度与实验成本,虚实结合(Virtual-Real Integration)或混合现实仿真技术应运而生。该技术的核心思想是“部分真实,部分虚拟”,即在系统中引入少量的真实无人机实体,与大规模的虚拟无人机群在同一物理空间或逻辑空间内协同作业[2]。
基于ROS的虚实结合系统具有天然的优势。ROS作为机器人领域的“去中心化”中间件,提供了标准化的消息通信机制Publish/Subscribe,使得真实机器人的传感器数据与虚拟机器人的仿真数据可以在同一数据总线上无缝流动。此外,结合数字孪生技术,可以将真实无人机的状态实时映射到虚拟空间,实现虚实实体的相互感知与协同。
ROS因其模块化与分布式的特性,已成为多机器人系统(Multi-Robot Systems, MRS)开发的事实标准[8]-[10]。
苏黎世联邦理工学院与塞维利亚大学的研究团队开发了ROS-MAGNA框架,该框架基于ROS和Gazebo,专门用于多UAV协作任务的定义与管理。它通过状态机(State Machines)管理任务流程,支持SITL、HIL及实物飞行的混合部署,显著降低了多机协同任务的开发门槛[11]。
国内研究者提出的XTDrone平台基于ROS、PX4和Gazebo,支持多旋翼、固定翼等多种机型的多机仿真。该平台集成了动力学模型、传感器模型及控制算法,并提供了视觉SLAM与编队控制的接口,是目前开源社区中活跃度较高的多机仿真解决方案[3] [4] [12]-[15]。
上海交通大学VIMS实验室在自动驾驶领域利用ROS构建了分布式仿真平台,通过多机并行计算解决了大规模场景下的算力瓶颈问题,证明了ROS在处理高并发数据流方面的能力[16]。
与此同时,虚实结合技术正从简单的信号级HIL向复杂的场景级混合现实演进。在工业机器人领域,通过ROS接口将物理生产线的万级传感器数据实时映射至仿真模型,用于异常检测与预测性维护,这种思路正逐渐被引入无人机集群的健康管理中[4] [5] [7] [14]。
针对多机协同中的通信问题,部分研究开始将NS-3等网络仿真器集成到ROS架构中,以模拟真实环境下的带宽限制与丢包特性,进一步提升仿真的逼真度[2]。
本文基于上述背景,设计并实现了一套通用的基于ROS的多机协同虚实结合仿真系统。本研究的主要贡献如下:
1. 架构创新:提出了一种包含决策、控制、执行、显示四层的分层仿真架构,支持异构节点(实体/虚拟)的透明化接入。
2. 低成本高精度:通过引入单架真实无人机作为“物理锚点”,利用其真实的惯性与气动响应修正虚拟集群的行为,在大幅降低硬件成本的同时,显著提升了仿真的实时性与物理可信度。
3. 异构通信实现:解决了PX4飞控(基于MAVLink)与ROS(基于DDS/TCPROS)之间的高效数据桥接问题,实现了UDP协议下的多机并行低延迟通信。
2. 多无人机编队与仿真的相关理论研究
多机编队的核心在于保持多个智能体在空间上的相对几何构型,同时适应环境约束。目前的控制架构主要分为三种:集中式、分布式与混合式[1] [4]。
2.1. 集中式控制(Centralized Control)
在集中式架构中,存在一个中央计算节点(地面站或领航机),负责收集所有从机的状态信息(位置
、速度
),计算全局最优控制指令并下发。
优点是能够实现全局最优路径规划,任务分配效率高;缺点是计算负载随节点数量呈指数级增长,对通信带宽要求高,且存在单点故障风险。适用于小规模编队或对队形精度要求极高的表演飞行。
2.2. 分布式控制(Distributed Control)
分布式架构无中心节点,每个无人机仅与通信范围内的邻居节点交互信息,基于局部规则实现整体涌现行为。常用的算法包括一致性算法(Consensus Algorithm)和人工势场法[17]。
基于图论,对于第
架无人机,其控制输入
通常设计为:
(1)
其中
为邻居集合,
为邻接矩阵权重,
为期望相对距离,
为速度阻尼系数。
分布式控制的优点是鲁棒性极强,单机失效不影响整体,具备良好的扩展性;而其缺点是难以保证全局最优,收敛速度受通信拓扑影响。
2.3. 领航–跟随者模型(Leader-Follower)
本文选定领航–跟随者模式作为仿真实验的基础策略。该模式通过指定一架无人机为领航者(Leader),其余为跟随者(Follower)。跟随者仅需获得领航者的状态即可维持队形,兼具集中式的明确目标导向和分布式的实现简单性。
设领航者位置为
,第
个跟随者的期望位置为
,则位置误差
。控制目标是使
。
2.4. 四旋翼无人机动力学建模
为了在Gazebo中实现高精度的物理仿真,必须建立准确的四旋翼动力学模型。该模型通常被视为六自由度刚体,包含平动与转动方程[9]。
2.4.1. 坐标系定义
地球固连坐标系(
):NED(北东地)坐标系,用于描述无人机的绝对位置。
机体坐标系(
):原点位于无人机质心,轴向与机身固连。
旋转矩阵
:描述机体系到地球系的姿态变换,由欧拉角(滚转
、俯仰
、偏航
)确定。
2.4.2. 刚体动力学方程
根据牛顿–欧拉方程,四旋翼的运动方程可描述为[6]:
平动方程:
(2)
其中m为质量,p为位置向量,
为旋翼总推力,G为重力,
为空气阻力。
转动方程:
(3)
其中
为转动惯量矩阵,
为机体角速度,
为旋翼产生的总力矩(包括滚转、俯仰力矩及反扭矩)。
在Gazebo仿真中,这些物理属性通过仿真模拟文件(Simulation Description Format, SDF)文件进行描述,物理引擎如ODE则负责求解上述微分方程,实时更新模型状态[9]。
2.5. 英文缩写
PX4飞控与ROS及地面站(QGroundControl, QGC)之间的通信主要依赖MAVLink协议。
MAVLink是一种轻量级的二进制消息编组协议。其数据包结构包含以下五个部分:
1. STX:起始标志(v2版本通常为0xFD)。
2. LEN:有效载荷长度。
3. SEQ:包序号,用于检测丢包。
4. SYS ID/COMP ID:系统ID与组件ID,用于区分网络中的不同无人机及组件如飞控、相机、伴机电脑。
5. PAYLOAD:实际数据如姿态包ATTITUDE消息ID #30。
在仿真系统中,数据流向如下:
1. Gazebo -> PX4:Gazebo插件通过TCP 4560端口将模拟传感器数据IMU、GPS等发送给PX4 SITL进程。
2. PX4 -> 外部:PX4解算后的状态信息通过UDP端口广播。
3. UDP 14550:发送至QGroundControl用于显示。
4. UDP 14540:发送至MAVROS节点,转换为ROS Topic。
5. ROS -> PX4:控制指令经MAVROS封装为MAVLink包,通过UDP发回PX4。
3. 多无人机虚实结合编队仿真平台设计
本章详细介绍仿真平台的系统架构、模块划分及关键技术的实现细节。平台旨在解决纯虚拟仿真真实性不足的问题,通过引入实体无人机构建“人–机–环境”深度融合的测试床。
3.1. 仿真平台整体架构与功能设计
平台采用模块化分层设计,自上而下分为决策层、控制层、执行层和显示层,各层通过ROS通信机制解耦。
3.1.1. 决策层(Decision Layer)
该层由协同规划模块与任务分配模块构成,是编队的“大脑”,主要负责任务级规划。
其中协同规划模块运行在ROS Master节点(通常为高性能PC)。它接收来自地面站的高层指令,利用全局路径规划算法A*、RRT等生成编队整体的参考轨迹;任务分配是采用拍卖算法或匈牙利算法,将目标点动态分配给编队中的具体无人机(含实体与虚拟节点)。
3.1.2. 控制层(Control Layer)
该层负责将决策层的轨迹指令转化为飞控可执行的动作指令。由编队控制器与MAVROS桥接组成。
其中编队控制器是针对领航–跟随模型,计算跟随者相对于领航者的期望位置,并利用PID或滑模控制算法生成期望的速度或姿态指令;MAVROS桥接作为ROS与PX4的翻译官,将控制指令如/mavros/setpoint_position/local等转换为MAVLink流。
3.1.3. 执行层(Execution Layer)
该层是虚实结合的核心,包含两个平行的执行实体。
其中虚拟执行体是由Gazebo物理引擎和PX4 SITL固件组成。Gazebo模拟物理世界的重力、风阻与碰撞,PX4 SITL运行与真实飞控完全一致的代码,控制虚拟电机;实体执行体是由真实的无人机硬件和搭载PX4固件的飞控板组成。实体无人机通过机载伴侣电脑如Raspberry Pi/Jetson Nano接入仿真网络。
3.1.4. 显示层(Display Layer)
显示层由Gazebo GUI与QGroundControl这两个组件构成。
Gazebo GUI实时渲染三维场景,显示所有无人机(包括实体无人机的数字孪生映射)的运动状态;QGroundControl作为通用地面站,监控所有节点的电池电压、GPS锁星数及飞行模式,提供如一键返航、紧急停机等人工干预接口。
3.2. Gazebo、ROS与PX4的数据交互实现
为了实现虚实节点的协同,必须打通异构系统间的数据壁垒。为打通异构系统之间的数据壁垒,需要对虚拟端数据闭环、实体端数据映射并为多机通信进行端口规划。
3.2.1. 虚拟端数据闭环
在虚拟端,Gazebo与PX4 SITL通过gazebo_mavlink_interface插件进行交互。
下行链路中Gazebo模拟的IMU包括加速度计、陀螺仪等数据以400 Hz频率通过TCP发送给PX4;上行链路中PX4计算出的电机PWM值回传给Gazebo,Gazebo将其转换为旋翼转速,进而计算升力和力矩,驱动模型运动。
3.2.2. 实体端数据映射
实体无人机的接入采用硬件在环(HIL)或混合组网模式。
实体无人机的机载电脑运行mavros_node,通过串口UART/USB读取飞控的MAVLink数据,并将其发布为ROS Topic至/uav_real/mavros/local_position/pose来完成状态同步。
在Gazebo中创建一个“影子”模型,该模型不进行物理计算,而是直接订阅实体无人机的ROS Topic来更新其在虚拟世界中的位置。这使得虚拟无人机能够“看到”实体无人机,并在编队控制中将其视为普通节点。
3.2.3. 多机通信端口规划
为了避免数据冲突,系统为每架无人机分配独立的通信端口和ROS命名空间,在下表1中列出[4] [15]:
Table 1. UAV communication ports and ROS namespace assignment table
表1. 无人机通信端口和ROS命名空间分配表
无人机ID |
类型 |
MAVLink sys_id |
本地UDP端口(SITL/HIL) |
ROS命名空间 |
地面站端口 |
UAV 0 |
实体 |
1 |
14540 |
/uav0 |
14550 |
UAV 1 |
虚拟 |
2 |
14541 |
/uav1 |
14550 |
UAV 2 |
虚拟 |
3 |
14542 |
/uav2 |
14550 |
... |
... |
... |
... |
... |
... |
所有MAVROS实例最终连接到同一个ROS Master(运行在地面控制站PC上),通过UDP协议实现局域网内的高速数据交换。
3.3. 基于ROS通信机制的多机信息交互
系统充分利用ROS的三种通信机制来满足不同层级的交互需求:
1. Topic(话题):用于高频实时数据。
通过/uav*/mavros/state广播无人机连接状态、模式(Offboard/Hold)、解锁状态;通过/uav*/mavros/local_position/pose以30 Hz~50 Hz频率广播位置和姿态的四元数信息,这是编队控制算法的核心输入。
2. Service(服务):用于可靠指令传输。
/uav*/mavros/cmd/arming控制电机解锁/上锁;通过/uav*/mavros/set_mode切换飞行模式。服务机制的阻塞特性确保了指令执行的原子性和可靠性。
3. Action(动作):用于长周期任务。
在执行航点任务时,地面站通过Action Server发送目标点序列,无人机在飞行过程中通过Feedback反馈进度,允许地面站随时通过Preempt来抢占或取消任务。
3.4. 地面站信息汇总及真实无人机与仿真平台的联动
地面站软件QGC在多机模式下,能够自动识别不同sys_id的MAVLink流,并在地图上同时显示多个光标。
虚实联动的具体流程:
1. 初始化:启动ROS Master,加载Gazebo环境。启动实体无人机,其机载电脑自动连接ROS Master。
2. 虚拟生成:通过脚本multi_uav_mavros_sitl.launch在Gazebo中生成$N$架虚拟无人机。
3. 编队集结:地面站发送“Takeoff”指令。实体无人机和虚拟无人机同时解锁起飞,上升至预定高度。
4. 协同飞行:运行在PC端的编队算法节点订阅所有无人机位置。假设实体无人机UAV0为领航者,算法计算UAV1、UAV2的期望位置,并发布控制指令。
5. 动态调整:当实体无人机受到真实风干扰发生偏移时,其位置变化通过ROS Topic实时反馈给算法,算法随即调整虚拟跟随者的目标点,使得虚拟无人机在Gazebo中也做出相应的机动,保持队形不散。
4. 虚实结合仿真平台与传统仿真平台对比
为了验证本平台的有效性,我们设计了对比实验,将其与传统的纯虚拟仿真平台(JMavSim/纯SITL)进行性能评估。评估指标主要包括实时性、稳定性和可靠性。
4.1. 仿真的性能指标与评估方法
4.1.1. 实时因子(Real-Time Factor,
)
实时性是硬件在环仿真的生命线。定义实时因子
为仿真时间流逝速度与真实时间流逝速度的比值:
(4)
在理想状态下
。
表示仿真计算负载过重,系统滞后于真实时间(Laggy)。
表示仿真超速(Overclocked)。
在虚实结合系统中,由于实体无人机运行在物理时间中(
),仿真环境必须严格保持
以维持同步,否则会导致控制指令的时间戳错位,引发系统发散。
4.1.2. 位置误差均方根(RMSE)
稳定性通过编队飞行中的位置跟踪误差来衡量。对于跟随者
,其跟踪误差
。RMSE指标定义为:
(5)
该指标反映了平台在长时间运行下的控制精度和抗干扰能力。
4.2. 实验方案设计
实验选取经典的SOLO四旋翼无人机模型。
对照组(纯虚拟):使用JMavSim平台运行3架虚拟SOLO无人机进行领航–跟随编队。
实验组(虚实结合):使用本文设计的平台,由1架真实SOLO无人机作为领航者,2架Gazebo虚拟无人机作为跟随者。
任务剖面:
1. 0 s~60 s:起飞并悬停。
2. 60 s~300 s:按“8”字形轨迹巡航。
3. 300-600s:队形变换(三角队形转换为一字队形)。
4.3. 实验结果与分析
4.3.1. 实时性对比分析
实验记录了10分钟仿真过程中的实时因子
变化,如下图1所示:
Figure 1. Real-time factor comparison chart of platform simulation
图1. 平台仿真实时因子对比图
纯虚拟平台JMavSim:
值波动剧烈,范围在
之间。由于纯虚拟仿真依赖宿主机的CPU调度,当图形渲染或后台进程占用资源时,仿真速度会变慢;资源空闲时则加速。这种非确定性的时序特性导致其无法用于对时间敏感的通信协议验证。
虚实结合平台:实时因子
始终稳定在
范围内。这是因为系统引入了真实飞控的硬件时钟作为同步源,且Gazebo配置了lockstep模式与ROS时钟同步。即使在图形渲染负载增加时,ROS的调度机制也优先保障了物理计算线程的实时性。数据表明,虚实结合平台的最大周期抖动仅为数十毫秒,满足软硬协同的严苛要求。
4.3.2. 稳定性与精确度分析
将实验中采样获取的数据绘制成下图2:
Figure 2. Simulation platform error comparison chart
图2. 平台仿真误差对比图
根据实验数据,纯虚拟平台中跟随者的位置误差波动较大,平均误差约为0.25 m,标准差0.3 m,见下表2:
Table 2. Simulation data comparison table for two platforms
表2. 双平台仿真数据对比表
平台类型 |
平均位置误差(m) |
误差标准差(m) |
误差曲线特征 |
纯虚拟JMavSim |
0.25 |
0.30 |
存在高频振荡,收敛速度慢 |
虚实结合平台 |
0.20 |
0.12 |
波动平滑,收敛迅速且稳定 |
主要原因是JMavSim的气动模型过于理想化,且缺乏阻尼模拟,导致无人机在加减速时容易产生过冲和震荡;而虚实结合仿真平台中的平均误差降低至0.2 m,且误差曲线更加平滑。真实无人机在飞行中受到的空气阻力和惯性作用,通过数据流间接“传递”给了编队控制器。控制器根据真实领航者的平滑轨迹规划跟随者的路径,有效抑制了纯数学模型中的高频噪声。这一结果证实,引入物理实体能够显著提升仿真的物理真实感和系统稳定性。
4.3.3. 可靠性与故障检测能力
在可靠性测试中,我们在算法中人为注入了超出机动极限的指令。
纯虚拟平台忠实地执行了该指令,导致仿真中的无人机做出了违反物理规律的大机动动作,未能暴露算法缺陷。
在虚实结合平台中,真实飞控检测到倾角指令超过45度阈值,立即触发了“姿态限制”保护逻辑并拒绝执行,同时地面站收到了警告信息。这一现象充分说明,虚实结合平台能够有效验证算法在真实硬件约束下的安全性,避免了“代码在仿真里能飞,真机一飞就炸”的尴尬局面。
4.4. 成本效益分析
除了技术性能,经济性也是评估仿真平台的重要指标。以验证9架无人机编队为例进行成本测算,见下表3:
Table 3. UAV formation cost estimation table
表3. 无人机编队成本测算表
成本项 |
传统全实物测试 |
虚实结合仿真 |
备注 件数 |
无人机硬件 |
9台 × 7200元 = 64,800元 |
1台 × 7200元 = 7,200元 |
SOLO单价参考 |
仿真工作站 |
1台 × 10,000元 = 10,000元 |
1台 × 10,000元 = 10,000元 |
含RTX 4060 Ti显卡 |
场地与维护 |
约5,000元/次 |
0元 |
实验室即可完成 |
总成本 |
~79,800元 |
~17,200元 |
节省约78% |
数据分析显示,本方案在达到最大负载规模时,总成本仅为全实物测试的23%左右。这种低成本特性使得科研团队可以在有限预算下开展大规模集群算法的验证,极大地降低了准入门槛。
5. 总结与展望
5.1. 全文总结
本文针对无人机集群研究中仿真可信度与实验成本之间的矛盾,设计并实现了一套基于ROS的多机协同虚实结合仿真系统。
系统实现:成功搭建了集Gazebo物理引擎、PX4飞控软件栈和真实无人机硬件于一体的混合仿真平台。利用UDP通信和MAVLink协议,打通了虚实边界,实现了数据的实时双向流动。
性能优越:对比实验证明,该平台在实时性(
)和稳定性方面显著优于传统的JMavSim纯虚拟仿真,能够复现真实飞行中的物理约束和故障保护机制。
经济高效:通过“以虚代实、虚实互补”的策略,将大规模编队实验的硬件成本降低了近八成,为无人机集群技术的低成本开发提供了新范式。
5.2. 存在问题与未来展望
尽管本系统已取得初步成果,但仍存在局限性,未来研究可从以下方面展开:
1. 通信环境建模:目前的仿真主要依赖局域网通信,忽略了真实野外环境中距离、遮挡对无线电信号的影响。未来计划引入NS-3 (Network Simulator 3)等专业网络仿真工具,构建包含信道衰落、多径干扰和网络拥塞的复杂通信环境,以验证分布式编队算法在受限通信条件下的鲁棒性[18]。
2. 大规模分布式仿真:受限于单机算力,当前平台支持的虚拟节点数量有限(<10架)。未来可利用ROS的分布式特性,采用多机并行计算架构(如DDS中间件),将物理引擎解算任务分配到计算集群中,实现百机甚至千机规模的超大规模集群仿真。
3. 跨域异构协同:目前的系统主要针对同构的旋翼无人机。未来可扩展支持固定翼无人机、无人车(UGV)及无人船(USV)的接入,构建空地协同、海空协同的立体化异构仿真平台,以适应更复杂的跨域作战或救援任务需求[19]。
综上所述,基于ROS的虚实结合仿真平台不仅是算法验证的工具,更是连接理论研究与实际应用的桥梁。随着技术的不断迭代,它将在无人机集群的智能化进程中发挥越来越重要的作用。
基金项目
国家级大学生创新创业训练计划项目(202310719031);陕西省大学生创新创业训练计划项目(S202310719031);延安大学校级大学生创新创业训练计划项目(D2022039);项目名《基于ROS系统的多无人机编队控制算法研究》。
NOTES
*第一作者。
#通讯作者。