crocoddyl  1.9.0
Contact RObot COntrol by Differential DYnamic programming Library (Crocoddyl)
StateMultibodyTpl< _Scalar > Class Template Reference

State multibody representation. More...

#include <crocoddyl/multibody/states/multibody.hpp>

Public Types

typedef StateAbstractTpl< Scalar > Base
 
typedef MathBaseTpl< Scalar > MathBase
 
typedef MathBase::MatrixXs MatrixXs
 
typedef pinocchio::ModelTpl< Scalar > PinocchioModel
 
typedef MathBase::VectorXs VectorXs
 

Public Member Functions

 StateMultibodyTpl (boost::shared_ptr< PinocchioModel > model)
 Initialize the multibody state. More...
 
virtual void diff (const Eigen::Ref< const VectorXs > &x0, const Eigen::Ref< const VectorXs > &x1, Eigen::Ref< VectorXs > dxout) const
 
const boost::shared_ptr< PinocchioModel > & get_pinocchio () const
 Return the Pinocchio model (i.e., model of the rigid body system)
 
virtual void integrate (const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &dx, Eigen::Ref< VectorXs > xout) const
 
virtual void Jdiff (const Eigen::Ref< const VectorXs > &, const Eigen::Ref< const VectorXs > &, Eigen::Ref< MatrixXs > Jfirst, Eigen::Ref< MatrixXs > Jsecond, const Jcomponent firstsecond=both) const
 
virtual void Jintegrate (const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &dx, Eigen::Ref< MatrixXs > Jfirst, Eigen::Ref< MatrixXs > Jsecond, const Jcomponent firstsecond=both, const AssignmentOp=setto) const
 
virtual void JintegrateTransport (const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &dx, Eigen::Ref< MatrixXs > Jin, const Jcomponent firstsecond) const
 
virtual VectorXs rand () const
 Generate a random state. More...
 
virtual VectorXs zero () const
 Generate a zero state. More...
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar
 

Protected Attributes

bool has_limits_
 Indicates whether any of the state limits is finite.
 
VectorXs lb_
 Lower state limits.
 
std::size_t ndx_
 State rate dimension.
 
std::size_t nq_
 Configuration dimension.
 
std::size_t nv_
 Velocity dimension.
 
std::size_t nx_
 State dimension.
 
VectorXs ub_
 Upper state limits.
 

Detailed Description

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

State multibody representation.

A multibody state is described by the configuration point and its tangential velocity, or in other words, by the generalized position and velocity coordinates of a rigid-body system. For this state, we describe its operators: difference, integrates, transport and their derivatives for any Pinocchio model.

For more details about these operators, please read the documentation of the StateAbstractTpl class.

See also
diff(), integrate(), Jdiff(), Jintegrate() and JintegrateTransport()

Definition at line 305 of file fwd.hpp.

Constructor & Destructor Documentation

◆ StateMultibodyTpl()

StateMultibodyTpl ( boost::shared_ptr< PinocchioModel >  model)
explicit

Initialize the multibody state.

Parameters
[in]modelPinocchio model

Member Function Documentation

◆ zero()

virtual VectorXs zero ( ) const
virtual

Generate a zero state.

Note that the zero configuration is computed using pinocchio::neutral.

◆ rand()

virtual VectorXs rand ( ) const
virtual

Generate a random state.

Note that the random configuration is computed using pinocchio::random which satisfies the manifold definition (e.g., the quaterion definition)


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