4.3 KiB
4.3 KiB
EM 观察网页可视化阶段 04 交接
状态:完成
阶段目标:完成集成计划 Task 1–2 的观察参数同步、网页/Painter 冻结开关,以及纯顺序方向段换向确认状态机;不实现活动段控制器、图表适配、网页托管或插件发布。
基线提交:0bc8df9d5ecabd259dbd4d5db8594e590fbd0012(阶段 03 交接)。b0b79e5 已核对为祖先。
实现提交:
c5ea4f6feat: configure observation visualization0a9c34dfeat: track observed direction segments
修改文件:
ClumsyPilot/ParkrobTrajplanner/tarjplanner_movementtest/TrajectoryObservationContracts.csClumsyPilot/ParkrobTrajplanner/tarjplanner_movementtest/MovementTest.TrajectoryObservationTest.csClumsyPilot/ParkrobTrajplanner/tarjplanner_movementtest/README.mdClumsyPilot/ParkrobTrajplanner/tarjplanner_movementtest/TrajectoryObservationSegmentTracker.csClumsyPilot/tests/EMPlannerVerificationHost/TrajectoryObservationSettingsChecks.csClumsyPilot/tests/EMPlannerVerificationHost/TrajectoryObservationSegmentChecks.csClumsyPilot/tests/EMPlannerVerificationHost/TrajectoryObservationChecks.cs
新增或确认的接口:
TrajectoryObservationSettings的默认求解器超时、OSQP 迭代和 ST 时域分别冻结为5.0 s、100000、2.0 s;新增网页/Painter、端口、10 Hz、60 轮历史及换向确认参数,端口仅允许0或1024..65535。- MovementTest 的公共字段与上述设置一对一复制,然后通过
CreateValidatedSnapshot()冻结;网页与 Painter 默认关闭,网页自动打开默认开启。 TrajectoryObservationSegmentTracker、TrajectoryObservationSegmentState、TrajectoryObservationSegmentUpdate和TrajectoryObservationSegmentPhase为纯状态机接口。它仅按N -> N+1推进,并要求匹配的已到绝对末点 GearSwitch 轨迹、双段连接点投影、连续真实停车保持和三个严格递增的同向速度样本。错误方向、零速、重复序列、投影超限、非 GearSwitch 与时间倒退均重置确认;末段进入Completed。
验证命令与结果:
git merge-base --is-ancestor b0b79e5 HEAD:退出码0。dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- trajectory-observation:退出码0,输出PASS trajectory-observation。Task 2 的 GREEN 连续运行两次均通过;最终退出验证再次通过。dotnet run --project ClumsyPilot/tests/TrajectoryPlanningVisualizationVerificationHost/TrajectoryPlanningVisualizationVerificationHost.csproj:退出码0,输出PASS trajectory-planning-visualization。rg -n "SendXYThSpeed|SendMotion|DriveStop|PredefinedDriveStop|AccumulateSpeed" ClumsyPilot/ParkrobTrajplanner/tarjplanner_movementtest:退出码1,无匹配;观察运行源码没有这些接口调用。TrajectoryObservationChecks.cs中存在同名字符串,仅用于读取运行时源文件并执行禁止调用审计,不是运行时调用。git diff --check c5ea4f6^..0a9c34d -- <阶段 04 文件>:退出码0,无空白错误。git diff-tree --no-commit-id --name-status -r c5ea4f6仅列出 Task 1 的五个文件;同命令对0a9c34d仅列出 Task 2 的三个文件。
未运行的验证及原因:无。
已知警告或遗留问题:主项目构建保留两个既有 obsolete 警告,位于 MovementTests.TireFollowing.cs 与 TireFollowing.cs,均不属于本阶段文件。启动时工作区有 130 项脏变更、暂存区为空;本阶段只精确暂存和提交了 Task 1–2 文件,交接前其余 129 项仍未展开、重置或提交。
与原计划的偏差:首次基线构建因本次命令遗留的 MSBuild 节点短暂锁定 TrajectoryPlanningVisualization.dll 而失败(CS2012)。确认 PID 的启动时间和命令行后仅终止该本次失败命令的孤立节点,随后原样重跑两个基线入口并通过;没有代码偏差。
下一阶段注意事项:阶段 05 仅实施集成计划 Task 3。必须使用本阶段 tracker 的不可变状态作为唯一活动方向段来源;同段保留当前协调器轨迹作为 seed,跨方向时更换协调器且新段第一次请求的 PreviousTrajectory 必须为 null。继续保持 OBSERVE_ONLY,不得引入执行器写调用。