Files
ParkingRobot/docs/superpowers/handoffs/em-full-direction-visualization/phase-08.md
T

5.0 KiB
Raw Blame History

EM 完整方向段可视化修复 - Phase 08 交接

状态

完成(2026-08-07)。

目标与非目标

完成主计划 Task 10、分阶段执行计划 Task 8Native Painter 几何与语义修复。 实现世界路径 x/y 等比例、LS 横轴 ReferenceS (m)、ST 纵轴真实 PathS (m)、小车轮廓与细朝向线、s_end/换向/最终目标语义。 未进入 Task 11 或 Phase 09;未修改 Web 或规划器;未做跨段规划扩展、实车操作或 Painter 重设计。 MovementTest 保持 OBSERVE_ONLY,本阶段未新增底盘、转向、制动、电机或换挡写输出。

入口事实

  • 分支:trajplanner
  • 入口 HEADd019b080746a083fc3c655e21b229e082051706aPhase 07 handoff
  • 上一阶段实现提交:8a51629edbe682de8a0fd30a82894e0420ac6c86
  • 祖先检查:8a51629d019b08 均为入口 HEAD 可追溯祖先
  • 入口暂存区为空;既有脏工作区与未跟踪内容全部保留

实现提交

37c27bdb1b41502ad23783a041a42512b3a49648 - fix: correct EM observation painter geometry

仅提交白名单文件:

  • ClumsyPilot/ParkrobTrajplanner/tarjplanner_movementtest/TrajectoryObservationPresentation.cs
  • ClumsyPilot/tests/EMPlannerVerificationHost/TrajectoryObservationChecks.cs
  • ClumsyPilot/tests/EMPlannerVerificationHost/TrajectoryObservationVisualizationChecks.cs

新接口与语义

  • TrajectoryObservationLsPresentationModel.HorizontalAxisLabelReferenceS (m)VerticalAxisLabell (m)
  • DrawPose 接受 VehicleParameters,按车辆长宽绘制四角旋转轮廓,并用 endArrow: false 绘制长度不超过半车长的细朝向线。
  • 世界路径使用同一 MillimetersPerMeter 转换 x/y;粗路径、Local G2、当前轨迹线宽收窄。
  • DrawBoundaryMarkers 绘制换向点 换向点 N / s_end(小菱形)与最终目标 终点 / s_end(小叉形),车辆标记为 车辆,计划起点为 计划起点
  • ST Painter 增加 t (s)PathS (m) 轴标签。
  • 未新增 Painter 图层、主题或生命周期;三个 Painter 窗口与清理路径保持原状。

RED 证据

先写入 Task 10 失败测试,再执行:

dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- trajectory-observation

首次有效失败: observer painter removes the large terminal arrow was false 位置:TrajectoryObservationChecks.VerifiesPainterPoseGeometryReplacesLargeArrow。 确认 RED 是当前 Painter 仍使用旧的大终端箭头,而不是环境或测试自身错误。

期间测试新增的 using System.Text 编译缺失已修复,修复后重新取得上述行为 RED。

GREEN / 回归证据

dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- trajectory-observation
rg -n "SendXYThSpeed|SendMotion|DriveStop|PredefinedDriveStop|AccumulateSpeed|SetGear|SetBrake" ClumsyPilot/ParkrobTrajplanner/tarjplanner_movementtest
git diff --check
  • trajectory-observation:退出码 0,输出 PASS trajectory-observation
  • 执行器审计:无匹配(命令无输出,退出码 1)
  • git diff --check:退出码 0,仅仓库既有 LF/CRLF 提示,无新空白错误

执行器审计与清理

MovementTest/observer 运行时源未出现任何指定执行器写调用。 实现提交仅显式暂存上述 3 个白名单文件;提交后 git diff --cached --name-only 为空。 未执行 git reset --hardgit checkout --git cleangit add .git add -A

保留的脏工作区

入口时已存在的 .gitignoreClumsyPilot.csprojEmPlannerConfiguration.cs、PathSmoothing/CoarsePath 修改或删除、未跟踪目录及报告等全部保留,本阶段未触碰。

已知警告与偏差

  • 构建输出保留两个既有 obsolete 警告:Lidar2dDetect2LegTray.LegWidthMultiWheelChassis.GetSteerWheels()
  • git diff --check 持续输出仓库既有 LF/CRLF 提示,不影响本阶段空白检查结论。
  • 本阶段未做真实 Painter 窗口截图或浏览器人工验证;自动化验证为源码/模型检查。

未运行项

  • 未进入 Phase 09 文档、全量自动化、本地 Web smoke 或实车验收。
  • 未运行 em-core-allem-all、Node DOM 测试或可视化验证宿主。
  • 未重跑 Phase 07 Web 验证;本阶段未修改 Web 文件。

Phase 09 事实

  • 下一阶段:Phase 09,对应主计划 Task 11、分阶段执行计划 Task 9。
  • 允许修改:MovementTest/EMPlanner/Web 三个 README;创建 docs/superpowers/handoffs/em-full-direction-visualization/phase-09.md;实车验收通过后才创建 phase-09-vehicle.md
  • Phase 09 自动验收命令包括 Node DOM 测试、可视化宿主、trajectory-observationem-all、完整 build、执行器审计和 git diff --check
  • 无监督安全环境时,Phase 09 自动窗口状态写 自动验收完成但实车待验,不得声称整体完成。
  • 本 handoff 提交的真实哈希由 Phase 09 调用方在最终回答中提供。