51 using SE3 = pinocchio::SE3Tpl<Scalar>;
52 using Motion = pinocchio::MotionTpl<Scalar>;
69 using pinocchio::GeometryModel;
71 if (!eigenpy::check_registration<shared_ptr<PinData>>())
72 bp::register_ptr_to_python<shared_ptr<PinData>>();
76 bp::class_<FrameEquality, bp::bases<UnaryFunction>>(
77 "FrameEqualityResidual",
"Frame equality residual function.",
78 bp::init<int, int,
const PinModel &, pinocchio::FrameIndex,
79 pinocchio::FrameIndex>(
80 (
"self"_a,
"ndx",
"nu",
"model",
"frame_id1",
"frame_id2")))
82 .def(
"getReference", &FrameEquality::getReference,
"self"_a,
83 bp::return_internal_reference<>(),
84 "Get the target transform between frame1 and frame2.")
85 .def(
"setReference", &FrameEquality::setReference, (
"self"_a,
"p_new"),
86 "Set the target transform between frame1 and frame2.")
87 .add_property(
"frame1_id", &FrameEquality::getFrame1Id,
88 &FrameEquality::setFrame1Id,
89 "Get the Pinocchio ID of frame1.")
90 .add_property(
"frame2_id", &FrameEquality::getFrame2Id,
91 &FrameEquality::setFrame2Id,
92 "Get the Pinocchio ID of frame2.");
94 bp::register_ptr_to_python<shared_ptr<FrameEqualityData>>();
96 bp::class_<FrameEqualityData, bp::bases<context::StageFunctionData>>(
97 "FrameEqualityData",
"Data struct for FrameEqualityResidual.",
99 .def_readonly(
"RMf2", &FrameEqualityData::RMf2_,
"Frame placement error.")
100 .def_readonly(
"RJlog6f2", &FrameEqualityData::RJlog6f2_)
101 .def_readonly(
"wJf1", &FrameEqualityData::wJf1_)
102 .def_readonly(
"wJf2", &FrameEqualityData::wJf2_)
103 .def_readonly(
"pin_data", &FrameEqualityData::pin_data_,
104 "Pinocchio data struct.");
106 bp::class_<FramePlacement, bp::bases<UnaryFunction>>(
107 "FramePlacementResidual",
"Frame placement residual function.",
108 bp::init<int, int, const PinModel &, const SE3 &, pinocchio::FrameIndex>(
109 (
"self"_a,
"ndx",
"nu",
"model",
"p_ref",
"id")))
112 .def(
"getReference", &FramePlacement::getReference,
"self"_a,
113 bp::return_internal_reference<>(),
"Get the target frame in SE3.")
114 .def(
"setReference", &FramePlacement::setReference, (
"self"_a,
"p_new"),
115 "Set the target frame in SE3.");
117 bp::register_ptr_to_python<shared_ptr<FramePlacementData>>();
119 bp::class_<FramePlacementData, bp::bases<context::StageFunctionData>>(
120 "FramePlacementData",
"Data struct for FramePlacementResidual.",
122 .def_readonly(
"rMf", &FramePlacementData::rMf_,
"Frame placement error.")
123 .def_readonly(
"rJf", &FramePlacementData::rJf_)
124 .def_readonly(
"fJf", &FramePlacementData::fJf_)
125 .def_readonly(
"pin_data", &FramePlacementData::pin_data_,
126 "Pinocchio data struct.");
128 bp::class_<FrameVelocity, bp::bases<UnaryFunction>>(
129 "FrameVelocityResidual",
"Frame velocity residual function.",
130 bp::init<int, int,
const PinModel &,
const Motion &,
131 pinocchio::FrameIndex, pinocchio::ReferenceFrame>(
132 (
"self"_a,
"ndx",
"nu",
"model",
"v_ref",
"id",
"reference_frame")))
135 .def_readonly(
"pin_model", &FrameVelocity::pin_model_)
136 .def_readwrite(
"vref", &FrameVelocity::vref_)
137 .def_readwrite(
"type", &FrameVelocity::type_)
138 .def(
"getReference", &FrameVelocity::getReference,
"self"_a,
139 bp::return_internal_reference<>(),
140 deprecated_member<>(
"Get the target frame velocity."))
141 .def(
"setReference", &FrameVelocity::setReference, (
"self"_a,
"v_new"),
142 deprecated_member<>(
"Set the target frame velocity."));
144 bp::register_ptr_to_python<shared_ptr<FrameVelocityData>>();
146 bp::class_<FrameVelocityData, bp::bases<context::StageFunctionData>>(
147 "FrameVelocityData",
"Data struct for FrameVelocityResidual.",
149 .def_readonly(
"pin_data", &FrameVelocityData::pin_data_,
150 "Pinocchio data struct.");
152 bp::class_<FrameTranslation, bp::bases<UnaryFunction>>(
153 "FrameTranslationResidual",
"Frame placement residual function.",
154 bp::init<int, int,
const PinModel &,
const context::Vector3s &,
155 pinocchio::FrameIndex>(
156 (
"self"_a,
"ndx",
"nu",
"model",
"p_ref",
"id")))
159 .def(
"getReference", &FrameTranslation::getReference,
"self"_a,
160 bp::return_internal_reference<>(),
161 "Get the target frame translation.")
162 .def(
"setReference", &FrameTranslation::setReference, (
"self"_a,
"p_new"),
163 "Set the target frame translation.");
165 bp::register_ptr_to_python<shared_ptr<FrameTranslationData>>();
167 bp::class_<FrameTranslationData, bp::bases<context::StageFunctionData>>(
168 "FrameTranslationData",
"Data struct for FrameTranslationResidual.",
170 .def_readonly(
"fJf", &FrameTranslationData::fJf_)
171 .def_readonly(
"pin_data", &FrameTranslationData::pin_data_,
172 "Pinocchio data struct.");
174 bp::class_<FrameCollision, bp::bases<UnaryFunction>>(
175 "FrameCollisionResidual",
"Frame collision residual function.",
176 bp::init<int, int,
const PinModel &,
const GeometryModel &,
177 pinocchio::PairIndex>(
178 (
"self"_a,
"ndx",
"nu",
"model",
"geom_model",
"frame_pair_id")))
182 bp::register_ptr_to_python<shared_ptr<FrameCollisionData>>();
184 bp::class_<FrameCollisionData, bp::bases<context::StageFunctionData>>(
185 "FrameCollisionData",
"Data struct for FrameCollisionResidual.",
187 .def_readonly(
"pin_data", &FrameCollisionData::pin_data_,
188 "Pinocchio data struct.")
189 .def_readonly(
"geom_data", &FrameCollisionData::geom_data,
190 "Geometry data struct.");
pinocchio::ModelTpl< Scalar, Options > PinModel
pinocchio::DataTpl< Scalar, Options > PinData