帮助中心
帮助中心主页
调度系统介绍
RoboView库位管理
回调
新分组
拼合单
运单
调度逻辑
多车调度(G-MAPF 算法)
MAPF 功能(v0.1.8.220917后不再维护)
MAPF 功能(v0.1.8.220917后不再维护)
机器人

解决的问题

在没有机器人时运行调度

创建仿真机器人

  1. 启动编辑,进入编辑状态

  1. 选择场景中的机器人,勾选“仿真”,创建仿真机器人

  1. 添加仿真机器人

  1. 修改仿真机器人静态属性

  1. 保存,退出编辑,上传场景

仿真机器人属性

仿真机器人属性分为两部分:

  • 静态属性,建图时输入,修改后需要重新上传地图生效
  • 动态属性,运行时修改,立即生效

静态属性

属性名称类型备注
dirdouble初始方向
endPositionstring初始位置路线终点
initialAreastring初始区域
initialPositionstring初始位置线路起点/初始点位
numberOfContainersint背篓数量
percentagedouble初始位置在线路上的百分比

初始位置的逻辑:

  1. 确认初始区域,如果initialArea属性为空,使用第一个区域
  2. 如果initialPosition、endPosition、percentage都不为空,初始位置在线路上;否则如果initialPosition不为空,使用initialPosition表示的点名作为初始位置;否则使用随机点作为初始位置
  3. 随机选择初始位置时,参数配置-仿真 中的 PreferLeaf选项如果为true,则会优先选择叶子节点,即只和一个节点相连的节点。如下图中所示,AP561就是一个叶子节点,它只和LM558相连

动态属性

修改方法:
运行时,通过仿真调试界面修改

可修改的动态属性:

属性名称类型备注
angledouble机器人朝向,单位rad
battery_percentagedouble电池电量百分比,0-1
blockedbool是否被阻挡
charge_speeddouble充电速度,百分比/周期
chargingbool是否在充电
connection_statusint连接状态
emergencybool是否急停
enable_battery_consumptionbool是否模拟电量消耗
errorJSON报错码
fail_current_taskbool使当前任务失败
good_shapeJSON货物形状
goods_vehicle_angledouble货物与车夹角
load_unload_goods_shapeJSON取放货任务货物形状
lockedbool控制权是否被抢占
nicknamestring占有控制权的系统名称
no_task_battey_consumptiondouble不执行任务时的电量消耗,百分比/周期
pause_respect_waitbool动作前暂停时是否不忽视Wait
pause_upon_operationbool动作前暂停
positionJSON物理位置,单位m
position_by_namestring点名,可以是label,也可以是instanceName
rotate_speeddouble原地旋转速度,单位rad/s
speeddouble移动速度,单位m/s
fork_speed_m_sdouble货叉速度,单位m/s
jack_speed_m_sdouble顶升速度,单位m/s
task_battery_consumptiondouble执行任务时的电量消耗,百分比/周期
disable_rotatebool禁用仿真旋转;开启时,仿真机器人不模拟旋转,关闭后,机器人按照配置的rotate_speed模拟原地旋转耗时

控制权

仿真机器人支持模拟控制权抢占。

  1. 模拟控制权没有被抢占:
  • locked改为false
  • 选中需要修改状态的模拟机器人
  • 点击发送

  1. 模拟控制权被指定系统抢占:
  • locked改为true
  • nickname改为指定的系统名称
  • 选中需要修改状态的模拟机器人
  • 点击发送

下图中的例子表示,所有仿真机器人都被名称为 systemV的系统控制

电量

  1. 开启电量模拟:
  • enable_battery_consumption改为true
  • 设置 task_battery_consumption为执行任务的电量消耗,no_task_battery_consumption为不执行任务的电量消耗
  • 选择需要修改状态的模拟机器人
  • 点击发送

  1. 模拟充电
  • charging改为true
  • charge_speed改为目标充电速度
  • 选择需要修改状态的机器人
  • 点击发送

  1. 立刻修改电量
  • battery_percentage改为目标电量
  • 选择需要修改状态的机器人
  • 点击发送

暂停

  1. 在执行下一个不是 Wait的动作(顶升、叉车取放货等)之前暂停,等待手动继续
  • pause_upon_operation改为true
  • pause_respect_wait改为false
  • 选择要修改状态的机器人
  • 点击发送

  1. 继续执行动作
  • pause_upon_operation改为false
  • 选择要修改状态的机器人
  • 点击发送
  1. 在执行下一个动作之前暂停,包括Wait
  • pause_upon_operation改为true
  • pause_respect_wait改为true
  • 选择要修改状态的机器人
  • 点击发送

报错

  1. 模拟机器人被阻挡
  • blocked改为true
  • 选择要修改状态的机器人
  • 点击发送
  1. 模拟机器人急停
  • emergency改为true
  • 选择要修改状态的机器人
  • 点击发送
  1. 其他报错
  • error改为目标报错码列表,如
json
["40", "41"]
1
  • 选择要修改状态的机器人
  • 点击发送


上图的例子表示:仿真机器人 sim_01报两个错,报错码分别为 4041,发送之后,RoboShop会显示报错:

报错信息为 Sim Error,报错码为 40 和 41,在清除之前会持续报错

  1. 清除其他报错
  • error改为空列表 []
  • 选择要修改状态的机器人
  • 点击发送

原地旋转

  1. 禁用原地旋转,仿真机器人不模拟旋转过程
  • disable_rotate改为true
  • 选择要修改状态的机器人
  • 点击发送
  1. 启用原地旋转,仿真机器人按照配置的 rotate_speed模拟原地旋转过程
  • disable_rotate改为 false
  • 选择要修改状态的机器人
  • 点击发送
  1. 修改原地旋转速度
  • 修改 rotate_speed选项,单位为 rad/s,弧度每秒
  • 选择要修改状态的机器人
  • 点击发送


移动

  1. 移动到指定点位
  • position_by_name中填写点位名称
  • 选择要修改状态的机器人
  • 点击发送
  1. 移动到指定坐标
  • position中填写坐标,格式为{"x":1,"y":2},其中 1 2 为 x y 坐标
  • 选择要修改状态的机器人
  • 点击发送
  1. 设置机器人朝向
  • angle中填写角度(0,±1.57,±3.14 或 其他数值)
  • 选择要修改状态的机器人
  • 点击发送


货物形状

设置后会立刻为机器人添加货物

  1. 设置机器人货物形状
  • goods_shape中填写货物形状,格式为[-x, -y, x, y],数值为矩形的四个坐标
  • 选择要修改状态的机器人
  • 点击发送
  1. 设置货物与机器人夹角
  • goods_vehicle_angle中填写货物与机器人夹角(0,±1.57, ±3.14 或其他数值)
  • 选择要修改状态的机器人
  • 点击发送
  • 一般与设置货物形状搭配使用


取放货订单货物形状

如果一个订单的动作块 operation 设置为 ForkLoad 和 ForkUnload,那么就是一个取放货订单,设置这个动态属性后,机器人在执行取放货订单时,会在取货完成后自动添加货物形状,放货完成后自动清空货物形状,此属性可与 goods_vehicle_angle 搭配使用

  1. 设置机器人执行取放货订单时的货物形状
  • load_unload_goods_shape中填写货物形状,格式为[-x, -y, x, y],数值为矩形的四个坐标
  • 选择要修改状态的机器人
  • 点击发送
  • 可以同时搭配 goods_vehicle_angle设置货物夹角

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

解决的问题

创建仿真机器人

仿真机器人属性

静态属性

动态属性

控制权

电量

暂停

报错

原地旋转

移动

货物形状

取放货订单货物形状