更新KDL与GRL推进记录
This commit is contained in:
65
05-验收证据.md
65
05-验收证据.md
@@ -62,8 +62,8 @@ README.md
|
||||
06-决策记录.md
|
||||
```
|
||||
|
||||
结果摘要:待复核。
|
||||
是否通过:待验证。
|
||||
结果摘要:实际文件清单包含 `README.md`、`01-项目功能内容.md`、`02-项目程序开发详细步骤.md`、`03-推进台账.md`、`04-任务矩阵.md`、`05-验收证据.md`、`06-决策记录.md`,与预期一致。
|
||||
是否通过:通过。
|
||||
|
||||
## 4. KDL WASM 证据
|
||||
|
||||
@@ -109,7 +109,7 @@ emcmake/emcc: /home/meswork/emsdk/upstream/emscripten
|
||||
3. 产物存在:`kdl-wasm/build-wasm/kdl.js`、`kdl-wasm/build-wasm/kdl.wasm`、`kdl-wasm/build-wasm/kdl.d.ts`。
|
||||
4. `npm run test -- kdl rpc` 通过,2 个测试文件共 11 个测试通过。
|
||||
5. Node 动态加载 `kdl.js` 并调用 `kdl_init`,输出 `{"rc":0,"hasCwrap":true}`。
|
||||
6. 当前 C ABI 在 `KW-013` 已补稳定导出、RobotHandle 生命周期和结构化错误边界;真实 FK/IK 和轨迹计算仍由 TypeScript runtime 基线承载。
|
||||
6. 当前 C ABI 在 `KW-013` 已补稳定导出、RobotHandle 生命周期和结构化错误边界;轮次 024 已进一步接入 native KDL Chain、FK 和 Jacobian,native IK 和轨迹计算仍由 TypeScript runtime 基线承载。
|
||||
|
||||
是否通过:通过。
|
||||
|
||||
@@ -148,7 +148,7 @@ Vitest 3.2.6
|
||||
4. `NormalizedRobotModel` 生成 `activeJointNames`、`limits`、`source.urdfHash`。
|
||||
5. base/tip 不连通、unsupported joint type 返回 `KDL_INVALID_MODEL` 结构化诊断。
|
||||
6. Worker runtime 支持 `loadRobotFromUrdf/createRobotFromModel/getRobotInfo/getJointLimits/destroyRobot` 的 RobotHandle 生命周期。
|
||||
7. 当前 RobotHandle 由 TypeScript registry 管理;真实 KDL `Tree/Chain` 和求解器绑定在后续 FK/IK 任务中接入。
|
||||
7. Worker runtime 当前仍由 TypeScript registry 管理 RobotHandle;C ABI 已可根据同一 `NormalizedRobotModel` 构造 native KDL Chain 并执行 FK/Jacobian。
|
||||
|
||||
是否通过:通过。
|
||||
|
||||
@@ -187,7 +187,7 @@ Vitest 3.2.6
|
||||
4. `fk` 返回 `ok/flange/tcp/joints/diagnostics`。
|
||||
5. `fkAllLinks` 返回 base-to-tip link pose 顺序。
|
||||
6. 覆盖零位 FK、revolute + prismatic 关节、tool TCP 偏移、link 顺序和关节维度结构化诊断。
|
||||
7. 当前 FK 为 TypeScript 标准模型数值基线,真实 Orocos KDL solver 对比可在后续 WASM 求解器接入时补充 golden 对比。
|
||||
7. Worker `fk/fkAllLinks` 当前为 TypeScript 标准模型数值基线;C ABI 已补 native `kdl_fk` golden 测试,`fkAllLinks` native JSON 序列化仍待后续接入。
|
||||
|
||||
是否通过:通过。
|
||||
|
||||
@@ -224,7 +224,7 @@ Vitest 3.2.6
|
||||
2. `npm run test -- kdl ik` 通过,8 个测试文件共 34 个测试通过。
|
||||
3. `ik` 返回 `ok/joints/iterations/residualPosition/residualOrientation/reason/diagnostics`。
|
||||
4. 覆盖可达目标 IK、FK 回代误差、`ikBatch` 顺序保持、关节限位失败、unsupported model 的 `invalid_model` reason。
|
||||
5. 当前 IK 为 TypeScript 基线几何求解器,支持 single-prismatic 和 Rz+Px 链;通用 6 轴迭代 IK 与真实 Orocos KDL solver 接入后继续扩展。
|
||||
5. 当前 IK 为 TypeScript 基线几何求解器,支持 single-prismatic 和 Rz+Px 链;native 通用 6 轴迭代 IK 与 Orocos KDL solver 接入后继续扩展。
|
||||
|
||||
是否通过:通过。
|
||||
|
||||
@@ -265,6 +265,7 @@ Vitest 3.2.6
|
||||
6. `checkSingularity` 返回 `nearSingularity/manipulability/conditionNumber`,奇异场景返回 `KDL_SINGULARITY` warning。
|
||||
7. `checkJointLimits/checkVelocityLimits` 返回 `KDL_JOINT_LIMIT/KDL_VELOCITY_LIMIT/KDL_ACCEL_LIMIT` 结构化诊断。
|
||||
8. `checkReachability/checkReachabilityBatch` 基于 IK 返回可达性、关节解、残差和批量顺序。
|
||||
9. 轮次 024 已补 C ABI native `kdl_jacobian` golden 测试,覆盖 Orocos KDL `ChainJntToJacSolver` 输出的 6 x dof 矩阵。
|
||||
|
||||
是否通过:通过。
|
||||
|
||||
@@ -581,6 +582,8 @@ Vitest 3.2.6
|
||||
```bash
|
||||
npm run typecheck
|
||||
cmake --build kdl-wasm/build-wasm -j16
|
||||
npm test -- kdl-wasm/web/tests/kdl/cAbi.test.ts
|
||||
npm run test -- kdl fk jacobian checks c-abi
|
||||
npm run test -- kdl c-abi performance
|
||||
npm test
|
||||
```
|
||||
@@ -608,15 +611,20 @@ Emscripten emcc 6.0.0
|
||||
|
||||
1. `npm run typecheck` 通过。
|
||||
2. `cmake --build kdl-wasm/build-wasm -j16` 通过。
|
||||
3. `npm run test -- kdl c-abi performance` 通过,18 个测试文件共 68 个测试通过。
|
||||
4. `npm test` 通过,18 个测试文件共 70 个测试通过。
|
||||
5. C ABI 稳定导出 `kdl_init/create_robot/destroy_robot/get_robot_info/fk/fk_all_links/jacobian/ik/plan_movej/plan_movel/plan_movec/plan_path/sample_trap/last_error`。
|
||||
6. C++ ABI 现支持 `kdl_create_robot/kdl_destroy_robot/kdl_get_robot_info` 的 handle 生命周期和 JSON 输出。
|
||||
7. C ABI 失败统一通过 `kdl_last_error` 返回结构化 `code/message/diagnostics`,覆盖 `KDL_NOT_IMPLEMENTED` 和 `KDL_BUFFER_TOO_SMALL`。
|
||||
8. 新增 `KdlNativeAbi` 封装 C ABI 导出检查、缓冲区读取、返回码检查和错误归一化。
|
||||
9. 新增 `fkPose7` TypedArray 高频 FK 接口,支持复用输出缓冲区并覆盖输出维度错误。
|
||||
10. 性能基线已记录 6 轴初始化、TypedArray FK、平面 IK、1000 点批量可达性和 10 秒 4 ms 轨迹采样。
|
||||
11. 真实通用 6 轴 IK/轨迹求解仍按当前 TypeScript baseline 能力覆盖;后续接入 Orocos KDL solver 时复用本轮 ABI 和性能测试作为回归基线。
|
||||
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 个测试通过。
|
||||
6. C ABI 稳定导出 `kdl_init/create_robot/destroy_robot/get_robot_info/fk/fk_all_links/jacobian/ik/plan_movej/plan_movel/plan_movec/plan_path/sample_trap/last_error`。
|
||||
7. C++ ABI 现支持 `kdl_create_robot/kdl_destroy_robot/kdl_get_robot_info` 的 handle 生命周期和 JSON 输出。
|
||||
8. WASM wrapper 链接 Orocos KDL 最小源码集,C ABI 可从 `NormalizedRobotModel` 构造 native KDL Chain。
|
||||
9. `kdl_fk` 通过 `ChainFkSolverPos_recursive` 输出 pose7,测试覆盖 Rz+Px 链 `[pi/2, 0.4]` 的位置和四元数 golden。
|
||||
10. `kdl_jacobian` 通过 `ChainJntToJacSolver` 输出 6 x dof 行主序矩阵,测试覆盖线速度和角速度分量。
|
||||
11. 修复 native solver 生命周期:FK/Jacobian solver 在 map 内稳定 `RobotRecord` 上构造,避免持有 move 前 Chain 引用。
|
||||
12. C ABI 失败统一通过 `kdl_last_error` 返回结构化 `code/message/diagnostics`,覆盖 `KDL_NOT_IMPLEMENTED` 和 `KDL_BUFFER_TOO_SMALL`。
|
||||
13. 新增 `KdlNativeAbi` 封装 C ABI 导出检查、缓冲区读取、返回码检查和错误归一化。
|
||||
14. 新增 `fkPose7` TypedArray 高频 FK 接口,支持复用输出缓冲区并覆盖输出维度错误。
|
||||
15. 性能基线已记录 6 轴初始化、TypedArray FK、平面 IK、1000 点批量可达性和 10 秒 4 ms 轨迹采样。
|
||||
16. native IK、fkAllLinks JSON 序列化和 native 轨迹规划仍未接入;这些能力继续由 TypeScript baseline 覆盖。
|
||||
|
||||
是否通过:通过。
|
||||
|
||||
@@ -1153,7 +1161,10 @@ Vitest 3.2.6
|
||||
命令:
|
||||
|
||||
```bash
|
||||
npm run typecheck
|
||||
npm run test -- grl generator roundtrip
|
||||
npm test
|
||||
cmake --build kdl-wasm/build-wasm -j16
|
||||
```
|
||||
|
||||
验证点:
|
||||
@@ -1165,5 +1176,25 @@ npm run test -- grl generator roundtrip
|
||||
5. compact/expanded 输出。
|
||||
6. 生成后可再解析为等价对象和 IR。
|
||||
|
||||
结果摘要:待执行。
|
||||
是否通过:待验证。
|
||||
执行环境:
|
||||
|
||||
```text
|
||||
Node.js v22.23.0
|
||||
npm 10.9.8
|
||||
Vitest 3.2.6
|
||||
cmake 3.22.1
|
||||
```
|
||||
|
||||
结果摘要:
|
||||
|
||||
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` 通过。
|
||||
5. 新增 `generateGrlProgram`,从结构化 spec 生成稳定 GRL 文本和 stable ids。
|
||||
6. target 按名称稳定排序,未显式命名的 path point 自动生成 `p00/p01/...`。
|
||||
7. speed、zone、path defaults、point override、source metadata 和 operation action 输出稳定。
|
||||
8. expanded 与 compact 两种输出均可解析;生成后可进入 parser、semantic IR 和三品牌后处理链路。
|
||||
9. 修正 source metadata 字符串格式化:`id` 等外部标识保留字符串引号,`type` 等类别值可保持 GRL 标识符。
|
||||
|
||||
是否通过:通过。
|
||||
|
||||
Reference in New Issue
Block a user