Crocoddyl
ContactModelNumDiffTpl< _Scalar > Class Template Reference
Inheritance diagram for ContactModelNumDiffTpl< _Scalar >:
ContactModelAbstractTpl< _Scalar >

Public Types

typedef ContactModelAbstractTpl< Scalar > Base
 
typedef ContactDataAbstractTpl< Scalar > ContactDataAbstract
 
typedef ContactDataNumDiffTpl< Scalar > Data
 
typedef MathBaseTpl< Scalar > MathBase
 
typedef boost::function< void(const VectorXs &, const VectorXs &)> ReevaluationFunction
 
typedef MathBaseTpl< Scalar >::VectorXs VectorXs
 
- Public Types inherited from ContactModelAbstractTpl< _Scalar >
typedef ContactDataAbstractTpl< Scalar > ContactDataAbstract
 
typedef MathBaseTpl< Scalar > MathBase
 
typedef MathBase::MatrixXs MatrixXs
 
typedef StateMultibodyTpl< Scalar > StateMultibody
 
typedef MathBase::VectorXs VectorXs
 

Public Member Functions

 ContactModelNumDiffTpl (const boost::shared_ptr< Base > &model)
 Construct a new ContactModelNumDiff object from a ContactModelAbstract. More...
 
virtual ~ContactModelNumDiffTpl ()
 Default destructor of the ContactModelNumDiff object.
 
void calc (const boost::shared_ptr< ContactDataAbstract > &data, const Eigen::Ref< const VectorXs > &x)
 Compute the contact Jacobian and acceleration drift. More...
 
void calcDiff (const boost::shared_ptr< ContactDataAbstract > &data, const Eigen::Ref< const VectorXs > &x)
 Compute the derivatives of the acceleration-based contact. More...
 
boost::shared_ptr< ContactDataAbstractcreateData (pinocchio::DataTpl< Scalar > *const data)
 Create a Data object. More...
 
const Scalar get_disturbance () const
 Return the disturbance constant used in the numerical differentiation routine.
 
const boost::shared_ptr< Base > & get_model () const
 Return the acton model that we use to numerical differentiate.
 
void set_disturbance (const Scalar disturbance)
 Modify the disturbance constant used in the numerical differentiation routine.
 
void set_reevals (const std::vector< ReevaluationFunction > &reevals)
 Register functions that take a pinocchio model, a pinocchio data, a state and a control. The updated data is used to evaluate of the gradient and Hessian. More...
 
void updateForce (const boost::shared_ptr< ContactDataAbstract > &data, const VectorXs &force)
 Convert the force into a stack of spatial forces. More...
 
- Public Member Functions inherited from ContactModelAbstractTpl< _Scalar >
 ContactModelAbstractTpl (boost::shared_ptr< StateMultibody > state, const pinocchio::ReferenceFrame type, const std::size_t nc)
 
 ContactModelAbstractTpl (boost::shared_ptr< StateMultibody > state, const pinocchio::ReferenceFrame type, const std::size_t nc, const std::size_t nu)
 Initialize the contact abstraction. More...
 
this assumes is ContactModelAbstractTpl (boost::shared_ptr< StateMultibody > state, const std::size_t nc)
 
 DEPRECATED ("Use constructor that passes the type type of contact, this assumes is " "pinocchio::LOCAL", ContactModelAbstractTpl(boost::shared_ptr< StateMultibody > state, const std::size_t nc, const std::size_t nu);) DEPRECATED("Use const ructor that passes the type type of contact
 
pinocchio::FrameIndex get_id () const
 Return the reference frame id.
 
std::size_t get_nc () const
 Return the dimension of the contact.
 
std::size_t get_nu () const
 Return the dimension of the control vector.
 
const boost::shared_ptr< StateMultibody > & get_state () const
 Return the state.
 
pinocchio::ReferenceFrame get_type () const
 Return the type of contact.
 
virtual void print (std::ostream &os) const
 Print relevant information of the contact model. More...
 
void set_id (const pinocchio::FrameIndex id)
 Modify the reference frame id.
 
void set_type (const pinocchio::ReferenceFrame type)
 Modify the type of contact.
 
void setZeroForce (const boost::shared_ptr< ContactDataAbstract > &data) const
 Set the stack of spatial forces to zero. More...
 
void setZeroForceDiff (const boost::shared_ptr< ContactDataAbstract > &data) const
 Set the stack of spatial forces Jacobians to zero. More...
 
void updateForceDiff (const boost::shared_ptr< ContactDataAbstract > &data, const MatrixXs &df_dx, const MatrixXs &df_du) const
 Convert the force into a stack of spatial forces. More...
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar
 
- Public Attributes inherited from ContactModelAbstractTpl< _Scalar >
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar
 

Protected Attributes

Scalar e_jac_
 
boost::shared_ptr< Basemodel_
 contact model to differentiate
 
std::size_t nc_
 
std::size_t nu_
 
std::vector< ReevaluationFunction > reevals_
 functions that need execution before calc or calcDiff
 
boost::shared_ptr< StateMultibodystate_
 
- Protected Attributes inherited from ContactModelAbstractTpl< _Scalar >
pinocchio::FrameIndex id_
 Reference frame id of the contact.
 
std::size_t nc_
 
std::size_t nu_
 
boost::shared_ptr< StateMultibodystate_
 
pinocchio::ReferenceFrame type_
 Type of contact.
 

Detailed Description

template<typename _Scalar>
class crocoddyl::ContactModelNumDiffTpl< _Scalar >

Definition at line 21 of file contact.hpp.

Constructor & Destructor Documentation

◆ ContactModelNumDiffTpl()

ContactModelNumDiffTpl ( const boost::shared_ptr< Base > &  model)
explicit

Construct a new ContactModelNumDiff object from a ContactModelAbstract.

Parameters
model

Member Function Documentation

◆ calc()

void calc ( const boost::shared_ptr< ContactDataAbstract > &  data,
const Eigen::Ref< const VectorXs > &  x 
)
virtual

Compute the contact Jacobian and acceleration drift.

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

Implements ContactModelAbstractTpl< _Scalar >.

◆ calcDiff()

void calcDiff ( const boost::shared_ptr< ContactDataAbstract > &  data,
const Eigen::Ref< const VectorXs > &  x 
)
virtual

Compute the derivatives of the acceleration-based contact.

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

Implements ContactModelAbstractTpl< _Scalar >.

◆ updateForce()

void updateForce ( const boost::shared_ptr< ContactDataAbstract > &  data,
const VectorXs &  force 
)
virtual

Convert the force into a stack of spatial forces.

Parameters
[in]dataContact data
[in]forceContact force

Implements ContactModelAbstractTpl< _Scalar >.

◆ createData()

boost::shared_ptr<ContactDataAbstract> createData ( pinocchio::DataTpl< Scalar > *const  data)
virtual

Create a Data object.

Parameters
datais the Pinocchio data
Returns
boost::shared_ptr<ContactModelAbstract>

Reimplemented from ContactModelAbstractTpl< _Scalar >.

◆ set_reevals()

void set_reevals ( const std::vector< ReevaluationFunction > &  reevals)

Register functions that take a pinocchio model, a pinocchio data, a state and a control. The updated data is used to evaluate of the gradient and Hessian.

Parameters
reevalsare the registered functions.

Member Data Documentation

◆ e_jac_

Scalar e_jac_
protected

Constant used for computing disturbances in Jacobian calculation

Definition at line 106 of file contact.hpp.


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