帮助中心
新建场景步骤

一、新建场景

1. 打开场景编辑器

在 roboshop 首页-其他-调度场景编辑中打开 场景编辑器

打开后界面如下:

2. 加载smap地图生成调度场景

点击 打开 按钮,出现如下三个选项:

1.2.1.通过smap新建场景

点击 “打开” 按钮,选择 “打开 .smap”,在对话框中选中 SRD-Demo.smap 文件,如下图:

1.2.2 通过smap更新场景

在 SRD-Demo.smap 中增加节点 LM6、AP7:

保存 smap ,然后使用 场景编辑器打开 SRD-Demo.xml:

点击保存。
点击 “打开” -> “打开 .smap”,选中更新后的 SRD-Demo.smap 文件,此时编辑器会自动将变更融合至 SRD-Demo.xml,如下图所示:

再次保存场景文件即可。

1.2.3 通过smap 追加场景

有时存在多车在同一个场景下工作,但是各自维护自己的地图的情况,需要用到追加功能(追加模式下,只会作增量式修改,不会删除原厂场景内的点)。
在 SRD-Demo.smap 中增加节点 LM6、AP7:

保存 smap ,然后使用 场景编辑器打开 SRD-Demo.xml:

点击保存。
点击 “打开” -> “追加 .smap”,选中更新后的 SRD-Demo.smap 文件,此时编辑器会自动将变更融合至 SRD-Demo.xml,如下图所示:

再次保存场景文件即可。

1.3 添加机器人


右键 选中 列表-机器人,选择 添加机器人 。
机器人参数如下:
名称:机器人运行的唯一名称,需要和 agv 参数设置-网络中的 RobotName 保持一致。可自行命名,格式限定 字母、数字、下划线和中划线。
机器人长度:默认,无须改动。
路径颜色:机器人规划路径显示的颜色,可自行修改。
低电量报警阈值:区分机器人低电量和充足电量的界限值,当机器人处于低电量时,机器人会将当前身上的运单执行完,前往充电桩充电。 在电量到达 充电至充足电量阈值 前,机器人不会接单执行任务。
电量充足阈值:区分机器人充足电量和满电量的界限值,当机器人处于充足电量时,机器人会在空闲时充电。当有任务产生时,机器人会撤销充电,继续执行任务。
充电至充足电量阈值:当机器人处于低电量去充电时,在电量到达 充电至充足电量阈值 前,机器人不会接单执行任务。
充电至满电量阈值:当机器人处于充足电量去补充电量时,假如没有任务下发,机器人会在电量达到 充电至满电量阈值 时,回休息点。
元属性:机器人运行的一些高级功能。
常用高级功能如下:

