使用手册-routing字段:设置车辆必经点(必不经点)逻辑
通过routing字段配置小车路径中的必经点或必不经点
routing字段为simple中内置的站点字段,将其标记在路径终点可以实现指定到达此终点的小车必须经过或必不经过某点的功能,其值及含义如下表。
| 字段值 | 含义 | 备注 |
|---|---|---|
| origin:(siteId1)-passAll:siteId2,siteId3,siteId4 | 如果车辆来自siteId1点,其必须经过siteId2、siteId3、siteId4点 | 当不填写siteId1时,代表来自任何点的小车 |
| origin:(siteId1)-passNone:siteId2,siteId3,siteId4 | 如果车辆来自siteId1点,其不能经过siteId2、siteId3、siteId4点 | |
| origin:(siteId1)-passAny:siteId2,siteId3,siteId4 | 如果车辆来自siteId1点,其必须经过siteId2、siteId3、siteId4点中的一个 |
以下将分别介绍三个字段值的使用说明,simple工程中各点的id如下图所示

1.passAll
代表必须经过passAll中的所有点,可以为一个也可以为多个点,如下图所示,若不在路径终点标记routing字段,agv应该通过1-2-3-4-5的顺序到达终点,在终点标记了routing:origin:1-passAll:6字段后,代表从1号点来的车辆,必须经过6号点,所以路线变为1-2-6-7-8-5。


2.passNone
代表不能经过passNone中的任何点,可以为多个点也可为一个点。如下图所示,在终点标记了routing:origin:1-passNone:3,8,表示从1号点过来的车辆,不能经过3号和8号点,所以其路线变为1-2-6-7-4-5。

3.passAny
代表必须经过passAny中的任意一个点,如下图所示,在终点标记了routing:origin:1-passAny:6,8,表示从1号点过来的车辆,必须经过6号和8号中的一个点。当两个点都可用时,会选择总距离最短的点,当其中一个点被占用时,会选择另一个点。
如下图所示,由于标记了routing:origin:1-passAny:6,8,且选择8号点时路径较短,所以路径变为1-2-3-4-8-5

当8号点被占用时,其需要经过6号点,所以路径变为1-2-6-3-4-5。

这些字段也可以配合使用,比如需要实现“必须经过某点且不能经过某点”,可以用“|”进行分割,如下图所示,在终点设置了字段routing:origin:1-passAll:3|origin:1-passNone:4,代表从1号点过来的车辆,必须经过3号点且不能经过4号点,所以路线变为1-2-3-7-8-5。

routing字段中也可不设置siteId1,如routing:-passAll:8,代表无论从哪个点出发的小车,到达此目标点,都必须经过8号站点,如下图所示,在5号点设置了routing:-passAll:8字段,代表无论小车从哪个点出发,都必须经过8号点。passAny和passNone也有相同用法。

