1、 回头路的作用:限制“断头路”区域中的机器人数量,防止形成拥堵或者死锁等场景。
2、 回头路配置场景:当一个区域只有且只有一条路径出入时(如果一片回头路点区域存在多个出入口,会导致算法解析错误),此区域内所有的点都需配成回头路,防止进入的机器人过多导致拥堵或者死锁。
对于大多数现场来说,此情况都可以通过配置两条以上的出入路径解决,但是由于现场地形等限制,部分现场只能将地图画成如图所示的“断头路”,因此需要配置回头路。
3、 如何配置回头路:在rcms网页“地图编辑”中,批量框选出“断头路”区域内所有的点。在“点属性”-“路属性”中将其配置为“回头路”,并点击“保存”。
注意:经常有同事错把“断头路”的入口配置成回头路,这种配置方法是错误的。
4、 回头路的严格控制与非严格控制:
配置方法:
l 方法1:进入rcms网页,在“RCS能力集”>“规划库配置”>“回头路控制”中选择“严格控制”或“非严格控制”。
l 方法2:如果rcms网页中无法配置,则需在rcs_trp_config.xml文件中配置CutHeadCtrl参数, “1”表示严格控制, “0”表示非严格控制。
严格控制:当选择“严格控制”后,若回头路区域内存在一个机器人,则回头路外的车不可进入且不能停在回头路入口或干涉到入口的关联点处。
非严格控制: 当选择“非严格控制”后,若回头路中有车,只要回头路外的小车Rout的路径不与回头路内小车Rin发生干涉,就可以进入回头路;当Rin的路径是进回头路(其路径点一直在回头路里面)且该车在终点的状态不会影响Rout的路径,则两车没有干涉。或者Rin停在回头路里没有路径,且Rin的停靠位置不干涉Rout的路径,两车也没有干涉。
通俗地说,只要进入回头路小车不与当前回头路内已存在的小车发生干涉,就可以进入回头路。
例如:下图中A车已在回头路中,B车前往的地点未与A车干涉,则可以通行;C车前往的地点为A车所在地,则不允许通行。
5、 避让到回头路。
l 当回头路设置为不可避让时,若小车在回头路外部发生避让,则不能进入回头路进行避让;若小车在回头路内部发生避让,则可以自由进行避让,并且在特殊情况下也能出回头路进行避让。
l 当回头路设置为可避让时,在非严格控制下不作限制;在严格控制下,不能进入存在小车的回头路中进行避让。
6、 不规范的配置案例:
案例一:存在多个入口。
规划库会将入口1或者2中的任意一个解析成回头路入口,导致回头路解析错误。
案例二:回头路区域过大。
本意是想让每一条巷道为一条回头路,但是这种配置方式会使算法将整片回头路点解析成一个回头路,导致整片区域中只能进一辆车。
案例三:主通道配置回头路(多余配置)。
本意是为了避免两辆车对向进入该主通道上产生避让或者死锁的问题。但是实际上算法在排通行顺序时会考虑这种对向冲突的情况,会通过路径关系来预防,无需使用回头路来限制。在主通道上配置回头路的画法,不仅存在多个入口的问题,而且会导致主通道区域每次只能走一辆车,即使两车是顺向跟车行驶。
案例四:错误配置回头路入口点。
此案例不仅存在“将回头路入口点配置成回头路点” “有多个入口”的问题,并且有一条超长的弧线将叉车所在的等待点连到另一条主通道上的A点,导致回头路入口可能解析成A点,当叉车停在等待点时,旁边主通道上的A点及周围有干涉的关联点处都不能停车,导致异常的等待和拥堵。
7、规范配置回头路,但是导致的额外问题案例
案例一:严格控制回头路导致任务无法完成——入口导致
背货架小车目的地为回头路入口,因此车一直停在原地等待。
案例二: 严格控制回头路导致任务无法完成——入口关联点导致
R1在回头路里面,A点被解析成回头路入口,B则为回头路入口关联点。若开启回头路严格控制,此时叉车R2无法到达其目标点B点,因为R2在B点的空间可能会和R1在A点的空间有干涉。(在严格控制下,小车不能停在干涉回头路入口的回头路入口关联点处)。
案例三:旋转空间干涉
R1在回头路中,R2的目标点为回头路入口。由于R2在B点(入口关联点处)和R1在A点(回头路入口)的空间没有干涉,所以R2能够移动到B点停留。但是后续R1需要出回头路,在A点的需要旋转,其旋转空间会和在B点的R2干涉,触发R2避让。这种情况下,可以将B点适当上移,保证A点在旋转时不会和B点干涉。或者将B点适当下移,使得R2在B点和R1在A点的静态空间就有干涉,从而提前预防,使得R1在回头路里时R2就不能停到B点处。
补充:关联点为与该点直接关联点为与该点直接相连、距离较近或可能存在保护空间干涉的点。一般由该点的出入边相连的点、距离在一定范围内的点构成。其中一定范围由系统配置的最大车体和货架长宽、该点最大出边长度等共同决定。当开启叉车配置选项,这个距离范围会更大一点。
您好,我们在现场设置时,有时候希望把某一片区域设定成只允许一个机器人工作(单一机器人工作区域),除了设定回头路以外还有其他的方式实现吗?