18 #ifndef __tsid_python_contact_6d_hpp__ 
   19 #define __tsid_python_contact_6d_hpp__ 
   31 namespace bp = boost::python;
 
   33 template <
typename ContactPo
int>
 
   35     : 
public boost::python::def_visitor<
 
   36           ContactPointPythonVisitor<ContactPoint> > {
 
   37   template <
class PyClass>
 
   41                     Eigen::VectorXd, 
double, 
double, 
double>(
 
   42                (bp::arg(
"name"), bp::arg(
"robot"), bp::arg(
"framename"),
 
   43                 bp::arg(
"contactNormal"), bp::arg(
"frictionCoeff"),
 
   44                 bp::arg(
"minForce"), bp::arg(
"maxForce")),
 
   45                "Default Constructor"))
 
   46         .add_property(
"n_motion", &ContactPoint::n_motion,
 
   47                       "return number of motion")
 
   48         .add_property(
"n_force", &ContactPoint::n_force,
 
   49                       "return number of force")
 
   52              bp::args(
"t", 
"q", 
"v", 
"data"))
 
   54              bp::args(
"t", 
"q", 
"v", 
"data"))
 
   55         .def(
"computeForceRegularizationTask",
 
   57              bp::args(
"t", 
"q", 
"v", 
"data"))
 
   59         .add_property(
"getForceGeneratorMatrix",
 
   62                           bp::return_value_policy<bp::copy_const_reference>()))
 
   66         .add_property(
"getMinNormalForce", &ContactPoint::getMinNormalForce)
 
   67         .add_property(
"getMaxNormalForce", &ContactPoint::getMaxNormalForce)
 
   72                           bp::return_value_policy<bp::copy_const_reference>()))
 
   76                           bp::return_value_policy<bp::copy_const_reference>()))
 
   81              bp::arg(
"local_frame"))
 
   85         .def(
"setFrictionCoefficient",
 
   87              bp::args(
"friction_coeff"))
 
   89              bp::args(
"min_force"))
 
   91              bp::args(
"max_force"))
 
   96         .def(
"setRegularizationTaskWeightVector",
 
  100   static std::string 
name(ContactPoint& 
self) {
 
  101     std::string 
name = 
self.name();
 
  107                                                     const Eigen::VectorXd& q,
 
  108                                                     const Eigen::VectorXd& v,
 
  110     self.computeMotionTask(t, q, v, data);
 
  112                                   self.getMotionConstraint().matrix(),
 
  113                                   self.getMotionConstraint().vector());
 
  117       ContactPoint& 
self, 
const double t, 
const Eigen::VectorXd& q,
 
  119     self.computeForceTask(t, q, v, data);
 
  121                                     self.getForceConstraint().matrix(),
 
  122                                     self.getForceConstraint().lowerBound(),
 
  123                                     self.getForceConstraint().upperBound());
 
  127       ContactPoint& 
self, 
const double t, 
const Eigen::VectorXd& q,
 
  129     self.computeForceRegularizationTask(t, q, v, data);
 
  131                                   self.getForceRegularizationTask().matrix(),
 
  132                                   self.getForceRegularizationTask().vector());
 
  137     self.useLocalFrame(local_frame);
 
  140     return self.getForceGeneratorMatrix();
 
  142   static const Eigen::VectorXd& 
Kp(ContactPoint& 
self) { 
return self.Kp(); }
 
  143   static const Eigen::VectorXd& 
Kd(ContactPoint& 
self) { 
return self.Kd(); }
 
  144   static void setKp(ContactPoint& 
self, const ::Eigen::VectorXd 
Kp) {
 
  147   static void setKd(ContactPoint& 
self, const ::Eigen::VectorXd 
Kd) {
 
  151                                const ::Eigen::MatrixXd contactpoints) {
 
  152     return self.setContactPoints(contactpoints);
 
  155                                const ::Eigen::VectorXd contactNormal) {
 
  156     return self.setContactNormal(contactNormal);
 
  159                                      const double frictionCoefficient) {
 
  160     return self.setFrictionCoefficient(frictionCoefficient);
 
  163                                 const double minNormalForce) {
 
  164     return self.setMinNormalForce(minNormalForce);
 
  167                                 const double maxNormalForce) {
 
  168     return self.setMaxNormalForce(maxNormalForce);
 
  171     self.setReference(ref);
 
  174                                 const ::Eigen::VectorXd f_ref) {
 
  175     self.setForceReference(f_ref);
 
  178                                                 const ::Eigen::VectorXd w) {
 
  179     self.setRegularizationTaskWeightVector(w);
 
  182     return self.getNormalForce(f);
 
  185   static void expose(
const std::string& class_name) {
 
  186     std::string doc = 
"ContactPoint info.";
 
  187     bp::class_<ContactPoint>(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
 
pinocchio::SE3 SE3
Definition: trajectory-base.hpp:31
 
Definition: constraint-bound.hpp:25