Browse Source

fix(config): update file paths and improve UI labels for clarity

master
修宁 6 months ago
parent
commit
9b8485388d
  1. 170
      doc/RCS3任务拆解.md
  2. 5
      doc/plan/plan.md
  3. 6
      src/editor/propEditors/InOutCenterEditor.vue
  4. 2
      src/modules/pallet/PalletPropertySetter.ts

170
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

5
doc/plan/plan.md

@ -31,6 +31,11 @@ cl2.addTravel('17') // 移动到休息点位
cl2.taskStartRun() cl2.taskStartRun()
``` ```
### 任务API
```typescript
```
### PlanTask ### PlanTask
```typescript ```typescript
const cl2 = Model.getCl2('ptr1') const cl2 = Model.getCl2('ptr1')

6
src/editor/propEditors/InOutCenterEditor.vue

@ -154,9 +154,9 @@ export type {
<template> <template>
<div class="flex-column-container in-out-center-editor"> <div class="flex-column-container in-out-center-editor">
<ElRadioGroup class="flex-item-fixed flex-justify-content-center" v-model="state.portsType" size="small"> <ElRadioGroup class="flex-item-fixed flex-justify-content-center" v-model="state.portsType" size="small">
<ElRadioButton label="Input Ports" value="in"/> <ElRadioButton label="Input" value="in"/>
<ElRadioButton label="Central Ports" value="center"/> <ElRadioButton label="Central" value="center"/>
<ElRadioButton label="Output Ports" value="out"/> <ElRadioButton label="Output" value="out"/>
</ElRadioGroup> </ElRadioGroup>
<div class="flex-item-fill flex-row-container in-out-center-editor-data"> <div class="flex-item-fill flex-row-container in-out-center-editor-data">
<div class="flex-item-fixed in-out-center-editor-tools"> <div class="flex-item-fixed in-out-center-editor-tools">

2
src/modules/pallet/PalletPropertySetter.ts

@ -12,7 +12,7 @@ const propertySetter: PropertySetter = {
title: '存储位置', expand: true, size: 'small', title: '存储位置', expand: true, size: 'small',
fields: [ fields: [
{ {
dataPath: 'dt.storeAt.item', label: '存储位置', input: 'InputSelect', dataPath: 'dt.storeAt.item', label: '货架/储位', input: 'InputSelect',
inputProps: {} inputProps: {}
}, },
{ {

Loading…
Cancel
Save