# 04-任务矩阵

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

## 1. 状态定义

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

## 2. 任务总表

| 编号 | 任务 | 状态 | 依赖 | 验收标准 |
| --- | --- | --- | --- | --- |
| A120-000 | 创建 working1 需求与开发指导文档 | Done | 无 | 7 个文档文件存在，覆盖用户提出的 5 项需求。 |
| GRL-EXPR-000 | 补充 GRL 运算功能文档 | Done | A120-000 | 功能、步骤、任务、验收、决策和 README 均覆盖运算表达式能力。 |
| GRL-EXPR-001 | 表达式 AST 扩展 | Done | GRL-EXPR-000 | AST 支持一元、二元、逻辑表达式，并保留 source range。 |
| GRL-EXPR-002 | 表达式 parser 优先级 | Done | GRL-EXPR-001 | 支持算术、比较、逻辑、括号、函数、数组、对象、offset 的完整优先级解析。 |
| GRL-EXPR-003 | 常量求值器和单位系统 | Done | GRL-EXPR-002 | 支持 pi/e、数学函数、三角函数、单位归一化和稳定 diagnostic。 |
| GRL-EXPR-004 | 数据声明和 target 编译接入 | Done | GRL-EXPR-003 | speed、zone、tool、frame、pose、joint_target、pose_target 等静态参数可求值。 |
| GRL-EXPR-005 | motion/path/IO 编译接入 | Done | GRL-EXPR-004 | path defaults、path point、event distance、wait timeout、pulse duration 可编译期求值。 |
| GRL-EXPR-006 | 三品牌后处理和报告边界 | Done | GRL-EXPR-005 | ABB/FANUC/KUKA 输出使用折叠后数值，无法保真的 runtime 表达式进入 report。 |
| A120-001 | 固化 ABB120 URDF fixture 和来源元数据 | Done | A120-000 | 可从稳定入口加载 URDF、load options、joint limits、标准关节位。 |
| A120-002 | 建立 ABB120 测试目录结构 | Done | A120-001 | 程序、expected、reports、screenshots 目录约定清晰。 |
| A120-010 | 编写 ABB120 GRL 测试程序集 | Done | A120-001, GRL-EXPR-005 | 6 个 GRL 程序覆盖 smoke、joint path、cartesian、IO/wait、error、operation，并含运算表达式用例。 |
| A120-011 | 建立 AST/IR/KDL request/source map golden | Done | A120-010, GRL-EXPR-005 | 同一输入重复生成稳定 snapshot，表达式折叠结果可比对。 |
| A120-030 | ABB120 KDL 基线测试 | Done | A120-001 | URDF load、FK、fkAllLinks、Jacobian、limit、singularity 全覆盖。 |
| A120-031 | ABB120 轨迹规划测试 | Done | A120-010, A120-030 | MOVEJ/MOVEL/MOVEC/PATH happy path 和 error path 通过。 |
| A120-032 | 虚拟控制器运行测试 | Done | A120-011, A120-031 | run/pause/step/stop/reset、motion queue、IO/wait/trace 可验证。 |
| A120-033 | ABB120 job runner | Done | A120-032 | 输出 job_id、job.json、trace、trajectory、diagnostics。 |
| A120-050 | 三品牌后处理 golden | Done | A120-011 | ABB/FANUC/KUKA 输出稳定，转换报告完整。 |
| A120-051 | 品牌导入回读和 roundtrip diff | Done | A120-050 | 后处理输出可回读，差异报告覆盖不可逆语义。 |
| A120-070 | ABB120 OLP 项目生成与工作区导入导出 | Done | A120-010 | Station/Robot/Tool/Frame/Target/Path/Operation/Program 可保存恢复。 |
| A120-071 | 离线编程验证报告 | Done | A120-031, A120-032, A120-050 | reachability、cycle time、IO/wait、collision、post/import 报告有 report_id。 |
| A120-072 | 客户交付包 | Done | A120-071 | bundle 包含源程序、品牌程序、IO map、校准、trace、报告。 |
| A120-090 | HTML 虚拟控制器页面骨架 | Done | A120-032 | 页面直接进入 ABB120 工作台，布局包含命令栏、对象树、viewport、示教器和日志。 |
| A120-091 | HTML 运行控制 | Done | A120-090 | Load/Run/Pause/Step/Stop/Reset 驱动 runtime 状态变化。 |
| A120-092 | HTML 编辑器和 source map | Done | A120-090 | GRL/ABB/FANUC/KUKA 标签、当前行、诊断跳转和 path point 高亮可用。 |
| A120-093 | HTML IO/Wait/报警/报告面板 | Done | A120-091 | Wait 卡住可诊断并手动置位继续运行；报告可打开。 |
| A120-094 | HTML 视觉回归和截图 | Done | A120-093 | Chrome headless 桌面/移动截图、viewport 非空、无横向溢出、关键面板可见。 |
| A120-900 | 全量 CI 验收 | Done | A120-001 到 A120-094 | typecheck、tests、WASM build、ABB120 suite、截图和报告证据全部通过。 |

