# 02-项目程序开发详细步骤 版本:0.5 日期:2026-06-27 对标文档: 1. `/home/meswork/kdl_work/work/doc/KDL_WASM计算接口设计.md` 2. `/home/meswork/kdl_work/work/doc/通用机器人编程语法规范.md` 3. `/home/meswork/kdl_work/work/doc/通用机器人离线编程虚拟控制器技术方案.md` 4. `/home/meswork/kdl_work/work/doc/通用机器人项目主要实施步骤.md` 5. `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图.md` 6. `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图-png/flow-01.mmd` 到 `flow-05.mmd` 7. `/home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图-png/flow-01.png` 到 `flow-05.png` ## 1. 推荐目录 目录按五条主线组织:`grl` 负责语言、AST、语义、IR、后处理;`kdl-wasm` 负责 KDL Worker API 和运动计算;`controller` 负责虚拟控制器、IO、wait、trace;`workspace` 和 `station` 负责 OPFS、OLP 对象模型和资源;`reports/importers/ui` 负责报告、品牌导入和工作台。 ```text /home/meswork/kdl_work/ orocos_kinematics_dynamics/ orocos_kdl/ kdl-wasm/ CMakeLists.txt bindings/ kdl_c_api.cpp kdl_embind.cpp web/ src/ kdl/ kdlClient.ts kdl.worker.ts rpc.ts types.ts robot/ urdfParser.ts normalizedRobotModel.ts grl/ lexer/ parser/ ast/ semantic/ ir/ generator/ post/ abb/ fanuc/ kuka/ controller/ runtime/ io/ alarm/ debug/ workspace/ opfs.ts project.ts importExport.ts station/ stationModel.ts resources.ts olp/ model.ts path.ts operation.ts importers/ abb/ fanuc/ kuka/ reports/ reportModel.ts htmlReport.ts jsonReport.ts ui/ appShell.ts tests/ kdl/ grl/ controller/ workspace/ reports/ importers/ integration/ post/ ``` ## 2. KDL 实施线 KDL 实施顺序严格对标 `KDL_WASM计算接口设计.md` 第 24 章。 ### 2.1 KW-001:WASM 工程骨架和 Worker RPC 目标: 1. 新建 `kdl-wasm` wrapper 工程。 2. 使用 Emscripten 编译 Orocos KDL。 3. 生成 `kdl.js`、`kdl.wasm`、`kdl.d.ts`。 4. 建立 `KdlRpcRequest/KdlRpcResponse`。 5. 建立 `KdlWorkerClient`,所有 KDL API 异步调用。 核心要求: 1. KDL 运行在 Worker 中。 2. Worker 请求必须有唯一 id。 3. Worker 初始化失败可恢复并重新初始化。 4. 错误返回结构化 `{ code, message, diagnostics }`。 验收: 1. `init()` 返回 `KdlRuntimeInfo`。 2. `dispose()` 可释放 Worker。 3. Worker RPC 单元测试通过。 ### 2.2 KW-002:`NormalizedRobotModel` 到 KDL Chain 目标: 1. TypeScript 解析 URDF XML。 2. 检查 link/joint 连通性和单位。 3. 生成 `NormalizedRobotModel`。 4. WASM 根据标准模型构造 KDL `Tree/Chain`。 5. 创建 `RobotHandle` 并缓存求解器。 必须实现: 1. `loadRobotFromUrdf` 2. `createRobotFromModel` 3. `destroyRobot` 4. `getRobotInfo` 5. `getJointLimits` 验收: 1. URDF joint 顺序稳定。 2. base/tip 不连通返回 `KDL_INVALID_MODEL`。 3. 不支持 joint 类型返回诊断。 4. 机器人信息中的 `dof/jointNames/limits` 正确。 ### 2.3 KW-003:FK 和 fkAllLinks 目标: 1. 实现 `fk`。 2. 实现 `fkAllLinks`。 3. 支持 tool/frame 选项。 4. 输出法兰位姿、TCP 位姿和 link 位姿。 验收: 1. FK 与 golden 数据或原生 KDL 对比在容差内。 2. `fkAllLinks` link 数量和顺序正确。 3. 关节维度错误有结构化诊断。 ### 2.4 KW-004:IK 和 ikBatch 目标: 1. 实现 `ik`。 2. 实现 `ikBatch`。 3. 支持 seed、qMin/qMax、多 seed、容差、最大迭代次数。 4. 失败原因覆盖 `unreachable/joint_limit/singularity/max_iteration/invalid_model`。 验收: 1. IK 后 FK 回代误差小于容差。 2. `ikBatch` 返回顺序与输入顺序一致。 3. 不可达目标返回 `KDL_TARGET_UNREACHABLE` 或 `KDL_IK_FAILED`。 4. 连续点 seed 使用上一点结果。 ### 2.5 KW-005:Jacobian、奇异性和基础检查 目标: 1. 实现 `jacobian`。 2. 实现 `checkSingularity`。 3. 实现 `checkJointLimits`。 4. 实现 `checkReachability` 和 `checkReachabilityBatch`。 5. 实现 `checkVelocityLimits`。 验收: 1. Jacobian 行列数正确。 2. 奇异点附近产生 `KDL_SINGULARITY` warning。 3. 关节超限产生 `KDL_JOINT_LIMIT`。 4. 批量可达性保持输入顺序。 ### 2.6 KW-006:位姿变换和 offset 目标: 1. 实现 `normalizePose`。 2. 实现 `composePose`。 3. 实现 `inversePose`。 4. 实现 `applyToolAndFrame`。 5. 实现 `applyOffset`。 验收: 1. `pose()` 欧拉角可规范化为四元数。 2. `poseq()` 四元数可归一化。 3. `offset` 默认在 frame 下解释。 4. `offset_in tool` 和 `offset_in frame fixture` 结果正确。 ### 2.7 KW-007:梯形速度曲线 目标: 1. 实现 `makeTrapProfile`。 2. 实现 `sampleTrapProfile`。 3. 长距离输出 trapezoid。 4. 短距离自动退化为 triangle。 验收: 1. 首点 `s=0`。 2. 末点 `s=1`。 3. `s` 单调递增。 4. 所有 `TrajectoryResult` 保留实际速度曲线采样。 ### 2.8 KW-008:`planMoveJ` 目标: 1. 对应 GRL `movej`。 2. target 为 `joint_target` 时直接得到 `qEnd`。 3. target 为 `pose_target` 时先 IK。 4. 按关节速度、加速度约束计算同步运动时长。 5. 每个采样点 FK 输出 TCP。 必须诊断: 1. 目标 IK 失败。 2. 起点或终点关节超限。 3. 采样点速度或加速度超限。 4. 接近奇异点。 5. P0 zone 被近似为 fine。 ### 2.9 KW-009:`planMoveL` 目标: 1. 对应 GRL `movel`。 2. 起点由 `startJoints` FK 得到。 3. 目标点应用 tool/frame/offset。 4. 生成 TCP 直线采样。 5. 姿态使用 fixed 或 slerp。 6. 每个采样点 IK,seed 使用上一采样点关节。 必须诊断: 1. 目标不可达。 2. 采样点 IK 失败。 3. TCP 直线误差超过容差。 4. 姿态误差超过容差。 5. 关节配置突变。 6. 速度或加速度超限。 ### 2.10 KW-010:`planMoveC` 目标: 1. 对应 GRL `movec via ... target ...`。 2. 起点由当前关节 FK 得到。 3. via 和 target 应用 tool/frame/offset。 4. 检查三点重合或近似共线。 5. 计算圆心、半径、法向、角度、弧长。 6. 每个圆弧采样点 IK。 7. `TrajectoryResult.meta.circle` 包含 `CirclePlanMeta`。 必须诊断: 1. via 或 target 不可达。 2. 三点重合、近似重合或近似共线。 3. 半径过小或弧长过短。 4. 采样点 IK 失败。 5. 圆弧误差超过容差。 6. 速度或加速度超限。 ### 2.11 KW-011:`planPath` 和 `validatePath` 目标: 1. `planPath` 用于 `run_path` 展开后的整条路径轨迹生成。 2. `validatePath` 用于离线编程路径验证。 3. `run_operation` 在 TypeScript 层展开,KDL 只处理 motion segment。 验收: 1. 段顺序正确。 2. 上一段终点关节作为下一段起点。 3. 合并后轨迹点重新编号和更新时间。 4. 保留 `segmentId/targetId/sourceMap`。 5. 空路径返回 `KDL_PATH_EMPTY`。 ### 2.12 KW-012:节拍估算、重采样和诊断报告 目标: 1. 实现 `estimateCycleTime`。 2. 实现 `resampleTrajectory`。 3. KDL 只估算运动时间。 4. waitTime、ioTime 由调用方补充。 验收: 1. `CycleTimeResult.motionTime/totalTime/segmentTimes` 正确。 2. 重采样后轨迹时间、点序、source map 稳定。 3. error/warning/info 分级正确。 ### 2.13 KW-013:C ABI / Embind 和性能优化 目标: 1. 底层导出稳定 C ABI。 2. TypeScript API 包装 C ABI 或 Embind。 3. 高频 FK/IK 增加 TypedArray 版本。 4. RobotHandle 缓存 FK、IK、Jacobian solver。 5. 长路径分块计算或提供进度。 性能目标: 1. 单机器人 6 轴初始化小于 1 秒。 2. 单次 FK 小于 1 ms。 3. 单次 IK 平均小于 10 ms。 4. 1000 个目标点批量可达性检查在可接受交互时间内完成。 5. 10 秒轨迹按 4 ms 采样约 2500 点可稳定生成和回放。 ## 3. GRL 实施线 GRL 实施顺序严格对标 `通用机器人编程语法规范.md` 第 24 章。 ### 3.1 KW-100:Lexer、单位和关键字 目标: 1. UTF-8 输入。 2. 识别单行、多行注释。 3. 识别标识符、字符串、数字、单位。 4. 识别保留关键字。 5. 单位规范化到 SI。 验收: 1. `100 mm` -> `0.1 m`。 2. `180 deg` -> `pi rad`。 3. `300 mm/s` -> `0.3 m/s`。 4. 注释位置可保留。 ### 3.2 KW-101:Parser 和 AST 骨架 目标: 1. 实现 EBNF 第 22 章主体。 2. 支持 `language grl 0.1`。 3. 支持 `module/import/end`。 4. 支持 top-level declarations。 5. AST 保留 source range、原始单位文本、规范化值和 metadata。 验收: 1. 最小文件可解析。 2. 错误行列号准确。 3. AST snapshot 稳定。 ### 3.3 KW-102:数据声明、类型系统和目标点 目标: 1. `const/var/persistent`。 2. 基础类型和机器人类型。 3. `tool/frame/load`。 4. `joint_target/pose_target`。 5. `pose/poseq/robot_config/ext_axis`。 6. `speed/zone`。 7. `offset/offset_in`。 验收: 1. 类型 AST 正确。 2. target 能编译为 `JointTarget/PoseTarget`。 3. speed/zone 能编译为 `SpeedSpec/ZoneSpec`。 4. offset 能编译为 `OffsetSpec`。 ### 3.4 KW-103:运动指令和当前上下文 目标: 1. `movej` 2. `movel` 3. `movec` 4. `set_tool` 5. `set_frame` 6. `set_speed` 7. `set_zone` 编译规则: 1. 显式运动参数优先。 2. path defaults 次之。 3. target 自带 tool/frame 次之。 4. 当前控制器状态最低。 5. 编译到 IR 前必须解析出确定 tool/frame/speed/zone。 验收: 1. `movej` 可生成 `MotionInstruction(joint)`。 2. `movel` 可生成 `MotionInstruction(linear)`。 3. `movec` 可生成 `MotionInstruction(circular)`。 4. `movej/movel/movec` 可生成 KDL request。 ### 3.5 KW-104:Path、event 和 `run_path` 目标: 1. `path` 2. `defaults` 3. `source` 4. `point` 5. `event before/after` 6. `event at ... distance` 7. `run_path` 编译语义: 1. 展开 defaults、points、events。 2. 每个 point 变为 Motion IR。 3. event 变为 IO/Wait/Process IR。 4. 保留 pathId、pointId、source metadata。 验收: 1. 空 path 报错。 2. 重复 point 名称报错。 3. `run_path` 可生成 `PathPlanRequest`。 ### 3.6 KW-105:Operation 和 `run_operation` 目标: 1. `operation` 2. `kind` 3. `path` 4. `process` 5. `start_action` 6. `end_action` 7. `run_operation` 编译语义: 1. 执行 start action。 2. 执行引用 path。 3. 执行 end action。 4. 保留工艺参数,供仿真、报告和后处理使用。 验收: 1. Operation 引用不存在 Path 报错。 2. `run_operation` 可展开为 action + path + action。 3. KDL 只接收展开后的 motion segment。 ### 3.7 KW-106:IO、wait 和 pulse 目标: 1. `io.di/do/ai/ao/gi/go/ri/ro`。 2. `io.alias.*`。 3. IO 赋值。 4. `wait` 条件。 5. `timeout`。 6. `on_timeout alarm/call`。 7. `all/any/rising/falling/changed`。 8. `pulse`。 验收: 1. IO 地址可按 io_map 或允许范围校验。 2. wait 条件可编译为 WaitInstruction。 3. pulse trace 必须包含置位和复位事件。 4. IO/wait 不进入 KDL。 ### 3.8 KW-107:流程控制 目标: 1. `if/elseif/else` 2. `while` 3. `for` 4. `switch/case/default` 5. `break` 6. `continue` 7. `label` 8. `jump` 验收: 1. 条件表达式必须为 bool。 2. `break/continue` 位置合法。 3. `switch case` 为常量表达式且不重复。 4. `jump` 不能跳入非法块结构。 ### 3.9 KW-108:proc、func、参数方向和作用域 目标: 1. `proc`。 2. `func`。 3. `call`。 4. `return`。 5. `in/out/inout`。 6. 作用域和名称解析。 7. 递归 warning 或 error。 验收: 1. `out` 参数所有正常返回路径赋值。 2. `inout/out` 实参必须为左值。 3. `func` 所有正常返回路径返回兼容类型。 4. `func` 默认不允许执行运动、wait、pulse、run_path、run_operation。 ### 3.10 KW-109:异常、报警、中断和多任务语法 目标: 1. `alarm` 2. `raise` 3. `try/catch/finally` 4. `trap` 5. `interrupt` 6. `enable/disable interrupt` 7. `task ... cycle ...` 范围: 1. P0 至少实现 `alarm`、`raise` 和简单 `catch`。 2. `trap/interrupt/task` 按 P1 语法保留,可先不做完整调度。 验收: 1. AST 能表达全部语法。 2. P0 支持 alarm/raise/try/catch 基础语义。 3. P1 未实现语义在后处理或运行时报明确诊断。 ### 3.11 KW-110:语义检查、IR 和 source map 目标: 1. Symbol Table。 2. Semantic Analyzer。 3. Executable IR。 4. Source map。 5. GRL 到 KDL request 的编译桥接。 必须检查: 1. 语法规范第 21 章全部 22 项。 2. KDL 可达性、关节限位和圆弧退化。 3. 后处理目标品牌是否支持所用语义。 验收: 1. 完整示例可编译为 IR。 2. IR 运动指令可映射到 KDL request。 3. source map 能定位 GRL 行列、path point、operation。 ### 3.12 KW-111:ABB、FANUC、KUKA 后处理原型 目标: 1. ABB RAPID 映射。 2. FANUC LS/TP 风格映射。 3. KUKA KRL 映射。 4. 后处理报告。 5. `post_hint` 和 `@brand.*`。 验收: 1. `movej/movel/movec` 三品牌 golden file 通过。 2. target/tool/frame/speed/zone 映射正确。 3. IO/wait 基础映射正确。 4. 不支持语义进入转换报告。 ### 3.13 KW-112:自动生成规则和往返 目标: 1. 自动生成程序优先生成 target/path/operation。 2. 点名稳定。 3. path defaults 和单点 override 稳定。 4. source metadata 稳定。 5. compact/expanded 输出风格。 6. 生成 GRL 可再解析回等价对象。 验收: 1. 同一输入重复生成结果一致。 2. 生成文本可 diff。 3. 生成文本可解析、语义检查并后处理。 ## 4. 虚拟控制器、工作区和交付实施线 以下任务对标 `通用机器人离线编程虚拟控制器技术方案.md`、`通用机器人项目主要实施步骤.md` 和 `通用机器人项目功能与数据流程图.md`,在 KDL/GRL P0 闭合后继续推进。 ### 4.1 KW-200:OLP 对象模型和 Station/Resource 基础 目标: 1. 定义 `OlpProjectModel`。 2. 定义 Robot、Tool、Frame、Target、Path、PathPoint、Operation、Program、PostProfile。 3. 定义 Station、Cell、Fixture、Part、Device、Geometry、Calibration、Report 基础模型。 4. 建立对象树和文件资源之间的映射。 5. 支持从 Path/Operation 对象生成 GRL,并从 GRL/品牌导入结果回填对象模型。 验收: 1. 对象模型 schema 有单元测试。 2. PathModel 可生成稳定 GRL。 3. OperationModel 可展开为 IR 或 GRL。 4. 品牌导入恢复出的 target/path/program 可作为对象模型 patch 应用。 ### 4.2 KW-201:OPFS Workspace 和项目导入导出 目标: 1. 实现 `/projects/{projectId}` 布局。 2. 实现 `project.json` manifest。 3. 实现 `listProjects/openProject/createProject`。 4. 实现 `readText/writeText/readJson/writeJson/delete`。 5. 实现 snapshot。 6. 实现 zip 导入导出。 7. 实现存储占用、迁移、备份和损坏检测。 验收: 1. 新建项目后生成约定目录和 manifest。 2. GRL、URDF、targets、paths、operations、io map、post profile 可保存和读取。 3. 导出 zip 后再导入能恢复等价项目。 4. OPFS 不可见性通过显式导出和快照缓解。 ### 4.3 KW-202:虚拟控制器状态机和执行内核 目标: 1. 实现 `PowerOff/Booting/MotorsOff/Ready/Manual/Auto/Running/Hold/Fault/EmergencyStop`。 2. 实现 `powerOn/powerOff/motorsOn/motorsOff/loadProgram/start/hold/resume/stop/resetFault/stepInto/stepOver/stepMotion`。 3. 实现 Program Counter、Call Stack、Scope Stack、Timer Table、Alarm Queue、Trace Buffer、Source Map。 4. 执行 `Executable IR`,不直接解释品牌文本。 5. 支持单主任务 `Task MAIN`。 验收: 1. 状态转换非法路径有诊断。 2. 可执行无运动逻辑程序。 3. 当前行、变量、调用栈和报警可查询。 4. hold 暂停虚拟时间,stop/reset 清理 ActiveWait 和 Motion Queue。 ### 4.4 KW-203:Motion Queue 和 KDL 运行桥接 目标: 1. 将 MotionInstruction、Path point、Operation 展开为 `MotionQueueItem`。 2. 运行时调用 `planMoveJ/planMoveL/planMoveC/planPath`。 3. 按虚拟时间推进轨迹采样。 4. 保留 `instructionId/pathId/pathPointId/operationId/sourceMap`。 5. 支持运动失败报警和 trace。 验收: 1. `run_path` 能驱动虚拟机器人状态变化。 2. `run_operation` 能执行 start action、path、end action。 3. UI 或测试可从当前运动定位回 GRL 行、Path point 和 Operation。 4. IK、限位、奇异、圆弧退化诊断进入 Alarm Queue 和报告数据。 ### 4.5 KW-204:虚拟 IO、Wait、Pulse 和 IO 脚本 目标: 1. 实现 IO Image、Alias Table、Event Queue、Wait Registry、Edge Detector、IO Script Engine、Trace Logger。 2. 实现 IO 读写权限规则。 3. 实现 `wait` 立即求值、ActiveWait、timeout、on_timeout。 4. 实现 `rising/falling/changed` 边沿检测。 5. 实现 `pulse` 按虚拟时间自动复位。 6. 实现 IO script delay 和触发器。 验收: 1. 用户可手动切换虚拟输入满足 wait。 2. IO 脚本可延迟写入输入满足 wait。 3. wait timeout 可产生报警或执行 on_timeout。 4. hold 时 timeout 暂停,stop/reset 时 ActiveWait 取消。 5. IO trace 顺序稳定,包含 read/write/wait/pulse 事件。 ### 4.6 KW-205:Web 工作台和调试界面 目标: 1. 建立第一屏工作台,而不是营销页。 2. 实现项目对象树。 3. 实现程序编辑器、路径编辑器、Operation 编辑器。 4. 实现虚拟示教器、控制器面板、运动监控、IO 面板。 5. 实现日志、报警、Wait 调试面板、后处理报告视图。 6. 支持项目导入导出、后处理导出和客户交付包入口。 验收: 1. 用户能新建项目、导入 URDF、编辑 GRL、运行程序。 2. 当前行、变量、IO、报警、TCP、关节、Path point、Operation 可见。 3. Wait 卡住时显示表达式、子表达式值、已等待时间、剩余 timeout、相关 IO 最近变化和 IO 脚本状态。 4. 诊断可从 UI 定位回源程序、Path、Operation 或品牌源。 ### 4.7 KW-206:验证、报告和客户交付包 目标: 1. 可达性报告。 2. 基础碰撞报告接口和数据模型。 3. 节拍报告,分解 motion/wait/IO script delay。 4. IO/Wait 报告。 5. 后处理报告。 6. 品牌导入报告。 7. JSON/HTML 报告导出。 8. 客户交付包 zip。 验收: 1. 报告 JSON schema 稳定。 2. HTML 报告可打开并包含关键摘要。 3. 客户交付包包含 GRL、品牌程序、目标点、路径、IO map、报告和可选 trace。 4. 不可达点、IK 失败、wait timeout、后处理近似和品牌导入丢失语义能定位到 source map。 ### 4.8 KW-207:品牌程序导入 MVP 目标: 1. 实现 ABB RAPID 文本导入原型。 2. 实现 KUKA KRL `.src/.dat` 导入原型。 3. 实现 FANUC LS 风格文本导入原型。 4. 生成 Brand AST。 5. 转换为统一 IR。 6. 尽量恢复 GRL、target、path、program。 7. 输出品牌导入转换报告。 验收: 1. 至少一种品牌程序可导入、转换为 IR 并在虚拟控制器中运行。 2. 三品牌导入 golden case 可解析主要运动、目标点、工具、坐标系、速度、过渡和 IO。 3. 不支持或近似语义必须进入导入报告,不能静默丢失。 4. FANUC 首版只承诺 LS 风格或可读文本,不承诺 TP 二进制。 ### 4.9 KW-208:几何、碰撞、校准和商业级 OLP 扩展 目标: 1. 资源库管理。 2. Mesh/CAD 转换文件导入。 3. 从点、边、曲线、面法向生成 Path。 4. 工艺模板库。 5. TCP、Frame、Base 校准数据。 6. 基础碰撞检测。 7. 商业级客户交付流程。 验收: 1. 可从几何曲线生成 Path。 2. 可使用工艺模板生成 Operation。 3. 可执行基础碰撞检测并定位对象和时间点。 4. 可保存和应用校准数据。 5. 可生成商业级客户交付包。 ### 4.10 KW-209:虚拟调试增强和跨源定位 目标: 1. 实现断点。 2. 实现单步进入、单步越过。 3. 实现运动断点。 4. 实现轨迹回放。 5. 实现变量 watch。 6. 实现 IO 脚本调试。 7. 实现 GRL、Path、Operation、品牌源程序与 IR 的跨源定位。 验收: 1. 可像调试程序一样调试机器人逻辑。 2. 可复现运行 trace。 3. 可定位 IK、IO、逻辑错误。 4. 可在 GRL、Path、Operation、品牌源程序之间定位同一条运动。 ### 4.11 KW-210:多机器人、外部轴和真实控制器校验扩展 目标: 1. 扩展任务模型,支持多机器人任务、后台任务、独立 IO 任务和监控任务。 2. 扩展运动组和外部轴数据结构。 3. 保留外部轴协调和复杂工作站接口。 4. 建立真实控制器校验流程边界。 5. 支持离线/现场差异比对和校验报告。 验收: 1. 多机器人和外部轴进入对象模型、IR、任务模型和报告 schema。 2. 真实控制器通信不作为 MVP 实时联调目标,但现场低速验证、差异记录和校验报告流程明确。 3. 外部轴相关 KDL P1 能力有接口占位和诊断边界。 ### 4.12 KW-211:流程图资产覆盖和同步维护 目标: 1. 将 `flow-01.mmd/png` 纳入总体功能流程覆盖。 2. 将 `flow-02.mmd/png` 纳入 GRL 编译与执行流程覆盖。 3. 将 `flow-03.mmd/png` 纳入 KDL WASM 计算流程覆盖。 4. 将 `flow-04.mmd/png` 纳入数据传递流程覆盖。 5. 将 `flow-05.mmd/png` 纳入诊断传递流程覆盖。 6. 建立流程图源、渲染图、文档章节、任务矩阵和验收证据的同步检查。 验收: 1. `.mmd` 文件和 `.png` 文件均被证据记录。 2. 每张流程图能映射到至少一个功能章节和任务编号。 3. Mermaid 源和 PNG 渲染图缺失或新增时,文档一致性检查会提示。 4. 流程图变更能追溯到对应任务和验收证据。 ## 5. 集成顺序 1. KW-001 + KW-100 + KW-101:基础工程、Worker RPC、Lexer/Parser 骨架。 2. KW-002 + KW-102:URDF/标准模型和 GRL target/tool/frame/speed/zone。 3. KW-003 到 KW-006 + KW-103:运动指令编译到 KDL FK/IK/变换。 4. KW-007 到 KW-010:梯形速度、MOVEJ、MOVEL、MOVEC。 5. KW-104 + KW-011:Path 编译为 `PathPlanRequest`,KDL 生成整条路径。 6. KW-105 + KW-011:Operation 展开后复用 Path 规划。 7. KW-106 到 KW-110:完成 P0 语义检查和 IR。 8. KW-111:三品牌后处理原型。 9. KW-112 + KW-013:自动生成、性能和批量优化。 10. KW-200 + KW-201:OLP 对象模型和 OPFS 工作区。 11. KW-202 + KW-203:虚拟控制器状态机、执行内核和 Motion Queue。 12. KW-204:虚拟 IO、wait、pulse 和 IO 脚本。 13. KW-205:Web 工作台和调试界面。 14. KW-206:验证、报告和客户交付包。 15. KW-207:品牌程序导入 MVP。 16. KW-208:几何、碰撞、校准和商业级 OLP 扩展。 17. KW-209:虚拟调试增强和跨源定位。 18. KW-210:多机器人、外部轴和真实控制器校验扩展。 19. KW-211:流程图资产覆盖和同步维护。 ## 6. 通用命令约定 实际命令以工程 `package.json` 和 CMake 配置为准。文档验收要求每个阶段至少提供等效命令: ```bash npm run typecheck npm run test -- grl npm run test -- kdl npm run test -- integration npm run test -- post npm run test -- controller npm run test -- workspace npm run test -- reports npm run test -- importers npm run build ``` KDL WASM 构建: ```bash cd /home/meswork/kdl_work emcmake cmake -S kdl-wasm -B kdl-wasm/build-wasm \ -DCMAKE_BUILD_TYPE=Release \ -DKDL_SOURCE_DIR=/home/meswork/kdl_work/orocos_kinematics_dynamics/orocos_kdl cmake --build kdl-wasm/build-wasm -j16 ```