Optimal Control BVP
Definition
An optimal-control boundary-value problem (BVP) is the indirect (calculus-of-variations) route to
trajectory optimization: the necessary conditions for a minimizing control are written as a coupled set
of ODEs in the state and an adjoint (costate) variable, plus split boundary conditions at the initial
and final time, which a numerical BVP solver then satisfies. In Seweryn & Banaszkiewicz the system is a
free-flying -DOF satellite-manipulator (fully-actuated base, thrusters held on a synchronous
orbit around a tumbling target), so linear and angular momentum are not conserved — distinguishing
it from the free-floating, momentum-conserving setting where a generalized-Jacobian planner alone
suffices. They minimize a quadratic joint-torque (motor-power) functional subject to the
Lagrangian dynamics and terminal end-effector pose/orientation constraints, and solve the
resulting two-point BVP by collocation (bvp4c).
Key Equations
Symbols per notation.md.
Optimal-control symbols below are reproduced source-faithfully and are not in the registry:
is the adjoint (costate) vector (do not confuse with the Tikhonov damping scalars
); is the Hamiltonian, the running cost, the terminal
penalty, the state and the control. These do not collide with the load-bearing
or the task-inertia .
Augmented cost functional and Hamiltonian (Seweryn Eqs. 21-22):
\qquad H = L(x,u,t) + \lambda(t)^\top f(x,u,t) $$ Necessary conditions — the state/costate canonical system with stationarity in $u$ (Seweryn Eqs. 23, 26), i.e. the two-point BVP: $$ \dot{x} = f(x^*,u^*,t),\qquad \dot{\lambda} = -\frac{\partial H}{\partial x}(x^*,u^*,\lambda,t),\qquad \frac{\partial H}{\partial u}=0 $$ Split boundary conditions: the initial state $x(t_0)$ is fixed; the terminal costate follows the transversality condition $\lambda(t_f)=\big(v^\top\,\partial\psi/\partial x\big)_{t_f}$, with $\psi$ the terminal end-effector pose/orientation constraints and $v$ extra multipliers the BVP solver tunes (Seweryn Eqs. 27, 29). Here the running cost is the quadratic torque $L=\tfrac12\,u^\top u$ (Eq. 28). ## Source Support - [seweryn2008optimization](../sources/seweryn2008optimization.md) — poses the **free-flying** RVD trajectory problem as an indirect optimal-control BVP: Pontryagin/variational necessary conditions ($2(6+n)$ state + costate ODEs, stationarity for $u$, transversality for $\lambda(t_f)$), solved by `bvp4c` collocation with a straight-line GJM trajectory as the trial function; explicitly treats the momentum-**non**-conserving (type iv, external-force) regime. ## Related Topics - [trajectory_optimization](trajectory_optimization.md) — parent technique; the optimal-control BVP is its **indirect** (necessary-conditions-then-solve) instance, as opposed to direct transcription. - [ffsm_dynamics](ffsm_dynamics.md) — supplies the dynamics map $f$ (the right-hand side $\dot x=f(x,u,t)$) that the costate equations differentiate; the BVP is only as faithful as this model. - [generalized_jacobian](generalized_jacobian.md) — the GJM (here extended to the non-conserving case) generates the straight-line **initial guess**; the BVP needs a good trial function to converge. - [cartesian_path_planning](cartesian_path_planning.md) — alternative (sampling/path-planning) route to the same terminal end-effector pose, which the source contrasts with the variational/BVP route. ## Open Questions - The transversality condition fixes the **terminal** end-effector pose but leaves the base attitude free at $t_f$; for our inspection task that needs a commanded base/camera attitude, do additional terminal constraints on $\psi$ keep the BVP well-posed and solvable? - The reported solve takes ~24 h of CPU for a 1 s maneuver; is the indirect BVP usable online for a free-flying inspector, or only as an offline reference against a direct/receding-horizon scheme (cf. [trajectory_optimization](trajectory_optimization.md))? - The source keeps the base on a thruster-maintained synchronous orbit (genuinely free-flying); does the same costate structure hold if base thrust is itself an optimization variable with its own effort cost, rather than a prescribed constraint?