Files
ParkingRobot/docs/superpowers/specs/2026-07-28-coarsepath-readme-restructure-design.md
T

3.5 KiB

CoarsePath README 结构化重构设计

目标

ClumsyPilot/ParkrobTrajplanner/CoarsePath/README.md 重构为与 Map/README.md 一致的说明风格,使调用者能够从模块职责、文件位置和数据流开始,逐步理解粗路径的调用、状态处理、P1 手动测试与明确的非目标。

本次只重构文档内容与现有文档检查;不改变 MapCoarsePath、P1 UI 或任何测试场景的运行行为。

当前事实

  • Map 负责障碍物来源、栅格化、不可变 PlanningGridMap 与缓存;它是粗路径的输入依赖。
  • CoarsePath 已具备 P0 核心:车辆扩大足迹碰撞、前进/倒车原语、Dijkstra 启发式、Hybrid A*、路径回溯、最终复核与业务门面。
  • P1 已具备:六个固定场景、AMR 位姿与手动终点空图演示、后台取消、Painter 结果可视化与 UI 结构检查。
  • 尚不包含平滑、速度/时间轨迹、底盘控制、实时重规划、真实作业障碍物接入与 Release 基准。

README 目标结构

  1. 模块说明:定义 CoarsePath 的输入、输出、唯一业务入口与职责边界。
  2. 文件结构:按 ContractsVehicleSearchOutputFacadeTest 列出实际文件及职责。
  3. 规划数据流:说明 CoarsePathPlanningJob 经服务、Map 快照、Hybrid A* 到 PlanningResult 的固定路径;明确地图失败不会启动搜索。
  4. 状态、单位与安全边界:集中说明 mm/m、deg/rad、车辆安全外扩、取消/超时和“非成功不发布部分路径”。
  5. 最小调用示例:沿用现有可编译门面调用,展示成功、地图失败和规划失败的处理方式。
  6. 缓存与 SourceVersion:解释长期持有服务、Input/Occupancy/None 缓存层级及版本递增责任。
  7. 详细使用指南:依次说明长期服务、准备地图请求、车辆和搜索参数、调用门面、消费路径与方向段。
  8. P1 测试与调试:集中说明七个 MovementTest、AMR 手动终点单位边界、后台停止和 Painter 图例。
  9. 常见错误:用“现象 / 原因 / 处理”表格覆盖单位混用、遗漏 SourceVersion、隐式空图、错误处理失败结果、将粗路径当作控制轨迹等问题。
  10. 第一版限制:保留不属于 P0/P1 的能力清单。

内容约束

  • 仅记录已实现且已验证的行为;不把 P1 计划或人工验收说成已完成能力。
  • 固定使用 CoarsePathPlanningService.Plan(job, cancellationToken) 作为唯一业务调用示例;不鼓励 UI 直接组装搜索组件。
  • 保留 Map/README.md 链接,避免复制地图障碍物和栅格化的详细说明。
  • P1 手动终点必须明确是显式空图演示,不能代表现场无障碍;当前 AMR 位姿为车辆几何中心,输入在 UI 边界从 mm/deg 转为 m/rad。
  • 使用中文说明、目录树、数据流图、参数表、代码示例和常见错误表,保持 Map README 的信息密度与顺序。

验证

  • 扩展 ClumsyPilot/tests/verify_coarse_path_ui.ps1,以 ASCII 稳定标识检查 README 含有新的主要章节、核心门面、数据流、P1 入口、单位、停止语义、非部分路径和限制边界。
  • 运行 README 的 P1 UI 检查,以及现有 Debug 构建和粗路径集成检查;文档改动不应影响生产代码或 P0 行为。

非目标

  • 不重写或迁移 Map/README.md
  • 不新增、删除或改名 C# 类型、场景、MovementTest 或测试脚本。
  • 不恢复、清理或迁移 TrapMap 及其旧验证脚本。