## 3. 子任务明细

### GRL-EXPR：运算表达式

| 子任务 | 内容 | 状态 | 验收 |
| --- | --- | --- | --- |
| GRL-EXPR-001.1 | AST 节点扩展 | Done | `UnaryExpression`、`BinaryExpression` 或等价节点有 source range。 |
| GRL-EXPR-002.1 | 算术优先级 | Done | `1 + 2 * 3` AST 正确，`(1 + 2) * 3` 可改变优先级。 |
| GRL-EXPR-002.2 | 比较和逻辑 | Done | `a == b and not c` 可解析并保留结构。 |
| GRL-EXPR-002.3 | 函数参数表达式 | Done | `linear(100 + 50 mm/s)`、`atan2(1, 1)` 可解析。 |
| GRL-EXPR-003.1 | 数学函数 | Done | `sqrt/abs/pow/min/max/clamp/floor/ceil/round` 求值和诊断稳定。 |
| GRL-EXPR-003.2 | 三角函数 | Done | `sin/cos/tan/asin/acos/atan/atan2` 支持角度单位和定义域检查。 |
| GRL-EXPR-003.3 | 单位系统 | Done | `mm`、`mm/s`、`mm/s2`、`deg`、`rad`、`%`、`s`、`ms`、`kg` 归一化。 |
| GRL-EXPR-004.1 | speed/zone 求值 | Done | `linear(100 + 50 mm/s)`、`z(clamp(...))` 编译为 IR 数值。 |
| GRL-EXPR-004.2 | target/pose 求值 | Done | `joint_target`、`pose_target` 内部表达式编译为 KDL 需要的 SI 数值。 |
| GRL-EXPR-005.1 | path point 求值 | Done | 内联 speed/zone/tool/frame/via/target 表达式能进 KDL request。 |
| GRL-EXPR-005.2 | wait/pulse 求值 | Done | timeout/duration 支持表达式并归一化为秒。 |
| GRL-EXPR-006.1 | 后处理折叠输出 | Done | 三品牌程序输出具体数值，不输出未处理的常量表达式。 |
| GRL-EXPR-006.2 | runtime 表达式报告 | Done | 无法保真映射的运行时表达式进入 post/roundtrip report。 |

### A120-010：GRL 测试程序集

| 子任务 | 内容 | 状态 | 验收 |
| --- | --- | --- | --- |
| A120-010.1 | `A120_00_Smoke.grl` | Done | 最小 `movej home` 链路通过。 |
| A120-010.2 | `A120_10_JointPickPlace.grl` | Done | 4 段 MOVEJ、IO event、终点 place。 |
| A120-010.3 | `A120_20_CartesianBlend.grl` | Done | FK 生成 pose targets，MOVEL/MOVEC 可规划。 |
| A120-010.4 | `A120_30_IOWaitPulse.grl` | Done | IO、wait、pulse、timeout 可运行。 |
| A120-010.5 | `A120_40_ErrorDiagnostics.grl` | Done | 限位、不可达、奇异、缺失引用诊断稳定。 |
| A120-010.6 | `A120_50_OperationProcess.grl` | Done | operation 展开和工艺报告可验证。 |

### A120-090：HTML 虚拟控制器

| 子任务 | 内容 | 状态 | 验收 |
| --- | --- | --- | --- |
| A120-090.1 | HTML/CSS/TS 页面入口 | Done | 浏览器可打开页面。 |
| A120-090.2 | 对象树 | Done | Station/Robot/Path/Operation/Program/Reports 可见。 |
| A120-090.3 | Station viewport | Done | ABB120 姿态、路径和选中点可见。 |
| A120-090.4 | 虚拟示教器 | Done | 状态灯、模式、关节/TCP、程序指针可见。 |
| A120-090.5 | 底部诊断区 | Done | Log、Diagnostics、IO、Wait、Motion Queue、Trace、Reports 可切换。 |
