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

  • 相关阅读:
    CSAPP-Lab04 Architecture Lab 深入解析
    C++入门知识
    pyqt环境搭建
    Net Core Swagger 加上JWT 登录
    软件测试简历项目经验怎么写,没有项目经验?
    冯唐成事心法笔记 —— 知世
    【简历优化】如何写好项目的亮点难点?项目经历怎么写最好?
    PTE DESCRIBE IMAGE做题方法 (一)
    Maven的总结
    洛谷P1406 方格填数 题解
  • 原文地址:https://blog.csdn.net/weixin_66436111/article/details/128102627