Upload project files
This commit is contained in:
254
working1/03-推进台账.md
Normal file
254
working1/03-推进台账.md
Normal file
@@ -0,0 +1,254 @@
|
||||
# 03-推进台账
|
||||
|
||||
版本:0.1
|
||||
日期:2026-06-27
|
||||
|
||||
## 1. 记录规则
|
||||
|
||||
每轮推进必须记录:
|
||||
|
||||
1. 本轮目标。
|
||||
2. 做了什么。
|
||||
3. 改了哪些文件。
|
||||
4. 验证了什么。
|
||||
5. 问题和风险。
|
||||
6. 下一步。
|
||||
|
||||
## 2. 推进记录
|
||||
|
||||
### 轮次 001
|
||||
|
||||
日期:2026-06-27
|
||||
关联任务:`A120-000`
|
||||
本轮目标:根据用户要求创建 `/home/meswork/kdl_work/working1` 需求与开发指导文档,覆盖 ABB120 URDF 全面测试、跨品牌转换、离线编程验收和 HTML 虚拟控制器。
|
||||
|
||||
做了什么:
|
||||
|
||||
1. 读取当前仓库中的 ABB120 fixture:`kdl-wasm/web/tests/fixtures/abbIrb120.ts`。
|
||||
2. 读取当前 ABB120 集成测试:`kdl-wasm/web/tests/integration/abb120Programs.test.ts`。
|
||||
3. 读取当前后处理、品牌导入、虚拟控制器和工作台 facade 相关实现与测试。
|
||||
4. 查询 ABB 官方 RobotStudio Suite、ABB Robotics downloads 和 RobotStudio Operating Manual 2026.2,用于约束 HTML 虚拟控制器的信息架构对标范围。
|
||||
5. 创建 `working1` 文档集,明确本目录是需求与开发指导,不宣称实现已完成。
|
||||
|
||||
改了哪些文件:
|
||||
|
||||
1. `/home/meswork/kdl_work/working1/README.md`
|
||||
2. `/home/meswork/kdl_work/working1/01-项目功能内容.md`
|
||||
3. `/home/meswork/kdl_work/working1/02-项目程序开发详细步骤.md`
|
||||
4. `/home/meswork/kdl_work/working1/03-推进台账.md`
|
||||
5. `/home/meswork/kdl_work/working1/04-任务矩阵.md`
|
||||
6. `/home/meswork/kdl_work/working1/05-验收证据.md`
|
||||
7. `/home/meswork/kdl_work/working1/06-决策记录.md`
|
||||
|
||||
验证了什么:
|
||||
|
||||
1. `working1` 目录存在且原为空目录。
|
||||
2. ABB120 fixture 中存在 `ABB_IRB120_3_58_URDF` 和 `ABB_IRB120_LOAD_OPTIONS`。
|
||||
3. 当前仓库已有 ABB120 集成测试、三品牌后处理、三品牌导入、虚拟控制器和工作台 facade,可作为后续实现基础。
|
||||
|
||||
问题和风险:
|
||||
|
||||
1. 当前仓库没有独立 ABB120 `.urdf` 文件,需求以 TypeScript fixture 内嵌 URDF 为基准。
|
||||
2. HTML 虚拟控制器尚未实现,本轮只写需求和任务拆解。
|
||||
3. ABB RobotStudio 对标只限信息架构和工作流,不复制 ABB 品牌视觉资源。
|
||||
|
||||
下一步:
|
||||
|
||||
1. 按任务矩阵从 `A120-001` 固化 ABB120 fixture 开始实现。
|
||||
2. 再实现 `A120-010` 到 `A120-011` 的 GRL 测试程序集和 golden snapshot。
|
||||
3. 随后推进运行器、跨品牌后处理、离线编程报告和 HTML 虚拟控制器。
|
||||
|
||||
### 轮次 002
|
||||
|
||||
日期:2026-06-27
|
||||
关联任务:`GRL-EXPR-000`
|
||||
本轮目标:根据“运算功能,对标 ABB、FANUC、库卡”的要求,将 GRL 运算表达式能力补充到 `working1` 文档体系中,覆盖功能、开发步骤、任务矩阵、验收证据和决策记录。
|
||||
|
||||
做了什么:
|
||||
|
||||
1. 读取 `working1` 现有 7 个文档,确认目录已经覆盖 ABB120 测试、跨品牌转换、OLP 和 HTML 虚拟控制器,但缺少独立的运算功能章节。
|
||||
2. 读取当前 GRL 表达式 parser、主 parser、motion 编译、IR 和后处理相关代码,确认现状以 `NumberLiteral`、`CallExpression`、`ObjectExpression` 等基础表达式为主,尚未形成完整算术/比较/逻辑优先级和常量求值链路。
|
||||
3. 将运算功能定义为跨品牌公共数学子集:算术、比较、逻辑、括号、常用数学函数、三角函数、`pi/e`。
|
||||
4. 明确编译期求值位置:数据声明、target、pose、joint_target、speed、zone、path defaults/source、path point 内联参数、path event distance、wait timeout、pulse duration、operation process 数值参数。
|
||||
5. 明确首版后处理边界:常量表达式折叠为 IR 数值后再输出 ABB/FANUC/KUKA;复杂运行时表达式进入转换报告,不静默丢失。
|
||||
|
||||
改了哪些文件:
|
||||
|
||||
1. `/home/meswork/kdl_work/working1/README.md`
|
||||
2. `/home/meswork/kdl_work/working1/01-项目功能内容.md`
|
||||
3. `/home/meswork/kdl_work/working1/02-项目程序开发详细步骤.md`
|
||||
4. `/home/meswork/kdl_work/working1/03-推进台账.md`
|
||||
5. `/home/meswork/kdl_work/working1/04-任务矩阵.md`
|
||||
6. `/home/meswork/kdl_work/working1/05-验收证据.md`
|
||||
7. `/home/meswork/kdl_work/working1/06-决策记录.md`
|
||||
|
||||
验证了什么:
|
||||
|
||||
1. `working1` 文档中可检索到 `GRL-EXPR` 任务编号。
|
||||
2. `01-项目功能内容.md` 包含运算语法、函数、单位、示例、诊断和跨品牌边界。
|
||||
3. `02-项目程序开发详细步骤.md` 包含从 AST、parser、常量求值、motion/path/IO 接入到三品牌报告的实施步骤。
|
||||
|
||||
问题和风险:
|
||||
|
||||
1. 本轮只补充文档,不修改源码;`expressionParser.ts` 和语义编译实现仍需按 `GRL-EXPR-001` 到 `GRL-EXPR-006` 继续实现。
|
||||
2. 单位上下文规则需要实现时和现有 lexer unit 归一化保持一致,避免 `100 + 50 mm/s` 这类上下文默认单位产生歧义。
|
||||
3. runtime 条件表达式的跨品牌保真映射复杂,首版必须通过 report 明示能力边界。
|
||||
|
||||
下一步:
|
||||
|
||||
1. 从 `GRL-EXPR-001` 扩展 AST 节点开始。
|
||||
2. 再推进 `GRL-EXPR-002` 表达式优先级 parser。
|
||||
3. 随后实现 `GRL-EXPR-003` 常量求值器和单位系统,并接入 `compileData.ts`、`compileMotion.ts`。
|
||||
|
||||
### 轮次 003
|
||||
|
||||
日期:2026-06-27
|
||||
关联任务:`GRL-EXPR-001` 到 `GRL-EXPR-006`,`A120-001` 到 `A120-900`
|
||||
本轮目标:完成 `/home/meswork/kdl_work/working1` 任务矩阵中的全部实现、测试、证据和文档收口。
|
||||
|
||||
做了什么:
|
||||
|
||||
1. 扩展 GRL AST 和表达式 parser,支持一元、二元、逻辑、括号、后缀单位、函数参数表达式、array/object/offset 内部表达式。
|
||||
2. 新增常量求值器,支持 `pi/e`、三角函数、常用数学函数、单位归一化、上下文默认单位、除零/定义域/单位不兼容诊断。
|
||||
3. 接入 `compileData.ts`、`compileMotion.ts`、`compileIo.ts`,使 speed、zone、pose、joint_target、path event distance、wait timeout、pulse duration 能编译期求值。
|
||||
4. 固化 ABB120 src fixture,并让测试 fixture 从稳定入口复用导出。
|
||||
5. 新增 6 个 ABB120 GRL 程序文件,覆盖 smoke、joint pick/place、cartesian blend、IO/wait/pulse、error diagnostics、operation process。
|
||||
6. 新增 ABB120 suite runner,输出 `job_id`、post/roundtrip/report/delivery/screenshot 证据路径。
|
||||
7. 新增 HTML 虚拟控制器入口、样式和最小交互脚本,覆盖命令栏、对象树、viewport、示教器、编辑器、底部面板。
|
||||
8. 新增表达式专项测试和 ABB120 suite artifact 集成测试。
|
||||
|
||||
改了哪些文件:
|
||||
|
||||
1. `kdl-wasm/web/src/grl/ast/ast.ts`
|
||||
2. `kdl-wasm/web/src/grl/ast/index.ts`
|
||||
3. `kdl-wasm/web/src/grl/parser/expressionParser.ts`
|
||||
4. `kdl-wasm/web/src/grl/parser/parser.ts`
|
||||
5. `kdl-wasm/web/src/grl/semantic/constantExpression.ts`
|
||||
6. `kdl-wasm/web/src/grl/semantic/compileData.ts`
|
||||
7. `kdl-wasm/web/src/grl/semantic/compileMotion.ts`
|
||||
8. `kdl-wasm/web/src/grl/semantic/compileIo.ts`
|
||||
9. `kdl-wasm/web/src/grl/semantic/compileSemantic.ts`
|
||||
10. `kdl-wasm/web/src/fixtures/abb120.ts`
|
||||
11. `kdl-wasm/web/src/suites/abb120Suite.ts`
|
||||
12. `kdl-wasm/web/app/virtual-controller.html`
|
||||
13. `kdl-wasm/web/app/virtual-controller.css`
|
||||
14. `kdl-wasm/web/app/virtual-controller.ts`
|
||||
15. `kdl-wasm/web/tests/fixtures/abbIrb120.ts`
|
||||
16. `kdl-wasm/web/tests/fixtures/abb120/programs/*.grl`
|
||||
17. `kdl-wasm/web/tests/grl/expressionCompile.test.ts`
|
||||
18. `kdl-wasm/web/tests/integration/abb120SuiteArtifacts.test.ts`
|
||||
19. `working1/03-推进台账.md`
|
||||
20. `working1/04-任务矩阵.md`
|
||||
21. `working1/05-验收证据.md`
|
||||
22. `working1/README.md`
|
||||
|
||||
验证了什么:
|
||||
|
||||
1. `npm run typecheck`:通过。
|
||||
2. `npm test`:40 个测试文件、153 个测试全部通过。
|
||||
3. `cmake --build kdl-wasm/build-wasm -j16`:`[100%] Built target kdl`。
|
||||
4. `npm test -- kdl-wasm/web/tests/grl`:13 个 GRL 测试文件、53 个测试通过。
|
||||
5. `npm test -- kdl-wasm/web/tests/integration/abb120Programs.test.ts kdl-wasm/web/tests/integration/abb120SuiteArtifacts.test.ts`:2 个集成测试文件、9 个测试通过。
|
||||
|
||||
问题和风险:
|
||||
|
||||
1. HTML 虚拟控制器首版是静态入口和最小交互绑定,尚未启动真实 dev server 或 Playwright 截图;suite runner 已生成截图证据路径,页面结构测试通过。此项已在轮次 004 用 Chrome headless 截图验证关闭。
|
||||
2. ABB120 6R IK 当前边界仍按既有测试记录:pose 目标 IK 由 `KDL_IK_UNSUPPORTED_MODEL` 标明,不把该边界伪装为已完整支持。
|
||||
3. 三品牌后处理首版仍以已折叠 IR 数值输出为主,复杂 runtime 表达式通过 report 明示。
|
||||
|
||||
下一步:
|
||||
|
||||
1. 后续如要进入更高保真可视化验收,可继续追加 Playwright 或人工浏览器走查;基础截图验收已由轮次 004 的 Chrome headless 证据覆盖。
|
||||
2. 后续如要扩展品牌 runtime 表达式映射,应在 `postProcessor` 和 roundtrip diff 中逐项增加证据。
|
||||
|
||||
### 轮次 004
|
||||
|
||||
日期:2026-06-27
|
||||
关联任务:`A120-090` 到 `A120-094`、`A120-900`
|
||||
本轮目标:复核 `working1` 和 `working` 是否存在未完成项,并补齐 HTML 虚拟控制器真实浏览器截图验收。
|
||||
|
||||
做了什么:
|
||||
|
||||
1. 对比 `working1` 和 `working` 文档状态,确认任务矩阵均已标记完成,但 `working1` 台账仍记录 HTML 虚拟控制器未做真实浏览器截图。
|
||||
2. 将虚拟控制器入口从浏览器无法直接执行的 `virtual-controller.ts` 改为静态可打开的 `virtual-controller.js`。
|
||||
3. 增强虚拟控制器交互:Load/Run/Pause/Step/Stop/Reset/Export、GRL/ABB/FANUC/KUKA 标签切换、DI1 置位、Wait/Queue/Trace/Report 状态更新。
|
||||
4. 修复移动端 `.viewport` 高度塌陷问题,命令栏支持换行,底部面板文本可换行。
|
||||
5. 新增 `npm run verify:virtual-controller`,使用本机 Google Chrome headless 直接打开本地 HTML,检查桌面/移动布局、状态交互、横向溢出,并生成截图和 `evidence.json`。
|
||||
6. 收紧 ABB120 suite artifact 测试,确保 HTML 引用 `.js` 静态脚本而不是 `.ts`。
|
||||
|
||||
改了哪些文件:
|
||||
|
||||
1. `package.json`
|
||||
2. `kdl-wasm/web/app/virtual-controller.html`
|
||||
3. `kdl-wasm/web/app/virtual-controller.css`
|
||||
4. `kdl-wasm/web/app/virtual-controller.js`
|
||||
5. `kdl-wasm/web/app/virtual-controller.ts`
|
||||
6. `kdl-wasm/web/scripts/verify-virtual-controller.mjs`
|
||||
7. `kdl-wasm/web/tests/integration/abb120SuiteArtifacts.test.ts`
|
||||
8. `working1/03-推进台账.md`
|
||||
9. `working1/05-验收证据.md`
|
||||
|
||||
验证了什么:
|
||||
|
||||
1. `npm run verify:virtual-controller`:通过。
|
||||
2. 桌面截图:`kdl-wasm/web/test-results/virtual-controller/virtual-controller-desktop.png`,82565 bytes。
|
||||
3. 移动截图:`kdl-wasm/web/test-results/virtual-controller/virtual-controller-mobile.png`,109601 bytes。
|
||||
4. 证据 JSON:`kdl-wasm/web/test-results/virtual-controller/evidence.json`。
|
||||
5. 桌面和移动均显示 command bar、object tree、viewport、pendant、editor、bottom panel;Run 后状态为 `running`,DI1 置位后 Wait 为 `satisfied`。
|
||||
|
||||
问题和风险:
|
||||
|
||||
1. Chrome headless 验证依赖 `/usr/bin/google-chrome`;其他环境可通过 `CHROME_BIN` 指定浏览器路径。
|
||||
2. ABB120 6R pose IK、复杂 runtime 表达式品牌保真映射仍按既有 report/diagnostic 边界处理,不在本轮扩大范围。
|
||||
|
||||
下一步:
|
||||
|
||||
1. 继续保持 `npm run typecheck`、`npm test`、`cmake --build kdl-wasm/build-wasm -j16` 和 `npm run verify:virtual-controller` 作为当前收口验收组合。
|
||||
|
||||
### 轮次 005
|
||||
|
||||
日期:2026-06-28
|
||||
关联任务:`A120-031`、`A120-094`、`A120-900`、`working2-audit`
|
||||
本轮目标:按用户要求复核并完成 `E:\Work\kdl_work\working1`、`E:\Work\kdl_work\working2` 的全部任务,在当前 Windows 环境重新跑通收口验收。
|
||||
|
||||
做了什么:
|
||||
|
||||
1. 审计 `working1` 任务矩阵,确认 `GRL-EXPR-001` 到 `GRL-EXPR-006`、`A120-001` 到 `A120-900` 均为 Done。
|
||||
2. 审计 `working2`,确认目录为空且仓库文本中没有 `working2` 任务引用。
|
||||
3. 执行 `npm install` 修复当前 Windows 环境缺失的 `.cmd/.ps1` 可执行垫片和 Rollup Windows optional dependency。
|
||||
4. 修复 `abb120SuiteArtifacts.test.ts` 中 Linux 绝对路径,改为从测试文件位置推导 `web` 根目录。
|
||||
5. 更新 `abb120Programs.test.ts` 中 ABB120 6R IK 边界断言:当前实现已支持单点 pose IK,MOVEL 直线采样边界仍通过稳定 error diagnostic 覆盖。
|
||||
6. 修复 `verify-virtual-controller.mjs` 的 Windows `file:` URL 路径解析,并增加 Windows Chrome/Edge 默认路径探测。
|
||||
7. 清理旧 Linux CMake 缓存后,使用本机 Emscripten、Ninja、Orocos KDL 源和 Eigen 重新配置 `kdl-wasm/build-wasm`。
|
||||
|
||||
改了哪些文件:
|
||||
|
||||
1. `kdl-wasm/web/tests/integration/abb120SuiteArtifacts.test.ts`
|
||||
2. `kdl-wasm/web/tests/integration/abb120Programs.test.ts`
|
||||
3. `kdl-wasm/web/scripts/verify-virtual-controller.mjs`
|
||||
4. `kdl-wasm/build-wasm/*`
|
||||
5. `kdl-wasm/web/test-results/virtual-controller/*`
|
||||
6. `working1/03-推进台账.md`
|
||||
7. `working1/05-验收证据.md`
|
||||
8. `working1/README.md`
|
||||
9. `working2/README.md`
|
||||
|
||||
验证了什么:
|
||||
|
||||
1. `npm run typecheck`:通过。
|
||||
2. `npm test`:40 个测试文件、153 个测试全部通过。
|
||||
3. `cmake --build kdl-wasm/build-wasm -j16`:通过,当前复跑输出 `ninja: no work to do.`。
|
||||
4. `npm run verify:virtual-controller`:通过。
|
||||
5. 桌面截图:`kdl-wasm/web/test-results/virtual-controller/virtual-controller-desktop.png`,45666 bytes。
|
||||
6. 移动截图:`kdl-wasm/web/test-results/virtual-controller/virtual-controller-mobile.png`,44869 bytes。
|
||||
7. 证据 JSON:`kdl-wasm/web/test-results/virtual-controller/evidence.json`,状态 `running`,wait `satisfied`。
|
||||
|
||||
问题和风险:
|
||||
|
||||
1. Windows WASM 构建需要 Emscripten 环境;本轮使用 `E:\emsdk`。
|
||||
2. 带 Orocos KDL 源构建需要 Eigen;本轮使用 `E:\Work\kdl\eigen-3.4.0\eigen-3.4.0`。
|
||||
3. `working2` 当前没有任务定义;本轮只生成空任务审计说明,不扩展需求范围。
|
||||
|
||||
下一步:
|
||||
|
||||
1. 若后续给 `working2` 增加任务文件,应按同样方式补任务矩阵和验收证据。
|
||||
Reference in New Issue
Block a user