diff --git a/doc/RCS3任务拆解.md b/doc/RCS3任务拆解.md new file mode 100644 index 0000000..59d3992 --- /dev/null +++ b/doc/RCS3任务拆解.md @@ -0,0 +1,170 @@ +### 硬件接口 + +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.dispatchTask({ + type: 'carry', // 任务类型 + agv: 'cl2', // 指定车辆 + lpn: 'pallet1124', // 托盘ID, 用于校验 + from: '27', // 起始点位 + to: '20' // 目标点位 +}); +``` +业务任务是用户发起的任务,通常是通过 LCC 控制中心的界面来发起。 + +com.galaxis.rcs.task.TaskManager 会将任务拆解为多个预执行任务 PlanTask。 +比如下面的指令 + +#### 发送 + +##### 移动 robotMove + +```javascript +{ + type: 'robotMove', + robotId: '机器人编号', // 机器人设备ID + startWayPoint: '24', // 起点Id, WayPointId + endWayPoint: '16', // 终点ID, WayPointId + armRotiation: numer // 货叉/机械臂,相对于头的角度, 逆时针为正 +} +``` + +LCC 控制中心使用的是第一人称视角参照系。**`FirstPerson`** + +CL2 和 CLX 使用的是货叉朝向和方向正负系。比如: 凯乐士CL2使用 + +```json +[{ "X": 3, "Y": 5, "Speed": 1200 }, { "X": 1, "Y": 5, "Speed": -1000}] +``` + +那么,从 LCC 控制参考,转换为 CL2 / CLX 控制参考,应当使用方法为: **`FirstPersonToCl2.convertMoveCommand()`** + + +##### 转动 robotRotation + +```javascript +{ + type: 'robotRotation', + robotId: '机器人编号', + worldRotation: 90 // 转动身体到世界角度 90 度 +} +``` + + +##### 取货 robotLoad + +```javascript +{ + type: 'robotLoad', + robotId: '机器人编号', + storeBarCode: '地标二维码编号', // 用于校验 + boxItem: '容器ID', // 托盘或周转箱ID,用于校验 + rackItem: '货架ID', // 源货架/层/列/格 + bay: '列', + level: '层', + cell: '格' +} +``` + + +##### 放货 robotUnload + +```javascript +{ + type: 'robotUnload', + robotId: '机器人编号', + storeBarCode: '地标二维码编号', // 用于校验 + rackItem: '货架ID', // 目标货架/层/列/格 + bay: '列', + level: '层', + cell: '格' +} +``` + + +##### 充电 robotCharger + +```javascript +{ + type: 'robotCharger', + robotId: '机器人编号', + chargerItem: '20' // 充电位ID +} +``` + + + +#### 接收 + +##### 位置/姿态/电量/等其他数据上报 + +```javascript +{ + type: 'reportState', + locationX: number, // 目前所在位置 + locationY: number, + lookAtX: number, // 第一人称视角望向的位置 + lookAtY: number, + armRotation: number, // 货叉/机械臂相对于头的偏移角度,逆向旋转角度为正 + totalBatteryCapacity: number, // 总电池容量 + remainingBattery: number, // 剩余电池容量 + alermLevel: number, // 报警层级 1=全界面警告 / 2=当前层警告 / 3=不警告 + LED: string // LED 灯状态 +} +``` + + +##### 心跳上报 + +```javascript +{ + type: 'heartbeat', + createTime: number // 相对于 1970年以来的毫秒总数,时间戳 +} +``` + + + +### 基于硬件接口的监控及动画显示 + + + +store_location_map + + location_code + + item + + bay + + level + + cell diff --git a/doc/plan/plan.md b/doc/plan/plan.md index e42c617..4314cc5 100644 --- a/doc/plan/plan.md +++ b/doc/plan/plan.md @@ -31,6 +31,11 @@ cl2.addTravel('17') // 移动到休息点位 cl2.taskStartRun() ``` +### 任务API +```typescript + +``` + ### PlanTask ```typescript const cl2 = Model.getCl2('ptr1') diff --git a/src/editor/propEditors/InOutCenterEditor.vue b/src/editor/propEditors/InOutCenterEditor.vue index 09117d3..75b8488 100644 --- a/src/editor/propEditors/InOutCenterEditor.vue +++ b/src/editor/propEditors/InOutCenterEditor.vue @@ -154,9 +154,9 @@ export type {