更新KDL与GRL推进记录
This commit is contained in:
90
03-推进台账.md
90
03-推进台账.md
@@ -1095,3 +1095,93 @@
|
||||
|
||||
1. 执行 `KW-112`:自动生成规则和往返。
|
||||
2. 生成稳定 GRL 文本,确保可 diff、可解析、可语义检查并可后处理。
|
||||
|
||||
### 轮次 023
|
||||
|
||||
日期:2026-06-27
|
||||
关联任务:`KW-112`
|
||||
本轮目标:完成 GRL 自动生成规则和往返,确保生成文本稳定、可 diff、可解析并可进入语义 IR 与后处理链路。
|
||||
|
||||
做了什么:
|
||||
|
||||
1. 复核 `kdl-wasm/web/src/grl/generator` 现有生成器实现和 roundtrip 测试。
|
||||
2. 修正 source metadata 字符串格式化规则:`id` 等外部标识保留字符串引号,`type` 等类别值可保持 GRL 标识符。
|
||||
3. 确认 `generateGrlProgram` 支持 expanded/compact 两种输出。
|
||||
4. 确认 target 按名称稳定排序,未显式命名的 path point 自动生成 `p00/p01/...`。
|
||||
5. 确认生成文本可解析为 target/path/operation,且可进入 `compileSemanticProgram` 和三品牌后处理。
|
||||
6. 更新 `README.md`、任务矩阵和验收证据,将 `KW-112` 收口为完成状态。
|
||||
|
||||
改了哪些文件:
|
||||
|
||||
1. `/home/meswork/kdl_work/kdl-wasm/web/src/grl/generator/generator.ts`
|
||||
2. `/home/meswork/kdl_work/work/working1/README.md`
|
||||
3. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
|
||||
4. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
|
||||
5. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
|
||||
|
||||
验证了什么:
|
||||
|
||||
1. `npm run typecheck` 通过。
|
||||
2. `npm run test -- grl generator roundtrip` 通过,12 个 GRL 相关测试文件共 49 个测试通过。
|
||||
3. `npm test` 通过,27 个测试文件共 107 个测试通过。
|
||||
4. `cmake --build kdl-wasm/build-wasm -j16` 通过。
|
||||
|
||||
问题和风险:
|
||||
|
||||
1. `KW-112` 已完成自动生成和往返,但当前生成器仍聚焦 target/path/operation,不覆盖完整 GRL 程序自动合成。
|
||||
2. 任务矩阵中 `KW-002.4` 保持 `Review`:当前 RobotHandle 由 TypeScript registry 管理,真实 Orocos KDL `Tree/Chain` solver 深度绑定仍需后续专门推进。
|
||||
3. FANUC 输出仍为 LS/TP 风格文本原型,不是 TP 二进制。
|
||||
|
||||
下一步:
|
||||
|
||||
1. 若继续深化 KDL 主线,优先推进真实 Orocos KDL WASM `Tree/Chain`、FK/IK/Jacobian solver 接入和 golden 对比。
|
||||
2. 若继续深化 GRL 主线,可扩展自动生成器覆盖更完整的 proc/func/control/IO/exception 程序生成。
|
||||
|
||||
### 轮次 024
|
||||
|
||||
日期:2026-06-27
|
||||
关联任务:`KW-002.4`、`KW-003`、`KW-005`、`KW-013`
|
||||
本轮目标:继续深化 KDL native 主线,让 C ABI 从 `NormalizedRobotModel` 构造 Orocos KDL Chain,并补 native FK/Jacobian golden 对比。
|
||||
|
||||
做了什么:
|
||||
|
||||
1. `kdl-wasm` CMake 接入 Orocos KDL 最小源码集:Chain、Segment、Joint、Frame、JntArray、Jacobian、FK solver、Jacobian solver 和必要 utility/inertia 文件。
|
||||
2. C ABI 增加轻量 JSON 解析,读取 `NormalizedRobotModel` 的 `robotId/name/baseLink/tipLink/joints/activeJointNames`。
|
||||
3. `kdl_create_robot` 根据标准模型构造 native KDL Chain,并返回包含 `nativeState: "kdl_chain"`、dof 和 jointNames 的 info。
|
||||
4. 实现 native `kdl_fk`,通过 `ChainFkSolverPos_recursive` 输出 pose7。
|
||||
5. 实现 native `kdl_jacobian`,通过 `ChainJntToJacSolver` 输出 6 x dof 行主序矩阵。
|
||||
6. 修复 native solver 生命周期问题:FK/Jacobian solver 必须在 map 内稳定 `RobotRecord` 上构造,避免持有 move 前 Chain 引用。
|
||||
7. Emscripten 构建导出 `HEAPF64` 并启用 C++ exception catching,用于 C ABI 测试和结构化错误边界。
|
||||
8. C ABI 测试新增 Rz+Px 链 native FK/Jacobian golden case。
|
||||
9. 更新 `README.md`、任务矩阵和验收证据,将 `KW-002.4` 收口为完成状态。
|
||||
|
||||
改了哪些文件:
|
||||
|
||||
1. `/home/meswork/kdl_work/kdl-wasm/CMakeLists.txt`
|
||||
2. `/home/meswork/kdl_work/kdl-wasm/bindings/kdl_c_api.cpp`
|
||||
3. `/home/meswork/kdl_work/kdl-wasm/web/src/kdl/nativeModule.ts`
|
||||
4. `/home/meswork/kdl_work/kdl-wasm/web/tests/kdl/cAbi.test.ts`
|
||||
5. `/home/meswork/kdl_work/work/working1/README.md`
|
||||
6. `/home/meswork/kdl_work/work/working1/03-推进台账.md`
|
||||
7. `/home/meswork/kdl_work/work/working1/04-任务矩阵.md`
|
||||
8. `/home/meswork/kdl_work/work/working1/05-验收证据.md`
|
||||
|
||||
验证了什么:
|
||||
|
||||
1. `npm run typecheck` 通过。
|
||||
2. `cmake --build kdl-wasm/build-wasm -j16` 通过。
|
||||
3. `npm test -- kdl-wasm/web/tests/kdl/cAbi.test.ts` 通过,1 个测试文件共 5 个测试通过。
|
||||
4. `npm run test -- kdl fk jacobian checks c-abi` 通过,27 个测试文件共 108 个测试通过。
|
||||
5. `npm test` 通过,27 个测试文件共 108 个测试通过。
|
||||
|
||||
问题和风险:
|
||||
|
||||
1. native `fkAllLinks` 仍未做 JSON 序列化输出,Worker `fkAllLinks` 继续由 TypeScript baseline 承载。
|
||||
2. native IK 尚未接入,当前 IK 和相关 MOVEL/MOVEC 逐点求解仍由 TypeScript baseline 承载。
|
||||
3. native `planMoveJ/planMoveL/planMoveC/planPath/sampleTrap` 仍返回 `KDL_NOT_IMPLEMENTED`,轨迹规划继续由 TypeScript runtime 承载。
|
||||
4. C ABI 轻量 JSON 解析只覆盖当前 `NormalizedRobotModel` 必需字段,后续若模型 schema 扩展需要同步增强。
|
||||
|
||||
下一步:
|
||||
|
||||
1. 若继续深化 KDL native 主线,优先接入 native `fkAllLinks` JSON 输出和 native IK。
|
||||
2. native IK 稳定后,再逐步把 `planMoveL/planMoveC/planPath` 从 TypeScript baseline 切到 native solver。
|
||||
|
||||
Reference in New Issue
Block a user