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

2.2 KiB

EM Complete Direction Visualization — Phase 02 Handoff

Status

Complete on 2026-08-06.

Implementation commit: 3269d55feat: derive adaptive full-segment ST schedule

Delivered scope

  • Full-direction ST optimization knots and T_end are derived from the actual Local G2 PathS speed/stopping envelope and physical jerk/acceleration reachability.
  • LongitudinalKnotSchedule is an optimization-only contract: knot times, PathS/speed references, and an explicit terminal-hold start index. It intentionally contains no reference candidate.
  • Full exact stops first execute a bounded deterministic S/U/A/J feasibility QP through the injected IQpSolver. It uses nonuniform exact dynamics, actual-PathS speed-envelope relinearization, initial/terminal/hold equalities, hard acceleration/jerk bounds, and a shared solver budget.
  • Only a strictly validated candidate can become a fallback. A timeout before one exists returns SolverTimedOut; a later timeout returns SuccessWithFallback.
  • Full-scope publication resamples the optimized candidate and does not append the rolling zero-speed hold twice. Rolling-horizon publication behavior remains unchanged.

Tests

The following commands were run sequentially with exit code 0:

dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- longitudinal-model
dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- longitudinal-integration
dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- trajectory
dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- em-core-all

em-core-all was rerun after the implementation commit and passed. The only warnings were existing obsolete API warnings for Lidar2dDetect2LegTray.LegWidth and MultiWheelChassis.GetSteerWheels().

Worktree safeguards

The existing user changes in EmPlannerConfiguration.cs and MovementTest.TrajectoryObservationTest.cs, together with unrelated dirty changes, were not edited or staged.

Phase 03+ work (static start, NoProgress, terminal world pose, MovementTest, Web, Painter) remains out of scope.