欢迎来到 < Haoh-Smile > 的博客,觉得受用客官就点个赞评论一下呗!
多AGV无冲突路径规划
在专栏dijkstra 路径规划中已经介绍了Dijkstra算法的原理及MATLAB实现,其中系列文章Dijkstra算法结合时间窗规划无冲突路径以两台AGV为例实现了无冲突路径规划功能的代码实现,为实现任意多台AGV的无冲突路径规划,本专栏重新搭建了功能架构,重新编写了功能逻辑,实现了基于时间窗检测冲突的Dijkstra算法多AGV路径规划。由于此专栏在上一专栏的基础上继续开发,所以在本专栏不进行过多的基础逻辑关系讲解,直接贴工程代码,如需了解请阅读dijkstra 路径规划。
整个功能流程图如下:
执行文件代码如下:
clear;
clc;
%%%%%%%%%%%%%%%%%%%%%%建立环境矩阵map及参数初始化%%%%%%%%%%%%%%%%%%%%%
map=[0 0 0 1 0 0 1 0 0 0;
1 0 0 0 0 1 1 0 0 0;
0 0 1 0 0 0 1 1 0 0;
0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 1 0 0 1 0;
1 0 0 0 0 1 1 0 0 0;
0 0 0 1 0 0 0 0 0 0;
1 1 1 0 0 0 1 0 0 0;
0 0 0 0 0 1 1 0 0 0;
0 0 0 0 0 1 1 0 0 0;];
global SE;
SE = [1,65;10,41;99,50;59,99;91,95;94,92]; %优先级顺序任务序列(任意数量)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%以上是参数可更改区域,以下所有功能函数已封装%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[W,C] = MapInit(map); %环境初始化
[PrePathSet,PreTimeWindow,PrePathIndex] = Preplanned_Path(map,W); %路径预规划
planningPath(map,PrePathSet,PreTimeWindow,PrePathIndex); %规划路径
plotTW(map,C); %画出时间窗
plotMap_Path(map,C); %得到环境地图
其中环境初始化功能代码 [W,C] = MapInit(map) 请查看上一专栏中01 - function [W,Q,I,C] = MapInit(map)功能代码,将下图中标红部分删除即可,其它功能代码相继在本专栏以后的文章中进行更新,请耐心等待。
整个功能实现如下图所示: