# 04-任务矩阵

版本：0.3  
日期：2026-06-27

## 1. 状态定义

| 状态 | 含义 |
| --- | --- |
| Todo | 尚未开始。 |
| Doing | 正在执行。 |
| Blocked | 被依赖、环境、设计问题阻塞。 |
| Review | 已实现，等待验证或复核。 |
| Done | 已实现且验收证据完整。 |

## 2. 任务编号规则

| 编号范围 | 对标文档 | 说明 |
| --- | --- | --- |
| `KW-000` | 管理任务 | 文档维护和推进记录。 |
| `KW-001` 到 `KW-099` | `KDL_WASM计算接口设计.md` | KDL WASM API、轨迹、诊断、Worker、性能。 |
| `KW-100` 到 `KW-199` | `通用机器人编程语法规范.md` | GRL 语法、AST、语义、IR、后处理。 |

## 3. 任务总表

| 编号 | 任务 | 状态 | 依赖 | 对标章节 | 验收标准 |
| --- | --- | --- | --- | --- | --- |
| KW-000 | 对标实施文档维护 | Done | 无 | 两份文档全文 | README、功能范围、开发步骤、任务矩阵、证据、ADR 已对齐两份源文档。 |
| 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 位姿顺序和维度诊断通过。 |
| KW-004 | IK 和 ikBatch | Done | KW-003 | KDL 8.3、15、22、23 | IK 回代、批量顺序、失败原因和限位测试通过。 |
| KW-005 | Jacobian、奇异性和基础检查 | Done | KW-004 | KDL 8.4、15、22、23 | Jacobian、奇异性、关节限位、可达性、速度检查通过。 |
| KW-006 | 位姿变换和 offset | Done | KW-005 | KDL 7、21、22、23 | normalize/compose/inverse/applyToolAndFrame/applyOffset 测试通过。 |
| KW-007 | 梯形速度曲线 | Done | KW-006 | KDL 9、22、23 | trapezoid/triangle、采样单调、首末点规则通过。 |
| KW-008 | `planMoveJ` | Done | KW-007 | KDL 11、21、22、23 | 关节同起同停、限位、速度、zone 近似诊断通过。 |
| KW-009 | `planMoveL` | Done | KW-008 | KDL 12、21、22、23 | TCP 直线误差、逐点 IK、速度和加速度诊断通过。 |
| KW-010 | `planMoveC` | Done | KW-009 | KDL 13、21、22、23 | 圆弧元数据、退化诊断、逐点 IK 和误差测试通过。 |
| KW-011 | `planPath` 和 `validatePath` | Done | KW-010 | KDL 14、15、21、22、23 | Path 轨迹合并、段报告、source map、空路径诊断通过。 |
| KW-012 | 节拍估算、重采样和诊断报告 | Done | KW-011 | KDL 16、19、20、22、23 | CycleTime、resample、error/warning/info 分级通过。 |
| KW-013 | C ABI / Embind 和性能优化 | Done | KW-012 | KDL 18、19、24 | C ABI 稳定、TypedArray 批量接口和性能基线达标。 |
| KW-100 | Lexer、单位和关键字 | Done | KW-000 | GRL 4、24 | 注释、标识符、单位、保留关键字测试通过。 |
| KW-101 | Parser 和 AST 骨架 | Done | KW-100 | GRL 5、22、23、24 | 最小文件、完整示例、AST source range 和快照通过。 |
| KW-102 | 数据声明、类型系统和目标点 | Done | KW-101 | GRL 6、7、8、24 | tool/frame/speed/zone/target/offset 编译为共享类型。 |
| KW-103 | 运动指令和当前上下文 | Done | KW-102, KW-006 | GRL 9、20、21、24 | movej/movel/movec 编译为 MotionInstruction 和 KDL request。 |
| KW-104 | Path、event 和 `run_path` | Done | KW-103, KW-011 | GRL 10、18、20、21、24 | path 编译为 PathPlanRequest，event 和 source map 正确。 |
| KW-105 | Operation 和 `run_operation` | Done | KW-104 | GRL 11、20、21、24 | operation 展开为 action + path + action，引用检查正确。 |
| KW-106 | IO、wait 和 pulse | Done | KW-101 | GRL 12、20、21、24 | IO 地址、WaitInstruction、pulse 语义和 KDL 边界正确。 |
| KW-107 | 流程控制 | Done | KW-101 | GRL 13、20、21、24 | if/while/for/switch/break/continue/label/jump 语义检查通过。 |
| KW-108 | proc、func、参数方向和作用域 | Done | KW-101 | GRL 14、20、21、24 | 参数方向、返回路径、作用域、func 副作用检查通过。 |
| KW-109 | 异常、报警、中断和多任务语法 | Done | KW-101 | GRL 15、16、24 | alarm/raise/try/catch P0 可用，trap/interrupt/task 语法可表达。 |
| KW-110 | 语义检查、IR 和 source map | Done | KW-103, KW-104, KW-105, KW-106, KW-107, KW-108 | GRL 20、21、24；KDL 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、可解析回等价对象。 |

