sobec::ResidualModel2DSurfaceTpl< _Scalar > Class Template Reference

Cost penalizing the position of one effector with respect to the other. More...

#include <sobec/crocomplements/residual-2D-surface.hpp>

Inheritance diagram for sobec::ResidualModel2DSurfaceTpl< _Scalar >:
Collaboration diagram for sobec::ResidualModel2DSurfaceTpl< _Scalar >:

Public Types

typedef MathBaseTpl< ScalarMathBase
 
typedef ResidualModelAbstractTpl< ScalarBase
 
typedef ResidualData2DSurfaceTpl< ScalarData
 
typedef StateMultibodyTpl< ScalarStateMultibody
 
typedef ResidualDataAbstractTpl< ScalarResidualDataAbstract
 
typedef DataCollectorAbstractTpl< ScalarDataCollectorAbstract
 
typedef MathBase::Vector3s Vector3s
 
typedef MathBase::Vector2s Vector2s
 
typedef MathBase::VectorXs VectorXs
 
typedef MathBase::MatrixXs MatrixXs
 
typedef MathBase::Matrix3s Matrix3s
 

Public Member Functions

 ResidualModel2DSurfaceTpl (boost::shared_ptr< StateMultibody > state, const pinocchio::FrameIndex frame_id, const Vector2s support_translation, const Scalar separation, const Scalar orientation, const Scalar alpha, const std::size_t nu)
 Initialize the residual model. More...
 
 ResidualModel2DSurfaceTpl (boost::shared_ptr< StateMultibody > state, const pinocchio::FrameIndex frame_id, const Vector2s support_translation, const Scalar separation, const Scalar orientation, const Scalar alpha)
 Initialize the residual model. More...
 
virtual ~ResidualModel2DSurfaceTpl ()
 
virtual void calc (const boost::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u)
 Compute the residual. More...
 
virtual void calcDiff (const boost::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u)
 Compute the derivatives of the CoM velocity residual. More...
 
virtual boost::shared_ptr< ResidualDataAbstractcreateData (DataCollectorAbstract *const data)
 
const pinocchio::FrameIndex & get_frame_id () const
 Return the frame index. More...
 
void set_frame_id (const pinocchio::FrameIndex &fid)
 Modify the frame index. More...
 
void set_Ab (const Vector2s support_translation, const Scalar orientation)
 Modify the matrix A and vector b. More...
 
const MatrixXsget_A () const
 
const Vector2sget_b () const
 
void set_A (const MatrixXs &A)
 
void set_b (const Vector2s &b)
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar
 

Detailed Description

template<typename _Scalar>
class sobec::ResidualModel2DSurfaceTpl< _Scalar >

Cost penalizing the position of one effector with respect to the other.

The cost is r(q,v) = A * (pos_2 - pos_1) - c with pos_1, pos_2 (x,y) translations of feet, and A, C matrix and vector transcribing the restricted 2D surface through inequalities

See also
ResidualModelAbstractTpl, calc(), calcDiff(), createData()

Member Typedef Documentation

◆ Base

template<typename _Scalar >
typedef ResidualModelAbstractTpl<Scalar> sobec::ResidualModel2DSurfaceTpl< _Scalar >::Base

◆ Data

template<typename _Scalar >
typedef ResidualData2DSurfaceTpl<Scalar> sobec::ResidualModel2DSurfaceTpl< _Scalar >::Data

◆ DataCollectorAbstract

template<typename _Scalar >
typedef DataCollectorAbstractTpl<Scalar> sobec::ResidualModel2DSurfaceTpl< _Scalar >::DataCollectorAbstract

◆ MathBase

template<typename _Scalar >
typedef MathBaseTpl<Scalar> sobec::ResidualModel2DSurfaceTpl< _Scalar >::MathBase

◆ Matrix3s

template<typename _Scalar >
typedef MathBase::Matrix3s sobec::ResidualModel2DSurfaceTpl< _Scalar >::Matrix3s

◆ MatrixXs

template<typename _Scalar >
typedef MathBase::MatrixXs sobec::ResidualModel2DSurfaceTpl< _Scalar >::MatrixXs

◆ ResidualDataAbstract

template<typename _Scalar >
typedef ResidualDataAbstractTpl<Scalar> sobec::ResidualModel2DSurfaceTpl< _Scalar >::ResidualDataAbstract

◆ StateMultibody

template<typename _Scalar >
typedef StateMultibodyTpl<Scalar> sobec::ResidualModel2DSurfaceTpl< _Scalar >::StateMultibody

◆ Vector2s

template<typename _Scalar >
typedef MathBase::Vector2s sobec::ResidualModel2DSurfaceTpl< _Scalar >::Vector2s

◆ Vector3s

