基于冲突搜索的多机器人路径规划(Matlab代码实现)

 目录

1 概述

2 运行结果

3 参考文献

‍4 Matlab代码


1 概述

随着自动化物流系统的发展,移动机器人作为运输系统的关键工具,各方面的技术得到了快速的发展。多移动机器人路径规划是机器人导航研究领域中极具挑战性的问题。多机器人路径规划是一个多目标优化问题,如何实现机器人间的路经协调,机器人的避障,并如何保证路径规划的多个优化目标能够同时、合理的优化是该问题的研究难点。本文对自动化物流系统中多机器人系统进行了研究。分析了当前多机器人路径规划技术,并完成了分层路径规划方案的总体设计,第一层为全局路径规划,第二层为局部路径协调。在全局路径规划的问题中,大多算法有收敛速度慢和收敛不足的缺点,而且大多只考虑了单一的路径长短这一个目标,导致路径存在不平滑,安全性能不好的问题。

针对智能仓储环境下多载位自主移动机器人集群拣选-配送路径规划问题,提出一种改进型基于冲突搜索的多智能体路径规划算法。在模型上,采用多载位机器人替代KIVA机器人,建立以最小化拣选-配送时间以及无效路径比为目标的数学规划模型.在算法上,首先提出一种基于优先级规则的多智能体冲突消解加速策略;然后,设计基于动态规划的单机器人拣选序列优化算法;最后,设计考虑转向惩罚的增强A*算法搜索机器人最优路径。实验结果表明,所提出模型与KIVA系统相比有较大优越性;所提出算法能有效缩短拣选-配送时间、减少无效路径时间。

2 运行结果

 

 

 

3 参考文献

[1]张洪琳,吴耀华,胡金昌,张健.一种基于改进冲突搜索的多机器人路径规划算法[J/OL].控制与决策:1-7[2022-10-25].DOI:10.13195/j.kzyjc.2022.0729.

‍4 Matlab代码

%% Initialize
clear;
clc;

xlength=61;
ylength=29;
robotNum=10;
podNum=800;
depotNum = 8;
taskNum = robotNum;

xy2rc=@(x,y)[ylength+1-y;x];
rc2xy=@(r,c)[c;ylength+1-r];

sz=get(0,'screensize');
sz(1,2) = 80;
sz(1,4) = 950;
h=figure('outerposition',sz);
assignin('base','h',h); %in case of any callback errors.
hold on;
grid on;
set(gca,'xtick',0:1:xlength);
set(gca,'ytick',0:1:ylength);
axis equal;
axis([0 xlength+1 0 ylength+1]);
axis manual;

% stores current states
globalTime = 1;
AllRobotState = zeros(robotNum,3);
AllPodState = zeros(podNum,3);

MapOccupancy = zeros(ylength,xlength);
RobotOccupancy = zeros(ylength,xlength);

[RobotStates,PodStates,DepotStates,StorageOccupancy]=initialize(xlength,ylength,robotNum,podNum,depotNum);
PodOccupancy = StorageOccupancy;

MapOccupancy = MapOccupancy+PodOccupancy;

%generate random tasks
TaskCell=cell(taskNum,1);
for i=1:taskNum
    task=Task;
    task.PodID=randi([1 podNum]);
    task.StationID=randi([1 depotNum]);
    task.ProcessTime=randi([5 20]);
    task.ReturnState = zeros(1,3);
    TaskCell{i,1}=task;
end

你可能感兴趣的:(路径规划,机器人,matlab)