Files
ParkingRobot/docs/superpowers/progress/em-planner-progress.md
T

14 KiB
Raw Blame History

EM Planner Execution Progress

Current State

  • Current stage: 5 — LS model and geometry validation
  • Stage status: Completed
  • Current branch: trajplanner
  • Last checkpoint commit: 0c48a7d (last Stage 5 functional commit; this file is the Stage 5 checkpoint)
  • Protocol design baseline: 554c84f
  • Implementation-plan baseline: 8dd8ff0

Completed Tasks

Stage Plan Tasks Commits Verification
1 2026-08-03-em-planner-foundation-implementation.md Task 1 — Verification Host and Immutable Contracts e12eb31 RED: foundation failed with missing VehicleMotionState/EmTrajectoryPoint; GREEN: foundation printed PASS foundation with exit 0.
1 2026-08-03-em-planner-foundation-implementation.md Task 2 — Configuration, Diagnostics, and Request Validation b326431 RED: foundation failed with missing configuration/validation types; GREEN: foundation printed PASS foundation twice with byte-identical stdout and exit 0.
1 2026-08-03-em-planner-foundation-implementation.md Task 3 — Direction Segmentation and Exact Boundary Anchors e492e16 RED: segmentation failed with missing ReferencePathSegmenter; GREEN: foundation and segmentation each printed their PASS line with exit 0.
2 2026-08-03-em-planner-foundation-implementation.md Task 4 — Reverse-Safe Frenet Projection and Reconstruction 06687e2 RED: frenet failed with missing Frenet types including FrenetProjector; GREEN: PASS frenet with forward/reverse sign, yaw-wrap, bounded U-branch, singular-denominator, and reconstruction checks.
2 2026-08-03-em-planner-foundation-implementation.md Task 5 — Topology-Preserving Static Corridor 2d252ff RED: corridor failed with missing static-corridor types; GREEN: PASS corridor, followed by all-foundation with all four PASS lines.
2 2026-08-03-em-planner-foundation-implementation.md Task 6 — Foundation Documentation and Gate aa62d6b RED: Foundation README was absent; GREEN: README contract scan passed. Placeholder/format scans passed, all-foundation passed twice with identical four-line stdout, and the normal-project baseline contained only legacy auto_avoidance errors.
3 2026-08-03-em-planner-osqp-backend-implementation.md Task 1 — Solver-Neutral Sparse QP Contracts 104081e RED: optimization failed with missing SparseTripletBuilder; GREEN: PASS optimization covered deterministic CSC canonicalization, duplicate summation, zero dropping, upper-triangular Hessians, QP validation, and defensive copies.
3 2026-08-03-em-planner-osqp-backend-implementation.md Task 2 — Reproducible OSQP 1.0.0 Native Package 2abb465 RED: the planned package script was absent; GREEN: the fixed-tag build printed OSQP v1.0.0 win-x64 package ready. The package contains the pinned DLL, license files, version/build flags, and lowercase SHA-256 manifest; dumpbin verified x64 and the four required exports.
3 2026-08-03-em-planner-osqp-backend-implementation.md Task 3 — Absolute-Path Native Loader and ABI Structures 39c1708 RED: osqp-loader failed with missing OsqpNativeLoader; GREEN: PASS osqp-loader verified missing/corrupt DLL diagnostics, real 1.0.0 loading from a copied plugin directory, and one stable handle across 16 parallel first-use calls.
4 2026-08-03-em-planner-osqp-backend-implementation.md Task 4 — OSQP Solve Lifecycle and Status Mapping a957fda RED: osqp-loader failed with missing OsqpNativeSolver; GREEN: fixed bounded, equality, infeasible and one-tick time-limit QPs pass inside a copied clean-plugin process. Status values 111 map to the planner-neutral contract, with finite metrics and captured native status. Twenty exact osqp solve/cleanup cycles printed PASS osqp-solve and PASS osqp-loader on every iteration.
4 2026-08-03-em-planner-osqp-backend-implementation.md Task 5 — Backend Completion Gate 61dfa79 RED: osqp was rejected by the verification-host command parser; GREEN: it runs the full solver/loader group. README now records the pinned package, deployment layout, absolute-load rule, ownership and status mapping. dumpbin /dependents found only Windows/runtime DLLs; an externally located working directory still loaded a copied clean plugin bundle and solved the micro QPs.
5 2026-08-03-em-planner-lateral-ls-implementation.md Task 1 — Variable Layout and Exact Discrete Lateral Dynamics c225b17 RED: lateral-model failed to build with missing LateralVariableLayout; GREEN: PASS lateral-model covered contiguous 4N-1 indices, range checks, unequal-S exact integration, station/corridor/start validation, defensive copies, and the lateral result publication contract.
5 2026-08-03-em-planner-lateral-ls-implementation.md Task 2 — Normalized Objective and Linear Hard Constraints f703d41 RED: lateral-model failed to build with missing LateralObjectiveBuilder; GREEN: PASS lateral-model inspected normalized P/q coefficients with 1e-12 comparisons, exact integration equalities, finite hard bounds, goal/gear versus rolling terminal behavior, empty-intersection early failure, and the solver-neutral fake-QP boundary.
5 2026-08-03-em-planner-lateral-ls-implementation.md Task 3 — Nonlinear Geometry Evaluation and Independent Validation 0c48a7d RED: lateral-model failed to build with missing LateralGeometryEvaluator; GREEN: PASS lateral-model covered straight and constant-curvature references in forward/reverse, full Frenet curvature, actual strictly increasing PathS, curvature/yaw-rate signs, and rejection of denominator, curvature, non-finite, and independently recomputed world-geometry violations.

