• 基于冲突搜索的多机器人路径规划(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

  • 相关阅读:
    62.不同路径 63. 不同路径 II
    使用python爬虫语言调用有道翻译实现英中互译(2023实现)
    Httpd(一)
    后缀自动机(SAM)讲解
    还是得从代码角度看yolov5(1)
    /usr/bin/ld: cannot find -lc错误原因及解决方法
    2022年湖南成人高考录取结果查询方式及时间
    springboot 集成webSocket
    安装typescript环境并开启VSCode自动监视编译ts文件为js文件
    mysql8.0版本的 utf8mb4 格式数据不能移植到 mysql1.0版本上
  • 原文地址:https://blog.csdn.net/weixin_66436111/article/details/128102627