44 using SE3 = pinocchio::SE3Tpl<Scalar>;
45 using Motion = pinocchio::MotionTpl<Scalar>;
62 using pinocchio::GeometryModel;
64 if (!eigenpy::check_registration<shared_ptr<PinData>>())
65 bp::register_ptr_to_python<shared_ptr<PinData>>();
69 bp::class_<FrameEquality, bp::bases<UnaryFunction>>(
70 "FrameEqualityResidual",
"Frame equality residual function.",
71 bp::init<int, int,
const PinModel &, pinocchio::FrameIndex,
72 pinocchio::FrameIndex>(
73 (
"self"_a,
"ndx",
"nu",
"model",
"frame_id1",
"frame_id2")))
75 .def(
"getReference", &FrameEquality::getReference,
"self"_a,
76 bp::return_internal_reference<>(),
77 "Get the target transform between frame1 and frame2.")
78 .def(
"setReference", &FrameEquality::setReference, (
"self"_a,
"p_new"),
79 "Set the target transform between frame1 and frame2.")
80 .add_property(
"frame1_id", &FrameEquality::getFrame1Id,
81 &FrameEquality::setFrame1Id,
82 "Get the Pinocchio ID of frame1.")
83 .add_property(
"frame2_id", &FrameEquality::getFrame2Id,
84 &FrameEquality::setFrame2Id,
85 "Get the Pinocchio ID of frame2.");
87 bp::register_ptr_to_python<shared_ptr<FrameEqualityData>>();
89 bp::class_<FrameEqualityData, bp::bases<context::StageFunctionData>>(
90 "FrameEqualityData",
"Data struct for FrameEqualityResidual.",
92 .def_readonly(
"RMf2", &FrameEqualityData::RMf2_,
"Frame placement error.")
93 .def_readonly(
"RJlog6f2", &FrameEqualityData::RJlog6f2_)
94 .def_readonly(
"wJf1", &FrameEqualityData::wJf1_)
95 .def_readonly(
"wJf2", &FrameEqualityData::wJf2_)
96 .def_readonly(
"pin_data", &FrameEqualityData::pin_data_,
97 "Pinocchio data struct.");
99 bp::class_<FramePlacement, bp::bases<UnaryFunction>>(
100 "FramePlacementResidual",
"Frame placement residual function.",
101 bp::init<int, int, const PinModel &, const SE3 &, pinocchio::FrameIndex>(
102 (
"self"_a,
"ndx",
"nu",
"model",
"p_ref",
"id")))
105 .def(
"getReference", &FramePlacement::getReference,
"self"_a,
106 bp::return_internal_reference<>(),
"Get the target frame in SE3.")
107 .def(
"setReference", &FramePlacement::setReference, (
"self"_a,
"p_new"),
108 "Set the target frame in SE3.");
110 bp::register_ptr_to_python<shared_ptr<FramePlacementData>>();
112 bp::class_<FramePlacementData, bp::bases<context::StageFunctionData>>(
113 "FramePlacementData",
"Data struct for FramePlacementResidual.",
115 .def_readonly(
"rMf", &FramePlacementData::rMf_,
"Frame placement error.")
116 .def_readonly(
"rJf", &FramePlacementData::rJf_)
117 .def_readonly(
"fJf", &FramePlacementData::fJf_)
118 .def_readonly(
"pin_data", &FramePlacementData::pin_data_,
119 "Pinocchio data struct.");
121 bp::class_<FrameVelocity, bp::bases<UnaryFunction>>(
122 "FrameVelocityResidual",
"Frame velocity residual function.",
123 bp::init<int, int,
const PinModel &,
const Motion &,
124 pinocchio::FrameIndex, pinocchio::ReferenceFrame>(
125 (
"self"_a,
"ndx",
"nu",
"model",
"v_ref",
"id",
"reference_frame")))
128 .def_readonly(
"pin_model", &FrameVelocity::pin_model_)
129 .def_readwrite(
"vref", &FrameVelocity::vref_)
130 .def_readwrite(
"type", &FrameVelocity::type_)
131 .def(
"getReference", &FrameVelocity::getReference,
"self"_a,
132 bp::return_internal_reference<>(),
133 deprecated_member<>(
"Get the target frame velocity."))
134 .def(
"setReference", &FrameVelocity::setReference, (
"self"_a,
"v_new"),
135 deprecated_member<>(
"Set the target frame velocity."));
137 bp::register_ptr_to_python<shared_ptr<FrameVelocityData>>();
139 bp::class_<FrameVelocityData, bp::bases<context::StageFunctionData>>(
140 "FrameVelocityData",
"Data struct for FrameVelocityResidual.",
142 .def_readonly(
"pin_data", &FrameVelocityData::pin_data_,
143 "Pinocchio data struct.");
145 bp::class_<FrameTranslation, bp::bases<UnaryFunction>>(
146 "FrameTranslationResidual",
"Frame placement residual function.",
147 bp::init<int, int,
const PinModel &,
const context::Vector3s &,
148 pinocchio::FrameIndex>(
149 (
"self"_a,
"ndx",
"nu",
"model",
"p_ref",
"id")))
152 .def(
"getReference", &FrameTranslation::getReference,
"self"_a,
153 bp::return_internal_reference<>(),
154 "Get the target frame translation.")
155 .def(
"setReference", &FrameTranslation::setReference, (
"self"_a,
"p_new"),
156 "Set the target frame translation.");
158 bp::register_ptr_to_python<shared_ptr<FrameTranslationData>>();
160 bp::class_<FrameTranslationData, bp::bases<context::StageFunctionData>>(
161 "FrameTranslationData",
"Data struct for FrameTranslationResidual.",
163 .def_readonly(
"fJf", &FrameTranslationData::fJf_)
164 .def_readonly(
"pin_data", &FrameTranslationData::pin_data_,
165 "Pinocchio data struct.");
167 bp::class_<FrameCollision, bp::bases<UnaryFunction>>(
168 "FrameCollisionResidual",
"Frame collision residual function.",
169 bp::init<int, int,
const PinModel &,
const GeometryModel &,
170 pinocchio::PairIndex>(
171 (
"self"_a,
"ndx",
"nu",
"model",
"geom_model",
"frame_pair_id")))
175 bp::register_ptr_to_python<shared_ptr<FrameCollisionData>>();
177 bp::class_<FrameCollisionData, bp::bases<context::StageFunctionData>>(
178 "FrameCollisionData",
"Data struct for FrameCollisionResidual.",
180 .def_readonly(
"pin_data", &FrameCollisionData::pin_data_,
181 "Pinocchio data struct.")
182 .def_readonly(
"geom_data", &FrameCollisionData::geom_data,
183 "Geometry data struct.");
pinocchio::ModelTpl< Scalar, Options > PinModel
pinocchio::DataTpl< Scalar, Options > PinData