You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

3.9 KiB

硬件接口

connector-cl2 通讯

MQTT Package

任务结构

所有的任务,都分为3个层级

第一级 业务任务 BizTask
第二级 预执行任务 PlanTask
第三级 设备指令任务 DiviceTask

比如

[树形展开]+  第一级任务列表 BizTask 业务任务
                  [树形展开]+ 预执行任务1.1 PlanTask
                  [树形展开]+ 预执行任务1.2 PlanTask
                  [树形展开]+ 预执行任务1.3 PlanTask
                                   设备执行任务1.3.1 DeviceTask1
                                   设备执行任务1.3.2 DeviceTask1
                                   设备执行任务1.3.3 DeviceTask3

任务拆解

业务任务 BizTask

RCS.addBizTask({
  type: 'carry',          // 任务类型
  taskExecutorId: 'cl2',             // 指定车辆
  lpn: 'pallet1124',      // 托盘ID, 用于校验
  priority: 1,            // 优先级
  // 起始点位的详细信息
  from: {
    item: '27',   // 货架编号
    bay: 0,       // 货架列
    level: 1,     // 货架层
    cell: 0       // 货架格 
  },
  // 目标点位的详细信息
  to: {
    item: '20'    // 地堆货位号
  }
})

业务任务是用户发起的任务,返回值

{
  // 是否成功
  "success": true,
  // 中文提示
  "msg": '任务下发成功',
  "data": {
    // 任务ID
    "taskId": '任务ID'
  }
}

com.galaxis.rcs.task.TaskService 会将任务拆解为多个预执行任务 PlanTask。 比如下面的指令

发送

移动 robotMove
{
  type: 'robotMove',
  // 机器人设备ID
  executorId: '机器人编号',
  // 起点Id, WayPointId
  startWayPoint: '24',
  // 终点ID, WayPointId
  endWayPoint: '16',
  // number类型,货叉/机械臂,相对于头的角度, 逆时针为正
  armRotiation: 0
}

LCC 控制中心使用的是第一人称视角参照系。FirstPerson

CL2 和 CLX 使用的是货叉朝向和方向正负系。比如: 凯乐士CL2使用

[
  {
    "X": 3,
    "Y": 5,
    "Speed": 1200
  },
  {
    "X": 1,
    "Y": 5,
    "Speed": -1000
  }
]

那么,从 LCC 控制参考,转换为 CL2 / CLX 控制参考,应当使用方法为: FirstPersonToCl2.convertMoveCommand()

转动 robotRotation
{
  type: 'robotRotation',
  executorId: '机器人编号',
  worldRotation: 90
  // 转动身体到世界角度 90 度
}
取货 robotLoad
{
  type: 'robotLoad',
  executorId: '机器人编号',
  storeBarCode: '地标二维码编号',
  // 用于校验
  boxItem: '容器ID',
  // 托盘或周转箱ID,用于校验
  rackItem: '货架ID',
  // 源货架/层/列/格
  bay: '列',
  level: '层',
  cell: '格'
}
放货 robotUnload
{
  type: 'robotUnload',
  executorId: '机器人编号',
  storeBarCode: '地标二维码编号',
  // 用于校验
  rackItem: '货架ID',
  // 目标货架/层/列/格
  bay: '列',
  level: '层',
  cell: '格'
}
充电 robotCharger
{
  type: 'robotCharger',
  executorId: '机器人编号',
  // 充电位ID
  chargerItem: '20'
}

接收

位置/姿态/电量/等其他数据上报
{
  type: 'reportState',
  // 目前所在位置 number
  locationX: 114.5,
  locationY: 90.2,
  // 第一人称视角望向的位置
  lookAtX: 124.5,
  lookAtY: 90.2,
  // 货叉/机械臂相对于头的偏移角度,逆向旋转角度为正
  armRotation: -90,
  // 总电池容量 number
  totalBatteryCapacity: 100,
  // 剩余电池容量 number
  remainingBattery: 30,
  // 报警层级 1=全界面警告 / 2=当前层警告 / 3=不警告
  alermLevel: 1,
  // LED 灯状态 string
  LED: 'green-4'
}
心跳上报
{
  type: 'heartbeat',
  // 相对于 1970年以来的毫秒总数,时间戳
  createTime: 1111929293
}

基于硬件接口的监控及动画显示

store_location_map

location_code

item

bay

level

cell