"vehicle": [
    {
        "key": "robot:assignedParkingPosition",
        "value": "PPxx",
        "description": "机器人强制停靠点"   # 填写PP点的名称,比如 PP1
    },
    {
        "key": "robot:preferredParkingPosition",
        "value": "PPxx",
        "description": "机器人建议停靠点"
    },
    {
        "key": "robot:assignedRechargeLocation",
        "value": "CPxx",
        "description": "机器人强制充电点"   #填写充电桩对应的工作站的名称,比如 LOC-CP1
    },
    {
        "key": "robot:preferredRechargeLocation",
        "value": "CPxx",
        "description": "机器人建议充电点"
    },
    {
        "key": "robot:ip",
        "value": "ip",
        "description": "机器人的ip"  # rbk3.3版本下需要设置 robot:ip
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

可执行业务运单:多车型在同一场景下运行时,用于区分不同车型的字段。默认为 - ,代表 None。
具体用法如下:
若 A 车为辊筒车,B 车为叉车,在同一个场景下运行,这时发任务就需要使用 category 字段来区分 A 和 B 的任务。
可将 A 车的 可执行业务类型设置为 roller , B 车的可执行业务类型设置为 fork。
在创建运单时,通过 Post /transportOrders/{order_name}接口,在 body 的 category 字段中设置 roller 或 fork 来分别给不同的车发送任务。
自主充电类型:默认为 CHARGE。若一个场景内有多个不同类型的充电桩,可自定义此参数,在工作站类型的动作中对应修改即可。

1.4 配置工作站类型


调度执行的逻辑为:
① 在工作站类型中,配置一类工作站允许执行的 动作
② 给具体工作站分类。
③ 调用对应工作站的动作,发送任务。
一般默认有两种工作站类型,TransferLocation 对应 AP点等执行任务的工作站点,ChargeLocation 对应 充电点(CP)。如需更多分类,可自定义添加新的工作站类型。

1.5 更改工作站名称


左键选中要修改的工作站,在右侧的名称栏修改工作站名称,在类型中修改该工作站归类的 工作站类型
工作站名称仅支持 字母,数字,下划线和中划线。

1.6 设置互斥区

互斥区(Block)是一个场景元素的集合,在 SRD 系统运行时,如果机器人占用了互斥区中的任何一个元素,将被视为占用了互斥区的全部元素。

  • 如果互斥区的类型为:允许单一机器人进入(SINGLE_VEHICLE_ONLY),SRD 将不会派遣其他机器人再进入该互斥区的所属元素中。
  • 如果互斥区的类型为:允许同方向行驶的机器人进入(SAME_DIRECTION_ONLY),SRD 将允许沿同一路径进入互斥区的其他机器人,也进入该互斥区中。

注意,当使用此类型互斥区时,需在上层业务逻辑中配合限定,在互斥区中的机器人不能被撤销业务订单,否则将有概率产生资源死锁。
可用如下步骤添加互斥区:

  • 在 场景编辑器左侧选择 “互斥区” 选项卡,在互斥区下方空白处单击鼠标右键,出现 “添加互斥区” 选项;

鼠标左键点击 “添加互斥区”,将创建互斥区 Block1.

  • 在右侧属性栏,可见互斥区具有如下属性:

互斥区的属性如下所述:

属性描述
名称互斥区的全局唯一 ID
互斥区颜色互斥区在场景中表现的颜色
类型允许同方向行驶的机器人进入、允许单一机器人进入
元属性用户自定义的键值型属性
  • 添加场景元素到互斥区中:在场景中框选一系列节点、路径元素后,在互斥区名称上单击鼠标右键,选择 “添加选中元素至互斥区”,即可。互斥区颜色可以在属性栏中手动指定。

1.7 场景设计的基本原则

主干路线
场景中的主干路线,要求全部使用单向路线。对于足够宽阔的主干道路,建议设计为包含往、反两个方向的单向路线(如城市中常见的机动车道路),如下图所示。

场景中的主干路线,要求能构成有向的强联通图[1]。
在主干路线上,任意两个节点间的实际距离,不可小于最小的安全间距
1:若在有向图 G 中,如果对于任意两个节点 A 和 B,从 A 节点到 B 节点和从 B 节
点到 A 节点都存在路径,则称 G 是强连通图(Strongly Connected Graph)。有向图中的极大强连通子图称做有向图的强连通分量。强连通图具有如下定理:一个有向图 G 是强连通的,当且仅当 G 中有一个回路,它至少包含每个节点一次。
2:
若场景中的任意两台机器人(可以是不同类型的),分别被导航至节点 A 和 B 上。两台机器人同时按最小转弯半径进行旋转,在理想状态下(不考虑机器人在水平方向上的累计偏移),若绝对无法发生碰撞,则称距离 AB 为安全间距。
交汇路线
当两条路线发生交汇时,可添加一个交汇节点,如下图所示:

对于双车道主干路线的交汇,可参考如下设计:

若因某些原因,不希望设置交汇点,可使用互斥区来避免冲突。

最近更新 2022/11/28
文章内容

一、新建场景

  1. 打开场景编辑器
  1. 加载smap地图生成调度场景

1.2.1.通过smap新建场景

1.2.2 通过smap更新场景

1.2.3 通过smap 追加场景

1.3 添加机器人

1.4 配置工作站类型

1.5 更改工作站名称

1.6 设置互斥区

1.7 场景设计的基本原则