5#ifdef ALIGATOR_PINOCCHIO_V3
13using RigidConstraintModel =
14 pinocchio::RigidConstraintModelTpl<context::Scalar, 0>;
15using RigidConstraintData =
16 pinocchio::RigidConstraintDataTpl<context::Scalar, 0>;
18using RigidConstraintModelVector =
19 PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(RigidConstraintModel);
20using RigidConstraintDataVector =
21 PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(RigidConstraintData);
25void exposeConstrainedFwdDynamics() {
28 using ODEData = ODEDataTpl<Scalar>;
30 using MultibodyConstraintFwdData = MultibodyConstraintFwdDataTpl<Scalar>;
31 using MultibodyConstraintFwdDynamics =
32 MultibodyConstraintFwdDynamicsTpl<Scalar>;
34 bp::class_<MultibodyConstraintFwdDynamics, bp::bases<ODEAbstract>>(
35 "MultibodyConstraintFwdDynamics",
36 "Constraint forward dynamics using Pinocchio.",
37 bp::init<const shared_ptr<proxsuite::nlp::MultibodyPhaseSpace<Scalar>> &,
38 const context::MatrixXs &,
const RigidConstraintModelVector &,
39 const pinocchio::ProximalSettingsTpl<Scalar> &>(
40 bp::args(
"self",
"space",
"actuation_matrix",
"constraint_models",
42 .def_readwrite(
"constraint_models",
43 &MultibodyConstraintFwdDynamics::constraint_models_)
44 .add_property(
"ntau", &MultibodyConstraintFwdDynamics::ntau,
47 bp::register_ptr_to_python<shared_ptr<MultibodyConstraintFwdData>>();
49 bp::class_<MultibodyConstraintFwdData, bp::bases<ODEData>>(
50 "MultibodyConstraintFwdData", bp::no_init)
51 .def_readwrite(
"tau", &MultibodyConstraintFwdData::tau_)
52 .def_readwrite(
"dtau_dx", &MultibodyConstraintFwdData::dtau_dx_)
53 .def_readwrite(
"dtau_du", &MultibodyConstraintFwdData::dtau_du_)
54 .def_readwrite(
"pin_data", &MultibodyConstraintFwdData::pin_data_)
55 .def_readwrite(
"constraint_datas",
56 &MultibodyConstraintFwdData::constraint_datas_);
dynamics::ODEAbstractTpl< Scalar > ODEAbstract
Namespace for modelling system dynamics.