Template Class ImpulseModel6DTpl

Inheritance Relationships

Base Type

Class Documentation

template<typename _Scalar>
class ImpulseModel6DTpl : public crocoddyl::ImpulseModelAbstractTpl<_Scalar>

Public Types

typedef MathBaseTpl<Scalar> MathBase
typedef ImpulseModelAbstractTpl<Scalar> Base
typedef ImpulseData6DTpl<Scalar> Data
typedef StateMultibodyTpl<Scalar> StateMultibody
typedef ImpulseDataAbstractTpl<Scalar> ImpulseDataAbstract
typedef MathBase::Vector2s Vector2s
typedef MathBase::Vector3s Vector3s
typedef MathBase::VectorXs VectorXs
typedef MathBase::MatrixXs MatrixXs
typedef MathBase::Matrix3s Matrix3s

Public Functions

ImpulseModel6DTpl(std::shared_ptr<StateMultibody> state, const pinocchio::FrameIndex id, const pinocchio::ReferenceFrame type = pinocchio::ReferenceFrame::LOCAL)

Initialize the 6d impulse model.

Parameters:
  • state[in] State of the multibody system

  • id[in] Reference frame id of the impulse

  • type[in] Type of impulse (default LOCAL)

virtual ~ImpulseModel6DTpl() = default
virtual void calc(const std::shared_ptr<ImpulseDataAbstract> &data, const Eigen::Ref<const VectorXs> &x) override

Compute the 3d impulse Jacobian.

Parameters:
  • data[in] 3d impulse data

  • x[in] State point \(\mathbf{x}\in\mathbb{R}^{ndx}\)

virtual void calcDiff(const std::shared_ptr<ImpulseDataAbstract> &data, const Eigen::Ref<const VectorXs> &x) override

Compute the derivatives of the 3d impulse holonomic constraint.

Parameters:
  • data[in] 3d impulse data

  • x[in] State point \(\mathbf{x}\in\mathbb{R}^{ndx}\)

virtual void updateForce(const std::shared_ptr<ImpulseDataAbstract> &data, const VectorXs &force) override

Convert the force into a stack of spatial forces.

Parameters:
  • data[in] 3d impulse data

  • force[in] 3d impulse

virtual std::shared_ptr<ImpulseDataAbstract> createData(pinocchio::DataTpl<Scalar> *const data) override

Create the 3d impulse data.

template<typename NewScalar>
ImpulseModel6DTpl<NewScalar> cast() const

Cast the impulse-6d model to a different scalar type.

It is useful for operations requiring different precision or scalar types.

Template Parameters:

NewScalar – The new scalar type to cast to.

Returns:

ImpulseModel6DTpl<NewScalar> An impulse model with the new scalar type.

virtual void print(std::ostream &os) const override

Print relevant information of the 6d impulse model.

Parameters:

os[out] Output stream object

Public Members

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar

Protected Attributes

pinocchio::FrameIndex id_

Reference frame id of the contact.

std::shared_ptr<StateMultibody> state_
pinocchio::ReferenceFrame type_

Type of contact.