template<typename _Scalar >
typedef MathBase::Vector3s sobec::ResidualModel2DSurfaceTpl< _Scalar >::Vector3s

◆ VectorXs

template<typename _Scalar >
typedef MathBase::VectorXs sobec::ResidualModel2DSurfaceTpl< _Scalar >::VectorXs

Constructor & Destructor Documentation

◆ ResidualModel2DSurfaceTpl() [1/2]

template<typename Scalar >
sobec::ResidualModel2DSurfaceTpl< Scalar >::ResidualModel2DSurfaceTpl ( boost::shared_ptr< StateMultibody state,
const pinocchio::FrameIndex  frame_id,
const Vector2s  support_translation,
const Scalar  separation,
const Scalar  orientation,
const Scalar  alpha,
const std::size_t  nu 
)

Initialize the residual model.

Parameters
[in]stateState of the multibody system
[in]frame_idID of the frame that should be considered for altitude and velocity
[in]slopeSlope value, ie altitude multiplier.
[in]nuDimension of the control vector

◆ ResidualModel2DSurfaceTpl() [2/2]

template<typename Scalar >
sobec::ResidualModel2DSurfaceTpl< Scalar >::ResidualModel2DSurfaceTpl ( boost::shared_ptr< StateMultibody state,
const pinocchio::FrameIndex  frame_id,
const Vector2s  support_translation,
const Scalar  separation,
const Scalar  orientation,
const Scalar  alpha 
)

Initialize the residual model.

The default nu value is obtained from StateAbstractTpl::get_nv().

Parameters
[in]stateState of the multibody system
[in]frame_idID of the frame that should be considered for altitude and velocity
[in]slopeSlope value, ie altitude multiplier.

◆ ~ResidualModel2DSurfaceTpl()

template<typename Scalar >
sobec::ResidualModel2DSurfaceTpl< Scalar >::~ResidualModel2DSurfaceTpl
virtual

Member Function Documentation

◆ calc()

template<typename Scalar >
void sobec::ResidualModel2DSurfaceTpl< Scalar >::calc ( const boost::shared_ptr< ResidualDataAbstract > &  data,
const Eigen::Ref< const VectorXs > &  x,
const Eigen::Ref< const VectorXs > &  u 
)
virtual

Compute the residual.

Parameters
[in]dataCoM velocity residual data
[in]xState point \(\mathbf{x}\in\mathbb{R}^{ndx}\)
[in]uControl input \(\mathbf{u}\in\mathbb{R}^{nu}\)

◆ calcDiff()

template<typename Scalar >
void sobec::ResidualModel2DSurfaceTpl< Scalar >::calcDiff ( const boost::shared_ptr< ResidualDataAbstract > &  data,
const Eigen::Ref< const VectorXs > &  x,
const Eigen::Ref< const VectorXs > &  u 
)
virtual

Compute the derivatives of the CoM velocity residual.

Parameters
[in]dataCoM velocity residual data
[in]xState point \(\mathbf{x}\in\mathbb{R}^{ndx}\)
[in]uControl input \(\mathbf{u}\in\mathbb{R}^{nu}\)

◆ createData()

template<typename Scalar >
boost::shared_ptr< ResidualDataAbstractTpl< Scalar > > sobec::ResidualModel2DSurfaceTpl< Scalar >::createData ( DataCollectorAbstract *const  data)
virtual

◆ get_A()

template<typename _Scalar >
const MatrixXs& sobec::ResidualModel2DSurfaceTpl< _Scalar >::get_A ( ) const
inline

◆ get_b()

template<typename _Scalar >
const Vector2s& sobec::ResidualModel2DSurfaceTpl< _Scalar >::get_b ( ) const
inline

◆ get_frame_id()

template<typename Scalar >
const pinocchio::FrameIndex & sobec::ResidualModel2DSurfaceTpl< Scalar >::get_frame_id

Return the frame index.

◆ set_A()

template<typename _Scalar >
void sobec::ResidualModel2DSurfaceTpl< _Scalar >::set_A ( const MatrixXs A)
inline

◆ set_Ab()

template<typename Scalar >
void sobec::ResidualModel2DSurfaceTpl< Scalar >::set_Ab ( const Vector2s  support_translation,
const Scalar  orientation 
)

Modify the matrix A and vector b.

◆ set_b()

template<typename _Scalar >
void sobec::ResidualModel2DSurfaceTpl< _Scalar >::set_b ( const Vector2s b)
inline

◆ set_frame_id()

template<typename Scalar >
void sobec::ResidualModel2DSurfaceTpl< Scalar >::set_frame_id ( const pinocchio::FrameIndex &  fid)

Modify the frame index.

Member Data Documentation

◆ Scalar

template<typename _Scalar >
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar sobec::ResidualModel2DSurfaceTpl< _Scalar >::Scalar

The documentation for this class was generated from the following files: