task-joint-posture.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2018 CNRS
3 //
4 // This file is part of tsid
5 // tsid is free software: you can redistribute it
6 // and/or modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation, either version
8 // 3 of the License, or (at your option) any later version.
9 // tsid is distributed in the hope that it will be
10 // useful, but WITHOUT ANY WARRANTY; without even the implied warranty
11 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // General Lesser Public License for more details. You should have
13 // received a copy of the GNU Lesser General Public License along with
14 // tsid If not, see
15 // <http://www.gnu.org/licenses/>.
16 //
17 
18 #ifndef __tsid_python_task_joint_hpp__
19 #define __tsid_python_task_joint_hpp__
20 
22 
28 namespace tsid
29 {
30  namespace python
31  {
32  namespace bp = boost::python;
33 
34  template<typename TaskJoint>
36  : public boost::python::def_visitor< TaskJointPosturePythonVisitor<TaskJoint> >
37  {
38 
39  template<class PyClass>
40 
41 
42  void visit(PyClass& cl) const
43  {
44  cl
45  .def(bp::init<std::string, robots::RobotWrapper &> ((bp::arg("name"), bp::arg("robot")), "Default Constructor"))
46  .add_property("dim", &TaskJoint::dim, "return dimension size")
47  .def("setReference", &TaskJointPosturePythonVisitor::setReference, bp::arg("ref"))
48  .add_property("getDesiredAcceleration", bp::make_function(&TaskJointPosturePythonVisitor::getDesiredAcceleration, bp::return_value_policy<bp::copy_const_reference>()), "Return Acc_desired")
49  .add_property("mask", bp::make_function(&TaskJointPosturePythonVisitor::getmask, bp::return_value_policy<bp::copy_const_reference>()), "Return mask")
50  .def("setMask", &TaskJointPosturePythonVisitor::setmask, bp::arg("mask"))
51  .def("getAcceleration", &TaskJointPosturePythonVisitor::getAcceleration, bp::arg("dv"))
52  .add_property("position_error", bp::make_function(&TaskJointPosturePythonVisitor::position_error, bp::return_value_policy<bp::copy_const_reference>()))
53  .add_property("velocity_error", bp::make_function(&TaskJointPosturePythonVisitor::velocity_error, bp::return_value_policy<bp::copy_const_reference>()))
54  .add_property("position", bp::make_function(&TaskJointPosturePythonVisitor::position, bp::return_value_policy<bp::copy_const_reference>()))
55  .add_property("velocity", bp::make_function(&TaskJointPosturePythonVisitor::velocity, bp::return_value_policy<bp::copy_const_reference>()))
56  .add_property("position_ref", bp::make_function(&TaskJointPosturePythonVisitor::position_ref, bp::return_value_policy<bp::copy_const_reference>()))
57  .add_property("velocity_ref", bp::make_function(&TaskJointPosturePythonVisitor::velocity_ref, bp::return_value_policy<bp::copy_const_reference>()))
58  .add_property("Kp", bp::make_function(&TaskJointPosturePythonVisitor::Kp, bp::return_value_policy<bp::copy_const_reference>()))
59  .add_property("Kd", bp::make_function(&TaskJointPosturePythonVisitor::Kd, bp::return_value_policy<bp::copy_const_reference>()))
60  .def("setKp", &TaskJointPosturePythonVisitor::setKp, bp::arg("Kp"))
61  .def("setKd", &TaskJointPosturePythonVisitor::setKd, bp::arg("Kd"))
62  .def("compute", &TaskJointPosturePythonVisitor::compute, bp::args("t", "q", "v", "data"))
63  .def("getConstraint", &TaskJointPosturePythonVisitor::getConstraint)
64  .add_property("name", &TaskJointPosturePythonVisitor::name)
65  ;
66  }
67  static std::string name(TaskJoint & self){
68  std::string name = self.name();
69  return name;
70  }
71  static math::ConstraintEquality compute(TaskJoint & self, const double t, const Eigen::VectorXd & q, const Eigen::VectorXd & v, pinocchio::Data & data){
72  self.compute(t, q, v, data);
73  math::ConstraintEquality cons(self.getConstraint().name(), self.getConstraint().matrix(), self.getConstraint().vector());
74  return cons;
75  }
76  static math::ConstraintEquality getConstraint(const TaskJoint & self){
77  math::ConstraintEquality cons(self.getConstraint().name(), self.getConstraint().matrix(), self.getConstraint().vector());
78  return cons;
79  }
80  static void setReference(TaskJoint & self, const trajectories::TrajectorySample & ref){
81  self.setReference(ref);
82  }
83  static const Eigen::VectorXd & getDesiredAcceleration(const TaskJoint & self){
84  return self.getDesiredAcceleration();
85  }
86  static const Eigen::VectorXd & getmask(const TaskJoint & self){
87  return self.getMask();
88  }
89  static void setmask (TaskJoint & self, const Eigen::VectorXd mask){
90  return self.setMask(mask);
91  }
92  static Eigen::VectorXd getAcceleration (TaskJoint & self, const Eigen::VectorXd dv){
93  return self.getAcceleration(dv);
94  }
95  static const Eigen::VectorXd & position_error(const TaskJoint & self){
96  return self.position_error();
97  }
98  static const Eigen::VectorXd & velocity_error(const TaskJoint & self){
99  return self.velocity_error();
100  }
101  static const Eigen::VectorXd & position (const TaskJoint & self){
102  return self.position();
103  }
104  static const Eigen::VectorXd & velocity (const TaskJoint & self){
105  return self.velocity();
106  }
107  static const Eigen::VectorXd & position_ref (const TaskJoint & self){
108  return self.position_ref();
109  }
110  static const Eigen::VectorXd & velocity_ref (const TaskJoint & self){
111  return self.velocity_ref();
112  }
113  static const Eigen::VectorXd & Kp (TaskJoint & self){
114  return self.Kp();
115  }
116  static const Eigen::VectorXd & Kd (TaskJoint & self){
117  return self.Kd();
118  }
119  static void setKp (TaskJoint & self, const::Eigen::VectorXd Kp){
120  return self.Kp(Kp);
121  }
122  static void setKd (TaskJoint & self, const::Eigen::VectorXd Kv){
123  return self.Kd(Kv);
124  }
125  static void expose(const std::string & class_name)
126  {
127  std::string doc = "TaskJoint info.";
128  bp::class_<TaskJoint>(class_name.c_str(),
129  doc.c_str(),
130  bp::no_init)
132 
133  // bp::register_ptr_to_python< boost::shared_ptr<math::ConstraintBase> >();
134  }
135  };
136  }
137 }
138 
139 
140 #endif // ifndef __tsid_python_task_joint_hpp__
Definition: task-joint-posture.hpp:35
Definition: constraint-equality.hpp:28
static void setKd(TaskJoint &self, const ::Eigen::VectorXd Kv)
Definition: task-joint-posture.hpp:122
static void setReference(TaskJoint &self, const trajectories::TrajectorySample &ref)
Definition: task-joint-posture.hpp:80
static const Eigen::VectorXd & getmask(const TaskJoint &self)
Definition: task-joint-posture.hpp:86
static Eigen::VectorXd getAcceleration(TaskJoint &self, const Eigen::VectorXd dv)
Definition: task-joint-posture.hpp:92
static const Eigen::VectorXd & position_error(const TaskJoint &self)
Definition: task-joint-posture.hpp:95
void visit(PyClass &cl) const
Definition: task-joint-posture.hpp:42
static const Eigen::VectorXd & velocity_ref(const TaskJoint &self)
Definition: task-joint-posture.hpp:110
static void expose(const std::string &class_name)
Definition: task-joint-posture.hpp:125
static const Eigen::VectorXd & position_ref(const TaskJoint &self)
Definition: task-joint-posture.hpp:107
Definition: trajectory-base.hpp:35
static void setKp(TaskJoint &self, const ::Eigen::VectorXd Kp)
Definition: task-joint-posture.hpp:119
static const Eigen::VectorXd & velocity(const TaskJoint &self)
Definition: task-joint-posture.hpp:104
static void setmask(TaskJoint &self, const Eigen::VectorXd mask)
Definition: task-joint-posture.hpp:89
static math::ConstraintEquality compute(TaskJoint &self, const double t, const Eigen::VectorXd &q, const Eigen::VectorXd &v, pinocchio::Data &data)
Definition: task-joint-posture.hpp:71
static const Eigen::VectorXd & getDesiredAcceleration(const TaskJoint &self)
Definition: task-joint-posture.hpp:83
static std::string name(TaskJoint &self)
Definition: task-joint-posture.hpp:67
static const Eigen::VectorXd & position(const TaskJoint &self)
Definition: task-joint-posture.hpp:101
static const Eigen::VectorXd & Kp(TaskJoint &self)
Definition: task-joint-posture.hpp:113
static math::ConstraintEquality getConstraint(const TaskJoint &self)
Definition: task-joint-posture.hpp:76
Definition: constraint-bound.hpp:26
static const Eigen::VectorXd & Kd(TaskJoint &self)
Definition: task-joint-posture.hpp:116
pinocchio::Data Data
Definition: inverse-dynamics-formulation-acc-force.cpp:29
static const Eigen::VectorXd & velocity_error(const TaskJoint &self)
Definition: task-joint-posture.hpp:98