26 using Model = pinocchio::ModelTpl<Scalar>;
27 using SE3 = pinocchio::SE3Tpl<Scalar>;
30 pinocchio::RigidConstraintModel);
32 PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(pinocchio::RigidConstraintData);
47 const int ndx,
const Model &model,
const MatrixXs &actuation,
49 const ProxSettings &prox_settings,
const std::string &contact_name,
50 const double mu,
const double half_length,
const double half_width)
51 :
Base(ndx, (int)actuation.cols(), 17)
59 if (model.nv != actuation.rows()) {
60 ALIGATOR_DOMAIN_ERROR(
61 fmt::format(
"actuation matrix should have number of rows = pinocchio "
62 "model nv ({} and {}).",
63 actuation.rows(), model.nv));
66 for (std::size_t i = 0; i < constraint_models.size(); i++) {
67 if (constraint_models[i].name == contact_name) {
73 "Contact name is not included in constraint models");
75 Acone_ << 0, 0, -1, 0, 0, 0, -1, 0, -
mu_, 0, 0, 0, 1, 0, -
mu_, 0, 0, 0, 0,
76 -1, -
mu_, 0, 0, 0, 0, 1, -
mu_, 0, 0, 0, 0, 0, -
hW_, -1, 0, 0, 0, 0,
77 -
hW_, 1, 0, 0, 0, 0, -
hL_, 0, -1, 0, 0, 0, -
hL_, 0, 1, 0, -
hW_, -
hL_,
79 -
mu_, -1,
hW_, -
hL_, -(
hL_ +
hW_) *
mu_, -
mu_,
mu_, -1,
hW_,
hL_,
81 mu_, 1,
hW_, -
hL_, -(
hL_ +
hW_) *
mu_,
mu_, -
mu_, 1, -
hW_,
hL_,
86 void evaluate(
const ConstVectorRef &x,
const ConstVectorRef &u,
93 return std::make_shared<Data>(
this);
typename math_types< Scalar >::MatrixXs MatrixXs
StageFunctionDataTpl< Scalar > Base
typename math_types< Scalar >::VectorXs VectorXs
MultibodyWrenchConeDataTpl(const MultibodyWrenchConeResidualTpl< Scalar > *model)
pinocchio::ProximalSettingsTpl< Scalar > settings
pinocchio::DataTpl< Scalar > PinData
PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(pinocchio::RigidConstraintData) RigidConstraintDataVector
RigidConstraintDataVector constraint_datas_
typename math_types< Scalar >::Matrix6Xs Matrix6Xs
This residual returns the derivative of centroidal momentum for a kinodynamics model.
StageFunctionTpl< Scalar > Base
ProxSettings prox_settings_
typename Base::Data BaseData
Eigen::Matrix< Scalar, 17, 6 > Acone_
RigidConstraintModelVector constraint_models_
shared_ptr< BaseData > createData() const
Instantiate a Data object.
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
pinocchio::SE3Tpl< Scalar > SE3
void evaluate(const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
MultibodyWrenchConeResidualTpl(const int ndx, const Model &model, const MatrixXs &actuation, const RigidConstraintModelVector &constraint_models, const ProxSettings &prox_settings, const std::string &contact_name, const double mu, const double half_length, const double half_width)
MultibodyWrenchConeDataTpl< Scalar > Data
PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(pinocchio::RigidConstraintData) RigidConstraintDataVector
PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR( pinocchio::RigidConstraintModel) RigidConstraintModelVector
pinocchio::ProximalSettingsTpl< Scalar > ProxSettings
void computeJacobians(const ConstVectorRef &, const ConstVectorRef &, BaseData &data) const
pinocchio::ModelTpl< Scalar > Model