Files
KDL_WORK/working1/03-推进台账.md
2026-06-28 08:20:33 +08:00

14 KiB
Raw Permalink Blame History

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 fixturekdl-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_URDFABB_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-010A120-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 和后处理相关代码,确认现状以 NumberLiteralCallExpressionObjectExpression 等基础表达式为主,尚未形成完整算术/比较/逻辑优先级和常量求值链路。
  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-001GRL-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.tscompileMotion.ts

轮次 003

日期2026-06-27 关联任务:GRL-EXPR-001GRL-EXPR-006A120-001A120-900 本轮目标:完成 /home/meswork/kdl_work/working1 任务矩阵中的全部实现、测试、证据和文档收口。

做了什么:

  1. 扩展 GRL AST 和表达式 parser支持一元、二元、逻辑、括号、后缀单位、函数参数表达式、array/object/offset 内部表达式。
  2. 新增常量求值器,支持 pi/e、三角函数、常用数学函数、单位归一化、上下文默认单位、除零/定义域/单位不兼容诊断。
  3. 接入 compileData.tscompileMotion.tscompileIo.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 test40 个测试文件、153 个测试全部通过。
  3. cmake --build kdl-wasm/build-wasm -j16[100%] Built target kdl
  4. npm test -- kdl-wasm/web/tests/grl13 个 GRL 测试文件、53 个测试通过。
  5. npm test -- kdl-wasm/web/tests/integration/abb120Programs.test.ts kdl-wasm/web/tests/integration/abb120SuiteArtifacts.test.ts2 个集成测试文件、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-090A120-094A120-900 本轮目标:复核 working1working 是否存在未完成项,并补齐 HTML 虚拟控制器真实浏览器截图验收。

做了什么:

  1. 对比 working1working 文档状态,确认任务矩阵均已标记完成,但 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.png82565 bytes。
  3. 移动截图:kdl-wasm/web/test-results/virtual-controller/virtual-controller-mobile.png109601 bytes。
  4. 证据 JSONkdl-wasm/web/test-results/virtual-controller/evidence.json
  5. 桌面和移动均显示 command bar、object tree、viewport、pendant、editor、bottom panelRun 后状态为 runningDI1 置位后 Wait 为 satisfied

问题和风险:

  1. Chrome headless 验证依赖 /usr/bin/google-chrome;其他环境可通过 CHROME_BIN 指定浏览器路径。
  2. ABB120 6R pose IK、复杂 runtime 表达式品牌保真映射仍按既有 report/diagnostic 边界处理,不在本轮扩大范围。

下一步:

  1. 继续保持 npm run typechecknpm testcmake --build kdl-wasm/build-wasm -j16npm run verify:virtual-controller 作为当前收口验收组合。

轮次 005

日期2026-06-28 关联任务:A120-031A120-094A120-900working2-audit 本轮目标:按用户要求复核并完成 E:\Work\kdl_work\working1E:\Work\kdl_work\working2 的全部任务,在当前 Windows 环境重新跑通收口验收。

做了什么:

  1. 审计 working1 任务矩阵,确认 GRL-EXPR-001GRL-EXPR-006A120-001A120-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 IKMOVEL 直线采样边界仍通过稳定 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 test40 个测试文件、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.png45666 bytes。
  6. 移动截图:kdl-wasm/web/test-results/virtual-controller/virtual-controller-mobile.png44869 bytes。
  7. 证据 JSONkdl-wasm/web/test-results/virtual-controller/evidence.json,状态 runningwait 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 增加任务文件,应按同样方式补任务矩阵和验收证据。