Current Verification

  • Commands:
    • dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- lateral-model
    • 1..20 | ForEach-Object { dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- osqp; if ($LASTEXITCODE -ne 0) { throw "OSQP verification failed on iteration $_" } }
    • dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- optimization
    • dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- osqp-loader
    • dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- all-foundation
    • C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\bin\Hostx64\x64\dumpbin.exe /dependents ClumsyPilot/ThirdParty/OSQP/win-x64/osqp.dll
    • Clean copied plugin bundle: run EMPlannerVerificationHost.exe osqp-probe from a separate working directory.
    • git diff --check
  • Result: The Stage 5 lateral-model gate exited 0 after all three Task commits. It proves the 4N-1 layout, exact unequal-station dynamics, immutable lateral inputs/results, normalized OSQP-convention P/q assembly, finite hard corridor/derivative/trust/denominator bounds, terminal distinction, full forward/reverse world reconstruction, actual PathS, and independent validation. optimization, osqp, and all four all-foundation groups exited 0. The dependency list remains KERNEL32.dll, VCRUNTIME140.dll, and API-set CRT DLLs only—no MKL, CUDA or external QDLDL. git diff --check had no whitespace diagnostics; immediately before this checkpoint update the staging area was empty and no Stage 5 scope files were uncommitted.
  • Normal-project baseline: dotnet build ClumsyPilot/ClumsyPilot.csproj --no-restore exits 1 only for the legacy auto_avoidance/MultiWheelAutoAvoidance.cs missing NetTopologySuite (3) and OpenCvSharp (1) references, plus that legacy file's duplicate-using warning. There are no EM Planner errors.
  • Verified commits: 104081e, 2abb465, 39c1708, a957fda, 61dfa79, c225b17, f703d41, and 0c48a7d

Preserved Workspace State

  • The workspace continues to contain many unrelated Map, CoarsePath, PathSmoothing, project-file, report, and documentation changes. They belong to the user and remain untouched and unstaged.
  • Use explicit file paths for every git add; never stage the whole workspace.
  • The existing user hunk in ClumsyPilot/ClumsyPilot.csproj remains preserved. Do not clean, rewrite, or stage it.
  • The normal ClumsyPilot.csproj build remains blocked by legacy auto_avoidance/MultiWheelAutoAvoidance.cs references to NetTopologySuite and OpenCvSharp; do not delete or bypass legacy functionality to change this baseline.

Decisions Needed

  • None. Stage 5 completed within scope.

