|
Theta | theta |
| Objective function \( \theta : R \times X \times X \times R^{n_q} \rightarrow R \). More...
|
|
F | f |
| System dynamics \( f : R \times X \times U \rightarrow Tangent<X> \). More...
|
|
G | g |
| Integrals \( g : R \times X \times U \rightarrow R^{n_q} \). More...
|
|
CR | cr |
| Running constraint \( c_r : R \times X \times U \rightarrow R^{n_{cr}} \). More...
|
|
Eigen::Vector< double, Ncr > | crl = Eigen::Vector<double, Ncr>::Zero() |
| Running constraint lower bound \( c_{rl} \in R^{n_{cr}} \). More...
|
|
Eigen::Vector< double, Ncr > | cru = Eigen::Vector<double, Ncr>::Zero() |
| Running constraint upper bound \( c_{ru} \in R^{n_{cr}} \). More...
|
|
CE | ce |
| End constraint \( c_e : R \times X \times X \times R^{n_q} \rightarrow R^{n_{ce}} \). More...
|
|
Eigen::Vector< double, Nce > | cel = Eigen::Vector<double, Nce>::Zero() |
| End constraint lower bound \( c_{el} \in R^{n_{ce}} \). More...
|
|
Eigen::Vector< double, Nce > | ceu = Eigen::Vector<double, Nce>::Zero() |
| End constraint upper bound \( c_{eu} \in R^{n_{ce}} \). More...
|
|
template<LieGroup _X, Manifold _U, typename Theta, typename F, typename G, typename CR, typename CE>
struct smooth::feedback::OCP< _X, _U, Theta, F, G, CR, CE >
Optimal control problem definition.
- Template Parameters
-
_X | state space |
_U | input space |
Problem is defined on the interval \( t \in [0, t_f] \).
\[
\begin{cases}
\min & \theta(t_f, x_0, x_f, q) \\
\text{s.t.} & x(0) = x_0 \\
& x(t_f) = x_f \\
& \dot x(t) = f(t, x(t), u(t)) \\
& q = \int_{0}^{t_f} g(t, x(t), u(t)) \mathrm{d}t \\
& c_{rl} \leq c_r(t, x(t), u(t)) \leq c_{ru} \quad t \in [0, t_f] \\
& c_{el} \leq c_e(t_f, x_0, x_f, q) \leq c_{eu}
\end{cases}
\]
The optimal control problem depends on arbitrary functions \( \theta, f, g, c_r, c_e \). The type of those functions are template pararamters in this structure.
- Note
- To enable automatic differentiation \( \theta, f, g, c_r, c_e \) must be templated over the scalar type.
Definition at line 51 of file ocp.hpp.