47 using CentroidalCoMResidual = CentroidalCoMResidualTpl<Scalar>;
48 using CentroidalCoMData = CentroidalCoMDataTpl<Scalar>;
50 using LinearMomentumResidual = LinearMomentumResidualTpl<Scalar>;
51 using LinearMomentumData = LinearMomentumDataTpl<Scalar>;
53 using AngularMomentumResidual = AngularMomentumResidualTpl<Scalar>;
54 using AngularMomentumData = AngularMomentumDataTpl<Scalar>;
56 using CentroidalAccelerationResidual =
57 CentroidalAccelerationResidualTpl<Scalar>;
58 using CentroidalAccelerationData = CentroidalAccelerationDataTpl<Scalar>;
60 using FrictionConeResidual = FrictionConeResidualTpl<Scalar>;
61 using FrictionConeData = FrictionConeDataTpl<Scalar>;
63 using WrenchConeResidual = WrenchConeResidualTpl<Scalar>;
64 using WrenchConeData = WrenchConeDataTpl<Scalar>;
66 using AngularAccelerationResidual = AngularAccelerationResidualTpl<Scalar>;
67 using AngularAccelerationData = AngularAccelerationDataTpl<Scalar>;
69 using CentroidalWrapperResidual = CentroidalWrapperResidualTpl<Scalar>;
70 using CentroidalWrapperData = CentroidalWrapperDataTpl<Scalar>;
72 bp::class_<CentroidalCoMResidual, bp::bases<UnaryFunction>>(
73 "CentroidalCoMResidual",
"A residual function :math:`r(x) = com(x)` ",
74 bp::init<const int, const int, const context::Vector3s &>(
75 bp::args(
"self",
"ndx",
"nu",
"p_ref")))
76 .def(
"getReference", &CentroidalCoMResidual::getReference,
77 bp::args(
"self"), bp::return_internal_reference<>(),
78 "Get the target Centroidal CoM translation.")
79 .def(
"setReference", &CentroidalCoMResidual::setReference,
80 bp::args(
"self",
"p_new"),
81 "Set the target Centroidal CoM translation.");
83 bp::register_ptr_to_python<shared_ptr<CentroidalCoMData>>();
85 bp::class_<CentroidalCoMData, bp::bases<StageFunctionData>>(
86 "CentroidalCoMData",
"Data Structure for CentroidalCoM", bp::no_init);
88 bp::class_<LinearMomentumResidual, bp::bases<UnaryFunction>>(
89 "LinearMomentumResidual",
"A residual function :math:`r(x) = h(x)` ",
90 bp::init<const int, const int, const context::Vector3s &>(
91 bp::args(
"self",
"ndx",
"nu",
"h_ref")))
92 .def(
"getReference", &LinearMomentumResidual::getReference,
93 bp::args(
"self"), bp::return_internal_reference<>(),
94 "Get the target Linear Momentum.")
95 .def(
"setReference", &LinearMomentumResidual::setReference,
96 bp::args(
"self",
"h_new"),
"Set the target Linear Momentum.");
98 bp::register_ptr_to_python<shared_ptr<LinearMomentumData>>();
100 bp::class_<LinearMomentumData, bp::bases<StageFunctionData>>(
101 "LinearMomentumData",
"Data Structure for LinearMomentum", bp::no_init);
103 bp::class_<AngularMomentumResidual, bp::bases<UnaryFunction>>(
104 "AngularMomentumResidual",
"A residual function :math:`r(x) = L(x)` ",
105 bp::init<const int, const int, const context::Vector3s &>(
106 bp::args(
"self",
"ndx",
"nu",
"L_ref")))
107 .def(
"getReference", &AngularMomentumResidual::getReference,
108 bp::args(
"self"), bp::return_internal_reference<>(),
109 "Get the target Angular Momentum.")
110 .def(
"setReference", &AngularMomentumResidual::setReference,
111 bp::args(
"self",
"L_new"),
"Set the target Angular Momentum.");
113 bp::register_ptr_to_python<shared_ptr<AngularMomentumData>>();
115 bp::class_<AngularMomentumData, bp::bases<StageFunctionData>>(
116 "AngularMomentumData",
"Data Structure for AngularMomentum", bp::no_init);
118 bp::class_<CentroidalAccelerationResidual, bp::bases<StageFunction>>(
119 "CentroidalAccelerationResidual",
120 "A residual function :math:`r(x) = cddot(x)` ",
121 bp::init<
const int,
const int,
const double,
const context::Vector3s &,
123 "self",
"ndx",
"nu",
"mass",
"gravity",
"contact_map",
"force_size")))
124 .def_readwrite(
"contact_map",
125 &CentroidalAccelerationResidual::contact_map_)
126 .def(CreateDataPythonVisitor<CentroidalAccelerationResidual>());
128 bp::register_ptr_to_python<shared_ptr<CentroidalAccelerationData>>();
130 bp::class_<CentroidalAccelerationData, bp::bases<StageFunctionData>>(
131 "CentroidalAccelerationData",
"Data Structure for CentroidalAcceleration",
134 bp::class_<FrictionConeResidual, bp::bases<StageFunction>>(
135 "FrictionConeResidual",
136 "A residual function :math:`r(x) = [fz, mu2 * fz2 - (fx2 + fy2)]` ",
137 bp::init<const int, const int, const int, const double, const double>(
138 bp::args(
"self",
"ndx",
"nu",
"k",
"mu",
"epsilon")));
140 bp::register_ptr_to_python<shared_ptr<FrictionConeData>>();
142 bp::class_<FrictionConeData, bp::bases<StageFunctionData>>(
143 "FrictionConeData",
"Data Structure for FrictionCone", bp::no_init);
145 bp::class_<WrenchConeResidual, bp::bases<StageFunction>>(
146 "WrenchConeResidual",
147 "A residual function :math:`r(x) = [fz, mu2 * fz2 - (fx2 + fy2)]` ",
148 bp::init<
const int,
const int,
const int,
const double,
const double,
150 bp::args(
"self",
"ndx",
"nu",
"k",
"mu",
"L",
"W")));
152 bp::register_ptr_to_python<shared_ptr<WrenchConeData>>();
154 bp::class_<WrenchConeData, bp::bases<StageFunctionData>>(
155 "WrenchConeData",
"Data Structure for WrenchCone", bp::no_init);
157 bp::class_<AngularAccelerationResidual, bp::bases<StageFunction>>(
158 "AngularAccelerationResidual",
159 "A residual function :math:`r(x) = Ldot(x)` ",
160 bp::init<
const int,
const int,
const double,
const context::Vector3s &,
162 "self",
"ndx",
"nu",
"mass",
"gravity",
"contact_map",
"force_size")))
163 .def_readwrite(
"contact_map", &AngularAccelerationResidual::contact_map_)
164 .def(CreateDataPythonVisitor<AngularAccelerationResidual>());
166 bp::register_ptr_to_python<shared_ptr<AngularAccelerationData>>();
168 bp::class_<AngularAccelerationData, bp::bases<StageFunctionData>>(
169 "AngularAccelerationData",
"Data Structure for AngularAcceleration",
172 bp::class_<CentroidalWrapperResidual, bp::bases<UnaryFunction>>(
173 "CentroidalWrapperResidual",
174 "A wrapper for centroidal cost with smooth control",
175 bp::init<shared_ptr<StageFunction>>(bp::args(
"self",
"centroidal_cost")))
176 .def_readwrite(
"centroidal_cost",
177 &CentroidalWrapperResidual::centroidal_cost_)
178 .def(CreateDataPythonVisitor<CentroidalWrapperResidual>());
180 bp::register_ptr_to_python<shared_ptr<CentroidalWrapperData>>();
182 bp::class_<CentroidalWrapperData, bp::bases<StageFunctionData>>(
183 "CentroidalWrapperData",
"Data Structure for CentroidalWrapper",