## 4. KDL 子任务

### KW-001：WASM 工程骨架和 Worker RPC

| 编号 | 内容 | 状态 | 验收 |
| --- | --- | --- | --- |
| KW-001.1 | 创建 `kdl-wasm` wrapper 工程 | Done | CMake 可配置。 |
| KW-001.2 | 编译 KDL WASM 产物 | Done | `kdl.js/kdl.wasm/kdl.d.ts` 存在。 |
| KW-001.3 | 定义 `KdlRpcRequest/KdlRpcResponse` | Done | 请求 id、method、payload、结构化错误完整。 |
| KW-001.4 | 实现 `kdl.worker.ts` | Done | Worker 加载 WASM 并响应 `init/dispose`。 |
| KW-001.5 | 实现 `KdlWorkerClient` | Done | Promise API 可用。 |

### KW-002：`NormalizedRobotModel` 到 KDL Chain

| 编号 | 内容 | 状态 | 验收 |
| --- | --- | --- | --- |
| KW-002.1 | URDF XML 解析 | Done | link/joint/origin/axis/limit 可读取。 |
| KW-002.2 | 连通性和单位检查 | Done | base/tip 不连通有诊断。 |
| KW-002.3 | 生成 `NormalizedRobotModel` | Done | activeJointNames 和 limits 稳定。 |
| KW-002.4 | WASM 创建 KDL Chain | Done | C ABI 根据 `NormalizedRobotModel` 构造 native KDL Chain，FK/fkAllLinks/Jacobian/IK golden 通过。 |
| KW-002.5 | RobotHandle 生命周期 | Done | create/getInfo/getLimits/destroy 通过。 |

### KW-003 到 KW-013：KDL P0 计算接口

| 编号 | 内容 | 状态 | 验收 |
| --- | --- | --- | --- |
| KW-003.1 | `fk` | Done | 返回 flange、tcp、diagnostics。 |
| KW-003.2 | `fkAllLinks` | Done | 返回 link pose 列表。 |
| KW-004.1 | `ik` | Done | 返回 joints、iterations、residual、reason。 |
| KW-004.2 | `ikBatch` | Done | 顺序保持。 |
| KW-005.1 | `jacobian` | Done | Float64Array 矩阵正确。 |
| KW-005.2 | `checkSingularity` | Done | manipulability 或 conditionNumber 可用。 |
| KW-005.3 | `checkJointLimits/checkVelocityLimits` | Done | 限位诊断正确。 |
| KW-005.4 | `checkReachability/checkReachabilityBatch` | Done | 可达性和失败原因正确。 |
| KW-006.1 | `normalizePose/composePose/inversePose` | Done | 位姿数值测试通过。 |
| KW-006.2 | `applyToolAndFrame/applyOffset` | Done | 与 GRL offset 语义一致。 |
| KW-007.1 | `makeTrapProfile/sampleTrapProfile` | Done | 采样规则正确。 |
| KW-008.1 | `planMoveJ` | Done | MOVEJ 运动测试通过。 |
| KW-009.1 | `planMoveL` | Done | MOVEL 运动测试通过。 |
| KW-010.1 | `planMoveC` | Done | MOVEC 运动测试通过。 |
| KW-011.1 | `planPath` | Done | 多段轨迹合并正确。 |
| KW-011.2 | `validatePath` | Done | 段报告和诊断正确。 |
| KW-012.1 | `estimateCycleTime/resampleTrajectory` | Done | 节拍和重采样正确。 |
| KW-013.1 | C ABI / Embind 稳定导出 | Done | 稳定导出完整，native FK/fkAllLinks/Jacobian/IK/sampleTrap 已有 C ABI 测试；高层轨迹规划由 TypeScript runtime 包装承载。 |
| KW-013.2 | TypedArray 和批量性能 | Done | 性能指标有记录。 |

