411 lines
12 KiB
Markdown
411 lines
12 KiB
Markdown
# 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-000:working1 文档创建
|
||
|
||
关联任务:`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-005:motion、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-001:ABB120 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-010:GRL 测试程序集解析与编译
|
||
|
||
关联任务:`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-030:ABB120 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-090:HTML 虚拟控制器页面
|
||
|
||
关联任务:`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. desktop:45666 bytes。
|
||
2. mobile:44869 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-000:working2 空任务审计
|
||
|
||
关联任务:`working2-audit`
|
||
命令:
|
||
|
||
```powershell
|
||
cd E:\Work\kdl_work
|
||
Get-ChildItem -Force working2
|
||
rg -n "working2|working 2|工作2" .
|
||
```
|
||
|
||
结果摘要:`working2` 目录当前无任务文件、无源码、无验收条目;仓库文本未引用 `working2` 任务。已新增 `working2/README.md` 记录空任务集结论。
|
||
状态:通过。
|