【MATLAB集群控制导航7】多无人机三维编队轨迹规划仿真。RRT*+Catmull-Rom路径平滑+Frenet 编队保持。附MATLAB代码链接

原创代码,请勿翻卖

文章目录

程序简介

本代码围绕多无人机三维编队轨迹规划与避障仿真展开,构建了一个包含球形障碍物和长方体障碍物的三维复杂飞行环境。程序采用 RRT* 算法完成领航无人机的全局路径搜索,并通过路径平滑处理生成更加连续、自然的飞行轨迹,使规划结果更适合用于无人机航迹展示、避障验证和编队控制仿真分析。

在完成领航机路径规划后,代码进一步引入多无人机编队保持机制,根据领航机的运动方向生成多架跟随机的三维编队轨迹,实现了从单机路径规划到多机协同飞行的扩展。最终程序输出 RRT* 探索树、原始路径、平滑路径以及多无人机三维编队轨迹图,整体可视化效果直观,适合用于无人机路径规划、三维避障、编队飞行控制等方向的教学演示、科研仿真和工程方案展示。

运行结果

本程序运行后将自动生成两幅三维可视化图像:

图1:RRT 规划结果 *

展示完整的探索树结构、原始折线路径与Catmull-Rom平滑后的路径对比,球形与箱形障碍物以半透明方式渲染,起点(蓝圆)与终点(红三角)清晰标注。

图2:多无人机编队三维轨迹

在图1平滑路径基础上,叠加显示1架领航机与3架跟随机的完整三维飞行轨迹,四机以不同颜色区分,编队队形在全程保持稳定的纵-横-垂偏移关系。

命令行输出:包括障碍物数量、RRT*迭代进度、原始路径节点数与总代价、平滑采样点数等关键信息。

MATLAB源代码

完整代码如下:

matlab 复制代码
%%  多无人机三维编队轨迹规划仿真
%  算法: RRT* + Catmull-Rom 路径平滑 + Frenet 编队保持
% 作者:matlabfilter
% 2026-05-12

clear; clc; close all;
rng(0);

%% 全局参数
cfg.space_min = [0,  0,  0 ];
cfg.space_max = [50, 50, 30];
cfg.start     = [2,  2,  2 ];
cfg.goal      = [47, 47, 22];
cfg.max_iter   = 4000;
cfg.step_size  = 2.5;
cfg.goal_bias  = 0.12;
cfg.rewire_r   = 6.0;
cfg.goal_tol   = 2.5;
cfg.smooth_pts = 300;
cfg.n_followers = 3;
cfg.formation_offsets = [
    -4,  3,  0;
    -4, -3,  0;
    -8,  0,  2;
];
cfg.anim_speed = 3;
cfg.uav_colors = {[0.00 0.45 0.74]; [0.85 0.33 0.10]; [0.47 0.67 0.19]; [0.49 0.18 0.56]};

%% 构建三维障碍物
fprintf('构建三维障碍物环境...\n');
obs = struct('type',{},'center',{},'radius',{},'half_sz',{});
idx = 0;
spheres = [10,8,10,4.0; 20,15,8,3.5; 15,30,12,4.5; 30,10,18,3.0; 25,35,6,4.0; 35,20,15,3.5; 40,30,20,4.0; 18,22,20,3.0; 42,12,8,3.5; 28,42,18,4.0];
for i = 1:size(spheres,1)
    idx = idx+1; obs(idx).type='sphere'; obs(idx).center=spheres(i,1:3); obs(idx).radius=spheres(i,4); obs(idx).half_sz=[];
end

完整代码:https://blog.csdn.net/callmeup/article/details/161015749?fromshare=blogdetail&sharetype=blogdetail&sharerId=161015749&sharerefer=PC&sharesource=callmeup&sharefrom=from_link

如需帮助,或有导航、定位滤波相关的代码定制需求,请点击下方卡片联系作者

相关推荐
用户712122751261 天前
MATLAB 自动化 Excel 转 SLDD 数据字典完整方案(适配自定义 THBPackage 存储类)
matlab
ZhengEnCi2 天前
P2M-Matplotlib折线图完全指南-从数据可视化到趋势分析的Python绘图利器
python·matlab·数据可视化
ZhengEnCi2 天前
P2L-Matplotlib饼图完全指南-从数据可视化到图表定制的Python绘图利器
python·matlab
24年生活经验_小旻13 天前
ROS2+Ardupilot+Gazebo通信仿真基本环境搭建
无人机
LDR00614 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术14 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园14 天前
C++20 Modules 模块详解
java·开发语言·spring
xiao5kou4chang6kai414 天前
MATLAB机器学习、深度学习--从数据预处理到模型训练
深度学习·机器学习·matlab·数据预处理
swordbob14 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享14 天前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm