From bffc76e3d1c1962094f910314038c8cf06766513 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E8=96=84=E4=BA=91?= Date: Wed, 5 Aug 2026 11:55:32 +0800 Subject: [PATCH] docs: design MovementTest OSQP iteration limit --- ...ovementtest-osqp-iteration-limit-design.md | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 docs/superpowers/specs/2026-08-05-movementtest-osqp-iteration-limit-design.md diff --git a/docs/superpowers/specs/2026-08-05-movementtest-osqp-iteration-limit-design.md b/docs/superpowers/specs/2026-08-05-movementtest-osqp-iteration-limit-design.md new file mode 100644 index 0000000..ef6d7a6 --- /dev/null +++ b/docs/superpowers/specs/2026-08-05-movementtest-osqp-iteration-limit-design.md @@ -0,0 +1,25 @@ +# MovementTest OSQP Iteration Limit Design + +## Goal + +Allow the trajectory-observation MovementTest to configure the OSQP iteration cap separately from the solver time budget, with a default that can be reached within the existing 0.50-second test budget. + +## Decision + +Add an integer `MaximumOsqpIterations` setting with a default of `12000`. + +The current target machine completes 4000 iterations in about 153ms. The 12000-iteration default is therefore expected to fit approximately within the existing 0.50-second `SolverTimeoutSeconds` budget. A 20000-iteration default would likely be cut short by the time budget first. + +## Scope + +- Add, snapshot, and validate `MaximumOsqpIterations` in `TrajectoryObservationSettings`. +- Expose it as a public MovementTest parameter with default `12000`. +- Copy it to `EmPlannerConfiguration.Solver.MaximumOsqpIterations` for an observation session. +- Prove that a custom value is present on the emitted EM planning request. + +## Non-goals + +- Do not modify `SolverTimeoutSeconds` from its current 0.50-second test default. +- Do not relax `AbsoluteTolerance`, `RelativeTolerance`, or `StrictResidualTolerance` from `1e-5`. +- Do not change the production EM defaults, vehicle constraints, map, or observe-only command policy. +