18 #ifndef __tsid_python_contact_two_frame_positions_hpp__ 
   19 #define __tsid_python_contact_two_frame_positions_hpp__ 
   31 namespace bp = boost::python;
 
   33 template <
typename ContactTwoFramePositions>
 
   35     : 
public boost::python::def_visitor<
 
   36           ContactTwoFramePositionsPythonVisitor<ContactTwoFramePositions> > {
 
   37   template <
class PyClass>
 
   42                       std::string, 
double, 
double>(
 
   43             (bp::arg(
"name"), bp::arg(
"robot"), bp::arg(
"framename1"),
 
   44              bp::arg(
"framename2"), bp::arg(
"minForce"), bp::arg(
"maxForce")),
 
   45             "Default Constructor"))
 
   46         .add_property(
"n_motion", &ContactTwoFramePositions::n_motion,
 
   47                       "return number of motion")
 
   48         .add_property(
"n_force", &ContactTwoFramePositions::n_force,
 
   49                       "return number of force")
 
   52         .def(
"computeMotionTask",
 
   54              bp::args(
"t", 
"q", 
"v", 
"data"))
 
   55         .def(
"computeForceTask",
 
   57              bp::args(
"t", 
"q", 
"v", 
"data"))
 
   58         .def(
"computeForceRegularizationTask",
 
   61              bp::args(
"t", 
"q", 
"v", 
"data"))
 
   64             "getForceGeneratorMatrix",
 
   67                 bp::return_value_policy<bp::copy_const_reference>()))
 
   69         .def(
"getNormalForce",
 
   72         .add_property(
"getMinNormalForce",
 
   73                       &ContactTwoFramePositions::getMinNormalForce)
 
   74         .add_property(
"getMaxNormalForce",
 
   75                       &ContactTwoFramePositions::getMaxNormalForce)
 
   80                           bp::return_value_policy<bp::copy_const_reference>()))
 
   84                           bp::return_value_policy<bp::copy_const_reference>()))
 
   89         .def(
"setContactNormal",
 
   92         .def(
"setFrictionCoefficient",
 
   94              bp::args(
"friction_coeff"))
 
   95         .def(
"setMinNormalForce",
 
   97              bp::args(
"min_force"))
 
   98         .def(
"setMaxNormalForce",
 
  100              bp::args(
"max_force"))
 
  101         .def(
"setForceReference",
 
  104         .def(
"setRegularizationTaskWeightVector",
 
  109   static std::string 
name(ContactTwoFramePositions& 
self) {
 
  110     std::string 
name = 
self.name();
 
  115       ContactTwoFramePositions& 
self, 
const double t, 
const Eigen::VectorXd& q,
 
  117     self.computeMotionTask(t, q, v, data);
 
  119                                   self.getMotionConstraint().matrix(),
 
  120                                   self.getMotionConstraint().vector());
 
  124       ContactTwoFramePositions& 
self, 
const double t, 
const Eigen::VectorXd& q,
 
  126     self.computeForceTask(t, q, v, data);
 
  128                                     self.getForceConstraint().matrix(),
 
  129                                     self.getForceConstraint().lowerBound(),
 
  130                                     self.getForceConstraint().upperBound());
 
  134       ContactTwoFramePositions& 
self, 
const double t, 
const Eigen::VectorXd& q,
 
  136     self.computeForceRegularizationTask(t, q, v, data);
 
  138                                   self.getForceRegularizationTask().matrix(),
 
  139                                   self.getForceRegularizationTask().vector());
 
  144       ContactTwoFramePositions& 
self) {
 
  145     return self.getForceGeneratorMatrix();
 
  147   static const Eigen::VectorXd& 
Kp(ContactTwoFramePositions& 
self) {
 
  150   static const Eigen::VectorXd& 
Kd(ContactTwoFramePositions& 
self) {
 
  153   static void setKp(ContactTwoFramePositions& 
self,
 
  154                     const ::Eigen::VectorXd 
Kp) {
 
  157   static void setKd(ContactTwoFramePositions& 
self,
 
  158                     const ::Eigen::VectorXd 
Kd) {
 
  162       ContactTwoFramePositions& 
self,
 
  163       const ::Eigen::MatrixXd ContactTwoFramePositionss) {
 
  164     return self.setContactTwoFramePositionss(ContactTwoFramePositionss);
 
  167                                const ::Eigen::VectorXd contactNormal) {
 
  168     return self.setContactNormal(contactNormal);
 
  171                                      const double frictionCoefficient) {
 
  172     return self.setFrictionCoefficient(frictionCoefficient);
 
  175                                 const double minNormalForce) {
 
  176     return self.setMinNormalForce(minNormalForce);
 
  179                                 const double maxNormalForce) {
 
  180     return self.setMaxNormalForce(maxNormalForce);
 
  183                                 const ::Eigen::VectorXd f_ref) {
 
  184     self.setForceReference(f_ref);
 
  187                                                 const ::Eigen::VectorXd w) {
 
  188     self.setRegularizationTaskWeightVector(w);
 
  192     return self.getNormalForce(f);
 
  194   static void expose(
const std::string& class_name) {
 
  195     std::string doc = 
"ContactTwoFramePositions info.";
 
  196     bp::class_<ContactTwoFramePositions>(class_name.c_str(), doc.c_str(),
 
Definition: constraint-equality.hpp:26
 
Definition: constraint-inequality.hpp:26
 
Wrapper for a robot based on pinocchio.
Definition: robot-wrapper.hpp:37
 
Definition: constraint-bound.hpp:25