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