hpp::constraints::RelativeCom Class Reference

Constraint on the relative position of the center of mass. More...

#include <hpp/constraints/relative-com.hh>

Inheritance diagram for hpp::constraints::RelativeCom:
Collaboration diagram for hpp::constraints::RelativeCom:

List of all members.

Public Member Functions

virtual ~RelativeCom () throw ()
 RelativeCom (const DevicePtr_t &robot, const CenterOfMassComputationPtr_t &comc, const JointPtr_t &joint, const vector3_t reference, std::vector< bool > mask)

Static Public Member Functions

static
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
RelativeComPtr_t 
create (const DevicePtr_t &robot, const JointPtr_t &joint, const vector3_t reference, std::vector< bool > mask=boost::assign::list_of(true)(true)(true).convert_to_container< std::vector< bool > >())
 Return a shared pointer to a new instance.
static RelativeComPtr_t create (const DevicePtr_t &robot, const CenterOfMassComputationPtr_t &comc, const JointPtr_t &joint, const vector3_t reference, std::vector< bool > mask=boost::assign::list_of(true)(true)(true).convert_to_container< std::vector< bool > >())

Protected Member Functions

virtual void impl_compute (vectorOut_t result, ConfigurationIn_t argument) const throw ()
 Compute value of error.
virtual void impl_jacobian (matrixOut_t jacobian, ConfigurationIn_t arg) const throw ()

Detailed Description

Constraint on the relative position of the center of mass.

The value of the function is defined as the position of the center of mass in the reference frame of a joint.

\begin{eqnarray*} \mathbf{f}(\mathbf{q}) &=& R^T \left(\mathbf{x} - \mathbf{t}\right) - \mathbf{x}^{*}\\ \mathbf{\dot{f}} &=& R^T \left( J_{com} + [\mathbf{x}-\mathbf{t}]_{\times}J_{joint}^{\omega} - J_{joint}^{\mathbf{v}}\right)\mathbf{\dot{q}} \end{eqnarray*}

where

  • $ \left(\begin{array}{cc} R & \mathbf{t} \\ 0 & 1\end{array}\right) $ is the position of the joint,
  • $\mathbf{x}$ is the position of the center of mass,
  • $\mathbf{x}^{*}$ is the desired position of the center of mass expressed in joint frame.

Constructor & Destructor Documentation

virtual hpp::constraints::RelativeCom::~RelativeCom ( ) throw () [inline, virtual]
hpp::constraints::RelativeCom::RelativeCom ( const DevicePtr_t robot,
const CenterOfMassComputationPtr_t comc,
const JointPtr_t joint,
const vector3_t  reference,
std::vector< bool >  mask 
)

Member Function Documentation

static EIGEN_MAKE_ALIGNED_OPERATOR_NEW RelativeComPtr_t hpp::constraints::RelativeCom::create ( const DevicePtr_t robot,
const JointPtr_t joint,
const vector3_t  reference,
std::vector< bool >  mask = boost::assign::list_of(true)(true)(true).convert_to_container< std::vector< bool > >() 
) [static]

Return a shared pointer to a new instance.

static RelativeComPtr_t hpp::constraints::RelativeCom::create ( const DevicePtr_t robot,
const CenterOfMassComputationPtr_t comc,
const JointPtr_t joint,
const vector3_t  reference,
std::vector< bool >  mask = boost::assign::list_of(true)(true)(true).convert_to_container< std::vector< bool > >() 
) [static]
virtual void hpp::constraints::RelativeCom::impl_compute ( vectorOut_t  result,
ConfigurationIn_t  argument 
) const throw () [protected, virtual]

Compute value of error.

Parameters:
argumentconfiguration of the robot,
Return values:
resulterror vector
virtual void hpp::constraints::RelativeCom::impl_jacobian ( matrixOut_t  jacobian,
ConfigurationIn_t  arg 
) const throw () [protected, virtual]