18 #ifndef __tsid_python_HQPOutput_hpp__
19 #define __tsid_python_HQPOutput_hpp__
23 #include <pinocchio/bindings/python/utils/deprecation.hpp>
43 namespace bp = boost::python;
47 :
public boost::python::def_visitor<InvDynPythonVisitor<T> > {
48 template <
class PyClass>
51 cl.def(bp::init<std::string, robots::RobotWrapper&, bool>(
52 (bp::args(
"name",
"robot",
"verbose"))))
54 .add_property(
"nVar", &T::nVar)
55 .add_property(
"nEq", &T::nEq)
56 .add_property(
"nIn", &T::nIn)
59 bp::args(
"task",
"weight",
"priorityLevel",
"transition duration"))
61 bp::args(
"task",
"weight",
"priorityLevel",
"transition duration"))
63 bp::args(
"task",
"weight",
"priorityLevel",
"transition duration"))
65 bp::args(
"task",
"weight",
"priorityLevel",
"transition duration"))
68 bp::args(
"task",
"weight",
"priorityLevel",
"transition duration"))
70 bp::args(
"task",
"weight",
"priorityLevel",
"transition duration"))
73 bp::args(
"task",
"weight",
"priorityLevel",
"transition duration"))
75 bp::args(
"task",
"weight",
"priorityLevel",
"transition duration"))
77 bp::args(
"task",
"weight",
"priorityLevel",
"transition duration"))
79 bp::args(
"task_name",
"weight"))
80 .def(
"updateRigidContactWeights",
82 bp::args(
"contact_name",
"force_regularization_weight"))
83 .def(
"updateRigidContactWeights",
85 bp::args(
"contact_name",
"force_regularization_weight",
87 .def(
"addRigidContact",
90 pinocchio::python::deprecated_function<>(
91 "Method addRigidContact(ContactBase) is deprecated. You "
92 "should use addRigidContact(ContactBase, double) instead"))
94 bp::args(
"contact",
"force_reg_weight"))
95 .def(
"addRigidContact",
97 bp::args(
"contact",
"force_reg_weight",
"motion_weight",
100 bp::args(
"contact",
"force_reg_weight"))
101 .def(
"addRigidContact",
103 bp::args(
"contact",
"force_reg_weight",
"motion_weight",
105 .def(
"addRigidContact",
107 bp::args(
"contact",
"force_reg_weight"))
108 .def(
"addRigidContact",
111 bp::args(
"contact",
"force_reg_weight",
"motion_weight",
114 bp::args(
"task_name",
"duration"))
116 bp::args(
"contact_name",
"duration"))
118 bp::args(
"constraint_name"))
120 bp::args(
"time",
"q",
"v"))
123 bp::args(
"HQPOutput"))
125 bp::args(
"HQPOutput"))
127 bp::args(
"HQPOutput"))
129 bp::args(
"name",
"HQPOutput"))
131 bp::args(
"name",
"HQPOutput"))
133 bp::args(
"measured_force"));
140 double weight,
unsigned int priorityLevel,
141 double transition_duration) {
142 return self.addMotionTask(task, weight, priorityLevel, transition_duration);
145 double weight,
unsigned int priorityLevel,
146 double transition_duration) {
147 return self.addMotionTask(task, weight, priorityLevel, transition_duration);
150 double weight,
unsigned int priorityLevel,
151 double transition_duration) {
152 return self.addMotionTask(task, weight, priorityLevel, transition_duration);
156 unsigned int priorityLevel,
157 double transition_duration) {
158 return self.addMotionTask(task, weight, priorityLevel, transition_duration);
162 unsigned int priorityLevel,
double transition_duration) {
163 return self.addMotionTask(task, weight, priorityLevel, transition_duration);
166 double weight,
unsigned int priorityLevel,
167 double transition_duration) {
168 return self.addMotionTask(task, weight, priorityLevel, transition_duration);
172 unsigned int priorityLevel,
double transition_duration) {
173 return self.addMotionTask(task, weight, priorityLevel, transition_duration);
176 double weight,
unsigned int priorityLevel,
177 double transition_duration) {
178 return self.addForceTask(task, weight, priorityLevel, transition_duration);
181 double weight,
unsigned int priorityLevel,
182 double transition_duration) {
183 return self.addActuationTask(task, weight, priorityLevel,
184 transition_duration);
188 return self.updateTaskWeight(task_name, weight);
191 const std::string& contact_name,
192 double force_regularization_weight) {
193 return self.updateRigidContactWeights(contact_name,
194 force_regularization_weight);
197 T&
self,
const std::string& contact_name,
198 double force_regularization_weight,
double motion_weight) {
199 return self.updateRigidContactWeights(
200 contact_name, force_regularization_weight, motion_weight);
204 return self.addRigidContact(contact, 1e-5);
207 double force_regularization_weight) {
208 return self.addRigidContact(contact, force_regularization_weight);
212 double motion_weight,
const bool priority_level) {
213 return self.addRigidContact(contact, force_regularization_weight,
214 motion_weight, priority_level);
217 double force_regularization_weight) {
218 return self.addRigidContact(contact, force_regularization_weight);
222 double force_regularization_weight,
double motion_weight,
223 const bool priority_level) {
224 return self.addRigidContact(contact, force_regularization_weight,
225 motion_weight, priority_level);
229 double force_regularization_weight) {
230 return self.addRigidContact(contact, force_regularization_weight);
234 double force_regularization_weight,
double motion_weight,
235 const bool priority_level) {
236 return self.addRigidContact(contact, force_regularization_weight,
237 motion_weight, priority_level);
239 static bool removeTask(T&
self,
const std::string& task_name,
240 double transition_duration) {
241 return self.removeTask(task_name, transition_duration);
244 double transition_duration) {
245 return self.removeRigidContact(contactName, transition_duration);
248 return self.removeFromHqpData(constraintName);
251 const Eigen::VectorXd& q,
252 const Eigen::VectorXd& v) {
259 return self.getActuatorForces(sol);
263 return self.getAccelerations(sol);
267 return self.getContactForces(sol);
272 if (f.size() > 0)
return true;
277 return self.getContactForces(name, sol);
281 return self.addMeasuredForce(measured_force);
284 static void expose(
const std::string& class_name) {
285 std::string doc =
"InvDyn info.";
286 bp::class_<T>(class_name.c_str(), doc.c_str(), bp::no_init)
Definition: container.hpp:80
bool set(const HQPData &data)
Definition: container.hpp:117
Definition: solver-HQP-output.hpp:29
Definition: task-angular-momentum-equality.hpp:32
Definition: task-actuation-bounds.hpp:28
Definition: task-com-equality.hpp:29
Definition: task-cop-equality.hpp:30
Definition: task-joint-bounds.hpp:27
Definition: task-joint-posVelAcc-bounds.hpp:36
Definition: task-joint-posture.hpp:29
Definition: task-se3-equality.hpp:31
Definition: task-two-frames-equality.hpp:31
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > Vector
Definition: fwd.hpp:35
Definition: constraint-bound.hpp:25
Definition: formulation.hpp:47
static bool checkContact(T &self, const std::string &name, const solvers::HQPOutput &sol)
Definition: formulation.hpp:269
void visit(PyClass &cl) const
Definition: formulation.hpp:50
static bool addMotionTask_JointBounds(T &self, tasks::TaskJointBounds &task, double weight, unsigned int priorityLevel, double transition_duration)
Definition: formulation.hpp:154
static bool updateRigidContactWeightsWithMotionWeight(T &self, const std::string &contact_name, double force_regularization_weight, double motion_weight)
Definition: formulation.hpp:196
static bool addActuationTask_Bounds(T &self, tasks::TaskActuationBounds &task, double weight, unsigned int priorityLevel, double transition_duration)
Definition: formulation.hpp:180
static bool updateRigidContactWeights(T &self, const std::string &contact_name, double force_regularization_weight)
Definition: formulation.hpp:190
static bool addRigidContact6dDeprecated(T &self, contacts::Contact6d &contact)
Definition: formulation.hpp:202
static bool updateTaskWeight(T &self, const std::string &task_name, double weight)
Definition: formulation.hpp:186
static bool addRigidContact6d(T &self, contacts::Contact6d &contact, double force_regularization_weight)
Definition: formulation.hpp:206
static bool removeRigidContact(T &self, const std::string &contactName, double transition_duration)
Definition: formulation.hpp:243
static Eigen::VectorXd getContactForce(T &self, const std::string &name, const solvers::HQPOutput &sol)
Definition: formulation.hpp:275
static bool addRigidContactTwoFramePositionsWithPriorityLevel(T &self, contacts::ContactTwoFramePositions &contact, double force_regularization_weight, double motion_weight, const bool priority_level)
Definition: formulation.hpp:232
static bool addMotionTask_Joint(T &self, tasks::TaskJointPosture &task, double weight, unsigned int priorityLevel, double transition_duration)
Definition: formulation.hpp:149
static bool addMotionTask_SE3(T &self, tasks::TaskSE3Equality &task, double weight, unsigned int priorityLevel, double transition_duration)
Definition: formulation.hpp:139
static bool addMeasuredForce(T &self, contacts::Measured6Dwrench &measured_force)
Definition: formulation.hpp:279
static bool removeFromHqpData(T &self, const std::string &constraintName)
Definition: formulation.hpp:247
static bool addRigidContactPoint(T &self, contacts::ContactPoint &contact, double force_regularization_weight)
Definition: formulation.hpp:216
static bool addForceTask_COP(T &self, tasks::TaskCopEquality &task, double weight, unsigned int priorityLevel, double transition_duration)
Definition: formulation.hpp:175
static bool addMotionTask_AM(T &self, tasks::TaskAMEquality &task, double weight, unsigned int priorityLevel, double transition_duration)
Definition: formulation.hpp:165
static bool addRigidContactPointWithPriorityLevel(T &self, contacts::ContactPoint &contact, double force_regularization_weight, double motion_weight, const bool priority_level)
Definition: formulation.hpp:220
static bool addMotionTask_TwoFramesEquality(T &self, tasks::TaskTwoFramesEquality &task, double weight, unsigned int priorityLevel, double transition_duration)
Definition: formulation.hpp:170
static bool removeTask(T &self, const std::string &task_name, double transition_duration)
Definition: formulation.hpp:239
static Eigen::VectorXd getContactForces(T &self, const solvers::HQPOutput &sol)
Definition: formulation.hpp:265
static bool addRigidContact6dWithPriorityLevel(T &self, contacts::Contact6d &contact, double force_regularization_weight, double motion_weight, const bool priority_level)
Definition: formulation.hpp:210
static bool addMotionTask_JointPosVelAccBounds(T &self, tasks::TaskJointPosVelAccBounds &task, double weight, unsigned int priorityLevel, double transition_duration)
Definition: formulation.hpp:160
static bool addMotionTask_COM(T &self, tasks::TaskComEquality &task, double weight, unsigned int priorityLevel, double transition_duration)
Definition: formulation.hpp:144
static Eigen::VectorXd getAccelerations(T &self, const solvers::HQPOutput &sol)
Definition: formulation.hpp:261
static pinocchio::Data data(T &self)
Definition: formulation.hpp:135
static Eigen::VectorXd getActuatorForces(T &self, const solvers::HQPOutput &sol)
Definition: formulation.hpp:257
static void expose(const std::string &class_name)
Definition: formulation.hpp:284
static HQPDatas computeProblemData(T &self, double time, const Eigen::VectorXd &q, const Eigen::VectorXd &v)
Definition: formulation.hpp:250
static bool addRigidContactTwoFramePositions(T &self, contacts::ContactTwoFramePositions &contact, double force_regularization_weight)
Definition: formulation.hpp:227