18 #ifndef __tsid_python_contact_6d_hpp__ 
   19 #define __tsid_python_contact_6d_hpp__ 
   32 namespace bp = boost::python;
 
   34 template <
typename Contact6d>
 
   36     : 
public boost::python::def_visitor<Contact6DPythonVisitor<Contact6d> > {
 
   37   template <
class PyClass>
 
   41                     Eigen::MatrixXd, Eigen::VectorXd, 
double, 
double, 
double>(
 
   42                (bp::arg(
"name"), bp::arg(
"robot"), bp::arg(
"framename"),
 
   43                 bp::arg(
"contactPoint"), bp::arg(
"contactNormal"),
 
   44                 bp::arg(
"frictionCoeff"), bp::arg(
"minForce"),
 
   46                "Default Constructor"))
 
   48                       Eigen::MatrixXd, Eigen::VectorXd, 
double, 
double, 
double,
 
   50             (bp::arg(
"name"), bp::arg(
"robot"), bp::arg(
"framename"),
 
   51              bp::arg(
"contactPoint"), bp::arg(
"contactNormal"),
 
   52              bp::arg(
"frictionCoeff"), bp::arg(
"minForce"), bp::arg(
"maxForce"),
 
   53              bp::arg(
"wForceReg")),
 
   54             "Deprecated Constructor"))
 
   55         .add_property(
"n_motion", &Contact6d::n_motion,
 
   56                       "return number of motion")
 
   57         .add_property(
"n_force", &Contact6d::n_force, 
"return number of force")
 
   60              bp::args(
"t", 
"q", 
"v", 
"data"))
 
   62              bp::args(
"t", 
"q", 
"v", 
"data"))
 
   63         .def(
"computeForceRegularizationTask",
 
   65              bp::args(
"t", 
"q", 
"v", 
"data"))
 
   68         .add_property(
"getForceGeneratorMatrix",
 
   71                           bp::return_value_policy<bp::copy_const_reference>()))
 
   75         .add_property(
"getMinNormalForce", &Contact6d::getMinNormalForce)
 
   76         .add_property(
"getMaxNormalForce", &Contact6d::getMaxNormalForce)
 
   81                           bp::return_value_policy<bp::copy_const_reference>()))
 
   85                           bp::return_value_policy<bp::copy_const_reference>()))
 
   93         .def(
"setFrictionCoefficient",
 
   95              bp::args(
"friction_coeff"))
 
   97              bp::args(
"min_force"))
 
   99              bp::args(
"max_force"))
 
  104         .def(
"setRegularizationTaskWeightVector",
 
  108   static std::string 
name(Contact6d &
self) {
 
  109     std::string 
name = 
self.name();
 
  115                                                     const Eigen::VectorXd &q,
 
  116                                                     const Eigen::VectorXd &v,
 
  118     self.computeMotionTask(t, q, v, data);
 
  120                                   self.getMotionConstraint().matrix(),
 
  121                                   self.getMotionConstraint().vector());
 
  125       Contact6d &
self, 
const double t, 
const Eigen::VectorXd &q,
 
  127     self.computeForceTask(t, q, v, data);
 
  129                                     self.getForceConstraint().matrix(),
 
  130                                     self.getForceConstraint().lowerBound(),
 
  131                                     self.getForceConstraint().upperBound());
 
  135       Contact6d &
self, 
const double t, 
const Eigen::VectorXd &q,
 
  137     self.computeForceRegularizationTask(t, q, v, data);
 
  139                                   self.getForceRegularizationTask().matrix(),
 
  140                                   self.getForceRegularizationTask().vector());
 
  149     return self.getForceGeneratorMatrix();
 
  151   static const Eigen::VectorXd &
Kp(Contact6d &
self) { 
return self.Kp(); }
 
  152   static const Eigen::VectorXd &
Kd(Contact6d &
self) { 
return self.Kd(); }
 
  153   static void setKp(Contact6d &
self, const ::Eigen::VectorXd 
Kp) {
 
  156   static void setKd(Contact6d &
self, const ::Eigen::VectorXd 
Kd) {
 
  160                                const ::Eigen::MatrixXd contactpoints) {
 
  161     return self.setContactPoints(contactpoints);
 
  164                                const ::Eigen::VectorXd contactNormal) {
 
  165     return self.setContactNormal(contactNormal);
 
  168                                      const double frictionCoefficient) {
 
  169     return self.setFrictionCoefficient(frictionCoefficient);
 
  172     return self.setMinNormalForce(minNormalForce);
 
  175     return self.setMaxNormalForce(maxNormalForce);
 
  178     self.setReference(ref);
 
  181                                 const ::Eigen::VectorXd f_ref) {
 
  182     self.setForceReference(f_ref);
 
  185                                                 const ::Eigen::VectorXd w) {
 
  186     self.setRegularizationTaskWeightVector(w);
 
  189     return self.getNormalForce(f);
 
  192   static void expose(
const std::string &class_name) {
 
  193     std::string doc = 
"Contact6d info.";
 
  194     bp::class_<Contact6d>(class_name.c_str(), doc.c_str(), bp::no_init)
 
Definition: constraint-equality.hpp:26
 
Definition: constraint-inequality.hpp:26
 
Wrapper for a robot based on pinocchio.
Definition: robot-wrapper.hpp:37
 
Definition: task-se3-equality.hpp:31
 
pinocchio::SE3 SE3
Definition: trajectory-base.hpp:31
 
Definition: constraint-bound.hpp:25