欢迎来到仓小二仓库出租网平台!, 汇聚全国厂房出租、仓库出租、园区招商房源信息! 客服热线:400-0827-818 官方微信

什么是AGV?多台AGV之间如何调度实现互相配合?

AGV是智能仓储物流系统中非常常见的一种应用设备,一个AGV搬运系统中,往往不止一台AGV本体,你知道多台AGV之间究竟是怎么调度实现互相配合的吗?


上图由Mathematica制作

1 AGV及调度问题

1.1 AGV是什么?

国家标准对AGV 的定义是:

AGV(Automated Guided Vehicle 自动导引车):装备有电磁或光学等自动导引装置,由计算机控制,以轮式移动为特征,自带动力或动力转换装置,并且能够沿规定的导引路径自动行驶的运输工具,一般具有安全防护、移载等多种功能。

通俗讲,AGV 就是一个用来运输的移动机器人,它是一个搬运工,把货物从A处运到B处,因此AGV的大部分研究也是包含在移动机器人领域内的。

1.2 AGV调度系统是什么?

国家标准AGV调度系统的定义是:

调度系统(Dispatching system):上位控制系统中用于任务调度、车辆管理及交通管理的控制软件。

在深入之前,为了便于理解,先阐明基本概念的含义。

● Dispatch(派遣) :指派一个AGV去执行一个运输任务。

● Schedule(狭义上的“调度”) :分配一批运输任务给一组AGV去执行。

● Route(路径规划) :生成所有被指定 AGV 的路径使其能完成各自被指派的任务。在机器人领域,路径翻译为 path ;而在 AGV 领域通常使用 route 表示相似的概念,翻译为“路线、轨道”,它一般表示固定的不经常变动的路径。path 只能用作名词,route 还可以作为动词,表示“为…指派路径”。本文我们不纠结这些微妙的细节,统一称其为路径。

单独看一个AGV的工作并不复杂。例如机床要加工零件时通过更上层的MES控制系统给AGV的调度系统发出请求命令,后者派遣(dispatch)一台 AGV 负责把原料从仓库运送到机床。

这个过程可以被称为一个任务(job),一个任务就是在一对工作地点之间移动。在这个例子中,机床只提出需求(我要在什么时间加工什么零件),至于选择哪个 AGV 运送零件原料,AGV 该沿哪条路线运动,这些都是调度系统的工作。

调度系统一旦为AGV指定好路径后,AGV上的车载控制器会根据指令完成具体的运动控制任务,例如速度保持在多少,遇到路口转向时轮子怎么转动等等。所以在一个完整的大系统中,AGV调度系统位于上层控制系统和底层控制系统的中间,其到管家的作用。

但是对于多个AGV,调度问题就会变得非常困难,而且AGV数量越多,难度越大。因 此,调度系统成为AGV行业的一个关键技术。而能够调度的AGV数量也成为评判一个调度系统强大与否的重要指标。

根据笔者的判断,虽然目前从事AGV行业的企业很多,但是具有自主调度系统的企业并不多,而能够真正把调度系统优化的很好、能够最高效率地利用AGV系统的企业更是屈指可数。当然,如果站在AGV厂家的立场,他们并没有太大的动力把调度系统做的很高效。因为提高调度效率会减少AGV的投入量,这意味着卖出的AGV就少了。

对实际应用的AGV调度系统软件,它的功能通常是非常丰富的,一般包括:任务管理、车辆状态监控、路径规划、地图编辑、数据库查询等。【仓库出租、厂房出租;找仓库,找厂房就找仓小二!】

1.3 AGV调度问题

大多数人虽然未必了解调度的方法和细节,但对它或多或少都有一些直觉上的感性认识。如果你在火车站或者飞机场用电脑看本文,那么你同时正在经历两种调度过程:大量的火车和飞机需要调度,与此同时你电脑里的操作系统也在对大量的任务进行调度。

当很多事件同时发生,而且存在竞争时就需要调度了。如果只有一个事件发生,那么所有资源都由这个事件支配(火车可以在任何一条铁轨上跑),我们不需要调度;如果多个事件同时发生,但是没有竞争关系(美国的一列火车和中国的一列火车),我们也不需要调度,因为它们不会发生冲突。

首先,我们应该能分辨一个问题是不是调度问题。假设工厂中只有一台AGV在工作,此时调度问题就退化成简单的路径规划问题了。因为不需要考虑该将任务分配给哪台AGV的问题,也不需要考虑在一个路口谁先走谁后走的问题。

