混合调度系统中,AGV路径规划
1. 概念约定
混合调度系统,自带功能全面的路径规划算法和交通管制算法。在使用系统时,我们对一些概念进行了约定叫法
路径(线路)

导航路径

如上图所示,其中亮绿色的线条则为确认路径,墨绿色的线条则为缓存路径。
全局路径
全局路径指的是系统从起点到终点的路径规划,但是由于交通管制的原因,该全局导航路径可能分为两部分,一部分是当前可以行驶的路径,我们称之为确认路径,一部分是当前不可行驶的路径,我们称之为缓存路径。这种路径设计思路是完全满足VDA5050的。
确认路径
全局路径中已经经过交管计算,目前可以行驶的路径,我们称之为确认路径,确认路径是不会被修改的,通讯脚本需要将该段路径下发给车体。
缓存路径
全局路径中经过教官计算,当前不可以行驶的路径,我们称之为缓存路径,比如被其他AGV阻挡,或者其他保护算法让AGV避免进入某一区域。缓存路径在后续算法计算中可能因为重导航的原因被修改,所以通常情况下我们不需要将缓存路径下发给车体。
2. 交通管制(交管)

系统自带交管算法,内部的交管算法种类较多,主要的目标包括“避免两车跟车过近”、“避免辆车顶牛(面对面行驶)”、“避免车流量在某一区域过大”等。
一辆未被交管的车辆将具有绿色的执行边框:

一辆被交管的车辆将具有红色的执行边框,并且将在车辆正中间显示交管原因:

注意:车辆中间显示交管区域的底色,将随着交管时间的增加而逐渐变为红色。
交通管制具有很多原因,包括:
⭕ 空闲的Agv
被路径中其他空闲的Agv阻挡,但是如果打开了推挤算法,则空闲Agv将寻找停靠点让出路径。
⭕ 区域干涉 (HitTest碰撞测试)
混合系统具有完善的结构干涉测试,也称之为HitTest即碰撞测试,它的功能是计算所有实体的“包络线”,检测车体与车体间,车体与墙体间或车体与其他设备间是否存在结构碰撞风险。当存在这种风险,交管算法会避免其驶入区域。

如图所示,绿色的覆盖路径的点阵即是该车辆自身的干涉区域及规划出路径的干涉区域
⭕ 阻塞的Agv
被路径中其他阻塞的Agv阻挡,该类型的交管即使打开推挤算法也不会将已经阻塞的Agv推开。如果存在大量阻塞的Agv,可以打开“阻塞自动绕路”算法,从而尽快的让阻塞的Agv重新寻找更优路径。
⭕ 资源点占用
系统采用了资源点抢占算法,每一个站点都是一个资源点;当路径规划后,调度系统将根据路径抢占所需的资源点,如果被其他车体的路径占用了,则无法再次抢占,则会报该类交管。
⭕ 顺序锁
顺序锁是资源点上的一个多重锁,资源点锁定是单锁,只能锁定一次,而顺序锁可以重复锁定某一个资源点。该锁的目的是解决“面对面”路径的优先释放问题,算法比较复杂,使用时仅作为参考即可。
⭕ 口袋保护 (巷道保护)
系统在分析地图的时候会自动的将巷道识别出来,所谓巷道,是一条没有额外岔路的直通路径,巷道有两种模型,一种是“单通巷道”,这种巷道只有一端具有出入口,另一端为巷道末端;另一种是“双通巷道”,该巷道具有两端出入口。百剑系统的算法会避免车体同时进入同一个“单通巷道”,否则巷道深处的车体将无法出来。
⭕ 虚拟区域干涉
基本原理类似于区域干涉,但是作用等同于顺序锁。算法比较复杂,使用时仅作为参考即可。
⭕ 路径暂时不可用
系统支持脚本临时“封路”操作,一旦路径被封,在未解封之前交管算法会确保车辆不会进入。
⭕ 系统资源点占用
系统资源点一般指系统自带的算法模型如:电动门、电梯等,他们必须在“可进入”的情况下才可以让车体驶入。
⭕ 虚拟路径
虚拟路径很少用到,使用时仅作为参考即可。
⭕ 交管区域
百剑的系统支持用户自行绘制定义管制区域,通过一系列点的描述可以方便的定义一个管制区域。管制区域可以配置最大的Agv容量,当管制区域中Agv的数量达到上限,则交管将阻止车辆进入。
⭕ 检查点分割路径
系统支持检查点功能,即车辆在该点强制交管,但是当车辆行驶到该点上时,将重新规划下一段路径并继续行驶。也就是说检查点相当于强制停靠一次的停泊点。
⭕ 由于最大长度主动分段
当不做任何限制的时候,Agv可以规划出非常长的导航路径,由于“资源点占用”或结构干涉等原因,将导致大片路径被锁定,其他Agv将被迫等待很久,通过设置最大长度主动分段,我们可以强迫车辆只拥有可控长度的“确认路径”。
⭕ 由于最大路径数量主动分段
作用同上,区别在于不以长度进行分段,而是以经过的路径数量进行分段。
⭕ 旋转区域保护算法
目前已经基本弃用。
⭕ 流量管制
系统具有流量管制算法,在某些区域或者路径流量过大时,车辆将被交管在区域外。
⭕ 手动交管 ★
非常重要的交管功能,需要结合脚本使用,可以人为实现各种复杂的交管模型。
⭕ 由于绕路必经点
当打开了“阻塞自动绕路”算法后,车辆可能会规划一条“回绕”路径,在“回绕”路径的末端将停止一次,防止车辆刚刚绕开又开回来的问题。
3. 路径规划信息


该信息中我们查看:
- 导航耗时(s):CostTime
- 导航路径长度(m):Length
- 导航路径生成时刻:GeneratorTime
- 经过的站点:Stations
- 路径的详细信息:Routes
4. 查看任务


- 赤蟹百剑,一个移动机器人开源社区,扫码加入!

