59 using CentroidalAccelerationResidual =
63 using CentroidalFrictionConeResidual =
79 bp::class_<CentroidalCoMResidual, bp::bases<UnaryFunction>>(
80 "CentroidalCoMResidual",
"A residual function :math:`r(x) = com(x)` ",
81 bp::init<const int, const int, const context::Vector3s &>(
82 (
"self"_a,
"ndx",
"nu",
"p_ref")))
83 .def(
"getReference", &CentroidalCoMResidual::getReference, (
"self"_a),
84 bp::return_internal_reference<>(),
85 "Get the target Centroidal CoM translation.")
86 .def(
"setReference", &CentroidalCoMResidual::setReference,
87 (
"self"_a,
"p_new"),
"Set the target Centroidal CoM translation.")
90 bp::register_ptr_to_python<shared_ptr<CentroidalCoMData>>();
92 bp::class_<CentroidalCoMData, bp::bases<StageFunctionData>>(
93 "CentroidalCoMData",
"Data Structure for CentroidalCoM", bp::no_init);
95 bp::class_<LinearMomentumResidual, bp::bases<UnaryFunction>>(
96 "LinearMomentumResidual",
"A residual function :math:`r(x) = h(x)` ",
97 bp::init<const int, const int, const context::Vector3s &>(
98 (
"self"_a,
"ndx",
"nu",
"h_ref")))
99 .def(
"getReference", &LinearMomentumResidual::getReference, (
"self"_a),
100 bp::return_internal_reference<>(),
"Get the target Linear Momentum.")
101 .def(
"setReference", &LinearMomentumResidual::setReference,
102 (
"self"_a,
"h_new"),
"Set the target Linear Momentum.")
105 bp::register_ptr_to_python<shared_ptr<LinearMomentumData>>();
107 bp::class_<LinearMomentumData, bp::bases<StageFunctionData>>(
108 "LinearMomentumData",
"Data Structure for LinearMomentum", bp::no_init);
110 bp::class_<AngularMomentumResidual, bp::bases<UnaryFunction>>(
111 "AngularMomentumResidual",
"A residual function :math:`r(x) = L(x)` ",
112 bp::init<const int, const int, const context::Vector3s &>(
113 (
"self"_a,
"ndx",
"nu",
"L_ref")))
114 .def(
"getReference", &AngularMomentumResidual::getReference,
"self"_a,
115 bp::return_internal_reference<>(),
116 "Get the target Angular Momentum.")
117 .def(
"setReference", &AngularMomentumResidual::setReference,
118 (
"self"_a,
"L_new"),
"Set the target Angular Momentum.")
121 bp::register_ptr_to_python<shared_ptr<AngularMomentumData>>();
123 bp::class_<AngularMomentumData, bp::bases<StageFunctionData>>(
124 "AngularMomentumData",
"Data Structure for AngularMomentum", bp::no_init);
126 bp::class_<CentroidalAccelerationResidual, bp::bases<StageFunction>>(
127 "CentroidalAccelerationResidual",
128 "A residual function :math:`r(x) = cddot(x)` ",
129 bp::init<
const int,
const int,
const double,
const context::Vector3s &,
130 const ContactMap &,
const int>((
"self"_a,
"ndx",
"nu",
"mass",
131 "gravity",
"contact_map",
133 .def_readwrite(
"contact_map",
134 &CentroidalAccelerationResidual::contact_map_)
138 bp::register_ptr_to_python<shared_ptr<CentroidalAccelerationData>>();
140 bp::class_<CentroidalAccelerationData, bp::bases<StageFunctionData>>(
141 "CentroidalAccelerationData",
"Data Structure for CentroidalAcceleration",
144 bp::class_<CentroidalFrictionConeResidual, bp::bases<StageFunction>>(
145 "CentroidalFrictionConeResidual",
146 "A residual function :math:`r(x) = [fz, mu2 * fz2 - (fx2 + fy2)]` ",
147 bp::init<const int, const int, const int, const double, const double>(
148 (
"self"_a,
"ndx",
"nu",
"k",
"mu",
"epsilon")))
151 bp::register_ptr_to_python<shared_ptr<CentroidalFrictionConeData>>();
153 bp::class_<CentroidalFrictionConeData, bp::bases<StageFunctionData>>(
154 "CentroidalFrictionConeData",
"Data Structure for CentroidalFrictionCone",
157 bp::class_<CentroidalWrenchConeResidual, bp::bases<StageFunction>>(
158 "CentroidalWrenchConeResidual",
159 "A residual function :math:`r(x) = [fz, mu2 * fz2 - (fx2 + fy2)]` for "
161 bp::init<
const int,
const int,
const int,
const double,
const double,
162 const double>((
"self"_a,
"ndx",
"nu",
"k",
"mu",
"L",
"W")))
165 bp::register_ptr_to_python<shared_ptr<CentroidalWrenchConeData>>();
167 bp::class_<CentroidalWrenchConeData, bp::bases<StageFunctionData>>(
168 "CentroidalWrenchConeData",
"Data Structure for CentroidalWrenchCone",
171 bp::class_<AngularAccelerationResidual, bp::bases<StageFunction>>(
172 "AngularAccelerationResidual",
173 "A residual function :math:`r(x) = Ldot(x)` ",
174 bp::init<
const int,
const int,
const double,
const context::Vector3s &,
175 const ContactMap &,
const int>((
"self"_a,
"ndx",
"nu",
"mass",
176 "gravity",
"contact_map",
178 .def_readwrite(
"contact_map", &AngularAccelerationResidual::contact_map_)
182 bp::register_ptr_to_python<shared_ptr<AngularAccelerationData>>();
184 bp::class_<AngularAccelerationData, bp::bases<StageFunctionData>>(
185 "AngularAccelerationData",
"Data Structure for AngularAcceleration",
188 bp::class_<CentroidalWrapperResidual, bp::bases<UnaryFunction>>(
189 "CentroidalWrapperResidual",
190 "A wrapper for centroidal cost with smooth control",
191 bp::init<xyz::polymorphic<StageFunction>>((
"self"_a,
"centroidal_cost")))
192 .def_readwrite(
"centroidal_cost",
193 &CentroidalWrapperResidual::centroidal_cost_)
197 bp::register_ptr_to_python<shared_ptr<CentroidalWrapperData>>();
199 bp::class_<CentroidalWrapperData, bp::bases<StageFunctionData>>(
200 "CentroidalWrapperData",
"Data Structure for CentroidalWrapper",
StageFunctionTpl< Scalar > StageFunction
UnaryFunctionTpl< Scalar > UnaryFunction
StageFunctionDataTpl< Scalar > StageFunctionData