所以调度问题的前提是多个AGV共享路径网络,换句话说AGV之间存在资源争夺。就像马路上的车辆一样,谁都想怎么快怎么开车,如果每个司机都只考虑自己而不考虑对方,那么后果很可能是谁都别想走(拥堵在一起)。

于是,个人追求自己局部的最优解却变成了全局的最差解,所以调度是有存在的必要的,而且有时很重要(红绿灯、交警都起到某种“调度”的作用)。

多数情况下,调度系统需要统筹所有AGV的行为(上帝视角),它追求的不是某几个AGV的最优解(当然它有能力这么做),而是整体的最优。我们可以设想一下,能不能做一款调度软件来调度一个城市里所有的车辆,让整体解是最优的(例如所有人耗费的汽油加起来最少)。

这个最优解一定存在,但是实际上却几乎不可能解出来,因为有两个难点。首先,调度系统要掌握海量的信息,比如张三八点从家里开车到单位,赵四九点开车送孩子,王五的车油量不够,需要中途加油等等。更困难的是这些信息是变动的,例如张三的车开着开着抛锚了把路堵死了。

第二个问题是,调度问题的复杂度随着参与者的数量呈指数增加。如果只有几十辆车,现在的算法和计算机硬件还能勉强解决,如果要处理成千上万辆车,那恐怕只有上帝才能做到了。信息缺乏和维度诅咒是调度问题面临的主要困难。

扯远一点,其实计划经济也面临同样的问题,要对经济进行计划需要决策者掌握海量的信息,并拥有超级大脑,在那个多数人连电脑是什么都不知道的落后年代搞计划经济必然不会太好。【仓库出租、厂房出租;找仓库,找厂房就找仓小二!】

正因为调度问题是极其复杂的,所以大多数时候我们只能退而求其次找一个说的过去的近似最优解,这也是实际生活中每个路口的交通信号灯闪烁背后的逻辑。

相向碰撞 :


追击碰撞:


节点碰撞:


2 路径规划方法

多个AGV的调度需要规划不同AGV的路径,所以我们先了解下现有的路径规划方法。AGV是个听话的笨蛋,如果调度系统想让一个AGV从A走到B,它不能简单地将A和B站点的信息给AGV,而是要将A到B之间的完整路径告诉AGV。

目前普遍用“图”(graph 数学概念)对AGV的行驶空间进行建模,“图”由节点和边组成。所以AGV的行驶路径可以表示为一系列相邻的节点。

3 AGV调度方法

因为AGV调度问题很有理论深度,所以吸引了大批的学者,他们不同的角度讨论这个问题,提出了各种花哨的方法。不过很多理论难以转化成实际可行的方法,所以实际和理论有很大的差异。

3.1 多机器人协调问题

AGV调度问题可以看成多机器人协调问题(Multi-Robot Coordination)的特例。多机器人共享一个环境,如何协调它们的运动使所有机器人都能能达到目标。讨论多机器人协调问题是为了对调度问题有更好的理解。最早的方法也是最简单的方法之一,就是为不同的机器人设置不同的优先级(Priority)。【仓库出租、厂房出租;找仓库,找厂房就找仓小二!】

优先级高的机器人先规划自己的路径,优先级低的机器人将比它高的机器人的路径视为障碍物,进而再进行规划。当然这种方法有个明显的缺点:优先级高的机器人过于霸道,它把所有的路都堵死了,以至于优先级低的机器人怎么也找不到路。这时我们就要调整优先级了。


仓库出租 厂房出租 仓库类型 仓库建筑 ——仓小二

热门城市

北京厂房出租
天津厂房出租
石家庄厂房出租
太原厂房出租
呼和浩特厂房出租
沈阳厂房出租
长春厂房出租
哈尔滨厂房出租
上海厂房出租
南京厂房出租
杭州厂房出租
合肥厂房出租
福州厂房出租
南昌厂房出租
济南厂房出租
郑州厂房出租
武汉厂房出租
长沙厂房出租
广州厂房出租
南宁厂房出租
海口厂房出租
重庆厂房出租
成都厂房出租
贵阳厂房出租
昆明厂房出租
拉萨厂房出租
西安厂房出租
兰州厂房出租
西宁厂房出租
银川厂房出租
乌鲁木齐厂房出租
香港厂房出租