Files
KDL_WORK/working/04-任务矩阵.md
2026-06-27 08:55:15 -04:00

151 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 编译为 PathPlanRequestevent 和 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、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、可解析回等价对象。 |
## 4. KDL 子任务
### KW-001WASM 工程骨架和 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 ChainFK/Jacobian golden 通过。 |
| KW-002.5 | RobotHandle 生命周期 | Done | create/getInfo/getLimits/destroy 通过。 |
### KW-003 到 KW-013KDL 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 | TypeScript 可包装全部 P0 API。 |
| 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-110Path、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。 |