smooth_feedback
Control and estimation on Lie groups
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
smooth::feedback::detail::MPCObj< X > Struct Template Reference

MPC cost function. More...

#include <mpc.hpp>

Public Member Functions

double operator() (const double, const X &, const X &xf, const Eigen::Vector< double, 1 > &q) const
 
Eigen::RowVector< double, 1+2 *Nx+1 > jacobian (const double, const X &, const X &xf, const Eigen::Vector< double, 1 > &)
 
std::reference_wrapper< const Eigen::SparseMatrix< double > > hessian (const double, const X &, const X &xf, const Eigen::Vector< double, 1 > &)
 

Public Attributes

xf_des = Default<X>()
 
Eigen::Matrix< double, Nx, Nx > Qtf = Eigen::Matrix<double, Nx, Nx>::Identity()
 
Eigen::SparseMatrix< double > hess {1 + 2 * Nx + 1, 1 + 2 * Nx + 1}
 

Static Public Attributes

static constexpr auto Nx = Dof<X>
 

Detailed Description

template<LieGroup X>
struct smooth::feedback::detail::MPCObj< X >

MPC cost function.

The cost is

\[ \theta(t_f, x_0, x_f, q) = q + (x_f - x_{f, des})^T Q_T (x_f - x_{f, des}). \]

@warn The functor members are only valid at the linearization point \( x_f = x_{f_des} \).

Definition at line 69 of file mpc.hpp.

Member Function Documentation

◆ hessian()

template<LieGroup X>
std::reference_wrapper< const Eigen::SparseMatrix< double > > smooth::feedback::detail::MPCObj< X >::hessian ( const double  ,
const X &  ,
const X &  xf,
const Eigen::Vector< double, 1 > &   
)
inline

Definition at line 104 of file mpc.hpp.

◆ jacobian()

template<LieGroup X>
Eigen::RowVector< double, 1+2 *Nx+1 > smooth::feedback::detail::MPCObj< X >::jacobian ( const double  ,
const X &  ,
const X &  xf,
const Eigen::Vector< double, 1 > &   
)
inline

Definition at line 97 of file mpc.hpp.

◆ operator()()

template<LieGroup X>
double smooth::feedback::detail::MPCObj< X >::operator() ( const double  ,
const X &  ,
const X &  xf,
const Eigen::Vector< double, 1 > &  q 
) const
inline

Definition at line 83 of file mpc.hpp.

Member Data Documentation

◆ hess

template<LieGroup X>
Eigen::SparseMatrix<double> smooth::feedback::detail::MPCObj< X >::hess {1 + 2 * Nx + 1, 1 + 2 * Nx + 1}

Definition at line 78 of file mpc.hpp.

◆ Nx

template<LieGroup X>
constexpr auto smooth::feedback::detail::MPCObj< X >::Nx = Dof<X>
staticconstexpr

Definition at line 71 of file mpc.hpp.

◆ Qtf

template<LieGroup X>
Eigen::Matrix<double, Nx, Nx> smooth::feedback::detail::MPCObj< X >::Qtf = Eigen::Matrix<double, Nx, Nx>::Identity()

Definition at line 75 of file mpc.hpp.

◆ xf_des

template<LieGroup X>
X smooth::feedback::detail::MPCObj< X >::xf_des = Default<X>()

Definition at line 74 of file mpc.hpp.


The documentation for this struct was generated from the following file: