Files
KDL_WORK/working/02-项目程序开发详细步骤.md
2026-06-28 08:20:33 +08:00

24 KiB
Raw Blame History

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.mmdflow-05.mmd
  7. /home/meswork/kdl_work/work/doc/通用机器人项目功能与数据流程图-png/flow-01.pngflow-05.png

1. 推荐目录

目录按五条主线组织:grl 负责语言、AST、语义、IR、后处理kdl-wasm 负责 KDL Worker API 和运动计算;controller 负责虚拟控制器、IO、wait、traceworkspacestation 负责 OPFS、OLP 对象模型和资源;reports/importers/ui 负责报告、品牌导入和工作台。

/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-001WASM 工程骨架和 Worker RPC

目标:

  1. 新建 kdl-wasm wrapper 工程。
  2. 使用 Emscripten 编译 Orocos KDL。
  3. 生成 kdl.jskdl.wasmkdl.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-002NormalizedRobotModel 到 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 正确。

目标:

  1. 实现 fk
  2. 实现 fkAllLinks
  3. 支持 tool/frame 选项。
  4. 输出法兰位姿、TCP 位姿和 link 位姿。

验收:

  1. FK 与 golden 数据或原生 KDL 对比在容差内。
  2. fkAllLinks link 数量和顺序正确。
  3. 关节维度错误有结构化诊断。

2.4 KW-004IK 和 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_UNREACHABLEKDL_IK_FAILED
  4. 连续点 seed 使用上一点结果。

2.5 KW-005Jacobian、奇异性和基础检查

目标:

  1. 实现 jacobian
  2. 实现 checkSingularity
  3. 实现 checkJointLimits
  4. 实现 checkReachabilitycheckReachabilityBatch
  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 tooloffset_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-008planMoveJ

目标:

  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-009planMoveL

目标:

  1. 对应 GRL movel
  2. 起点由 startJoints FK 得到。
  3. 目标点应用 tool/frame/offset。
  4. 生成 TCP 直线采样。
  5. 姿态使用 fixed 或 slerp。
  6. 每个采样点 IKseed 使用上一采样点关节。

必须诊断:

  1. 目标不可达。
  2. 采样点 IK 失败。
  3. TCP 直线误差超过容差。
  4. 姿态误差超过容差。
  5. 关节配置突变。
  6. 速度或加速度超限。

2.10 KW-010planMoveC

目标:

  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-011planPathvalidatePath

目标:

  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-013C 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-100Lexer、单位和关键字

目标:

  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-101Parser 和 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-104Path、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-105Operation 和 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-106IO、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-108proc、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 至少实现 alarmraise 和简单 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-111ABB、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-200OLP 对象模型和 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-201OPFS 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-203Motion 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-205Web 工作台和调试界面

目标:

  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-102URDF/标准模型和 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-011Path 编译为 PathPlanRequestKDL 生成整条路径。
  6. KW-105 + KW-011Operation 展开后复用 Path 规划。
  7. KW-106 到 KW-110完成 P0 语义检查和 IR。
  8. KW-111三品牌后处理原型。
  9. KW-112 + KW-013自动生成、性能和批量优化。
  10. KW-200 + KW-201OLP 对象模型和 OPFS 工作区。
  11. KW-202 + KW-203虚拟控制器状态机、执行内核和 Motion Queue。
  12. KW-204虚拟 IO、wait、pulse 和 IO 脚本。
  13. KW-205Web 工作台和调试界面。
  14. KW-206验证、报告和客户交付包。
  15. KW-207品牌程序导入 MVP。
  16. KW-208几何、碰撞、校准和商业级 OLP 扩展。
  17. KW-209虚拟调试增强和跨源定位。
  18. KW-210多机器人、外部轴和真实控制器校验扩展。
  19. KW-211流程图资产覆盖和同步维护。

6. 通用命令约定

实际命令以工程 package.json 和 CMake 配置为准。文档验收要求每个阶段至少提供等效命令:

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 构建:

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