接入KDL native IK与链路采样
This commit is contained in:
@@ -1185,3 +1185,47 @@
|
||||
|
||||
1. 若继续深化 KDL native 主线,优先接入 native `fkAllLinks` JSON 输出和 native IK。
|
||||
2. native IK 稳定后,再逐步把 `planMoveL/planMoveC/planPath` 从 TypeScript baseline 切到 native solver。
|
||||
|
||||
### 轮次 025
|
||||
|
||||
日期:2026-06-27
|
||||
关联任务:`KW-003`、`KW-004`、`KW-007`、`KW-013`
|
||||
本轮目标:闭合轮次 024 遗留的 native `fkAllLinks` JSON 输出、native IK 和 native sampleTrap C ABI 基线。
|
||||
|
||||
做了什么:
|
||||
|
||||
1. C ABI 增加 native `kdl_fk_all_links` JSON 序列化,输出 `{ ok, linkPoses, diagnostics }`,并过滤 KDL 内部 origin 辅助段。
|
||||
2. CMake 接入 Orocos KDL `ChainIkSolverPos_LMA` 源文件。
|
||||
3. `RobotRecord` 持有 native IK solver,随 KDL Chain 生命周期稳定构造。
|
||||
4. 实现 native `kdl_ik`,从 pose7 归一化四元数构造 KDL Frame,并输出 joint buffer。
|
||||
5. 实现 native `kdl_sample_trap`,输出完整 trapezoid/triangle profile JSON,覆盖 zero length、triangle fallback 和非法输入诊断。
|
||||
6. 扩展 `cAbi.test.ts`,覆盖 native FK、fkAllLinks、Jacobian、IK、sampleTrap 和结构化失败路径。
|
||||
7. 更新 `README.md`、任务矩阵和验收证据,修正 native IK/fkAllLinks 的旧待办表述。
|
||||
|
||||
改了哪些文件:
|
||||
|
||||
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/tests/kdl/cAbi.test.ts`
|
||||
4. `/home/meswork/kdl_work/working/README.md`
|
||||
5. `/home/meswork/kdl_work/working/03-推进台账.md`
|
||||
6. `/home/meswork/kdl_work/working/04-任务矩阵.md`
|
||||
7. `/home/meswork/kdl_work/working/05-验收证据.md`
|
||||
|
||||
验证了什么:
|
||||
|
||||
1. `cmake --build kdl-wasm/build-wasm -j16` 通过。
|
||||
2. `npm run test -- kdl cAbi trapProfile` 通过,27 个测试文件共 109 个测试通过。
|
||||
3. `npm run typecheck` 通过。
|
||||
4. `npm test` 通过,27 个测试文件共 109 个测试通过。
|
||||
|
||||
问题和风险:
|
||||
|
||||
1. Worker runtime 当前仍由 TypeScript registry 管理高层机器人句柄;native C ABI 已覆盖 FK、fkAllLinks、Jacobian、IK 和 sampleTrap,但尚未成为 Worker 默认计算路径。
|
||||
2. native `planMoveJ/planMoveL/planMoveC/planPath` 仍保留稳定导出边界,高层轨迹规划继续由 TypeScript runtime 基线承载。
|
||||
3. C ABI 轻量 JSON 解析仍只覆盖当前 `NormalizedRobotModel` 和 trap options 必需字段,后续 schema 扩展需要同步增强。
|
||||
|
||||
下一步:
|
||||
|
||||
1. 若继续深化 KDL native 主线,优先设计 Worker 中 TypeScript handle 与 native RobotHandle 的映射关系。
|
||||
2. 映射稳定后,再逐步把 `planMoveJ/planMoveL/planMoveC/planPath` 从 TypeScript runtime 切到 native solver 或 native-assisted solver。
|
||||
|
||||
Reference in New Issue
Block a user