## 5. GRL 子任务

### KW-100 到 KW-103：语法基础和运动

| 编号 | 内容 | 状态 | 验收 |
| --- | --- | --- | --- |
| KW-100.1 | Lexer token 和关键字 | Done | 保留关键字表覆盖规范。 |
| KW-100.2 | 单位规范化 | Done | 长度、角度、时间、速度、质量转换正确。 |
| KW-101.1 | EBNF parser | Done | 已覆盖 language/module/import/proc 和顶层 raw 声明骨架。 |
| KW-101.2 | AST source range | Done | 行列、注释过滤、单位原文保留在 token 中。 |
| KW-102.1 | 类型系统和变量声明 | Done | const/var/persistent 类型检查。 |
| KW-102.2 | tool/frame/target/speed/zone | Done | 编译为共享数据结构。 |
| KW-102.3 | offset/offset_in | Done | 编译为 `OffsetSpec`。 |
| KW-103.1 | movej/movel/movec parser | Done | 运动语句 AST 正确。 |
| KW-103.2 | 当前 tool/frame/speed/zone 解析 | Done | 参数优先级正确。 |
| KW-103.3 | MotionInstruction 到 KDL request | Done | KDL 调用关系正确。 |

### KW-104 到 KW-110：Path、Operation、IO、流程和 IR

| 编号 | 内容 | 状态 | 验收 |
| --- | --- | --- | --- |
| KW-104.1 | path defaults/source/point/event | Done | Path AST 正确。 |
| KW-104.2 | `run_path` 编译 | Done | 生成 `PathPlanRequest`。 |
| KW-105.1 | operation/process/actions | Done | Operation AST 正确。 |
| KW-105.2 | `run_operation` 展开 | Done | start action + path + end action。 |
| KW-106.1 | IO 地址和别名 | Done | IO map 校验正确。 |
| KW-106.2 | wait/pulse | Done | WaitInstruction 和 pulse IR 正确。 |
| KW-107.1 | 结构化流程控制 | Done | if/while/for/switch 语义正确。 |
| KW-107.2 | label/jump | Done | P1 语法和非法跳转诊断。 |
| KW-108.1 | proc/func/call/return | Done | 调用和返回检查正确。 |
| KW-108.2 | in/out/inout 和作用域 | Done | 左值、赋值路径、遮蔽 warning。 |
| KW-109.1 | alarm/raise/try/catch | Done | P0 异常基础语义。 |
| KW-109.2 | trap/interrupt/task | Done | P1 语法可解析。 |
| KW-110.1 | Semantic Analyzer | Done | 规范第 21 章 22 项检查覆盖。 |
| KW-110.2 | Executable IR | Done | Motion/Wait/Call/Branch/IO/Alarm/Return。 |
| KW-110.3 | Source map | Done | GRL 行列、path point、operation 可定位。 |

### KW-111 到 KW-112：后处理和自动生成

| 编号 | 内容 | 状态 | 验收 |
| --- | --- | --- | --- |
| KW-111.1 | ABB RAPID 后处理 | Done | golden file 通过。 |
| KW-111.2 | FANUC LS/TP 风格后处理 | Done | golden file 通过。 |
| KW-111.3 | KUKA KRL 后处理 | Done | golden file 通过。 |
| KW-111.4 | post_hint 和 brand metadata | Done | 只影响指定品牌。 |
| KW-111.5 | 转换报告 | Done | 不支持和近似语义明确列出。 |
| KW-112.1 | target/path/operation 自动生成 | Done | 命名稳定、defaults 和 override 正确。 |
| KW-112.2 | compact/expanded 输出 | Done | 同一输入输出稳定。 |
| KW-112.3 | 生成后再解析 | Done | 可恢复等价对象和 IR。 |
