AGV调度方法入门

目的
  本文首先介绍AGV调度中的基本概念和主要问题,然后分析现有调度方法的特点。
  
1 AGV及其调度问题

1.1 AGV是什么?

  国家标准 [ 1 ] 对AGV(自动导引车)的定义是:

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

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

1.2 AGV调度系统是什么?

  国家标准 [ 1 ] 对AGV调度系统(Dispatching system)的定义是:

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

  在深入之前,为了便于理解,先阐明所使用的基本概念的含义。
  ● Dispatch(派遣):指派一个AGV去执行一个运输任务。
  Dispatching is the process of assigning a transportation job to an AGV [ 2 ] .
  ● Schedule(狭义上的“调度”):分配一批运输任务给一组AGV去执行。
  Scheduling is the process of dispatching a set of AGVs to a batch of transportation jobs [ 2 ] .
  The aim of AGV scheduling is to dispatch a set of AGVs to achieve the goals for a batch of pickup/ drop-off (or P/D for short) jobs [ 3 ] .
  ● Route(路径规划):生成所有被指定 AGV 的路径使其能完成各自被指派的任务。在机器人领域,路径翻译为 path ;而在 AGV 领域通常使用 route 表示相似的概念,翻译为“路线、轨道”,它一般表示固定的不经常变动的路径。path 只能用作名词,route 还可以作为动词,表示“为…指派路径”。本文我们不纠结这些微妙的细节,统一称其为路径。
  Routing is the process of determining routes for a set of AGVs to fulfill their respective transportation jobs [ 2 ] .
  Once the scheduling decision is made, the mission of routing is to find a suitable route for every AGV from its origin to destination based on the current traffic situation [ 3 ] .
  单独看一个AGV的工作并不复杂。例如机床要加工零件时通过更上层的MES控制系统给AGV的调度系统发出请求命令,后者派遣(dispatch)一台 AGV 负责把原料从仓库运送到机床。这个过程可以被称为一个任务(job),一个任务就是在一对工作地点之间移动。在这个例子中,机床只提出需求(我要在什么时间加工什么零件),至于选择哪个 AGV 运送零件原料,AGV 该沿哪条路线运动,这些都是调度系统的工作。调度系统一旦为AGV指定好路径后,AGV上的车载控制器会根据指令完成具体的运动控制任务,例如速度保持在多少,遇到路口转向时轮子怎么转动等等。所以在一个完整的大系统中,AGV调度系统位于上层控制系统和底层控制系统的中间。
  但是对于多个AGV,调度问题就会变得非常困难,而且AGV数量越多,难度越大。因此,调度系统成为AGV行业的一个关键技术 [ 4 ] 。而能够调度的AGV数量也成为评判一个调度系统强大与否的重要指标。根据笔者的判断,虽然目前从事AGV行业的企业很多,但是具有自主调度系统的企业并不多,而能够真正把调度系统优化的很好、能够最高效率地利用AGV系统的企业更是屈指可数。当然,如果站在AGV厂家的立场,他们并没有太大的动力把调度系统做的很高效。因为提高调度效率会减少AGV的投入量,这意味着卖出的AGV就少了。
  对实际应用的AGV调度系统软件,它的功能通常是非常丰富的,一般包括:任务管理、车辆状态监控、路径规划、地图编辑、数据库查询等。

1.3 AGV调度问题

  我们应该能分辨一个问题是不是调度问题。假设工厂中只有一台AGV在工作,此时调度问题就退化成简单的路径规划问题了。因为不需要考虑该将任务分配给哪台AGV的问题,也不需要考虑在一个路口谁先走谁后走的问题。所以调度问题的前提是多个AGV共享路径网络,换句话说AGV之间存在资源争夺。就像马路上的车辆一样,谁都想怎么快怎么开车,如果每个司机都只考虑自己而不考虑对方,那么后果很可能是谁都别想走(拥堵在一起)。讽刺的是,个人追求自己局部的最优解却变成了全局的最差解,所以调度是有存在的必要的,而且有时很重要(红绿灯、交警、人行道都可以看成“广义”的调度)。
  多数情况下,调度系统需要统筹所有AGV的行为(上帝视角),它追求的不是某几个AGV的最优解(当然它有能力这么做),而是整体的最优。我们可以设想一下,能不能做一款调度软件来调度一个城市里所有的车辆,让整体解是最优的(例如所有人耗费的汽油加起来最少)。这个最优解一定存在,但是实际上却几乎不可能解出来,因为有两个难点。首先,调度系统要掌握海量的信息,比如张三八点从家里开车到单位,赵四九点开车送孩子,王五的车油量不够,需要中途加油等等。更困难的是这些信息是变动的,例如张三的车开着开着抛锚了把路堵死了。第二个问题是,调度问题的复杂度随着参与者的数量呈指数增加。如果只有几十辆车,现在的算法和计算机硬件还能勉强解决,如果要处理成千上万辆车,那恐怕只有上帝才能做到了。信息缺乏和维度诅咒是调度问题面临的主要困难。扯远一点,其实计划经济也面临同样的问题,要对经济进行计划需要决策者掌握海量的信息,并拥有超级大脑,在那个多数人连电脑是什么都不知道的落后年代搞计划经济必然不会太好。
  正因为调度问题是极其复杂的,所以大多数时候我们只能退而求其次找一个说的过去的近似最优解,这也是实际生活中每个路口的交通信号灯闪烁背后的逻辑。

   
相向碰撞          追击碰撞          节点碰撞

2 AGV调度方法

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

2.1 多机器人协调问题

  AGV调度问题可以看成多机器人协调问题(Multi-Robot Coordination)的特例。多机器人共享一个环境,如何协调它们的运动使所有机器人都能能达到目标。讨论多机器人协调问题是为了对调度问题有更好的理解。
  

引用文献

[1] 《GBT 30030-2013 国家标准 自动导引车(AGV)——术语》.
[2] Comparison of Routing Strategies for AGV Systems using Simulation, Mark B. Duinkerken, 2006.
[3] Scheduling and Routing Algorithms for AGVs: A Survey, Qiu Ling, 2002.
[4] 全面解读科尔摩根NDC中国市场策略.
[5] openTCS-4.2.0.

猜你喜欢

转载自blog.csdn.net/robinvista/article/details/73348711