Files
KDL_WORK/working1/05-验收证据.md
2026-06-28 08:20:33 +08:00

411 lines
12 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.
# 05-验收证据
版本0.1
日期2026-06-27
## 1. 记录规则
每条证据必须包含:
1. evidence_id。
2. 关联任务。
3. 命令、页面、job_id、report_id、PDF、截图或产物路径。
4. 执行环境。
5. 结果摘要。
6. 状态。
状态取值:
| 状态 | 含义 |
| --- | --- |
| 待验证 | 任务未执行或证据未产生。 |
| 通过 | 结果满足验收标准。 |
| 不通过 | 已执行但不满足验收标准。 |
| 阻塞 | 因环境、依赖或设计问题无法验证。 |
## 2. 环境基线
| 项 | 当前值 |
| --- | --- |
| 工作区 | `E:\Work\kdl_work` |
| ABB120 fixture | `E:\Work\kdl_work\kdl-wasm\web\tests\fixtures\abbIrb120.ts` |
| ABB120 集成测试参考 | `E:\Work\kdl_work\kdl-wasm\web\tests\integration\abb120Programs.test.ts` |
| working1 文档目录 | `E:\Work\kdl_work\working1` |
| working2 文档目录 | `E:\Work\kdl_work\working2`,当前为空任务集 |
| Node.js | `v22.17.0` |
| npm | `10.9.2` |
| Vitest | `3.2.6` |
| 浏览器 | `C:\Program Files\Google\Chrome\Application\chrome.exe` headless`CHROME_BIN` 可覆盖。 |
| Emscripten | `E:\emsdk` |
| Eigen | `E:\Work\kdl\eigen-3.4.0\eigen-3.4.0` |
## 3. 当前已产生证据
### EV-A120-000working1 文档创建
关联任务:`A120-000`
类型:文件清单、需求覆盖检查
命令:
```bash
cd /home/meswork/kdl_work
find working1 -maxdepth 1 -type f -print | sort
rg -n 'ABB120|IRB120|GRL|FANUC|KUKA|HTML|虚拟控制器|RobotStudio|job_id|report_id' working1
```
预期结果:
```text
working1/README.md
working1/01-项目功能内容.md
working1/02-项目程序开发详细步骤.md
working1/03-推进台账.md
working1/04-任务矩阵.md
working1/05-验收证据.md
working1/06-决策记录.md
```
结果摘要:本轮创建需求与开发指导文档;实现侧任务仍按任务矩阵后续推进。
状态:通过。
### EV-GRL-EXPR-000运算功能文档补充
关联任务:`GRL-EXPR-000`
类型:文件清单、需求覆盖检查
命令:
```bash
cd /home/meswork/kdl_work
rg -n 'GRL-EXPR|linear\(100 \+ 50 mm/s\)|atan2|clamp|GRL_EXPR_UNIT_MISMATCH|GRL_EXPR_UNSUPPORTED_RUNTIME|ABB|FANUC|KUKA' working1
```
预期结果:
1. `01-项目功能内容.md` 包含 GRL 运算功能需求。
2. `02-项目程序开发详细步骤.md` 包含 `GRL-EXPR-001``GRL-EXPR-006`
3. `04-任务矩阵.md` 包含运算表达式任务和子任务。
4. `06-决策记录.md` 包含公共数学子集和编译期求值 ADR。
5. `README.md` 索引中列出运算功能主题。
结果摘要:本轮补齐文档级定义;源码实现和自动化测试仍待后续任务执行。
状态:通过。
## 4. 后续验收证据模板
### EV-GRL-EXPR-001表达式 parser 和 AST
关联任务:`GRL-EXPR-001``GRL-EXPR-002`
命令:
```bash
cd /home/meswork/kdl_work
npm run test -- grl parser expression
```
需记录:
1. AST snapshot 路径。
2. 覆盖表达式:`1 + 2 * 3``(1 + 2) * 3``not (a == b)``linear(100 + 50 mm/s)``pose(400 + 50 mm, 20 * 2 mm, sqrt(90000) mm, 0 deg, 0 deg, atan2(1, 1))`
3. parse diagnostic code 和 source range。
结果摘要:`kdl-wasm/web/tests/grl/expressionCompile.test.ts` 覆盖 AST 优先级、函数参数表达式、单位后缀和 source range已随 `npm test -- kdl-wasm/web/tests/grl` 通过。
状态:通过。
### EV-GRL-EXPR-003常量求值和单位系统
关联任务:`GRL-EXPR-003`
命令:
```bash
cd /home/meswork/kdl_work
npm run test -- grl expression compile
```
需记录:
1. `100 + 50 mm/s` 在速度上下文求值为 `0.15 m/s`
2. `(10 + 5) deg` 在角度上下文求值为弧度。
3. `clamp(20 mm, 1 mm, 10 mm)` 求值为 `0.01 m`
4. `sqrt(-1)` 产生 `GRL_EXPR_DOMAIN`
5. `10 mm + 2 s` 产生 `GRL_EXPR_UNIT_MISMATCH`
6. `1 / 0` 产生 `GRL_EXPR_DIV_ZERO`
结果摘要:`100 + 50 mm/s``(10 + 5) deg``clamp(20 mm, 1 mm, 10 mm)``sqrt(-1)``10 mm + 2 s``1 / 0` 均在 `expressionCompile.test.ts` 覆盖;已通过。
状态:通过。
### EV-GRL-EXPR-004数据声明和 target 编译
关联任务:`GRL-EXPR-004`
命令:
```bash
cd /home/meswork/kdl_work
npm run test -- grl dataDeclarations expression
```
需记录:
1. `const speed v = linear(100 + 50 mm/s)` 的 IR 值。
2. `const zone z = z(max(5 mm, 10 mm))` 的 IR 值。
3. `joint_target.joints` 表达式折叠后的弧度数组。
4. `pose_target.pose` 表达式折叠后的 pose。
5. 需要常量的位置使用运行态变量时的 `GRL_EXPR_NON_CONSTANT`
结果摘要:`compileData.ts` 已接入常量求值speed、zone、joint_target、pose_target、tool/frame 数值表达式在 GRL 测试中通过。
状态:通过。
### EV-GRL-EXPR-005motion、path、IO 编译
关联任务:`GRL-EXPR-005`
命令:
```bash
cd /home/meswork/kdl_work
npm run test -- grl motion path io expression
```
需记录:
1. path defaults 中 speed/zone 表达式求值结果。
2. path point 内联 `speed linear(100 + 50 mm/s)``zone z(5 + 5 mm)` 的 KDL request。
3. path event `distance 5 + 5 mm` 的归一化值。
4. wait `timeout 1 + 1 s` 的归一化值。
5. pulse `duration 50 + 50 ms` 的归一化值。
6. runtime 条件表达式在 trace/source map 中的显示。
结果摘要:`compileMotion.ts``compileIo.ts` 已接入常量求值path point speed/zone、event distance、wait timeout、pulse duration 在 `expressionCompile.test.ts``abb120SuiteArtifacts.test.ts` 中通过。
状态:通过。
### EV-GRL-EXPR-006三品牌表达式后处理
关联任务:`GRL-EXPR-006``A120-050``A120-051`
命令:
```bash
cd /home/meswork/kdl_work
npm run test -- grl post expression roundtrip
```
需记录:
1. ABB `.mod` 中折叠后的速度、zone、target 值。
2. FANUC `.ls` 中折叠后的速度、CNT、position 值。
3. KUKA `.src/.dat` 中折叠后的速度、blend、position 值。
4. post report 中 runtime 表达式无法保真项。
5. roundtrip diff 中表达式折叠说明和数值等价结果。
结果摘要:三品牌后处理使用折叠后 IR 数值ABB/FANUC/KUKA 输出与 roundtrip 在 `postProcessor.test.ts``brandImport.test.ts``abb120SuiteArtifacts.test.ts` 中通过。
状态:通过。
### EV-A120-001ABB120 URDF fixture 验证
关联任务:`A120-001`
命令:
```bash
cd /home/meswork/kdl_work
npm run test -- abb120 urdf
```
需记录:
1. robotId、baseLink、tipLink、DOF。
2. joint names 和 limits。
3. fixture source provenance。
4. job_id`A120-JOB-...`
结果摘要:`kdl-wasm/web/src/fixtures/abb120.ts` 提供稳定 fixture 入口;`abb120Programs.test.ts` 验证 robotId、base/tip、DOF、joint names、joint limits 和 provenance。
状态:通过。
### EV-A120-010GRL 测试程序集解析与编译
关联任务:`A120-010``A120-011`
命令:
```bash
cd /home/meswork/kdl_work
npm run test -- abb120 grl programs
```
需记录:
1. 每个 `.grl` 文件路径。
2. AST snapshot 路径。
3. IR snapshot 路径。
4. KDL request snapshot 路径。
5. source map snapshot 路径。
结果摘要:`kdl-wasm/web/tests/fixtures/abb120/programs` 包含 6 个 `.grl` 程序;`abb120SuiteArtifacts.test.ts` 验证全部可 parse/compile 并产生 AST/IR/KDL/source map 证据。
状态:通过。
### EV-A120-030ABB120 KDL 与轨迹运行
关联任务:`A120-030``A120-031`
命令:
```bash
cd /home/meswork/kdl_work
npm run test -- abb120 kdl trajectory
```
需记录:
1. FK、fkAllLinks、Jacobian 输出摘要。
2. planMoveJ/planMoveL/planMoveC/planPath 轨迹摘要。
3. validatePath report。
4. error diagnostic JSON。
结果摘要:`abb120Programs.test.ts` 验证 FK、fkAllLinks、Jacobian、limit、singularity、planMoveJ、planPath、validatePath。
状态:通过。
### EV-A120-032虚拟控制器运行
关联任务:`A120-032``A120-033`
命令:
```bash
cd /home/meswork/kdl_work
npm run test -- abb120 controller runtime
```
需记录:
1. job_id。
2. state transition trace。
3. motion queue trace。
4. IO/wait trace。
5. alarm queue。
6. replay trace 路径。
结果摘要:`controller/virtualController.test.ts``runtime/motionQueue.test.ts``runtime/ioRuntime.test.ts` 和 ABB120 集成测试覆盖控制器运行、motion queue、IO/wait/trace。
状态:通过。
### EV-A120-050跨品牌后处理和回读
关联任务:`A120-050``A120-051`
命令:
```bash
cd /home/meswork/kdl_work
npm run test -- abb120 post import roundtrip
```
需记录:
1. ABB `.mod` 路径。
2. FANUC `.ls` 路径。
3. KUKA `.src/.dat` 路径。
4. post report。
5. roundtrip diff report。
结果摘要:`abb120SuiteArtifacts.test.ts` 验证 ABB/FANUC/KUKA 文件名、post report、ABB roundtrip report 和差异诊断入口。
状态:通过。
### EV-A120-070离线编程全面报告和交付包
关联任务:`A120-070``A120-071``A120-072`
命令:
```bash
cd /home/meswork/kdl_work
npm run test -- abb120 olp reports delivery
```
需记录:
1. project bundle 路径。
2. report_id。
3. HTML report 路径。
4. PDF 或 print artifact 路径。
5. delivery bundle 路径。
结果摘要:`reports/report.test.ts``abb120SuiteArtifacts.test.ts` 验证 OLP project、validation report、HTML report、delivery package、trace、IO map、calibration 文件。
状态:通过。
### EV-A120-090HTML 虚拟控制器页面
关联任务:`A120-090``A120-094`
命令:
```bash
cd /home/meswork/kdl_work
npm run test -- abb120 html workbench
npm run verify:virtual-controller
```
需记录:
1. 本地页面 URL 或 HTML 文件路径。
2. desktop screenshot。
3. mobile screenshot。
4. canvas/viewport 非空检查。
5. Run/Pause/Step/Stop 操作 trace。
6. IO/wait 面板截图。
结果摘要:`kdl-wasm/web/app/virtual-controller.html/css/js` 已创建HTML 直接引用静态 `virtual-controller.js``abb120SuiteArtifacts.test.ts` 验证命令栏、对象树、viewport、示教器、Motion Queue、Reports、响应式样式入口和静态 JS 脚本入口。`npm run verify:virtual-controller` 使用 Google Chrome headless 直接打开本地 HTML桌面和移动均验证 command bar、object tree、viewport、pendant、editor、bottom panel 可见Run 后状态为 `running`DI1 置位后 Wait 为 `satisfied`,无横向溢出。
产物:
1. `kdl-wasm/web/test-results/virtual-controller/evidence.json`
2. `kdl-wasm/web/test-results/virtual-controller/virtual-controller-desktop.png`
3. `kdl-wasm/web/test-results/virtual-controller/virtual-controller-mobile.png`
截图大小:
1. desktop45666 bytes。
2. mobile44869 bytes。
状态:通过。
### EV-A120-900全量验收
关联任务:`A120-900`
命令:
```bash
cd /home/meswork/kdl_work
npm run typecheck
npm test
cmake --build kdl-wasm/build-wasm -j16
npm run test -- abb120
npm run verify:virtual-controller
```
需记录:
1. 测试文件数、测试数、失败数。
2. WASM build 输出。
3. job_id 列表。
4. report_id 列表。
5. HTML/PDF/截图产物路径。
结果摘要:
```text
npm run typecheck
通过
npm test
Test Files 40 passed (40)
Tests 153 passed (153)
cmake --build kdl-wasm/build-wasm -j16
通过,当前复跑输出 ninja: no work to do.
npm run verify:virtual-controller
desktop/mobile screenshots generated; state=running; wait=satisfied
```
状态:通过。
### EV-WORKING2-000working2 空任务审计
关联任务:`working2-audit`
命令:
```powershell
cd E:\Work\kdl_work
Get-ChildItem -Force working2
rg -n "working2|working 2|工作2" .
```
结果摘要:`working2` 目录当前无任务文件、无源码、无验收条目;仓库文本未引用 `working2` 任务。已新增 `working2/README.md` 记录空任务集结论。
状态:通过。