### 硬件接口 connector-cl2 通讯 MQTT Package ### 任务结构 所有的任务,都分为3个层级 ```text 第一级 业务任务 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 ```javascript RCS.addBizTask({ type: 'carry', // 任务类型 taskExecutorId: 'cl2', // 指定车辆 lpn: 'pallet1124', // 托盘ID, 用于校验 priority: 1, // 优先级 // 起始点位的详细信息 from: { item: '27', // 货架编号 bay: 0, // 货架列 level: 1, // 货架层 cell: 0 // 货架格 }, // 目标点位的详细信息 to: { item: '20' // 地堆货位号 } }) ``` 业务任务是用户发起的任务,返回值 ```json5 { // 是否成功 "success": true, // 中文提示 "msg": '任务下发成功', "data": { // 任务ID "taskId": '任务ID' } } ``` com.galaxis.rcs.task.TaskService 会将任务拆解为多个预执行任务 PlanTask。 比如下面的指令 #### 发送 ##### 移动 robotMove ```json5 { type: 'robotMove', // 机器人设备ID executorId: '机器人编号', // 起点Id, WayPointId startWayPoint: '24', // 终点ID, WayPointId endWayPoint: '16', // number类型,货叉/机械臂,相对于头的角度, 逆时针为正 armRotiation: 0 } ``` LCC 控制中心使用的是第一人称视角参照系。**`FirstPerson`** CL2 和 CLX 使用的是货叉朝向和方向正负系。比如: 凯乐士CL2使用 ```json [ { "X": 3, "Y": 5, "Speed": 1200 }, { "X": 1, "Y": 5, "Speed": -1000 } ] ``` 那么,从 LCC 控制参考,转换为 CL2 / CLX 控制参考,应当使用方法为: **`FirstPersonToCl2.convertMoveCommand()`** ##### 转动 robotRotation ```json5 { type: 'robotRotation', executorId: '机器人编号', worldRotation: 90 // 转动身体到世界角度 90 度 } ``` ##### 取货 robotLoad ```json5 { type: 'robotLoad', executorId: '机器人编号', storeBarCode: '地标二维码编号', // 用于校验 boxItem: '容器ID', // 托盘或周转箱ID,用于校验 rackItem: '货架ID', // 源货架/层/列/格 bay: '列', level: '层', cell: '格' } ``` ##### 放货 robotUnload ```json5 { type: 'robotUnload', executorId: '机器人编号', storeBarCode: '地标二维码编号', // 用于校验 rackItem: '货架ID', // 目标货架/层/列/格 bay: '列', level: '层', cell: '格' } ``` ##### 充电 robotCharger ```json5 { type: 'robotCharger', executorId: '机器人编号', // 充电位ID chargerItem: '20' } ``` #### 接收 ##### 位置/姿态/电量/等其他数据上报 ```json5 { 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' } ``` ##### 心跳上报 ```json5 { type: 'heartbeat', // 相对于 1970年以来的毫秒总数,时间戳 createTime: 1111929293 } ``` ### 基于硬件接口的监控及动画显示 store_location_map location_code item bay level cell