✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。
🍎 往期回顾关注个人主页:Matlab科研工作室
👇 关注我领取海量matlab电子书和数学建模资料
🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信。
🔥 内容介绍
- 引言:为什么需要多约束融合的无人机编队路径规划?
在无人机集群作业场景中(如航拍测绘、电力巡检、应急救援),需同时满足四大核心需求:三维空间可达性(适配复杂地形)、编队队形稳定性(保持 V 型等预设形态)、动态避障实时性(规避移动障碍物)、集群碰撞安全性(无人机间无碰撞)。
传统 RRT 算法仅能解决单无人机的三维避障路径规划,无法适配编队跟随与动态障碍物;而单纯的编队控制算法又缺乏复杂环境的路径探索能力。本文提出 “RRT 三维路径规划 + V 型编队跟随 + 动态避障 + 碰撞检测” 的融合方案,通过 RRT 探索三维可行空间,用编队控制维持 V 型形态,结合实时碰撞检测实现动态障碍物规避与机间防碰撞,最终实现 “路径可行、队形稳定、避障及时、安全可靠” 的集群作业效果。
- 核心基础:关键技术原理拆解
2.1 无人机三维运动特性与 RRT 算法适配
(1)无人机三维运动约束
多旋翼无人机(如四旋翼)的三维运动包含 6 个自由度(位置 X/Y/Z + 姿态滚转 / 俯仰 / 偏航),核心约束:
飞行范围限制:X/Y/Z 轴均有最大作业边界(如海拔 0-500m);
运动速度约束:最大平飞速度 v_max、最大爬升 / 下降速度 v_z_max;
机动能力约束:最小转弯半径(三维空间中为最小曲率半径)、姿态角限位。
(2)三维 RRT 算法核心改进
传统 RRT 算法适用于二维平面,需针对三维场景做两点关键改造:
节点状态扩展:每个节点包含三维位置(x,y,z)+ 航向角(ψ),适配三维空间姿态;
采样与扩展优化:在三维空间(X/Y/Z 轴范围)随机采样,扩展时按固定步长(如 0.5m)沿采样方向生成新节点,确保路径平滑。
核心优势:无需预知三维环境全局信息,通过随机采样高效探索复杂地形(如山谷、建筑物)中的可行路径。
2.2 V 型编队跟随原理
V 型编队是无人机集群的经典队形,具有气动阻力小、视野开阔、通信链路稳定等优势,核心实现逻辑:
(1)编队拓扑定义
领航机(Leader):负责全局路径规划(通过 RRT 生成三维路径),为编队提供基准轨迹;
跟随机(Follower):按 V 型预设位置跟随领航机,每个跟随机的相对位置由编队参数定义:
假设 V 型夹角为 2θ(如 60°),编队层级为 n(如 3 层),跟随机 i 的相对领航机位置为:
LaTex error
(2)编队跟随控制
采用 “领航 - 跟随”(Leader-Follower)控制策略:
跟随机实时接收领航机的位置(x_L,y_L,z_L)与姿态(ψ_L);
按 V 型相对位置公式计算自身期望位置(x_des,y_des,z_des);
通过 PID 控制器调整自身速度与姿态,跟踪期望位置,维持编队形态。
2.3 动态障碍物避障与碰撞检测
(1)动态障碍物建模
动态障碍物(如其他飞行器、移动车辆)采用 “位置 + 速度 + 边界” 的实时建模方式:
障碍物状态:O_t = (x_o (t), y_o (t), z_o (t), v_o (t), r_o),其中 r_o 为障碍物边界半径(简化为球体);
运动预测:基于当前速度 v_o (t),预测未来 Δt 时间内的障碍物位置范围,用于提前避障。
(2)碰撞检测机制
采用 “双重检测” 确保安全:
机间碰撞检测:计算任意两架无人机的三维距离 d_ij,若 d_ij r_uav(r_uav 为无人机半径),判定为碰撞风险;
障碍物碰撞检测:计算无人机与动态障碍物的三维距离 d_io,若 d_io + r_o,判定为碰撞风险。
(3)动态避障策略
当检测到碰撞风险时,采用 “局部 RRT 重规划 + 编队临时调整” 策略:
领航机触发局部 RRT 重规划,生成绕行动态障碍物的临时路径;
跟随机按 “就近调整” 原则,在维持 V 型拓扑的前提下,微调相对位置,避开碰撞区域;
障碍物远离后,编队自动回归原始 V 型形态与规划路径。
- 融合方案:整体框架与核心逻辑
3.1 算法整体架构
融合方案的核心是 “四层递进 + 实时闭环”,架构如下:
环境建模层:构建三维作业空间(地形、静态障碍物),实时更新动态障碍物状态;
路径规划层:领航机通过三维 RRT 算法生成全局可行路径,动态避障时触发局部重规划;
编队控制层:跟随机按 V 型相对位置模型计算期望位置,通过 PID 控制跟踪领航机;
碰撞检测层:实时检测机间碰撞与障碍物碰撞,触发避障响应;
闭环反馈层:无人机通过传感器(GPS、IMU、视觉)反馈自身状态,动态调整路径与编队。
3.2 核心流程拆解
初始化阶段:
定义三维作业空间边界(X∈[0,1000], Y∈[0,1000], Z∈[50,500]);
输入静态障碍物(如建筑物、山峰)的三维坐标与边界;
设定 V 型编队参数(夹角 60°、水平距离 10m、垂直高度一致);
初始化领航机与跟随机的起点位置、目标位置。
全局路径规划阶段:
领航机基于三维 RRT 算法,生成从起点到目标点的无碰撞路径(避开工静态障碍物);
路径离散化:将全局路径按时间步长(如 0.1s)离散为一系列路径点 P_L = [p_L1, p_L2, ..., p_Ln](p_Li=(x_Li,y_Li,z_Li,ψ_Li))。
编队跟随阶段:
领航机按离散路径点飞行,实时广播自身状态(位置、姿态、速度);
跟随机接收领航机状态,计算自身期望位置 P_Fi = [p_Fi1, p_Fi2, ..., p_Fin];
跟随机通过 PID 控制跟踪期望位置,维持 V 型队形。
动态避障阶段:
碰撞检测模块实时监测动态障碍物与机间距离;
若检测到碰撞风险,领航机启动局部 RRT 重规划,生成临时绕航路径;
跟随机按临时路径调整期望位置,维持编队的同时避开碰撞;
障碍物脱离风险范围后,领航机回归全局路径,编队恢复原始 V 型。
终止阶段:
当领航机到达目标位置且满足精度要求(如距离≤1m),发出编队降落指令;
所有无人机按 V 型编队有序降落,任务结束。
3.3 关键技术融合点
(1)RRT 与编队控制的融合
领航机的 RRT 路径作为编队的基准轨迹,确保所有无人机的路径均可行;
跟随机的期望位置基于领航机路径动态生成,避免跟随机偏离可行空间。
(2)动态避障与编队稳定性的平衡
局部重规划时,限制领航机的临时路径与原路径的偏差(如最大偏移≤20m),避免编队溃散;
跟随机的位置调整采用 “增量式微调”,确保队形变化平滑,无剧烈机动。
(3)碰撞检测的实时性优化
采用 “分区域检测”:仅对距离当前无人机一定范围内(如 50m)的障碍物与其他无人机进行检测,降低计算量;
动态调整检测频率:无碰撞风险时检测频率为 10Hz,有风险时提升至 50Hz,兼顾实时性与算力消耗。
⛳️ 运行结果
Image
Image
📣 部分代码
% Parameters
start_positions = [-4, -4, 0; -4, -3, 0; -1, -4, 0; -3, -3, 0; -2,-3,0]; % Starting positions for five drones
goal_positions = [4, 4, 10; 4, 4, 10; 4, 4, 10; 4, 4, 10; 4, 4, 10]; % Goal positions for five drones
step_size = 0.10; % Step size for RRT*
max_iter = 1000; % Maximum iterations for RRT*
goal_tolerance = 0.1; % Goal tolerance
obstacle_speed = 0.6; % Speed of moving obstacles
num_obstacles = 3; % Number of obstacles
filename = 'multi_drone_path.gif'; % Output GIF file name
collision_threshold = 2.0; % Minimum distance to consider as collision
n = 5; % Number of drones
l = (n+1)/2; % Leader index (3rd drone)
% Create figure
figure('Color', 'w', 'Renderer', 'opengl');
axis equal
hold on
grid on
view(3)
xlim([-5 5])
ylim([-5 5])
zlim([0 10])
% Add restart button
restart_btn = uicontrol('Style', 'pushbutton', ...
'String', 'Restart Simulation', ...
'Position', [20 20 150 30], ...
'Callback', 'clf; multi_drone_rrt_simulation_2();');
🔗 参考文献
[1]梁喜凤,陈坤,姚宝国.基于改进RRT算法的多关节机械臂路径规划方法研究[J].农业机械学报, 2025(10).
🎈 部分理论引用网络文献,若有侵权联系博主删除