Next Stage

  • Stage: 6 — LS SQP and real scenarios
  • Readiness: Ready for Stage 6 entry checks after this checkpoint is committed.
  • Plan: docs/superpowers/plans/2026-08-03-em-planner-lateral-ls-implementation.md
  • Tasks:
    • Task 4 — Sequential Convex Outer Loop and Feasible-Candidate Fallback
    • Task 5 — Real-OSQP Lateral Scenarios and Gate
  • Entry checks:
    • Confirm branch trajplanner, a957fda, 61dfa79, c225b17, f703d41, and 0c48a7d are ancestors of HEAD, and the Stage 5 progress checkpoint is present.
    • Capture git status --short before editing and preserve every unrelated user change.
    • Read the two EM Planner design documents, this progress file, and the lateral-LS implementation plan in full.
    • Run lateral-model, optimization, osqp, and all-foundation before Task 4.
    • Keep the OSQP boundary solver-neutral; SQP must consume IQpSolver rather than native OSQP types.
  • Exit gate:
    • Tasks 45 each have an independent commit and their prescribed RED/GREEN evidence.
    • SQP trust-region/last-feasible fallback tests and fixed real-OSQP lateral scenarios pass; the output uses actual PathS.
    • lateral-integration, lateral-all, optimization, osqp, all-foundation, and git diff --check pass; the staging area is empty; a Stage 6 progress checkpoint is committed alone.

Next-Window Prompt

请继续 ParkingRobot 仓库的 EM Planner 多窗口实施。

工作目录:D:\Users\Desktop\项目\prakrobot\ParkingRobot

本窗口只执行阶段 6:LS SQP 与真实场景。唯一授权范围是:
`docs/superpowers/plans/2026-08-03-em-planner-lateral-ls-implementation.md` 的 Task 4、Task 5。
不要开始 ST、轨迹发布、滚动执行、控制适配、动态障碍物或任何后续阶段。

开始任何检查或编辑前,必须完整读取:
1. `docs/superpowers/specs/2026-08-03-em-planner-ls-st-design.md`
2. `docs/superpowers/specs/2026-08-03-em-planner-windowed-execution-design.md`
3. `docs/superpowers/progress/em-planner-progress.md`
4. `docs/superpowers/plans/2026-08-03-em-planner-lateral-ls-implementation.md`

使用 `executing-plans`、`test-driven-development` 和 `verification-before-completion`;不要使用子代理。只在 `trajplanner` 上工作。Stage 5 的功能提交必须可从 `HEAD` 追溯:`c225b17`LS 模型)、`f703d41`LS QP 装配)与 `0c48a7d`(LS 几何验证);随后是本进度文件的独立 Stage 5 checkpoint。若这些提交、进度记录或入口验证任一不一致,停止实施并先报告事实,不要猜测或重做已提交工作。

开始 Task 4 前:
- 保存完整 `git status --short` 基线,确认暂存区为空;工作区已有大量与 EM 无关的 Map、CoarsePath、PathSmoothing、报告、文档、项目文件和未跟踪修改,必须完整保留。
- 不得使用 `git add .`、`git add -A`、`git reset --hard`、`git checkout --` 或任何清理命令;每次只用显式路径暂存计划指定文件。
- 运行以下隔离入口验证,并确认全部退出码为 0:
  ```powershell
  dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- lateral-model
  dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- optimization
  dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- osqp
  dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- all-foundation
  • ClumsyPilot.csproj 中有既有用户 hunk;正常项目构建仍会因旧 auto_avoidance/MultiWheelAutoAvoidance.cs 缺少 NetTopologySuiteOpenCvSharp 失败。不要修改、删除、屏蔽或绕过该旧模块,也不要把它当成 EM 回归。

实施约束:

  • 严格逐任务 TDD:先增加该任务的最小失败检查,观察其因缺少目标行为而失败,再写最小生产代码,并运行计划指定 GREEN 验证。
  • Task 4、5 各自形成独立功能提交;提交前用 git diff --cached --checkgit diff-tree 核对文件集合。
  • LS 只能通过既有的 solver-neutral IQpSolver/QuadraticProgram 边界使用 OSQP,不能向 LS 引入 P/Invoke、当前工作目录依赖、UI 或硬件对象。
  • 不修改无关的 Map、CoarsePath、PathSmoothing、旧 auto_avoidance 或 Stage 4 已完成的 OSQP 后端,除非该 LS 计划明确列出且变更为完成 Task 4–5 所必需。

阶段结束条件:

  • 仅在 Task 45 均有独立提交、各自 RED/GREEN 证据和该计划全部出口验证通过后,运行 lateral-integrationlateral-alloptimizationosqpall-foundationgit diff --check
  • 检查暂存区为空、用户的起始 git status --short 修改仍被保留;然后只更新并单独提交 docs/superpowers/progress/em-planner-progress.md
  • 最终报告必须给出实际提交、命令/退出码、未处理基线问题,并提供阶段 7(仅 ST Task 1–3)的精确下一窗口提示词。