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::MPCIntegrand< T, X, U > Struct Template Reference

MPC integrand. More...

#include <mpc.hpp>

Public Member Functions

Eigen::Vector< double, 1 > operator() (const double t_rel, const X &x, const U &u) const
 
Eigen::RowVector< double, 1+Nx+Nu > jacobian (const double t_rel, const X &x, const U &u)
 
std::reference_wrapper< const Eigen::SparseMatrix< double > > hessian (const double t_rel, const X &x, const U &u)
 

Public Attributes

std::shared_ptr< XDes< T, X > > xdes
 
std::shared_ptr< UDes< T, U > > udes
 
Eigen::Matrix< double, Nx, Nx > Q = Eigen::Matrix<double, Nx, Nx>::Identity()
 
Eigen::Matrix< double, Nu, Nu > R = Eigen::Matrix<double, Nu, Nu>::Identity()
 
Eigen::SparseMatrix< double > hess {1 + Nx + Nu, 1 + Nx + Nu}
 

Static Public Attributes

static constexpr auto Nx = Dof<X>
 
static constexpr auto Nu = Dof<U>
 

Detailed Description

template<Time T, LieGroup X, Manifold U>
struct smooth::feedback::detail::MPCIntegrand< T, X, U >

MPC integrand.

The integrand is

\[ c_e(t, x, u) = (x - x_{des}(t))^T Q (x - x_{des}(t)) + (u - u_{des}(t))^T R (u - u_{des}(t)). \]

@warn The functor members are only valid at the linearization point \( x = x_{des}(t), u = u_{des}(t) \).

Definition at line 166 of file mpc.hpp.

Member Function Documentation

◆ hessian()

template<Time T, LieGroup X, Manifold U>
std::reference_wrapper< const Eigen::SparseMatrix< double > > smooth::feedback::detail::MPCIntegrand< T, X, U >::hessian ( const double  t_rel,
const X &  x,
const U &  u 
)
inline

Definition at line 207 of file mpc.hpp.

◆ jacobian()

template<Time T, LieGroup X, Manifold U>
Eigen::RowVector< double, 1+Nx+Nu > smooth::feedback::detail::MPCIntegrand< T, X, U >::jacobian ( const double  t_rel,
const X &  x,
const U &  u 
)
inline

Definition at line 199 of file mpc.hpp.

◆ operator()()

template<Time T, LieGroup X, Manifold U>
Eigen::Vector< double, 1 > smooth::feedback::detail::MPCIntegrand< T, X, U >::operator() ( const double  t_rel,
const X &  x,
const U &  u 
) const
inline

Definition at line 185 of file mpc.hpp.

Member Data Documentation

◆ hess

template<Time T, LieGroup X, Manifold U>
Eigen::SparseMatrix<double> smooth::feedback::detail::MPCIntegrand< T, X, U >::hess {1 + Nx + Nu, 1 + Nx + Nu}

Definition at line 179 of file mpc.hpp.

◆ Nu

template<Time T, LieGroup X, Manifold U>
constexpr auto smooth::feedback::detail::MPCIntegrand< T, X, U >::Nu = Dof<U>
staticconstexpr

Definition at line 169 of file mpc.hpp.

◆ Nx

template<Time T, LieGroup X, Manifold U>
constexpr auto smooth::feedback::detail::MPCIntegrand< T, X, U >::Nx = Dof<X>
staticconstexpr

Definition at line 168 of file mpc.hpp.

◆ Q

template<Time T, LieGroup X, Manifold U>
Eigen::Matrix<double, Nx, Nx> smooth::feedback::detail::MPCIntegrand< T, X, U >::Q = Eigen::Matrix<double, Nx, Nx>::Identity()

Definition at line 175 of file mpc.hpp.

◆ R

template<Time T, LieGroup X, Manifold U>
Eigen::Matrix<double, Nu, Nu> smooth::feedback::detail::MPCIntegrand< T, X, U >::R = Eigen::Matrix<double, Nu, Nu>::Identity()

Definition at line 176 of file mpc.hpp.

◆ udes

template<Time T, LieGroup X, Manifold U>
std::shared_ptr<UDes<T, U> > smooth::feedback::detail::MPCIntegrand< T, X, U >::udes

Definition at line 173 of file mpc.hpp.

◆ xdes

template<Time T, LieGroup X, Manifold U>
std::shared_ptr<XDes<T, X> > smooth::feedback::detail::MPCIntegrand< T, X, U >::xdes

Definition at line 172 of file mpc.hpp.


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