|
smooth_feedback
Control and estimation on Lie groups
|
Reformulate an optimal control problem on a Lie group as an optimal control problem in the tangent space around a reference trajectory. More...
#include <Eigen/Core>#include <Eigen/Sparse>#include <smooth/bundle.hpp>#include <smooth/diff.hpp>#include "ocp.hpp"#include "smooth/lie_sparse.hpp"#include "utils/sparse.hpp"
Go to the source code of this file.
Functions | |
| auto | smooth::feedback::flatten_ocp (const OCPType auto &ocp, auto &&xl, auto &&ul) |
| Flatten a LieGroup OCP by defining it in the tangent space around a trajectory. More... | |
| template<LieGroup X, Manifold U> | |
| auto | smooth::feedback::unflatten_ocpsol (const auto &flatsol, auto &&xl_fun, auto &&ul_fun) |
| Unflatten a FlatOCPSolution. More... | |
Reformulate an optimal control problem on a Lie group as an optimal control problem in the tangent space around a reference trajectory.
More efficient implementation of Hessian in FlatDyn.
Accept dxl as a template argument to avoid double differentiation.
Definition in file ocp_flatten.hpp.
| auto smooth::feedback::flatten_ocp | ( | const OCPType auto & | ocp, |
| auto && | xl, | ||
| auto && | ul | ||
| ) |
Flatten a LieGroup OCP by defining it in the tangent space around a trajectory.
| ocp | OCPType defined on a LieGroup |
| xl | nominal state trajectory |
| ul | nominal state trajectory |
ocp does.@warn The Hessian of the flattened dynamics is not implemented in an efficient manner.
Definition at line 513 of file ocp_flatten.hpp.
| auto smooth::feedback::unflatten_ocpsol | ( | const auto & | flatsol, |
| auto && | xl_fun, | ||
| auto && | ul_fun | ||
| ) |
Unflatten a FlatOCPSolution.
If flat_sol is a solution to flat_ocp = flatten_ocp(ocp, xl_fun, ul_fun), then unflatten_ocpsol(flat_sol, xl_fun, ul_fun) is a solution to ocp.
Definition at line 550 of file ocp_flatten.hpp.