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

83 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`
- 入口 HEAD`d019b080746a083fc3c655e21b229e082051706a`Phase 07 handoff
- 上一阶段实现提交:`8a51629edbe682de8a0fd30a82894e0420ac6c86`
- 祖先检查:`8a51629``d019b08` 均为入口 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.HorizontalAxisLabel``ReferenceS (m)``VerticalAxisLabel``l (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 失败测试,再执行:
```powershell
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 / 回归证据
```powershell
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 --hard``git checkout --``git clean``git add .``git add -A`
## 保留的脏工作区
入口时已存在的 `.gitignore``ClumsyPilot.csproj``EmPlannerConfiguration.cs`、PathSmoothing/CoarsePath 修改或删除、未跟踪目录及报告等全部保留,本阶段未触碰。
## 已知警告与偏差
- 构建输出保留两个既有 obsolete 警告:`Lidar2dDetect2LegTray.LegWidth``MultiWheelChassis.GetSteerWheels()`
- `git diff --check` 持续输出仓库既有 LF/CRLF 提示,不影响本阶段空白检查结论。
- 本阶段未做真实 Painter 窗口截图或浏览器人工验证;自动化验证为源码/模型检查。
## 未运行项
- 未进入 Phase 09 文档、全量自动化、本地 Web smoke 或实车验收。
- 未运行 `em-core-all``em-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-observation``em-all`、完整 build、执行器审计和 `git diff --check`
- 无监督安全环境时,Phase 09 自动窗口状态写 `自动验收完成但实车待验`,不得声称整体完成。
- 本 handoff 提交的真实哈希由 Phase 09 调用方在最终回答中提供。