3#ifdef ALIGATOR_WITH_PINOCCHIO
15using Vector3or6 = Eigen::Matrix<double, -1, 1, Eigen::ColMajor, 6, 1>;
16using context::ConstVectorRef;
22using RigidConstraintModel =
23 pinocchio::RigidConstraintModelTpl<context::Scalar, 0>;
24using RigidConstraintData =
25 pinocchio::RigidConstraintDataTpl<context::Scalar, 0>;
27using RigidConstraintModelVector =
28 PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(RigidConstraintModel);
29using RigidConstraintDataVector =
30 PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(RigidConstraintData);
34void exposeContactForce() {
35 using ContactForceResidual = ContactForceResidualTpl<Scalar>;
36 using ContactForceData = ContactForceDataTpl<Scalar>;
38 using MultibodyWrenchConeResidual = MultibodyWrenchConeResidualTpl<Scalar>;
39 using MultibodyWrenchConeData = MultibodyWrenchConeDataTpl<Scalar>;
41 using MultibodyFrictionConeResidual =
42 MultibodyFrictionConeResidualTpl<Scalar>;
43 using MultibodyFrictionConeData = MultibodyFrictionConeDataTpl<Scalar>;
45 bp::class_<ContactForceResidual, bp::bases<StageFunction>>(
46 "ContactForceResidual",
47 "A residual function :math:`r(x) = v_{j,xy} e^{-s z_j}` where :math:`j` "
48 "is a given frame index.",
50 .def(bp::init<
int, PinModel,
const context::MatrixXs &,
51 const RigidConstraintModelVector &,
52 const pinocchio::ProximalSettingsTpl<Scalar> &,
53 const Eigen::VectorXd &,
const std::string &>(bp::args(
54 "self",
"ndx",
"model",
"actuation_matrix",
"constraint_models",
55 "prox_settings",
"fref",
"contact_name")))
57 .def(
"getReference", &ContactForceResidual::getReference,
58 bp::args(
"self"), bp::return_internal_reference<>(),
59 "Get the target force.")
60 .def(
"setReference", &ContactForceResidual::setReference,
61 bp::args(
"self",
"fnew"),
"Set the target force.")
62 .def_readwrite(
"constraint_models",
63 &ContactForceResidual::constraint_models_);
65 bp::class_<ContactForceData, bp::bases<StageFunctionData>>(
"ContactForceData",
67 .def_readwrite(
"tau", &ContactForceData::tau_)
68 .def_readwrite(
"pin_data", &ContactForceData::pin_data_)
69 .def_readwrite(
"constraint_datas", &ContactForceData::constraint_datas_);
71 bp::class_<MultibodyWrenchConeResidual, bp::bases<StageFunction>>(
72 "MultibodyWrenchConeResidual",
"A residual function :math:`r(x) = Af` ",
74 .def(bp::init<
int, PinModel,
const context::MatrixXs &,
75 const RigidConstraintModelVector &,
76 const pinocchio::ProximalSettingsTpl<Scalar> &,
77 const std::string &,
const double,
const double,
78 const double>(bp::args(
79 "self",
"ndx",
"model",
"actuation_matrix",
"constraint_models",
80 "prox_settings",
"contact_name",
"mu",
"half_length",
"half_width")))
82 .def_readwrite(
"constraint_models",
83 &MultibodyWrenchConeResidual::constraint_models_);
85 bp::class_<MultibodyWrenchConeData, bp::bases<StageFunctionData>>(
86 "MultibodyWrenchConeData", bp::no_init)
87 .def_readwrite(
"tau", &MultibodyWrenchConeData::tau_)
88 .def_readwrite(
"pin_data", &MultibodyWrenchConeData::pin_data_)
89 .def_readwrite(
"constraint_datas",
90 &MultibodyWrenchConeData::constraint_datas_);
92 bp::class_<MultibodyFrictionConeResidual, bp::bases<StageFunction>>(
93 "MultibodyFrictionConeResidual",
"A residual function :math:`r(x) = Af` ",
95 .def(bp::init<
int, PinModel,
const context::MatrixXs &,
96 const RigidConstraintModelVector &,
97 const pinocchio::ProximalSettingsTpl<Scalar> &,
98 const std::string &,
const double>(
99 bp::args(
"self",
"ndx",
"model",
"actuation_matrix",
100 "constraint_models",
"prox_settings",
"contact_name",
"mu")))
102 .def_readwrite(
"constraint_models",
103 &MultibodyFrictionConeResidual::constraint_models_);
105 bp::class_<MultibodyFrictionConeData, bp::bases<StageFunctionData>>(
106 "MultibodyFrictionConeData", bp::no_init)
107 .def_readwrite(
"tau", &MultibodyFrictionConeData::tau_)
108 .def_readwrite(
"pin_data", &MultibodyFrictionConeData::pin_data_)
109 .def_readwrite(
"constraint_datas",
110 &MultibodyFrictionConeData::constraint_datas_);
pinocchio::ModelTpl< Scalar, Options > PinModel
StageFunctionTpl< Scalar > StageFunction
MultibodyPhaseSpace< Scalar > MultibodyPhaseSpace
StageFunctionDataTpl< Scalar > StageFunctionData
PolymorphicMultiBaseVisitor< StageFunction > func_visitor