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