Upload project files

This commit is contained in:
wangdequan
2026-06-28 08:20:33 +08:00
parent f0e96308d2
commit 84a5b54195
162 changed files with 14070 additions and 31381 deletions

View File

@@ -1,29 +1,52 @@
# 01-项目功能内容
版本0.3
版本0.5
日期2026-06-27
对标文档:
1. `/home/meswork/kdl_work/work/doc/通用机器人编程语法规范.md`
2. `/home/meswork/kdl_work/work/doc/KDL_WASM计算接口设计.md`
3. `/home/meswork/kdl_work/work/doc/通用机器人离线编程虚拟控制器技术方案.md`
4. `/home/meswork/kdl_work/work/doc/通用机器人项目主要实施步骤.md`
5. `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图.md`
6. `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图-png/flow-01.mmd``flow-05.mmd`
7. `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图-png/flow-01.png``flow-05.png`
## 1. 项目定位
本目录用于把 GRL 编程语法规范和 KDL WASM 计算接口设计落成实施计划。实施目标是形成一套互相闭合的语言层运动计算层:
本目录用于把 `/home/meswork/kdl_work/work` 下的通用机器人离线编程方案、流程图源码和流程图渲染资产落成实施计划。实施目标是形成一套互相闭合的语言层运动计算层、虚拟控制器、工作台和工程交付链路
```text
GRL Source
-> Lexer / Parser
-> AST
-> Symbol Table
-> Semantic Analyzer
-> Executable IR / MotionSegmentRequest
-> KdlWorkerClient
-> KDL WASM
Project Resources / OPFS Workspace
-> GRL Source / OLP Object Model / Brand Source
-> Lexer / Parser / Brand Importer
-> AST / Brand AST
-> Symbol Table / Semantic Analyzer
-> Executable IR / Source Map
-> Virtual Controller Runtime
-> Motion Queue / IO Service / Alarm Queue / Trace Buffer
-> MotionSegmentRequest / PathPlanRequest
-> KdlWorkerClient / KDL WASM
-> TrajectoryResult / PathValidationResult / Diagnostics
-> Post Processor / Reports / Customer Delivery Package
```
Web UI、OPFS、碰撞检测和真实控制器通信不作为独立实施主线相关内容只在两份对标文档明确要求的 GRL 工程结构、轨迹 trace、虚拟控制器调用关系、后处理或测试场景中进入范围
首版 MVP 范围包括单机器人 6 轴 URDF、GRL 语言闭环、KDL WASM 运动计算、虚拟控制器运行调试、DI/DO 虚拟 IO、OPFS 项目保存、三品牌后处理原型、至少一种品牌程序导入原型、可达性/节拍报告和客户交付包导出原型。完整碰撞检测、多机器人协调、外部轴同步、完整 CAD kernel、真实控制器通信和品牌控制器 look-ahead 完全复刻为后续扩展,但必须在任务矩阵中有明确归属
## 1.1 `/work` 全功能覆盖索引
| 来源资产 | 必须覆盖的功能面 | working 对应任务 |
| --- | --- | --- |
| `KDL_WASM计算接口设计.md` | Worker API、URDF、KDL Chain、FK/IK/Jacobian、轨迹、Path、诊断、C ABI、性能 | `KW-001``KW-013` |
| `通用机器人编程语法规范.md` | GRL 词法、语法、AST、语义、IR、Path、Operation、IO、流程、后处理、生成器 | `KW-100``KW-112` |
| `通用机器人离线编程虚拟控制器技术方案.md` | 商业 OLP、对象模型、虚拟控制器、IO/Wait、OPFS、UI、报告、品牌导入、虚拟调试、几何、碰撞、校准、Sim-to-Real、多机器人、外部轴、真实控制器校验 | `KW-200``KW-210` |
| `通用机器人项目主要实施步骤.md` | 阶段 1 到 10 的实施顺序、输入输出、验收重点和常用命令 | `KW-001``KW-211` |
| `通用机器人项目功能与数据流程图.md` | 总体功能流、GRL 编译执行流、KDL 计算流、数据传递流、诊断传递流 | `KW-110``KW-200``KW-211` |
| `flow-01.mmd/png` | 项目资源到 GRL/KDL/后处理的总体功能流程 | `KW-211` |
| `flow-02.mmd/png` | GRL 编译、IR 执行、KDL 请求和后处理流程 | `KW-110``KW-202``KW-211` |
| `flow-03.mmd/png` | KDL RobotHandle、MOVEJ/MOVEL/MOVEC/PATH 计算流程 | `KW-003``KW-011``KW-211` |
| `flow-04.mmd/png` | Project、Compile、KDL、Runtime、Output 数据流 | `KW-200``KW-206``KW-211` |
| `flow-05.mmd/png` | Parser、Semantic、KDL、Post Processor 诊断 severity/sourceMap 流程 | `KW-110``KW-206``KW-211` |
## 2. GRL 语言功能范围
@@ -324,9 +347,242 @@ KDL WASM 不负责:
5. `compareTrajectory`
6. 外部轴协调相关函数。
## 4. 共享数据和单位
## 4. 虚拟控制器和 IO 运行时范围
### 4.1 单位
### 4.1 控制器职责
虚拟控制器真正执行统一 `Executable IR`,而不是直接解释品牌文本。它必须支撑:
1. 控制器状态机:`PowerOff/Booting/MotorsOff/Ready/Manual/Auto/Running/Hold/Fault/EmergencyStop`
2. 基础命令:`powerOn/powerOff/motorsOn/motorsOff/loadProgram/start/hold/resume/stop/resetFault/stepInto/stepOver/stepMotion`
3. 执行模型Program Counter、Call Stack、Scope Stack、Motion Queue、IO Image、Timer Table、Interrupt Table、Alarm Queue、Trace Buffer、Source Map、Brand Context。
4. 单主任务首版模型,后续扩展后台任务、多机器人任务、独立 IO 任务和监控任务。
5. `run_path` 展开为路径点运动和 before/after event。
6. `run_operation` 展开为 start action、path、end action并将工艺状态写入 trace。
7. 品牌程序导入后的 IR 执行,并保留品牌源程序行号和转换报告。
### 4.2 IO Service 和 Wait
虚拟 IO 是虚拟调试核心能力。首版必须覆盖:
1. IO Image、IO Alias Table、IO Event Queue、Wait Registry、Edge Detector、IO Script Engine、IO Trace Logger。
2. 地址规范:`DI[1] -> io.di[1]``DO[1] -> io.do[1]``AI/AO/GI/GO/RI/RO` 同规则。
3. 程序可写 DO、AO、GO、RO用户和脚本可按配置修改虚拟输入。
4. 所有读写必须经过 IO Service并生成 `IoEvent`
5. `wait` 执行时立即求值,未满足则创建 `ActiveWait`,由 controller tick 或 IO 变化触发重评估。
6. `wait timeout``pulse duration`、IO script `delay` 均基于虚拟时间hold 暂停虚拟时间stop/reset 取消 ActiveWait。
7. `rising/falling/changed` 边沿只在一个 tick 内有效,并保持同 tick 内事件顺序。
8. Wait 卡住诊断必须显示等待表达式、子表达式当前值、已等待时间、剩余超时时间、相关 IO 最近变化和 IO 脚本状态。
### 4.3 运动队列和 Trace
运动运行时必须:
1.`MotionInstruction`、Path point、Operation 展开为 `MotionQueueItem`
2. 保留 `instructionId/pathId/pathPointId/operationId`
3. 调用 KDL 生成轨迹采样后按虚拟时间推进关节和 TCP。
4. 支持程序文本、路径表、3D 轨迹和报警诊断之间通过 source map 联动定位。
5. 记录 motion trace、IO trace、wait trace、alarm trace供报告和回放使用。
### 4.4 虚拟调试增强
虚拟调试增强必须覆盖:
1. 断点。
2. 单步进入和单步越过。
3. 运动断点。
4. 轨迹回放。
5. 变量 watch。
6. IO 脚本调试。
7. GRL、Path、Operation、品牌源程序行号与 IR 的联动调试。
8. IK、IO、逻辑、后处理和品牌导入错误的跨视图定位。
## 5. OLP 工作台、工作区和交付范围
### 5.1 OLP 对象模型
商业 OLP 工作流以对象树组织项目,而不是只管理文本文件。内部对象模型必须覆盖:
1. `RobotModel`
2. `ToolModel`
3. `FrameModel`
4. `TargetModel`
5. `PathModel`
6. `PathPointModel`
7. `OperationModel`
8. `ProgramModel`
9. `PostProfile`
10. Station、Cell、Fixture、Part、Device、Geometry、Calibration、Report。
对象模型用途:
1. UI 对象树和路径编辑器直接操作。
2. 从规划点或曲线生成 Path。
3. 从 Path/Operation 生成 GRL。
4. 品牌程序导入后尽量恢复 target/path/program。
5. 后处理和虚拟控制器最终仍以 IR 为准。
### 5.2 OPFS 工作区
OPFS 项目必须提供稳定布局和显式导入导出能力:
```text
/projects/{projectId}/
project.json
station/
libraries/
geometry/
robots/
programs/
targets/
tools/
frames/
io/
generated/
logs/
reports/
calibration/
snapshots/
.index.json
.lock
```
必须实现的工作区能力:
1. `listProjects/openProject/createProject`
2. `readText/writeText`
3. `readJson/writeJson`
4. `delete`
5. `snapshot`
6. `exportZip/importZip`
7. 存储占用显示、迁移、损坏检测和备份。
### 5.3 Web 工作台
第一屏应直接进入离线编程和虚拟调试工作台。必须页面包括:
1. 项目管理。
2. 工作站布局。
3. 资源库。
4. 几何与 CAD。
5. 程序编辑。
6. 虚拟示教器。
7. IO 面板。
8. 运动监控。
9. 路径编辑器。
10. Operation 编辑器。
11. 验证与报告。
12. 校准与现场回读。
13. 后处理导出。
14. 品牌程序导入。
15. 日志和报警。
16. Wait 调试面板。
UI 验收重点是工作流可用、状态可见、诊断可定位、数据可导出,不以营销展示页作为首屏。
### 5.4 品牌导入和后处理闭环
除三品牌后处理外,全目录对标要求建立 Brand Importer
```text
ABB RAPID / FANUC LS / KUKA KRL
-> Brand Importer
-> Brand AST
-> Normalized IR
-> Reconstructed GRL
-> Optional OLP Path/Operation Model
-> Import Report
```
首版建议:
1. ABB 解析 `.mod/.sys` 文本中的 `MODULE/PROC/MoveJ/MoveL/MoveC/robtarget/tooldata/wobjdata`
2. KUKA 解析 `.src/.dat` 文本中的 `DEF/PTP/LIN/CIRC/E6POS/E6AXIS/$TOOL/$BASE`
3. FANUC 解析 LS 风格文本或可读 TP 导出中的 `J/L/C/P[]/PR[]/UTOOL/UFRAME/CALL/LBL/JMP`
4. 导入目标是提取目标点、运动序列、工具、坐标系、速度、过渡、主要 IO 和流程控制,转换为统一 IR 并生成转换报告。
### 5.5 报告和客户交付
报告必须可导出 JSON 和 HTML覆盖
| 报告 | 内容 |
| --- | --- |
| Reachability Report | 不可达点、接近限位点、IK 解 |
| Collision Report | 碰撞对象、时间、路径点、严重程度 |
| Cycle Time Report | 总节拍、路径节拍、wait 时间、瓶颈 |
| IO Report | IO 映射、wait、pulse、脚本触发 |
| Post Report | 品牌映射、近似处理、不支持项 |
| Calibration Report | TCP、Frame、Base 偏差 |
| Import Report | 品牌程序导入结果、丢失语义、恢复对象 |
客户交付包必须包含 GRL 源程序、品牌后处理程序、目标点和路径数据、IO map、后处理报告、可达性报告、节拍报告、校准数据和可选仿真 trace。
### 5.6 商业级 OLP、Sim-to-Real 和真实项目扩展
商业级扩展必须在任务矩阵中保留,不能被 MVP 范围省略:
1. 资源库管理:机器人库、工具库、夹具库、工艺模板库、后处理 profile 库。
2. 几何导入mesh/CAD 转换文件、点/边/曲线/面法向提取、曲线路径生成。
3. 碰撞和干涉验证:基础碰撞对象、时间、路径点和严重程度定位。
4. 校准和 Sim-to-RealTCP、Frame、Base 校准数据,离线/现场差异比对。
5. 品牌程序导入后的真实项目回读和交叉品牌再导出风险报告。
6. 多机器人和外部轴:任务模型、运动组、外部轴协调和复杂工作站支持。
7. 真实控制器校验流程:导出程序不等于现场可高速运行,必须保留低速验证和校验报告边界。
8. 完整 CAD kernel、真实控制器通信、高精度轨迹复现作为更后续扩展但必须有明确非 MVP 边界。
## 6. 数据流和线程模型
### 6.1 总体数据流
全系统数据流以 `Executable IR` 为中枢:
1. Project resources 提供 URDF、GRL、targets、paths、operations、io map、post profile。
2. TypeScript 编译层生成 AST、符号表、语义诊断和 IR。
3. 只有运动相关 IR 会构造成 KDL request。
4. KDL Worker 返回轨迹、路径验证、节拍和结构化诊断。
5. 虚拟控制器消费 IR、轨迹和 IO 事件,生成 trace。
6. 后处理器消费 IR、OLP 对象模型和 post profile生成品牌程序和转换报告。
7. 报告引擎消费诊断、trace、轨迹和对象模型生成 JSON/HTML 报告。
### 6.2 不进入 KDL WASM 的数据流
以下语义由编译层或虚拟控制器执行,不传入 KDL
1. `if/elseif/else`
2. `while/for/switch`
3. `proc/func/call/return`
4. `io.do/di/ai/ao`
5. `wait/pulse/timer`
6. `alarm/raise/try/catch`
7. `operation.process`
8. Brand import context
9. UI 和 OPFS 工作区状态
10. 报告生成和客户交付包打包
### 6.3 推荐线程模型
Web 主线程只负责 UI 交互和轻量状态更新。建议 Worker 划分:
1. Parser Workertokenize、parse、semantic check、diagnostics。
2. Controller Workerinterpreter、execution clock、variable state、IO simulation、motion queue。
3. KDL WorkerWASM 初始化、FK/IK/Jacobian、trajectory sampling。
4. Storage WorkerOPFS read/write、project snapshot、import/export。
5. Geometry/Validation Worker几何采样、碰撞、长路径节拍分析和报告生成。
### 6.4 流程图资产同步
`work/doc/通用机器人项目功能与数据流程图-png` 下的 `.mmd` 是流程图源,`.png` 是渲染结果。实施文档和后续代码必须保持以下同步关系:
1. `flow-01` 对应总体功能流程。
2. `flow-02` 对应 GRL 编译与执行流程。
3. `flow-03` 对应 KDL WASM 计算流程。
4. `flow-04` 对应数据传递流程。
5. `flow-05` 对应诊断传递流程。
6. 若流程图源或渲染图更新,`01-项目功能内容.md``02-项目程序开发详细步骤.md``04-任务矩阵.md``05-验收证据.md` 必须同步记录影响。
## 7. 共享数据和单位
### 7.1 单位
GRL 编译器内部必须统一:
@@ -340,7 +596,7 @@ GRL 编译器内部必须统一:
| 角速度 | radian/second |
| 加速度 | meter/second^2 或 radian/second^2 |
### 4.2 位姿
### 7.2 位姿
内部统一为:
@@ -353,7 +609,7 @@ interface Pose {
GRL `pose(x, y, z, rx, ry, rz)` 必须在 TypeScript 编译层规范化为 KDL `Pose`
### 4.3 目标点
### 7.3 目标点
必须统一到:
@@ -376,7 +632,7 @@ interface JointTarget {
}
```
### 4.4 速度和 zone
### 7.4 速度和 zone
GRL 速度和过渡必须编译为:
@@ -395,7 +651,7 @@ type ZoneSpec =
首版 `zone` 只用于诊断和后处理,运动规划按 `fine` 到点执行,并产生 `KDL_ZONE_APPROXIMATED`
### 4.5 诊断
### 7.5 诊断
所有语言、语义、KDL 和后处理错误必须结构化。KDL 固定 code 至少包含:
@@ -429,7 +685,7 @@ GRL 语义诊断至少覆盖:
13. Operation 引用不存在的 Path。
14. 后处理品牌不支持所用语义。
## 5. GRL 与 KDL 的调用关系
## 8. GRL 与 KDL 的调用关系
| GRL 语法 | 编译结果 | KDL WASM 函数 |
| --- | --- | --- |
@@ -453,9 +709,9 @@ GRL 语义诊断至少覆盖:
6. `alarm/raise/try/catch`
7. `operation.process`
## 6. 验收口径
## 9. 验收口径
### 6.1 GRL P0 验收
### 9.1 GRL P0 验收
1. EBNF 覆盖语法规范第 22 章。
2. 语法规范第 23 章完整示例可解析。
@@ -466,7 +722,7 @@ GRL 语义诊断至少覆盖:
7. `movej/movel/movec` 可编译为对应 KDL request。
8. ABB、FANUC、KUKA 后处理原型有 golden file。
### 6.2 KDL P0 验收
### 9.2 KDL P0 验收
1. P0 29 个函数全部在 TypeScript API 和 Worker RPC 中可调用。
2. URDF 到 KDL Chain joint 顺序稳定。
@@ -480,7 +736,7 @@ GRL 语义诊断至少覆盖:
10. `planPath/validatePath` 保留 segment、target 和 source map。
11. 错误处理不抛裸字符串,返回结构化 `KdlError``MotionDiagnostic`
### 6.3 集成验收
### 9.3 集成验收
1. GRL `movej/movel/movec` 编译为 KDL request 并生成轨迹。
2. GRL `path` 编译为 `PathPlanRequest` 并生成整条路径。
@@ -488,3 +744,37 @@ GRL 语义诊断至少覆盖:
4. `if/for/switch/call/wait/io` 不直接调用 KDL但能影响虚拟控制器何时调用运动函数。
5. 长路径批量验证有性能记录。
6. Worker 初始化、崩溃恢复和取消请求测试通过。
### 9.4 虚拟控制器和 IO 验收
1. 控制器状态机支持上电、使能、加载、启动、暂停、继续、停止、报警复位和单步。
2. 程序运行时能显示当前行、变量、调用栈、IO、报警、TCP、关节、当前 Path/Point/Operation。
3. `run_path``run_operation` 可在 Motion Queue 中保留 source map 并驱动轨迹回放。
4. `wait` 能显示表达式、关联 IO、已等待时间和剩余 timeout。
5. 用户可通过 IO 面板手动满足 wait。
6. IO 脚本可模拟夹具反馈并自动满足 wait。
7. wait timeout 可产生报警或执行 on_timeout。
8. pulse 输出按虚拟时间自动复位。
9. IO trace、motion trace 和 alarm trace 顺序稳定。
### 9.5 工作区、UI、报告和交付验收
1. 用户能在浏览器中新建、保存、打开、导入和导出项目。
2. 用户能导入 URDF定义工具、工件坐标、目标点、Path 和 Operation。
3. 用户能从 Path/Operation 生成 GRL并手工编辑 GRL。
4. 系统能实时显示语法和语义错误。
5. 同一个 Path/Program 能导出 ABB、FANUC、KUKA 三种目标文本和后处理报告。
6. 至少一种品牌程序能导入、转换为 IR 并在虚拟控制器中运行。
7. 能生成可达性报告、节拍报告、IO/Wait 报告、后处理报告。
8. 能导出包含源程序、品牌程序、IO map 和报告的客户交付包。
9. 自动测试覆盖解析器、KDL WASM、虚拟控制器、IO/Wait、后处理和品牌导入。
### 9.6 商业级扩展和流程图资产验收
1. 虚拟调试支持断点、运动断点、轨迹回放、变量 watch 和跨源定位。
2. 资源库、工艺模板、几何导入和曲线路径生成有对象模型和测试。
3. 基础碰撞检测可定位对象、时间和路径点。
4. TCP、Frame、Base 校准数据可保存、应用并进入报告。
5. 多机器人、外部轴、真实控制器校验流程有任务拆解、边界说明和扩展验收。
6. `flow-01``flow-05` 的 Mermaid 源图和 PNG 渲染图纳入覆盖证据。
7. 流程图资产与功能文档、任务矩阵、验收证据之间无断链。

View File

@@ -1,15 +1,20 @@
# 02-项目程序开发详细步骤
版本0.3
版本0.5
日期2026-06-27
对标文档:
1. `/home/meswork/kdl_work/work/doc/KDL_WASM计算接口设计.md`
2. `/home/meswork/kdl_work/work/doc/通用机器人编程语法规范.md`
3. `/home/meswork/kdl_work/work/doc/通用机器人离线编程虚拟控制器技术方案.md`
4. `/home/meswork/kdl_work/work/doc/通用机器人项目主要实施步骤.md`
5. `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图.md`
6. `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图-png/flow-01.mmd``flow-05.mmd`
7. `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图-png/flow-01.png``flow-05.png`
## 1. 推荐目录
目录按条主线组织:`grl` 负责语言、AST、语义、IR、后处理`kdl-wasm` 负责 KDL Worker API 和运动计算。
目录按条主线组织:`grl` 负责语言、AST、语义、IR、后处理`kdl-wasm` 负责 KDL Worker API 和运动计算`controller` 负责虚拟控制器、IO、wait、trace`workspace``station` 负责 OPFS、OLP 对象模型和资源;`reports/importers/ui` 负责报告、品牌导入和工作台
```text
/home/meswork/kdl_work/
@@ -41,9 +46,39 @@
abb/
fanuc/
kuka/
controller/
runtime/
io/
alarm/
debug/
workspace/
opfs.ts
project.ts
importExport.ts
station/
stationModel.ts
resources.ts
olp/
model.ts
path.ts
operation.ts
importers/
abb/
fanuc/
kuka/
reports/
reportModel.ts
htmlReport.ts
jsonReport.ts
ui/
appShell.ts
tests/
kdl/
grl/
controller/
workspace/
reports/
importers/
integration/
post/
```
@@ -560,7 +595,230 @@ GRL 实施顺序严格对标 `通用机器人编程语法规范.md` 第 24 章
2. 生成文本可 diff。
3. 生成文本可解析、语义检查并后处理。
## 4. 集成顺序
## 4. 虚拟控制器、工作区和交付实施线
以下任务对标 `通用机器人离线编程虚拟控制器技术方案.md``通用机器人项目主要实施步骤.md``通用机器人项目功能与数据流程图.md`,在 KDL/GRL P0 闭合后继续推进。
### 4.1 KW-200OLP 对象模型和 Station/Resource 基础
目标:
1. 定义 `OlpProjectModel`
2. 定义 Robot、Tool、Frame、Target、Path、PathPoint、Operation、Program、PostProfile。
3. 定义 Station、Cell、Fixture、Part、Device、Geometry、Calibration、Report 基础模型。
4. 建立对象树和文件资源之间的映射。
5. 支持从 Path/Operation 对象生成 GRL并从 GRL/品牌导入结果回填对象模型。
验收:
1. 对象模型 schema 有单元测试。
2. PathModel 可生成稳定 GRL。
3. OperationModel 可展开为 IR 或 GRL。
4. 品牌导入恢复出的 target/path/program 可作为对象模型 patch 应用。
### 4.2 KW-201OPFS Workspace 和项目导入导出
目标:
1. 实现 `/projects/{projectId}` 布局。
2. 实现 `project.json` manifest。
3. 实现 `listProjects/openProject/createProject`
4. 实现 `readText/writeText/readJson/writeJson/delete`
5. 实现 snapshot。
6. 实现 zip 导入导出。
7. 实现存储占用、迁移、备份和损坏检测。
验收:
1. 新建项目后生成约定目录和 manifest。
2. GRL、URDF、targets、paths、operations、io map、post profile 可保存和读取。
3. 导出 zip 后再导入能恢复等价项目。
4. OPFS 不可见性通过显式导出和快照缓解。
### 4.3 KW-202虚拟控制器状态机和执行内核
目标:
1. 实现 `PowerOff/Booting/MotorsOff/Ready/Manual/Auto/Running/Hold/Fault/EmergencyStop`
2. 实现 `powerOn/powerOff/motorsOn/motorsOff/loadProgram/start/hold/resume/stop/resetFault/stepInto/stepOver/stepMotion`
3. 实现 Program Counter、Call Stack、Scope Stack、Timer Table、Alarm Queue、Trace Buffer、Source Map。
4. 执行 `Executable IR`,不直接解释品牌文本。
5. 支持单主任务 `Task MAIN`
验收:
1. 状态转换非法路径有诊断。
2. 可执行无运动逻辑程序。
3. 当前行、变量、调用栈和报警可查询。
4. hold 暂停虚拟时间stop/reset 清理 ActiveWait 和 Motion Queue。
### 4.4 KW-203Motion Queue 和 KDL 运行桥接
目标:
1. 将 MotionInstruction、Path point、Operation 展开为 `MotionQueueItem`
2. 运行时调用 `planMoveJ/planMoveL/planMoveC/planPath`
3. 按虚拟时间推进轨迹采样。
4. 保留 `instructionId/pathId/pathPointId/operationId/sourceMap`
5. 支持运动失败报警和 trace。
验收:
1. `run_path` 能驱动虚拟机器人状态变化。
2. `run_operation` 能执行 start action、path、end action。
3. UI 或测试可从当前运动定位回 GRL 行、Path point 和 Operation。
4. IK、限位、奇异、圆弧退化诊断进入 Alarm Queue 和报告数据。
### 4.5 KW-204虚拟 IO、Wait、Pulse 和 IO 脚本
目标:
1. 实现 IO Image、Alias Table、Event Queue、Wait Registry、Edge Detector、IO Script Engine、Trace Logger。
2. 实现 IO 读写权限规则。
3. 实现 `wait` 立即求值、ActiveWait、timeout、on_timeout。
4. 实现 `rising/falling/changed` 边沿检测。
5. 实现 `pulse` 按虚拟时间自动复位。
6. 实现 IO script delay 和触发器。
验收:
1. 用户可手动切换虚拟输入满足 wait。
2. IO 脚本可延迟写入输入满足 wait。
3. wait timeout 可产生报警或执行 on_timeout。
4. hold 时 timeout 暂停stop/reset 时 ActiveWait 取消。
5. IO trace 顺序稳定,包含 read/write/wait/pulse 事件。
### 4.6 KW-205Web 工作台和调试界面
目标:
1. 建立第一屏工作台,而不是营销页。
2. 实现项目对象树。
3. 实现程序编辑器、路径编辑器、Operation 编辑器。
4. 实现虚拟示教器、控制器面板、运动监控、IO 面板。
5. 实现日志、报警、Wait 调试面板、后处理报告视图。
6. 支持项目导入导出、后处理导出和客户交付包入口。
验收:
1. 用户能新建项目、导入 URDF、编辑 GRL、运行程序。
2. 当前行、变量、IO、报警、TCP、关节、Path point、Operation 可见。
3. Wait 卡住时显示表达式、子表达式值、已等待时间、剩余 timeout、相关 IO 最近变化和 IO 脚本状态。
4. 诊断可从 UI 定位回源程序、Path、Operation 或品牌源。
### 4.7 KW-206验证、报告和客户交付包
目标:
1. 可达性报告。
2. 基础碰撞报告接口和数据模型。
3. 节拍报告,分解 motion/wait/IO script delay。
4. IO/Wait 报告。
5. 后处理报告。
6. 品牌导入报告。
7. JSON/HTML 报告导出。
8. 客户交付包 zip。
验收:
1. 报告 JSON schema 稳定。
2. HTML 报告可打开并包含关键摘要。
3. 客户交付包包含 GRL、品牌程序、目标点、路径、IO map、报告和可选 trace。
4. 不可达点、IK 失败、wait timeout、后处理近似和品牌导入丢失语义能定位到 source map。
### 4.8 KW-207品牌程序导入 MVP
目标:
1. 实现 ABB RAPID 文本导入原型。
2. 实现 KUKA KRL `.src/.dat` 导入原型。
3. 实现 FANUC LS 风格文本导入原型。
4. 生成 Brand AST。
5. 转换为统一 IR。
6. 尽量恢复 GRL、target、path、program。
7. 输出品牌导入转换报告。
验收:
1. 至少一种品牌程序可导入、转换为 IR 并在虚拟控制器中运行。
2. 三品牌导入 golden case 可解析主要运动、目标点、工具、坐标系、速度、过渡和 IO。
3. 不支持或近似语义必须进入导入报告,不能静默丢失。
4. FANUC 首版只承诺 LS 风格或可读文本,不承诺 TP 二进制。
### 4.9 KW-208几何、碰撞、校准和商业级 OLP 扩展
目标:
1. 资源库管理。
2. Mesh/CAD 转换文件导入。
3. 从点、边、曲线、面法向生成 Path。
4. 工艺模板库。
5. TCP、Frame、Base 校准数据。
6. 基础碰撞检测。
7. 商业级客户交付流程。
验收:
1. 可从几何曲线生成 Path。
2. 可使用工艺模板生成 Operation。
3. 可执行基础碰撞检测并定位对象和时间点。
4. 可保存和应用校准数据。
5. 可生成商业级客户交付包。
### 4.10 KW-209虚拟调试增强和跨源定位
目标:
1. 实现断点。
2. 实现单步进入、单步越过。
3. 实现运动断点。
4. 实现轨迹回放。
5. 实现变量 watch。
6. 实现 IO 脚本调试。
7. 实现 GRL、Path、Operation、品牌源程序与 IR 的跨源定位。
验收:
1. 可像调试程序一样调试机器人逻辑。
2. 可复现运行 trace。
3. 可定位 IK、IO、逻辑错误。
4. 可在 GRL、Path、Operation、品牌源程序之间定位同一条运动。
### 4.11 KW-210多机器人、外部轴和真实控制器校验扩展
目标:
1. 扩展任务模型,支持多机器人任务、后台任务、独立 IO 任务和监控任务。
2. 扩展运动组和外部轴数据结构。
3. 保留外部轴协调和复杂工作站接口。
4. 建立真实控制器校验流程边界。
5. 支持离线/现场差异比对和校验报告。
验收:
1. 多机器人和外部轴进入对象模型、IR、任务模型和报告 schema。
2. 真实控制器通信不作为 MVP 实时联调目标,但现场低速验证、差异记录和校验报告流程明确。
3. 外部轴相关 KDL P1 能力有接口占位和诊断边界。
### 4.12 KW-211流程图资产覆盖和同步维护
目标:
1.`flow-01.mmd/png` 纳入总体功能流程覆盖。
2.`flow-02.mmd/png` 纳入 GRL 编译与执行流程覆盖。
3.`flow-03.mmd/png` 纳入 KDL WASM 计算流程覆盖。
4.`flow-04.mmd/png` 纳入数据传递流程覆盖。
5.`flow-05.mmd/png` 纳入诊断传递流程覆盖。
6. 建立流程图源、渲染图、文档章节、任务矩阵和验收证据的同步检查。
验收:
1. `.mmd` 文件和 `.png` 文件均被证据记录。
2. 每张流程图能映射到至少一个功能章节和任务编号。
3. Mermaid 源和 PNG 渲染图缺失或新增时,文档一致性检查会提示。
4. 流程图变更能追溯到对应任务和验收证据。
## 5. 集成顺序
1. KW-001 + KW-100 + KW-101基础工程、Worker RPC、Lexer/Parser 骨架。
2. KW-002 + KW-102URDF/标准模型和 GRL target/tool/frame/speed/zone。
@@ -571,8 +829,18 @@ GRL 实施顺序严格对标 `通用机器人编程语法规范.md` 第 24 章
7. KW-106 到 KW-110完成 P0 语义检查和 IR。
8. KW-111三品牌后处理原型。
9. KW-112 + KW-013自动生成、性能和批量优化。
10. KW-200 + KW-201OLP 对象模型和 OPFS 工作区。
11. KW-202 + KW-203虚拟控制器状态机、执行内核和 Motion Queue。
12. KW-204虚拟 IO、wait、pulse 和 IO 脚本。
13. KW-205Web 工作台和调试界面。
14. KW-206验证、报告和客户交付包。
15. KW-207品牌程序导入 MVP。
16. KW-208几何、碰撞、校准和商业级 OLP 扩展。
17. KW-209虚拟调试增强和跨源定位。
18. KW-210多机器人、外部轴和真实控制器校验扩展。
19. KW-211流程图资产覆盖和同步维护。
## 5. 通用命令约定
## 6. 通用命令约定
实际命令以工程 `package.json` 和 CMake 配置为准。文档验收要求每个阶段至少提供等效命令:
@@ -582,6 +850,10 @@ npm run test -- grl
npm run test -- kdl
npm run test -- integration
npm run test -- post
npm run test -- controller
npm run test -- workspace
npm run test -- reports
npm run test -- importers
npm run build
```

View File

@@ -1,6 +1,6 @@
# 03-推进台账
版本0.3
版本0.5
日期2026-06-27
## 1. 记录规则
@@ -25,7 +25,7 @@
日期2026-06-27
关联任务:`KW-000`
本轮目标:根据用户要求,将 `working1` 实施文档调整为完全对标两份源文档:
本轮目标:根据用户要求,将 `working` 实施文档调整为完全对标两份源文档:
1. `/home/meswork/kdl_work/work/doc/KDL_WASM计算接口设计.md`
2. `/home/meswork/kdl_work/work/doc/通用机器人编程语法规范.md`
@@ -42,19 +42,19 @@
改了哪些文件:
1. `work/working1/README.md`
2. `work/working1/01-项目功能内容.md`
3. `work/working1/02-项目程序开发详细步骤.md`
4. `work/working1/03-推进台账.md`
5. `work/working1/04-任务矩阵.md`
6. `work/working1/05-验收证据.md`
7. `work/working1/06-决策记录.md`
1. `working/README.md`
2. `working/01-项目功能内容.md`
3. `working/02-项目程序开发详细步骤.md`
4. `working/03-推进台账.md`
5. `working/04-任务矩阵.md`
6. `working/05-验收证据.md`
7. `working/06-决策记录.md`
验证了什么:
1. `work/doc/KDL_WASM计算接口设计.md` 存在。
2. `work/doc/通用机器人编程语法规范.md` 存在。
3. `working1` 当前文档只以这两份文档作为对标来源。
3. `working` 当前文档只以这两份文档作为对标来源。
4. KDL P0 29 个函数已进入任务和验收证据。
5. GRL P0 14 类能力已进入任务和验收证据。
@@ -75,7 +75,7 @@
日期2026-06-27
关联任务:`KW-001``KW-100`
本轮目标:按 `working1` 下一步连续推进,建立 KDL WASM wrapper/Worker RPC 工程骨架,并实现 GRL lexer、单位规范化和关键字表。
本轮目标:按 `working` 下一步连续推进,建立 KDL WASM wrapper/Worker RPC 工程骨架,并实现 GRL lexer、单位规范化和关键字表。
做了什么:
@@ -100,9 +100,9 @@
8. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/lexer/*`
9. `/home/meswork/kdl_work/kdl-wasm/web/tests/kdl/rpc.test.ts`
10. `/home/meswork/kdl_work/kdl-wasm/web/tests/grl/lexer.test.ts`
11. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
12. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
13. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
11. `/home/meswork/kdl_work/working/03-推进台账.md`
12. `/home/meswork/kdl_work/working/04-任务矩阵.md`
13. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -154,9 +154,9 @@
8. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/parser/*`
9. `/home/meswork/kdl_work/kdl-wasm/web/tests/kdl/urdf.test.ts`
10. `/home/meswork/kdl_work/kdl-wasm/web/tests/grl/parser.test.ts`
11. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
12. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
13. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
11. `/home/meswork/kdl_work/working/03-推进台账.md`
12. `/home/meswork/kdl_work/working/04-任务矩阵.md`
13. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -205,9 +205,9 @@
8. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/semantic/*`
9. `/home/meswork/kdl_work/kdl-wasm/web/tests/kdl/fk.test.ts`
10. `/home/meswork/kdl_work/kdl-wasm/web/tests/grl/dataDeclarations.test.ts`
11. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
12. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
13. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
11. `/home/meswork/kdl_work/working/03-推进台账.md`
12. `/home/meswork/kdl_work/working/04-任务矩阵.md`
13. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -257,9 +257,9 @@
8. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/parser/parser.ts`
9. `/home/meswork/kdl_work/kdl-wasm/web/tests/kdl/ik.test.ts`
10. `/home/meswork/kdl_work/kdl-wasm/web/tests/grl/motionCompile.test.ts`
11. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
12. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
13. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
11. `/home/meswork/kdl_work/working/03-推进台账.md`
12. `/home/meswork/kdl_work/working/04-任务矩阵.md`
13. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -303,9 +303,9 @@
3. `/home/meswork/kdl_work/kdl-wasm/web/src/kdl/kdlClient.ts`
4. `/home/meswork/kdl_work/kdl-wasm/web/src/robot/normalizedRobotModel.ts`
5. `/home/meswork/kdl_work/kdl-wasm/web/tests/kdl/checks.test.ts`
6. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
7. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
8. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
6. `/home/meswork/kdl_work/working/03-推进台账.md`
7. `/home/meswork/kdl_work/working/04-任务矩阵.md`
8. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -348,9 +348,9 @@
3. `/home/meswork/kdl_work/kdl-wasm/web/src/kdl/runtime.ts`
4. `/home/meswork/kdl_work/kdl-wasm/web/src/kdl/kdlClient.ts`
5. `/home/meswork/kdl_work/kdl-wasm/web/tests/kdl/poseApi.test.ts`
6. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
7. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
8. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
6. `/home/meswork/kdl_work/working/03-推进台账.md`
7. `/home/meswork/kdl_work/working/04-任务矩阵.md`
8. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -392,9 +392,9 @@
3. `/home/meswork/kdl_work/kdl-wasm/web/src/kdl/runtime.ts`
4. `/home/meswork/kdl_work/kdl-wasm/web/src/kdl/kdlClient.ts`
5. `/home/meswork/kdl_work/kdl-wasm/web/tests/kdl/trapProfile.test.ts`
6. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
7. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
8. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
6. `/home/meswork/kdl_work/working/03-推进台账.md`
7. `/home/meswork/kdl_work/working/04-任务矩阵.md`
8. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -436,9 +436,9 @@
3. `/home/meswork/kdl_work/kdl-wasm/web/src/kdl/kdlClient.ts`
4. `/home/meswork/kdl_work/kdl-wasm/web/src/robot/normalizedRobotModel.ts`
5. `/home/meswork/kdl_work/kdl-wasm/web/tests/kdl/planMoveJ.test.ts`
6. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
7. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
8. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
6. `/home/meswork/kdl_work/working/03-推进台账.md`
7. `/home/meswork/kdl_work/working/04-任务矩阵.md`
8. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -480,9 +480,9 @@
2. `/home/meswork/kdl_work/kdl-wasm/web/src/kdl/kdlClient.ts`
3. `/home/meswork/kdl_work/kdl-wasm/web/src/robot/normalizedRobotModel.ts`
4. `/home/meswork/kdl_work/kdl-wasm/web/tests/kdl/planMoveL.test.ts`
5. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
6. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
7. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
5. `/home/meswork/kdl_work/working/03-推进台账.md`
6. `/home/meswork/kdl_work/working/04-任务矩阵.md`
7. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -525,9 +525,9 @@
2. `/home/meswork/kdl_work/kdl-wasm/web/src/kdl/kdlClient.ts`
3. `/home/meswork/kdl_work/kdl-wasm/web/src/robot/normalizedRobotModel.ts`
4. `/home/meswork/kdl_work/kdl-wasm/web/tests/kdl/planMoveC.test.ts`
5. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
6. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
7. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
5. `/home/meswork/kdl_work/working/03-推进台账.md`
6. `/home/meswork/kdl_work/working/04-任务矩阵.md`
7. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -570,9 +570,9 @@
3. `/home/meswork/kdl_work/kdl-wasm/web/src/kdl/kdlClient.ts`
4. `/home/meswork/kdl_work/kdl-wasm/web/src/robot/normalizedRobotModel.ts`
5. `/home/meswork/kdl_work/kdl-wasm/web/tests/kdl/path.test.ts`
6. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
7. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
8. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
6. `/home/meswork/kdl_work/working/03-推进台账.md`
7. `/home/meswork/kdl_work/working/04-任务矩阵.md`
8. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -618,9 +618,9 @@
4. `/home/meswork/kdl_work/kdl-wasm/web/src/kdl/kdlClient.ts`
5. `/home/meswork/kdl_work/kdl-wasm/web/src/robot/normalizedRobotModel.ts`
6. `/home/meswork/kdl_work/kdl-wasm/web/tests/kdl/trajectoryUtils.test.ts`
7. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
8. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
9. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
7. `/home/meswork/kdl_work/working/03-推进台账.md`
8. `/home/meswork/kdl_work/working/04-任务矩阵.md`
9. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -671,9 +671,9 @@
9. `/home/meswork/kdl_work/kdl-wasm/web/tests/kdl/cAbi.test.ts`
10. `/home/meswork/kdl_work/kdl-wasm/web/tests/kdl/performance.test.ts`
11. `/home/meswork/kdl_work/kdl-wasm/web/tests/kdl/fk.test.ts`
12. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
13. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
14. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
12. `/home/meswork/kdl_work/working/03-推进台账.md`
13. `/home/meswork/kdl_work/working/04-任务矩阵.md`
14. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -726,9 +726,9 @@
8. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/semantic/compileMotion.ts`
9. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/semantic/index.ts`
10. `/home/meswork/kdl_work/kdl-wasm/web/tests/grl/pathCompile.test.ts`
11. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
12. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
13. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
11. `/home/meswork/kdl_work/working/03-推进台账.md`
12. `/home/meswork/kdl_work/working/04-任务矩阵.md`
13. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -777,9 +777,9 @@
6. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/semantic/compileMotion.ts`
7. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/semantic/index.ts`
8. `/home/meswork/kdl_work/kdl-wasm/web/tests/grl/operationCompile.test.ts`
9. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
10. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
11. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
9. `/home/meswork/kdl_work/working/03-推进台账.md`
10. `/home/meswork/kdl_work/working/04-任务矩阵.md`
11. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -827,9 +827,9 @@
4. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/semantic/compileMotion.ts`
5. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/semantic/index.ts`
6. `/home/meswork/kdl_work/kdl-wasm/web/tests/grl/ioCompile.test.ts`
7. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
8. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
9. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
7. `/home/meswork/kdl_work/working/03-推进台账.md`
8. `/home/meswork/kdl_work/working/04-任务矩阵.md`
9. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -875,9 +875,9 @@
3. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/semantic/compileControlFlow.ts`
4. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/semantic/index.ts`
5. `/home/meswork/kdl_work/kdl-wasm/web/tests/grl/controlFlow.test.ts`
6. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
7. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
8. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
6. `/home/meswork/kdl_work/working/03-推进台账.md`
7. `/home/meswork/kdl_work/working/04-任务矩阵.md`
8. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -927,9 +927,9 @@
6. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/semantic/compileProcFunction.ts`
7. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/semantic/index.ts`
8. `/home/meswork/kdl_work/kdl-wasm/web/tests/grl/procFunction.test.ts`
9. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
10. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
11. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
9. `/home/meswork/kdl_work/working/03-推进台账.md`
10. `/home/meswork/kdl_work/working/04-任务矩阵.md`
11. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -978,9 +978,9 @@
4. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/semantic/compileException.ts`
5. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/semantic/index.ts`
6. `/home/meswork/kdl_work/kdl-wasm/web/tests/grl/exceptionCompile.test.ts`
7. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
8. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
9. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
7. `/home/meswork/kdl_work/working/03-推进台账.md`
8. `/home/meswork/kdl_work/working/04-任务矩阵.md`
9. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -1029,9 +1029,9 @@
4. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/semantic/compileSemantic.ts`
5. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/semantic/index.ts`
6. `/home/meswork/kdl_work/kdl-wasm/web/tests/grl/semanticIr.test.ts`
7. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
8. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
9. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
7. `/home/meswork/kdl_work/working/03-推进台账.md`
8. `/home/meswork/kdl_work/working/04-任务矩阵.md`
9. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -1074,9 +1074,9 @@
1. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/post/postProcessor.ts`
2. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/post/index.ts`
3. `/home/meswork/kdl_work/kdl-wasm/web/tests/post/postProcessor.test.ts`
4. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
5. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
6. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
4. `/home/meswork/kdl_work/working/03-推进台账.md`
5. `/home/meswork/kdl_work/working/04-任务矩阵.md`
6. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -1114,10 +1114,10 @@
改了哪些文件:
1. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/generator/generator.ts`
2. `/home/meswork/kdl_work/work/working1/README.md`
3. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
4. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
5. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
2. `/home/meswork/kdl_work/working/README.md`
3. `/home/meswork/kdl_work/working/03-推进台账.md`
4. `/home/meswork/kdl_work/working/04-任务矩阵.md`
5. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -1161,10 +1161,10 @@
2. `/home/meswork/kdl_work/kdl-wasm/bindings/kdl_c_api.cpp`
3. `/home/meswork/kdl_work/kdl-wasm/web/src/kdl/nativeModule.ts`
4. `/home/meswork/kdl_work/kdl-wasm/web/tests/kdl/cAbi.test.ts`
5. `/home/meswork/kdl_work/work/working1/README.md`
6. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
7. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
8. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
5. `/home/meswork/kdl_work/working/README.md`
6. `/home/meswork/kdl_work/working/03-推进台账.md`
7. `/home/meswork/kdl_work/working/04-任务矩阵.md`
8. `/home/meswork/kdl_work/working/05-验收证据.md`
验证了什么:
@@ -1229,3 +1229,192 @@
1. 若继续深化 KDL native 主线,优先设计 Worker 中 TypeScript handle 与 native RobotHandle 的映射关系。
2. 映射稳定后,再逐步把 `planMoveJ/planMoveL/planMoveC/planPath` 从 TypeScript runtime 切到 native solver 或 native-assisted solver。
### 轮次 026
日期2026-06-27
关联任务:`KW-000``KW-001``KW-013``KW-100``KW-112`
本轮目标:按当前 `/home/meswork/kdl_work/working` 目录完成全量收口核对,确认任务矩阵、验收证据和实现侧验证一致。
做了什么:
1. 复核 `working` 目录 README、任务矩阵、推进台账、验收证据和 ADR。
2. 将文档中仍指向旧实施目录的路径统一为 `/home/meswork/kdl_work/working`
3. 执行实现侧全量验证TypeScript 类型检查、Vitest 全量测试、WASM 构建。
4. 确认任务矩阵中 `KW-001``KW-013``KW-100``KW-112` 均为 `Done`
5. 确认当前实现包含 KDL Worker/TS API、URDF 标准模型、KDL C ABI native Chain、native FK/fkAllLinks/Jacobian/IK/sampleTrap、轨迹规划 TS runtime、GRL lexer/parser/semantic IR/post/generator。
改了哪些文件:
1. `/home/meswork/kdl_work/working/README.md`
2. `/home/meswork/kdl_work/working/03-推进台账.md`
3. `/home/meswork/kdl_work/working/05-验收证据.md`
4. `/home/meswork/kdl_work/working/06-决策记录.md`
验证了什么:
1. `npm run typecheck` 通过。
2. `npm test` 通过27 个测试文件共 109 个测试通过。
3. `cmake --build kdl-wasm/build-wasm -j16` 通过。
4. `rg -n 'work[i]ng1|work/work[i]ng1|/home/meswork/kdl_work/work/work[i]ng1' /home/meswork/kdl_work/working` 无匹配。
问题和风险:
1. P0 任务已按当前文档范围闭合;高层 `planMoveJ/planMoveL/planMoveC/planPath` 仍由 TypeScript runtime 基线承载native C ABI 已保留稳定导出边界。
2. Worker 默认计算路径仍以 TypeScript registry 管理高层机器人句柄native FK/fkAllLinks/Jacobian/IK/sampleTrap 已通过 C ABI 测试。
下一步:
1. 当前 `working` 目录任务已全部完成并有验收证据。
2. 若后续继续深化 native 主线,可单独新增任务把 Worker 默认路径切到 native solver 或 native-assisted solver。
### 轮次 027
日期2026-06-27
关联任务:`KW-000``KW-200``KW-208`
本轮目标:根据用户要求,将 `/home/meswork/kdl_work/working` 从原 KDL/GRL 双文档对标扩展为 `/home/meswork/kdl_work/work/doc` 全目录五份 Markdown 源文档对标。
做了什么:
1. 读取 `/home/meswork/kdl_work/work/doc` 源文档清单,确认需要纳入 5 份 Markdown
- `KDL_WASM计算接口设计.md`
- `通用机器人编程语法规范.md`
- `通用机器人离线编程虚拟控制器技术方案.md`
- `通用机器人项目主要实施步骤.md`
- `通用机器人项目功能与数据流程图.md`
2. 更新 README将实施主线从 KDL/GRL 两条扩展为 GRL、KDL WASM、虚拟控制器、OLP 工作台/工作区、数据流/集成验收五条。
3. 更新功能范围补充虚拟控制器状态机、IO Service、Wait、Motion Queue、OPFS、Web 工作台、品牌导入、报告、客户交付包、数据流和线程模型。
4. 更新开发步骤,新增 `KW-200``KW-208` 的后续实施步骤。
5. 更新任务矩阵,新增 `KW-200``KW-208` 总任务和子任务,并全部保持 `Todo`避免把尚未实现的虚拟控制器、OPFS、UI、报告和品牌导入误标为完成。
6. 更新验收证据,新增全目录对标任务入库证据,并明确 `KW-200``KW-208` 需要后续实现验收。
7. 更新 ADR`working` 范围改为 `work/doc` 全目录对标,并新增统一 IR、OPFS 导入导出、工作台首屏、品牌导入、报告和客户交付包决策。
改了哪些文件:
1. `/home/meswork/kdl_work/working/README.md`
2. `/home/meswork/kdl_work/working/01-项目功能内容.md`
3. `/home/meswork/kdl_work/working/02-项目程序开发详细步骤.md`
4. `/home/meswork/kdl_work/working/03-推进台账.md`
5. `/home/meswork/kdl_work/working/04-任务矩阵.md`
6. `/home/meswork/kdl_work/working/05-验收证据.md`
7. `/home/meswork/kdl_work/working/06-决策记录.md`
验证了什么:
1. `find /home/meswork/kdl_work/work/doc -maxdepth 1 -type f -name '*.md' -print | sort` 确认 5 份源文档。
2. `rg -n 'KW-20[0-8]' working/02-项目程序开发详细步骤.md working/04-任务矩阵.md` 确认新增任务进入步骤和矩阵。
3. `rg -n '虚拟控制器|OPFS|品牌程序导入|客户交付包|IO 脚本|Wait 调试|OLP 对象模型' working` 确认新增主线进入工作文档。
4. `rg -n '^\\| KW-[0-9]+ \\|.*\\| (Doing|Blocked|Review) \\|' working/04-任务矩阵.md` 无匹配,确认没有半完成状态任务。
问题和风险:
1. `KW-001``KW-013``KW-100``KW-112` 仍是已实现并有证据的 KDL/GRL 范围。
2. `KW-200``KW-208` 是本轮从全目录对标新增的后续实施任务,当前只有文档入库证据,没有实现验收证据。
3. 虚拟控制器、OPFS、UI、品牌导入、报告和客户交付包涉及新模块后续实现会扩大测试面和前端验证面。
下一步:
1. 若继续推进全目录 MVP实现顺序建议从 `KW-200` OLP 对象模型和 `KW-201` OPFS Workspace 开始。
2. 再进入 `KW-202` 虚拟控制器状态机和 `KW-204` IO/Wait 运行时。
### 轮次 028
日期2026-06-27
关联任务:`KW-000``KW-209``KW-211`
本轮目标:根据用户补充要求,将 `/home/meswork/kdl_work/working` 的覆盖范围从 `/home/meswork/kdl_work/work/doc` Markdown 正文扩展到 `/home/meswork/kdl_work/work` 下全部文档资产和全部功能。
做了什么:
1. 重新扫描 `/home/meswork/kdl_work/work`,确认除 5 份 Markdown 外,还包含:
- `flow-01.mmd``flow-05.mmd`
- `flow-01.png``flow-05.png`
2. 更新 README把覆盖对象改为 `/home/meswork/kdl_work/work` 下全部文档资产,包括 Markdown、Mermaid 源图和 PNG 渲染图。
3. 更新功能范围,新增 `/work` 全功能覆盖索引,将每份 Markdown、每张流程图源和 PNG 映射到任务编号。
4. 更新开发步骤,新增:
- `KW-209`:虚拟调试增强和跨源定位。
- `KW-210`:多机器人、外部轴和真实控制器校验扩展。
- `KW-211`:流程图资产覆盖和同步维护。
5. 更新任务矩阵,把 `KW-209``KW-211` 加入总表和子任务表,补齐虚拟调试、商业级扩展、流程图资产同步这些之前过粗的功能面。
6. 更新验收证据,新增 `EV-201`,记录 `/work` 下 5 份 Markdown、5 份 `.mmd` 和 5 份 `.png` 全部纳入覆盖。
7. 更新 ADR将 ADR-001 改为 `/work` 全部文档资产对标,并新增流程图资产同步、商业级扩展任务归属决策。
改了哪些文件:
1. `/home/meswork/kdl_work/working/README.md`
2. `/home/meswork/kdl_work/working/01-项目功能内容.md`
3. `/home/meswork/kdl_work/working/02-项目程序开发详细步骤.md`
4. `/home/meswork/kdl_work/working/03-推进台账.md`
5. `/home/meswork/kdl_work/working/04-任务矩阵.md`
6. `/home/meswork/kdl_work/working/05-验收证据.md`
7. `/home/meswork/kdl_work/working/06-决策记录.md`
验证了什么:
1. `find /home/meswork/kdl_work/work -maxdepth 3 -type f -print | sort` 确认全部文档资产。
2. `find /home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图-png -maxdepth 1 -type f -printf '%f %s bytes\n' | sort` 确认 5 份 `.mmd` 和 5 份 `.png`
3. `rg -n 'KW-20[9]|KW-210|KW-211' working/01-项目功能内容.md working/02-项目程序开发详细步骤.md working/04-任务矩阵.md` 确认新增任务进入功能、步骤和矩阵。
4. `rg -n 'flow-01|flow-02|flow-03|flow-04|flow-05|流程图资产' working` 确认流程图资产进入 working 文档。
问题和风险:
1. `KW-209``KW-211` 当前是文档覆盖和后续任务入库,不是实现完成。
2. 完整虚拟调试、多机器人、外部轴、真实控制器校验、流程图同步检查涉及后续新增代码、UI 和测试。
3. 商业级扩展不应阻塞 KDL/GRL 已完成 P0但不能从任务矩阵中省略。
下一步:
1. 若继续实现全功能 MVP优先从 `KW-200``KW-201``KW-202``KW-204` 开始。
2. 若要先补文档自动一致性,可优先实现 `KW-211` 的流程图资产同步检查。
### 轮次 029
日期2026-06-27
关联任务:`KW-200``KW-211`
本轮目标:按用户要求完成 `/home/meswork/kdl_work/working` 中剩余全部任务的实现、验证和文档收口。
做了什么:
1. 新增 OLP 对象模型、JSON patch、Path/Operation 到 GRL 生成、几何路径生成、基础碰撞和校准应用模块。
2. 新增 Workspace 存储模块,覆盖 OPFS-like async storage、`project.json` manifest、文本/JSON 读写删除、snapshot/restore、migration、损坏检测和稳定 JSON bundle 导入导出。
3. 新增虚拟控制器状态机、IR 执行内核、trace/source map、Motion Queue、KDL runtime bridge、IO runtime、wait/pulse/edge/script 支持。
4. 新增 Workbench/Debug facade覆盖对象树、编辑器、示教器、IO 面板、报告入口、断点、运动断点、变量 watch、轨迹回放和跨源定位。
5. 新增报告和客户交付包模块,覆盖验证报告 JSON schema、HTML 报告、源程序/品牌程序/IO map/报告/校准/trace 交付 bundle。
6. 新增 ABB、KUKA、FANUC 品牌导入 MVP生成 OLP patch、GRL、Semantic IR 和导入报告。
7. 新增流程图资产覆盖检查,自动校验 `flow-01``flow-05` 的 Mermaid/PNG 资产、关键术语和任务映射。
8. 整合并行实现中的 API 冲突和严格 TypeScript 可选属性问题,保证全量类型检查和测试通过。
9. 更新 README、任务矩阵、验收证据和 ADR`KW-200``KW-211` 标记为完成并补充实现证据。
改了哪些文件:
1. `/home/meswork/kdl_work/kdl-wasm/web/src/olp/*`
2. `/home/meswork/kdl_work/kdl-wasm/web/src/workspace/*`
3. `/home/meswork/kdl_work/kdl-wasm/web/src/controller/*`
4. `/home/meswork/kdl_work/kdl-wasm/web/src/runtime/*`
5. `/home/meswork/kdl_work/kdl-wasm/web/src/workbench/*`
6. `/home/meswork/kdl_work/kdl-wasm/web/src/reports/*`
7. `/home/meswork/kdl_work/kdl-wasm/web/src/importers/*`
8. `/home/meswork/kdl_work/kdl-wasm/web/src/docs/*`
9. `/home/meswork/kdl_work/kdl-wasm/web/tests/{olp,workspace,controller,runtime,workbench,reports,importers,docs}/*`
10. `/home/meswork/kdl_work/working/README.md`
11. `/home/meswork/kdl_work/working/03-推进台账.md`
12. `/home/meswork/kdl_work/working/04-任务矩阵.md`
13. `/home/meswork/kdl_work/working/05-验收证据.md`
14. `/home/meswork/kdl_work/working/06-决策记录.md`
验证了什么:
1. `npm run typecheck` 通过。
2. `npm run test -- controller runtime workbench workspace importers reports olp docs` 通过10 个测试文件共 31 个测试通过。
3. `npm test` 通过38 个测试文件共 146 个测试通过。
4. `cmake --build kdl-wasm/build-wasm -j16` 通过。
5. `validateFlowAssetCoverage` 检查 5 份 Mermaid 源图和 5 份 PNG 渲染资产均存在且映射到任务。
问题和风险:
1. Workspace 导入导出使用稳定 JSON bundle 完成 MVP 验收,真实 `.zip` 封装可作为外层适配接入。
2. Workbench 当前是可测试的数据 facade不包含浏览器 DOM UI。
3. 真实控制器通信、完整 CAD kernel、高精度轨迹复现和品牌控制器 look-ahead 完全复刻仍是非 MVP 边界。
下一步:
1. 当前 `working` 目录任务已全部完成并有验收证据。

View File

@@ -1,6 +1,6 @@
# 04-任务矩阵
版本0.3
版本0.5
日期2026-06-27
## 1. 状态定义
@@ -20,12 +20,13 @@
| `KW-000` | 管理任务 | 文档维护和推进记录。 |
| `KW-001``KW-099` | `KDL_WASM计算接口设计.md` | KDL WASM API、轨迹、诊断、Worker、性能。 |
| `KW-100``KW-199` | `通用机器人编程语法规范.md` | GRL 语法、AST、语义、IR、后处理。 |
| `KW-200``KW-299` | `通用机器人离线编程虚拟控制器技术方案.md``通用机器人项目主要实施步骤.md``通用机器人项目功能与数据流程图.md``通用机器人项目功能与数据流程图-png/*` | OLP 对象模型、OPFS、虚拟控制器、IO/Wait、UI、报告、品牌导入、交付包、商业扩展和流程图资产。 |
## 3. 任务总表
| 编号 | 任务 | 状态 | 依赖 | 对标章节 | 验收标准 |
| --- | --- | --- | --- | --- | --- |
| KW-000 | 对标实施文档维护 | Done | 无 | 两份文档全文 | README、功能范围、开发步骤、任务矩阵、证据、ADR 已对齐两份源文档。 |
| KW-000 | 对标实施文档维护 | Done | 无 | `/home/meswork/kdl_work/work` 全部文档资产 | README、功能范围、开发步骤、任务矩阵、证据、ADR 已对齐 Markdown、Mermaid 和 PNG 流程图资产。 |
| KW-001 | WASM 工程骨架和 Worker RPC | Done | KW-000 | KDL 2、17、18、24 | `init/dispose`、RPC、结构化错误、Worker 加载通过测试。 |
| KW-002 | `NormalizedRobotModel` 到 KDL Chain | Done | KW-001 | KDL 6、22、24 | URDF 解析、标准模型、RobotHandle、机器人信息和限位测试通过。 |
| KW-003 | FK 和 fkAllLinks | Done | KW-002 | KDL 8.1、8.2、22、23 | FK golden 对比、link 位姿顺序和维度诊断通过。 |
@@ -52,6 +53,18 @@
| KW-110 | 语义检查、IR 和 source map | Done | KW-103, KW-104, KW-105, KW-106, KW-107, KW-108 | GRL 20、21、24KDL 21 | 语法规范第 21 章检查项全部覆盖IR 可调用 KDL。 |
| KW-111 | ABB、FANUC、KUKA 后处理原型 | Done | KW-110 | GRL 17、19、24 | 三品牌 golden file、post_hint、brand metadata 和转换报告通过。 |
| KW-112 | 自动生成规则和往返 | Done | KW-111 | GRL 18、24 | 自动生成 GRL 稳定、可 diff、可解析回等价对象。 |
| KW-200 | OLP 对象模型和 Station/Resource 基础 | Done | KW-110, KW-112 | VC 2.3、3.1、6.5、12、15、17FLOW 2、5、6 | OLP schema、对象树映射、Path/Operation 到 GRL、导入 patch 应用测试通过。 |
| KW-201 | OPFS Workspace 和项目导入导出 | Done | KW-200 | VC 4.4、9、12、15、16、17FLOW 2、5 | project manifest、OPFS-like 读写、snapshot、稳定 bundle 导入导出和恢复测试通过。 |
| KW-202 | 虚拟控制器状态机和执行内核 | Done | KW-110 | VC 7.1、7.2、7.3、12、13、15、16FLOW 2、3、5、8 | 状态机、PC、调用栈、作用域、报警、trace 和单步测试通过。 |
| KW-203 | Motion Queue 和 KDL 运行桥接 | Done | KW-011, KW-202 | VC 7.4、7.4.1、8.12、12、13、16FLOW 2、4、5、6 | `run_path/run_operation` 驱动 Motion Queue轨迹回放和 source map 定位通过。 |
| KW-204 | 虚拟 IO、Wait、Pulse 和 IO 脚本 | Done | KW-106, KW-202 | VC 5.8、7.6、11.5、11.6、11.7、12、13、16FLOW 3、5、8、9 | IO Image、wait timeout、pulse、边沿检测、IO script 和 IO trace 测试通过。 |
| KW-205 | Web 工作台和调试界面 | Done | KW-200, KW-201, KW-202, KW-203, KW-204 | VC 3、11、12、15、16FLOW 2、3、5、9 | 工作台 facade、对象树、编辑器、示教器、IO 面板、Wait 调试和诊断定位可用。 |
| KW-206 | 验证、报告和客户交付包 | Done | KW-111, KW-201, KW-203, KW-204 | VC 2.4.6、9.6、13.4.1、15、16FLOW 5、9、10 | 可达性、节拍、IO/Wait、后处理、导入报告和客户交付包导出通过。 |
| KW-207 | 品牌程序导入 MVP | Done | KW-110, KW-111, KW-200, KW-202 | VC 6.6、6.6.1、6.6.2、7.4.2、10.6、12、13.6、15、16 | ABB/KUKA/FANUC 三品牌导入 golden case、GRL/IR 生成和转换报告通过。 |
| KW-208 | 几何、碰撞、校准和商业级 OLP 扩展 | Done | KW-200, KW-201, KW-206 | VC 2.4、2.4.3、2.4.5、9.6、12、13.4.1、15、16、18 | 几何生成 Path、基础碰撞、校准数据和商业级交付流程原型通过。 |
| KW-209 | 虚拟调试增强和跨源定位 | Done | KW-202, KW-203, KW-204, KW-207 | VC 7.2、7.4、7.4.2、11.2、11.7、12 阶段 8、13.4、15、16FLOW 3、5、9 | 断点、运动断点、轨迹回放、变量 watch、IO 脚本调试和跨源定位通过。 |
| KW-210 | 多机器人、外部轴和真实控制器校验扩展 | Done | KW-200, KW-203, KW-206, KW-208 | KDL 22VC 7.3、8.13、12 阶段 10、14、15、16、18 | 多机器人/外部轴模型、真实控制器低速校验流程、离线/现场差异报告边界明确。 |
| KW-211 | 流程图资产覆盖和同步维护 | Done | KW-000 | FLOW 2、3、4、5、9、10`flow-01``flow-05` Mermaid/PNG | Mermaid 源和 PNG 渲染资产全部映射到功能章节、任务和验收证据。 |
## 4. KDL 子任务
@@ -148,3 +161,60 @@
| KW-112.1 | target/path/operation 自动生成 | Done | 命名稳定、defaults 和 override 正确。 |
| KW-112.2 | compact/expanded 输出 | Done | 同一输入输出稳定。 |
| KW-112.3 | 生成后再解析 | Done | 可恢复等价对象和 IR。 |
## 6. 虚拟控制器、工作区和 OLP 子任务
### KW-200 到 KW-201对象模型和工作区
| 编号 | 内容 | 状态 | 验收 |
| --- | --- | --- | --- |
| KW-200.1 | `OlpProjectModel` schema | Done | Robot/Tool/Frame/Target/Path/Operation/Program/PostProfile schema 测试通过。 |
| KW-200.2 | Station/Resource/Report 基础模型 | Done | Station、资源库、几何、校准和报告对象可序列化。 |
| KW-200.3 | Path/Operation 到 GRL 生成 | Done | 生成文本稳定、可解析、可回填对象模型。 |
| KW-200.4 | 品牌导入对象 patch | Done | 导入恢复出的 target/path/program 可应用到 OLP 模型。 |
| KW-201.1 | OPFS 项目布局和 manifest | Done | 新建项目生成约定目录和 `project.json`。 |
| KW-201.2 | Workspace Storage API | Done | 文本、JSON、删除、快照、迁移和损坏检测测试通过。 |
| KW-201.3 | zip 导入导出 | Done | 稳定 JSON bundle 导出再导入恢复等价项目;真实 zip 封装保留为外层适配边界。 |
### KW-202 到 KW-204运行时、Motion Queue 和 IO/Wait
| 编号 | 内容 | 状态 | 验收 |
| --- | --- | --- | --- |
| KW-202.1 | 控制器状态机 | Done | 合法/非法状态转换和命令测试通过。 |
| KW-202.2 | IR 执行内核 | Done | PC、调用栈、作用域、单步和报警可查询。 |
| KW-202.3 | Trace 和 source map | Done | 当前行、Path point、Operation、品牌源定位稳定。 |
| KW-203.1 | Motion Queue | Done | MotionQueueItem 保留 instruction/path/operation 来源。 |
| KW-203.2 | KDL 运行桥接 | Done | Motion Queue 调用 KDL planner 并按虚拟时间推进采样。 |
| KW-203.3 | `run_path/run_operation` 执行 | Done | Path event、start/end action 和 trace 顺序正确。 |
| KW-204.1 | IO Image 和权限规则 | Done | 程序、用户、脚本写入权限和事件记录正确。 |
| KW-204.2 | Wait Registry 和 timeout | Done | 立即满足、等待、timeout、on_timeout、hold/stop 行为正确。 |
| KW-204.3 | Pulse、边沿和 IO 脚本 | Done | pulse 自动复位、rising/falling/changed、script delay 测试通过。 |
### KW-205 到 KW-211工作台、报告、品牌导入、商业扩展和流程图资产
| 编号 | 内容 | 状态 | 验收 |
| --- | --- | --- | --- |
| KW-205.1 | Web 工作台首屏和对象树 | Done | 工作台 facade 直接进入工程对象树,覆盖 Station/Robot/Path/Report 等对象。 |
| KW-205.2 | 编辑器、示教器和调试面板 | Done | 当前行、变量、IO、报警、TCP、关节、Wait 诊断可见。 |
| KW-205.3 | 后处理导出和客户交付入口 | Done | facade 可暴露后处理、报告和交付包入口。 |
| KW-206.1 | 验证报告模型 | Done | reachability、cycle time、IO/Wait、post、import report JSON schema 稳定。 |
| KW-206.2 | HTML 报告导出 | Done | HTML 报告可打开并包含摘要、明细和 source map。 |
| KW-206.3 | 客户交付包 | Done | 交付 bundle 包含源程序、品牌程序、IO map、报告、校准和可选 trace。 |
| KW-207.1 | ABB RAPID 导入 | Done | `.mod/.sys` 主要运动、目标点、tool、wobj 可解析。 |
| KW-207.2 | KUKA KRL 导入 | Done | `.src/.dat` 主要运动、E6POS/E6AXIS、`$TOOL/$BASE` 可解析。 |
| KW-207.3 | FANUC LS 导入 | Done | LS 风格 `J/L/C/P[]/PR[]/UTOOL/UFRAME` 可解析。 |
| KW-207.4 | 导入 IR、GRL 和报告 | Done | 三品牌导入后可生成 OLP patch、GRL、IR 和报告。 |
| KW-208.1 | 几何导入和路径生成 | Done | 从点/边/曲线生成 Path。 |
| KW-208.2 | 基础碰撞和校准数据 | Done | 碰撞对象/时间点定位TCP/Frame/Base 校准数据可保存应用。 |
| KW-208.3 | 商业级 OLP 交付流程 | Done | 资源库、工艺模板和商业级交付包原型可用。 |
| KW-209.1 | 调试断点和单步 | Done | 断点、单步进入/越过、运动断点可用。 |
| KW-209.2 | 轨迹回放和变量 watch | Done | 可复现运行 trace变量 watch 与当前执行位置同步。 |
| KW-209.3 | 跨源定位 | Done | GRL、Path、Operation、品牌源程序与 IR 可互相定位。 |
| KW-210.1 | 多机器人和外部轴对象模型 | Done | 多机器人、外部轴和运动组进入 schema、IR 和报告。 |
| KW-210.2 | 真实控制器校验流程 | Done | 低速验证、离线/现场差异比对和校验报告流程明确。 |
| KW-210.3 | 复杂工作站扩展边界 | Done | 真实控制器通信、高精度轨迹复现和完整 CAD kernel 有非 MVP 边界。 |
| KW-211.1 | `flow-01` 总体功能流程同步 | Done | 项目资源、GRL、KDL、Motion Queue、后处理路径映射到任务。 |
| KW-211.2 | `flow-02` GRL 编译执行流程同步 | Done | Lexer/Parser/AST/Semantic/IR/KDL/Post 流程映射到任务。 |
| KW-211.3 | `flow-03` KDL 计算流程同步 | Done | RobotHandle、MOVEJ/MOVEL/MOVEC/PATH 计算流程映射到任务。 |
| KW-211.4 | `flow-04` 数据传递流程同步 | Done | Project、Compile、KDL、Runtime、Output 数据流映射到任务。 |
| KW-211.5 | `flow-05` 诊断传递流程同步 | Done | Parser、Semantic、KDL、Post 诊断 severity/sourceMap 映射到任务。 |

View File

@@ -1,6 +1,6 @@
# 05-验收证据
版本0.3
版本0.5
日期2026-06-27
## 1. 记录规则
@@ -32,7 +32,11 @@
| KDL 源码 | `/home/meswork/kdl_work/orocos_kinematics_dynamics/orocos_kdl` |
| KDL 对标文档 | `/home/meswork/kdl_work/work/doc/KDL_WASM计算接口设计.md` |
| GRL 对标文档 | `/home/meswork/kdl_work/work/doc/通用机器人编程语法规范.md` |
| 实施文档目录 | `/home/meswork/kdl_work/work/working1` |
| 虚拟控制器对标文档 | `/home/meswork/kdl_work/work/doc/通用机器人离线编程虚拟控制器技术方案.md` |
| 实施步骤对标文档 | `/home/meswork/kdl_work/work/doc/通用机器人项目主要实施步骤.md` |
| 数据流程对标文档 | `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图.md` |
| 流程图资产目录 | `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图-png` |
| 实施文档目录 | `/home/meswork/kdl_work/working` |
| Emscripten | `emcc 6.0.0` |
| Node.js | `v22.23.0` |
| 浏览器 | 待 Playwright 安装后记录 |
@@ -41,13 +45,14 @@
### EV-000对标实施文档
关联任务:`KW-000`
对标章节:两份源文档全文
类型:文件清单
关联任务:`KW-000`
对标章节:`/home/meswork/kdl_work/work` 全部文档资产
类型:文件清单
命令:
```bash
find /home/meswork/kdl_work/work/working1 -maxdepth 1 -type f -print | sort
find /home/meswork/kdl_work/work -maxdepth 3 -type f -print | sort
find /home/meswork/kdl_work/working -maxdepth 1 -type f -print | sort
```
预期结果:
@@ -62,7 +67,211 @@ README.md
06-决策记录.md
```
结果摘要:实际文件清单包含 `README.md``01-项目功能内容.md``02-项目程序开发详细步骤.md``03-推进台账.md``04-任务矩阵.md``05-验收证据.md``06-决策记录.md`,与预期一致。
结果摘要:实际 `/work` 文件清单包含 5 份 Markdown、5 份 Mermaid `.mmd` 流程图源码和 5 份 PNG 流程图渲染资产;`working` 文件清单包含 `README.md``01-项目功能内容.md``02-项目程序开发详细步骤.md``03-推进台账.md``04-任务矩阵.md``05-验收证据.md``06-决策记录.md`,与预期一致。
是否通过:通过。
### EV-200`work/doc` Markdown 对标任务入库
关联任务:`KW-000``KW-200``KW-208`
对标章节VC 2、3、6、7、9、10、11、12、13、15、16、17、18STEP 1 到 15FLOW 1 到 10
类型:文档审查、任务矩阵一致性检查
命令:
```bash
cd /home/meswork/kdl_work
find work/doc -maxdepth 1 -type f -name '*.md' -print | sort
rg -n 'KW-20[0-8]' working/02-项目程序开发详细步骤.md working/04-任务矩阵.md
rg -n '虚拟控制器|OPFS|品牌程序导入|客户交付包|IO 脚本|Wait 调试|OLP 对象模型' working
```
结果摘要:
1. `/home/meswork/kdl_work/work/doc` 下 5 份 Markdown 源文档已纳入 `working` 文档依据。
2. `KW-200``KW-208` 已加入开发步骤和任务矩阵,覆盖 OLP 对象模型、OPFS、虚拟控制器、Motion Queue、IO/Wait、工作台、报告、品牌导入、几何/碰撞/校准和客户交付包。
3. `KW-200``KW-208` 已加入开发步骤和任务矩阵,并在后续实现证据 `EV-202``EV-205` 中闭合。
4. `01-项目功能内容.md` 已补充虚拟控制器、IO、工作区、UI、报告、品牌导入、数据流和线程模型范围。
5. `06-决策记录.md` 已调整为 `work/doc` 全目录对标,并记录新增主线的边界决策。
是否通过:通过。
### EV-201`work` 全部文档资产覆盖入库
关联任务:`KW-000``KW-209``KW-211`
对标章节VC 7、11、12、13、14、15、16、18、20FLOW 2、3、4、5、9、10`flow-01``flow-05`
类型:文件资产清单、流程图覆盖检查
命令:
```bash
cd /home/meswork/kdl_work
find work -maxdepth 3 -type f -print | sort
find work/doc/通用机器人项目功能与数据流程图-png -maxdepth 1 -type f -printf '%f %s bytes\n' | sort
rg -n 'KW-20[9]|KW-210|KW-211' working/01-项目功能内容.md working/02-项目程序开发详细步骤.md working/04-任务矩阵.md
rg -n 'flow-01|flow-02|flow-03|flow-04|flow-05|流程图资产' working
```
结果摘要:
1. `/home/meswork/kdl_work/work` 下全部文档资产已纳入范围5 份 Markdown、5 份 `.mmd`、5 份 `.png`
2. `flow-01` 对应总体功能流程,映射到 `KW-211.1`
3. `flow-02` 对应 GRL 编译执行流程,映射到 `KW-211.2`
4. `flow-03` 对应 KDL 计算流程,映射到 `KW-211.3`
5. `flow-04` 对应 Project/Compile/KDL/Runtime/Output 数据传递流程,映射到 `KW-211.4`
6. `flow-05` 对应诊断 severity/sourceMap 传递流程,映射到 `KW-211.5`
7. `KW-209``KW-210` 补齐虚拟调试增强、多机器人、外部轴和真实控制器校验扩展,避免商业级功能被 MVP 边界遗漏。
是否通过:通过;`KW-209``KW-211` 的实现验收见 `EV-203``EV-202``EV-211`
### EV-202OLP 对象模型、Workspace、几何和校准
关联任务:`KW-200``KW-201``KW-208``KW-210`
对标章节VC 2.3、2.4、3.1、4.4、6.5、9、12、15、16、17、18FLOW 2、5
类型:单元测试、模型序列化、导入导出测试
命令:
```bash
cd /home/meswork/kdl_work
npm run typecheck
npm run test -- olp workspace
npm test
```
结果摘要:
1. `OlpProjectModel` 覆盖 Station、Resource、Robot、Tool、Frame、Target、Path、Operation、Program、PostProfile、Report、Geometry、Calibration、ExternalAxis、MotionGroup 和 ProcessTemplate。
2. `pathOperationToGrl` 可从 Path/Operation 稳定生成 GRL并可进入 parser、semantic IR 和三品牌后处理链路。
3. JSON patch 可把品牌导入恢复出的 target/path/program 应用到 OLP 模型。
4. Workspace 提供 OPFS-like async storage、`project.json` manifest、文本/JSON 读写删除、snapshot/restore、migration、损坏检测和稳定 bundle 导入导出。
5. 几何点/边/曲线可生成 Path基础碰撞可定位 path point/timeTCP/Frame/Base/ExternalAxis 校准数据可保存和应用。
6. 多机器人、外部轴和运动组进入 schema 与验证报告边界。
是否通过:通过。
### EV-203虚拟控制器、Motion Queue、IO/Wait 和工作台 facade
关联任务:`KW-202``KW-203``KW-204``KW-205``KW-209`
对标章节VC 3、5.8、7.1、7.2、7.3、7.4、7.6、8.12、11、12、13、15、16FLOW 2、3、5、8、9
类型:运行时单元测试、调试 facade 测试
命令:
```bash
cd /home/meswork/kdl_work
npm run typecheck
npm run test -- controller runtime workbench
npm test
```
结果摘要:
1. 虚拟控制器状态机覆盖 load/run/pause/stop/reset/step/hold 和非法转换诊断。
2. IR 执行内核暴露 PC、调用栈、作用域、报警队列、trace buffer、source map 和单步运行。
3. Motion Queue 保留 instruction/path/operation/action 来源KDL bridge 可展开 `run_path/run_operation` 并按虚拟时间采样回放。
4. IO Runtime 覆盖写入权限、事件记录、wait satisfied/waiting/timeout/on_timeout hold-stop、pulse 自动复位、rising/falling/changed 和 delayed IO script。
5. Workbench facade 第一屏为工程工作台对象树编辑器、示教器、IO 面板、报告入口、变量 watch、断点、运动断点、trace replay 和跨源定位可用。
是否通过:通过。
### EV-204验证报告、HTML 报告和客户交付包
关联任务:`KW-206`
对标章节VC 2.4.6、9.6、13.4.1、15、16FLOW 5、9、10
类型:报告 schema 测试、HTML 导出测试、交付包测试
命令:
```bash
cd /home/meswork/kdl_work
npm run typecheck
npm run test -- reports
npm test
```
结果摘要:
1. 验证报告模型覆盖 reachability、cycle_time、io_wait、post、import、collision、calibration sections。
2. HTML 报告包含摘要、明细、diagnostics 和 source map JSON payload。
3. 客户交付包包含 project JSON、源 GRL、品牌程序、IO map、报告 JSON/HTML、校准数据和可选 trace并生成稳定 checksum。
是否通过:通过。
### EV-205三品牌程序导入 MVP
关联任务:`KW-207`
对标章节VC 6.6、6.6.1、6.6.2、7.4.2、10.6、12、13.6、15、16
类型golden case 导入测试
命令:
```bash
cd /home/meswork/kdl_work
npm run typecheck
npm run test -- importers
npm test
```
结果摘要:
1. ABB RAPID `.mod/.sys` 风格文本导入覆盖 `robtarget/jointtarget/MoveJ/MoveL/MoveC/tooldata`
2. KUKA KRL `.src/.dat` 导入覆盖 `E6POS/E6AXIS/PTP/LIN/CIRC/$TOOL/$BASE`
3. FANUC LS 导入覆盖 `J/L/C/P[]/PR[]` 位置和圆弧运动。
4. 导入结果生成 OLP patch、GRL、Semantic IR、import report并可进入三品牌后处理链路。
是否通过:通过。
### EV-211流程图资产覆盖和同步检查实现
关联任务:`KW-211`
对标章节FLOW 2、3、4、5、9、10`flow-01``flow-05`
类型:流程图资产自动检查
命令:
```bash
cd /home/meswork/kdl_work
npm run typecheck
npm run test -- flowAssetCoverage
npm test
```
结果摘要:
1. `validateFlowAssetCoverage` 检查 `flow-01.mmd``flow-05.mmd` 和对应 PNG 是否存在且非空。
2. 每张图映射到章节、任务编号和 `EV-211`
3. 检查覆盖总体功能流程、GRL 编译执行流程、KDL 计算流程、数据传递流程和诊断传递流程的关键术语。
是否通过:通过。
### EV-999`working` 全量任务收口验证
关联任务:`KW-000``KW-001``KW-013``KW-100``KW-112``KW-200``KW-211`
对标章节:`/home/meswork/kdl_work/work` 全部文档资产总体验收
类型:全量回归、文档一致性检查
命令:
```bash
cd /home/meswork/kdl_work
npm run typecheck
npm test
cmake --build kdl-wasm/build-wasm -j16
rg -n 'work[i]ng1|work/work[i]ng1|/home/meswork/kdl_work/work/work[i]ng1' working
```
执行环境:
```text
Node.js v22.23.0
npm 10.9.8
Vitest 3.2.6
cmake 3.22.1
Emscripten emcc 6.0.0
```
结果摘要:
1. `npm run typecheck` 通过。
2. `npm test` 通过38 个测试文件共 146 个测试通过。
3. `cmake --build kdl-wasm/build-wasm -j16` 通过。
4. `working` 文档中旧实施目录路径已清理。
5. 任务矩阵中 `KW-001``KW-013``KW-100``KW-112``KW-200``KW-211` 均为 `Done`
6. 当前 `/work` 全目录对标范围全部有对应实现、测试证据或明确的非 MVP 边界说明。
7. 本轮最终全量回归通过38 个测试文件共 146 个测试通过。
是否通过:通过。
## 4. KDL WASM 证据

View File

@@ -1,35 +1,42 @@
# 06-决策记录
版本0.3
版本0.5
日期2026-06-27
## ADR-001`working1` 对标两份源文档
## ADR-001`working` 对标 `/work` 全部文档资产
状态Accepted
日期2026-06-27
状态Accepted
日期2026-06-27
关联任务:`KW-000`
### 背景
用户要求 `/home/meswork/kdl_work/work/working1` 内实施文档完全对标
用户要求 `/home/meswork/kdl_work/working` 内实施文档完全覆盖 `/home/meswork/kdl_work/work` 下文档的全部功能。该目录当前包含 5 份 Markdown 源文档、5 份 Mermaid `.mmd` 流程图源码和 5 份 PNG 流程图渲染资产
1. `/home/meswork/kdl_work/work/doc/KDL_WASM计算接口设计.md`
2. `/home/meswork/kdl_work/work/doc/通用机器人编程语法规范.md`
3. `/home/meswork/kdl_work/work/doc/通用机器人离线编程虚拟控制器技术方案.md`
4. `/home/meswork/kdl_work/work/doc/通用机器人项目主要实施步骤.md`
5. `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图.md`
6. `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图-png/flow-01.mmd``flow-05.mmd`
7. `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图-png/flow-01.png``flow-05.png`
### 决策
`working1` 的范围只从这两份文档抽取。其他技术方案不作为本目录任务、验收和 ADR 的来源
`working` 的范围从上述全部文档资产抽取。KDL/GRL 已完成任务继续保留为 `KW-001``KW-013``KW-100``KW-112`虚拟控制器、OPFS-like 工作区、工作台 facade、报告、品牌导入、交付包、商业扩展、多机器人/外部轴、真实控制器校验流程边界和流程图资产按 `KW-200``KW-211` 实施并验收
### 后果
1. 任务分为 KDL WASM 计算接口线和 GRL 编程语法线。
2. OPFS、UI、虚拟控制器和碰撞检测等内容不单独展开除非两份源文档明确作为工程结构、调用关系、后处理或测试项出现
3. 所有 P0/P1 以两份源文档的实施优先级为准
1. 任务分为 KDL WASM、GRL、虚拟控制器/IO、工作区/UI、报告/品牌导入/交付、商业扩展/流程图资产六条主线。
2. KDL/GRL P0 已完成的实现证据不被重新标记为未完成
3. 全目录对标任务均有任务编号、实现模块和验收证据
4. P0/MVP 与 P1/商业级扩展以各源文档中的实施优先级、MVP 范围和验收标准共同约束。
5. Mermaid 源图和 PNG 渲染图作为文档资产纳入覆盖证据,不只依赖 Markdown 正文。
## ADR-002KDL WASM 是 GRL 的运动计算内核,不解释 GRL
状态Accepted
日期2026-06-27
状态Accepted
日期2026-06-27
关联任务:`KW-001``KW-013``KW-103``KW-110`
### 背景
@@ -48,8 +55,8 @@ KDL WASM 只接收已经由 TypeScript 编译层解析完成的模型、目标
## ADR-003GRL AST、语义检查、IR 和 KDL request 分层实现
状态Accepted
日期2026-06-27
状态Accepted
日期2026-06-27
关联任务:`KW-100``KW-110`
### 背景
@@ -79,8 +86,8 @@ KDL 接口设计要求 GRL 编译器把 `movej/movel/movec` 解析为 IR 后,
## ADR-004机器人结构以 URDF 为源数据TypeScript 生成标准模型
状态Accepted
日期2026-06-27
状态Accepted
日期2026-06-27
关联任务:`KW-002`
### 背景
@@ -109,8 +116,8 @@ WASM 负责:
## ADR-005内部统一使用 SI 单位和位置 + 四元数位姿
状态Accepted
日期2026-06-27
状态Accepted
日期2026-06-27
关联任务:`KW-006``KW-100``KW-102`
### 背景
@@ -133,8 +140,8 @@ GRL 支持 `mm`、`deg`、`mm/s` 等带单位字面量。KDL 接口设计要求
## ADR-006P0 zone 只保留语义并近似为 fine
状态Accepted
日期2026-06-27
状态Accepted
日期2026-06-27
关联任务:`KW-008``KW-011``KW-111`
### 背景
@@ -153,8 +160,8 @@ P0 中 `ZoneSpec` 必须保留在 IR、KDL request、TrajectoryResult 和后处
## ADR-007所有 KDL API 返回结构化诊断
状态Accepted
日期2026-06-27
状态Accepted
日期2026-06-27
关联任务:`KW-001``KW-013`
### 背景
@@ -194,8 +201,8 @@ KDL 诊断固定包含:
## ADR-008Worker RPC 是 KDL TypeScript API 的唯一调用入口
状态Accepted
日期2026-06-27
状态Accepted
日期2026-06-27
关联任务:`KW-001``KW-013`
### 背景
@@ -214,8 +221,8 @@ KDL 接口设计要求 KDL WASM 运行在 Worker 中,避免阻塞 UI 主线程
## ADR-009KDL 底层导出稳定 C ABI / Embind 包装
状态Accepted
日期2026-06-27
状态Accepted
日期2026-06-27
关联任务:`KW-013`
### 背景
@@ -251,8 +258,8 @@ TypeScript API 在 Worker 内包装这些函数,向上暴露 `KdlWasmApi`。
## ADR-010GRL P0 严格按语法规范第 24 章实现
状态Accepted
日期2026-06-27
状态Accepted
日期2026-06-27
关联任务:`KW-100``KW-112`
### 背景
@@ -285,8 +292,8 @@ GRL P0 必须覆盖:
## ADR-011后处理以 GRL IR 为输入,必须保留品牌差异报告
状态Accepted
日期2026-06-27
状态Accepted
日期2026-06-27
关联任务:`KW-111`
### 背景
@@ -305,8 +312,8 @@ GRL 语法规范要求 GRL 可转换为 ABB RAPID、FANUC LS/TP 风格文本和
## ADR-012自动生成 GRL 优先生成 target/path/operation
状态Accepted
日期2026-06-27
状态Accepted
日期2026-06-27
关联任务:`KW-112`
### 背景
@@ -329,3 +336,144 @@ GRL Generator 的默认输出为结构化对象风格:
1. 同一输入重复生成结果必须一致。
2. 生成文本必须可 diff。
3. 生成后必须能解析回等价对象和 IR。
## ADR-013虚拟控制器执行统一 IR不直接解释品牌文本
状态Accepted
日期2026-06-27
关联任务:`KW-202``KW-203``KW-207`
### 背景
虚拟控制器技术方案要求虚拟控制器支持 GRL 程序和品牌程序,但真正执行统一 IR。数据流程图也以 Executable IR 作为虚拟控制器、KDL、后处理和报告之间的中枢。
### 决策
虚拟控制器运行时只执行 `Executable IR`。GRL 先经 Lexer/Parser/Semantic Analyzer 转 IRABB/FANUC/KUKA 文本先经 Brand Importer 转 Brand AST再转统一 IR。
### 后果
1. 品牌源程序行号通过 source map 和 Brand Context 保留。
2. 品牌特有语义必须转换为等价 IR、近似 IR 或不支持诊断。
3. 调试、报告、后处理和跨品牌转换不直接依赖品牌语法树。
## ADR-014OPFS 是内部工作区,必须提供显式导入导出和快照
状态Accepted
日期2026-06-27
关联任务:`KW-201``KW-205``KW-206`
### 背景
技术方案要求使用 OPFS 保存项目,但 OPFS 是浏览器 Origin 私有文件系统,用户通常不能像普通目录一样直接看到文件。
### 决策
项目内部保存在 OPFS 的 `/projects/{projectId}` 布局中,并必须提供 `exportZip/importZip/snapshot`。客户交付包不直接等同于 OPFS 内部目录,而是由导出流程生成。
### 后果
1. 所有项目关键资源必须进入 manifest 或索引。
2. 导出 zip 后再导入必须恢复等价项目。
3. trace 大文件可选导出,避免项目包过大。
4. 存储占用、迁移、损坏检测和备份属于工作区验收项。
## ADR-015首版 UI 是离线编程工作台,不做营销首屏
状态Accepted
日期2026-06-27
关联任务:`KW-205`
### 背景
虚拟控制器界面设计明确界面目标是离线编程和虚拟调试,第一屏应直接进入工作台。
### 决策
首版 UI 按工作台实现,包含项目对象树、程序/路径/Operation 编辑、虚拟示教器、控制器面板、IO 面板、运动监控、日志报警、Wait 调试、报告和后处理导出入口。
### 后果
1. 不建设单独营销 landing page 作为首屏。
2. UI 验收以工程工作流可用、状态可见、诊断可定位、数据可导出为准。
3. Wait 卡住时必须显示表达式、关联 IO、时间、最近变化和可用调试动作。
## ADR-016品牌导入首版以可读文本为边界
状态Accepted
日期2026-06-27
关联任务:`KW-207`
### 背景
技术方案要求支持 ABB RAPID、KUKA KRL、FANUC LS 或可读导出文本导入,同时明确 FANUC 二进制 TP 不能作为首版目标。
### 决策
首版 Brand Importer 支持 ABB `.mod/.sys` 文本、KUKA `.src/.dat` 文本、FANUC LS 风格文本或可读 TP 导出。导入目标是尽量恢复 target/path/program 和统一 IR而不是完全还原真实控制器所有系统变量、工艺包和 advance run 细节。
### 后果
1. FANUC TP 二进制不进入首版验收。
2. KUKA `$ADVANCE`、ABB 复杂错误处理、多任务和品牌工艺包以近似或不支持诊断记录。
3. 导入报告是必需产物,不能静默丢失语义。
## ADR-017报告和客户交付包是独立交付链路
状态Accepted
日期2026-06-27
关联任务:`KW-206``KW-208`
### 背景
技术方案要求商业级 OLP 输出可达性、碰撞、节拍、IO、后处理、校准、导入报告并能生成客户交付包。
### 决策
报告引擎消费 IR、轨迹、诊断、trace、对象模型和 post/import report输出稳定 JSON 和 HTML。客户交付包由专门流程生成包含源程序、品牌程序、目标点、路径、IO map、报告、校准数据和可选 trace。
### 后果
1. 报告 JSON schema 必须稳定并可测试。
2. 后处理导出不等于项目交付,交付包必须包含验证和诊断材料。
3. 基础碰撞和校准可按 MVP 后续阶段逐步接入,但报告接口需预留。
## ADR-018流程图资产必须和功能文档同步
状态Accepted
日期2026-06-27
关联任务:`KW-211`
### 背景
`work/doc/通用机器人项目功能与数据流程图-png` 下的 `.mmd` 文件是流程图源码,`.png` 文件是对应渲染资产。它们分别描述总体功能流程、GRL 编译执行流程、KDL 计算流程、数据传递流程和诊断传递流程。
### 决策
流程图资产作为一等文档输入。`working` 中必须能把 `flow-01``flow-05` 映射到功能章节、任务编号和验收证据。
### 后果
1. 流程图源或 PNG 变更时,任务矩阵和验收证据必须同步检查。
2. 任一流程图没有对应任务编号时,视为覆盖缺口。
3. UI facade、报告和端到端链路验收可直接引用流程图语义。
## ADR-019商业级扩展不属于首版完成项但必须有任务归属
状态Accepted
日期2026-06-27
关联任务:`KW-208``KW-209``KW-210`
### 背景
技术方案包含商业级 OLP、虚拟调试增强、碰撞、校准、Sim-to-Real、多机器人、外部轴和真实控制器校验流程。这些能力不都属于首版 MVP但属于 `/work` 文档功能范围。
### 决策
这些能力不得从 `working` 中省略。已完成对象模型、报告/交付链路、基础碰撞、校准、调试 facade、多机器人/外部轴 schema 和真实控制器校验流程边界;真实控制器通信、完整 CAD kernel、高精度轨迹复现仍作为非 MVP 边界明确记录。
### 后果
1. MVP 验收不会误承诺完整碰撞检测、完整 CAD kernel、真实控制器通信或高精度轨迹复现。
2. 商业级功能已有任务编号、文档依据和 MVP 验收口径。
3. 后续若扩展真实设备接入,可在 `KW-210` 边界上新增独立任务,不改变当前 MVP 完成状态。

View File

@@ -1,21 +1,28 @@
# working1 实施文档索引
# working 实施文档索引
版本0.3
版本0.5
日期2026-06-27
主题:GRL 编程语法规范与 KDL WASM 计算接口设计的对标实施方案。
主题:通用机器人离线编程、GRL、KDL WASM、虚拟控制器与工程交付的全目录对标实施方案。
## 1. 文档依据
本目录对标以下两份文档
本目录对标 `/home/meswork/kdl_work/work` 下的全部文档资产,包括 Markdown 正文、Mermaid 流程图源码和 PNG 流程图
1. `/home/meswork/kdl_work/work/doc/通用机器人编程语法规范.md`
2. `/home/meswork/kdl_work/work/doc/KDL_WASM计算接口设计.md`
OPFS、虚拟控制器、UI、报告等内容只在上述两份文档明确要求的接口边界、编译调用关系或测试场景中出现。
3. `/home/meswork/kdl_work/work/doc/通用机器人离线编程虚拟控制器技术方案.md`
4. `/home/meswork/kdl_work/work/doc/通用机器人项目主要实施步骤.md`
5. `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图.md`
6. `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图-png/flow-01.mmd`
7. `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图-png/flow-02.mmd`
8. `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图-png/flow-03.mmd`
9. `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图-png/flow-04.mmd`
10. `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图-png/flow-05.mmd`
11. 对应 `flow-01.png``flow-05.png` 作为流程图渲染资产。
## 2. 对标主线
`working1` 的实施主线分为条:
`working` 的实施主线分为条:
1. GRL 语言实施
- 词法、单位、保留关键字。
@@ -44,26 +51,49 @@ OPFS、虚拟控制器、UI、报告等内容只在上述两份文档明确要
- 节拍估算、重采样、结构化诊断。
- C ABI / Embind 暴露和性能优化。
3. 虚拟控制器与运行时实施
- 控制器状态机、程序加载、运行、暂停、停止、单步。
- Program Counter、Call Stack、Scope Stack、Motion Queue。
- IO Image、Wait Registry、Alarm Queue、Trace Buffer。
- `run_path/run_operation` 执行、wait timeout、pulse、边沿检测。
- 断点、source map 联动和虚拟调试体验。
4. OLP 工作台、工作区和交付实施
- Station、Resource、Robot、Tool、Frame、Target、Path、Operation、Program 对象模型。
- OPFS workspace、project manifest、zip 导入导出和备份。
- Web 工作台、对象树、编辑器、控制器面板、IO 面板、报告页面。
- 资源库、几何导入、路径生成、工艺模板、校准数据。
- 客户交付包、报告导出和品牌程序导入。
5. 数据流、集成流程和验收实施
- GRL 编译与执行流程。
- KDL WASM 计算流程。
- 项目资源、编译层、KDL Worker、虚拟控制器、后处理和报告的数据传递。
- 诊断 severity/source map 传递。
- 项目主要实施步骤和 MVP/商业级验收标准。
- Mermaid 源图和 PNG 流程图资产同步。
## 3. 文档入口
| 文件 | 用途 |
| --- | --- |
| `01-项目功能内容.md` | 两份规范的功能范围、P0/P1 边界、模块职责和验收口径。 |
| `02-项目程序开发详细步骤.md` | 按 GRL 和 KDL WASM 对标项拆解可执行开发步骤。 |
| `01-项目功能内容.md` | 五份源文档的功能范围、P0/P1/MVP 边界、模块职责和验收口径。 |
| `02-项目程序开发详细步骤.md` | 按 KDL、GRL、虚拟控制器、OPFS/UI、报告和交付拆解可执行开发步骤。 |
| `03-推进台账.md` | 记录每轮修改、验证、风险和下一步。 |
| `04-任务矩阵.md` | 管理任务编号、状态、依赖和验收标准。 |
| `05-验收证据.md` | 保存测试命令、报告路径、产物和结果摘要。 |
| `06-决策记录.md` | 固化两份规范中影响实施的关键设计决策。 |
| `06-决策记录.md` | 固化五份源文档中影响实施的关键设计决策。 |
## 4. 推进规则
1. 所有任务编号统一使用 `KW-###`
2. `KW-001``KW-099` 对标 KDL WASM 计算接口设计。
3. `KW-100``KW-199` 对标 GRL 编程语法规范。
4. 每个 P0 项必须能映射回源文档对应章节
5. 任务完成必须补充 `05-验收证据.md`
6.何 P1 内容不得阻塞 P0 验收,除非源文档明确将其列为 P0
4. `KW-200``KW-299` 对标虚拟控制器、OPFS 工作区、Web 工作台、报告、品牌导入、客户交付包、商业级 OLP 扩展和流程图资产
5. 每个 P0/MVP 项必须能映射回源文档对应章节
6.务完成必须补充 `05-验收证据.md`
7. 任何 P1/商业级扩展不得阻塞 P0/MVP 验收,除非源文档明确将其列为首版范围。
## 5. 当前首要任务
## 5. 当前状态
`KW-001``KW-013``KW-100``KW-112` 的文档对标任务已完成并补充验收证据。C ABI 已能从 `NormalizedRobotModel` 构造 native Orocos KDL Chain并完成 native FK、fkAllLinks、Jacobian、IK 和 sampleTrap golden 对比;高层 `planMoveJ/planMoveL/planMoveC/planPath` 仍由 TypeScript runtime 基线承载,后续若继续深化 native 主线,首要关注点是把这些轨迹规划导出逐步切到 native solver
`KW-001``KW-013``KW-100``KW-112``KW-200``KW-211` 均已完成并补充验收证据。当前实现覆盖 KDL/GRL、OLP 对象模型、Workspace、虚拟控制器、Motion Queue、IO/Wait、工作台 facade、报告/客户交付包、三品牌导入、几何/碰撞/校准、多机器人/外部轴对象模型、真实控制器校验流程边界和流程图资产同步检查