task-se3-equality.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_se3_hpp__
19 #define __tsid_python_task_se3_hpp__
20 
22 
28 namespace tsid
29 {
30  namespace python
31  {
32  namespace bp = boost::python;
33 
34  template<typename TaskSE3>
36  : public boost::python::def_visitor< TaskSE3EqualityPythonVisitor<TaskSE3> >
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 &, std::string> ((bp::arg("name"), bp::arg("robot"), bp::arg("framename")), "Default Constructor"))
46  .add_property("dim", &TaskSE3::dim, "return dimension size")
47  .def("setReference", &TaskSE3EqualityPythonVisitor::setReference, bp::arg("ref"))
48  .add_property("getDesiredAcceleration", bp::make_function(&TaskSE3EqualityPythonVisitor::getDesiredAcceleration, bp::return_value_policy<bp::copy_const_reference>()), "Return Acc_desired")
49  .def("getAcceleration", &TaskSE3EqualityPythonVisitor::getAcceleration, bp::arg("dv"))
50  .add_property("position_error", bp::make_function(&TaskSE3EqualityPythonVisitor::position_error, bp::return_value_policy<bp::copy_const_reference>()))
51  .add_property("velocity_error", bp::make_function(&TaskSE3EqualityPythonVisitor::velocity_error, bp::return_value_policy<bp::copy_const_reference>()))
52  .add_property("position", bp::make_function(&TaskSE3EqualityPythonVisitor::position, bp::return_value_policy<bp::copy_const_reference>()))
53  .add_property("velocity", bp::make_function(&TaskSE3EqualityPythonVisitor::velocity, bp::return_value_policy<bp::copy_const_reference>()))
54  .add_property("position_ref", bp::make_function(&TaskSE3EqualityPythonVisitor::position_ref, bp::return_value_policy<bp::copy_const_reference>()))
55  .add_property("velocity_ref", bp::make_function(&TaskSE3EqualityPythonVisitor::velocity_ref, bp::return_value_policy<bp::copy_const_reference>()))
56  .add_property("Kp", bp::make_function(&TaskSE3EqualityPythonVisitor::Kp, bp::return_value_policy<bp::copy_const_reference>()))
57  .add_property("Kd", bp::make_function(&TaskSE3EqualityPythonVisitor::Kd, bp::return_value_policy<bp::copy_const_reference>()))
58  .def("setKp", &TaskSE3EqualityPythonVisitor::setKp, bp::arg("Kp"))
59  .def("setKd", &TaskSE3EqualityPythonVisitor::setKd, bp::arg("Kd"))
60  .def("useLocalFrame", &TaskSE3EqualityPythonVisitor::useLocalFrame, bp::arg("local_frame"))
61  .add_property("mask", bp::make_function(&TaskSE3EqualityPythonVisitor::getMask, bp::return_value_policy<bp::copy_const_reference>()), "Return mask")
62  .def("setMask", &TaskSE3EqualityPythonVisitor::setMask, bp::arg("mask"))
63  .def("compute", &TaskSE3EqualityPythonVisitor::compute, bp::args("t", "q", "v", "data"))
64  .def("getConstraint", &TaskSE3EqualityPythonVisitor::getConstraint)
65  .add_property("frame_id", &TaskSE3::frame_id, "frame id return")
66  .add_property("name", &TaskSE3EqualityPythonVisitor::name)
67  ;
68  }
69  static std::string name(TaskSE3 & self){
70  std::string name = self.name();
71  return name;
72  }
73  static math::ConstraintEquality compute(TaskSE3 & self, const double t, const Eigen::VectorXd & q, const Eigen::VectorXd & v, pinocchio::Data & data){
74  self.compute(t, q, v, data);
75  math::ConstraintEquality cons(self.getConstraint().name(), self.getConstraint().matrix(), self.getConstraint().vector());
76  return cons;
77  }
78  static math::ConstraintEquality getConstraint(const TaskSE3 & self){
79  math::ConstraintEquality cons(self.getConstraint().name(), self.getConstraint().matrix(), self.getConstraint().vector());
80  return cons;
81  }
82  static void setReference(TaskSE3 & self, trajectories::TrajectorySample & ref){
83  self.setReference(ref);
84  }
85  static const Eigen::VectorXd & getDesiredAcceleration(const TaskSE3 & self){
86  return self.getDesiredAcceleration();
87  }
88  static Eigen::VectorXd getAcceleration (TaskSE3 & self, const Eigen::VectorXd dv){
89  return self.getAcceleration(dv);
90  }
91  static const Eigen::VectorXd & position_error(const TaskSE3 & self){
92  return self.position_error();
93  }
94  static const Eigen::VectorXd & velocity_error(const TaskSE3 & self){
95  return self.velocity_error();
96  }
97  static const Eigen::VectorXd & position (const TaskSE3 & self){
98  return self.position();
99  }
100  static const Eigen::VectorXd & velocity (const TaskSE3 & self){
101  return self.velocity();
102  }
103  static const Eigen::VectorXd & position_ref (const TaskSE3 & self){
104  return self.position_ref();
105  }
106  static const Eigen::VectorXd & velocity_ref (const TaskSE3 & self){
107  return self.velocity_ref();
108  }
109  static const Eigen::VectorXd & Kp (TaskSE3 & self){
110  return self.Kp();
111  }
112  static const Eigen::VectorXd & Kd (TaskSE3 & self){
113  return self.Kd();
114  }
115  static void setKp (TaskSE3 & self, const::Eigen::VectorXd Kp){
116  return self.Kp(Kp);
117  }
118  static void setKd (TaskSE3 & self, const::Eigen::VectorXd Kv){
119  return self.Kd(Kv);
120  }
121  static void useLocalFrame (TaskSE3 & self, const bool local_frame) {
122  self.useLocalFrame(local_frame);
123  }
124  static void getMask (TaskSE3 & self) {
125  self.getMask();
126  }
127  static void setMask (TaskSE3 & self, const::Eigen::VectorXd mask) {
128  self.setMask(mask);
129  }
130  static Eigen::VectorXd frame_id (TaskSE3 & self){
131  return self.frame_id();
132  }
133  static void expose(const std::string & class_name)
134  {
135  std::string doc = "TaskSE3 info.";
136  bp::class_<TaskSE3>(class_name.c_str(),
137  doc.c_str(),
138  bp::no_init)
140 
141  // bp::register_ptr_to_python< boost::shared_ptr<math::ConstraintBase> >();
142  }
143  };
144  }
145 }
146 
147 
148 #endif // ifndef __tsid_python_task_se3_hpp__
Definition: constraint-equality.hpp:28
static const Eigen::VectorXd & position(const TaskSE3 &self)
Definition: task-se3-equality.hpp:97
static Eigen::VectorXd getAcceleration(TaskSE3 &self, const Eigen::VectorXd dv)
Definition: task-se3-equality.hpp:88
static const Eigen::VectorXd & velocity_error(const TaskSE3 &self)
Definition: task-se3-equality.hpp:94
static void setMask(TaskSE3 &self, const ::Eigen::VectorXd mask)
Definition: task-se3-equality.hpp:127
void visit(PyClass &cl) const
Definition: task-se3-equality.hpp:42
static std::string name(TaskSE3 &self)
Definition: task-se3-equality.hpp:69
static void setKd(TaskSE3 &self, const ::Eigen::VectorXd Kv)
Definition: task-se3-equality.hpp:118
static void useLocalFrame(TaskSE3 &self, const bool local_frame)
Definition: task-se3-equality.hpp:121
static Eigen::VectorXd frame_id(TaskSE3 &self)
Definition: task-se3-equality.hpp:130
static const Eigen::VectorXd & velocity_ref(const TaskSE3 &self)
Definition: task-se3-equality.hpp:106
static void getMask(TaskSE3 &self)
Definition: task-se3-equality.hpp:124
Definition: trajectory-base.hpp:35
static const Eigen::VectorXd & position_error(const TaskSE3 &self)
Definition: task-se3-equality.hpp:91
static const Eigen::VectorXd & position_ref(const TaskSE3 &self)
Definition: task-se3-equality.hpp:103
static void setReference(TaskSE3 &self, trajectories::TrajectorySample &ref)
Definition: task-se3-equality.hpp:82
static const Eigen::VectorXd & Kd(TaskSE3 &self)
Definition: task-se3-equality.hpp:112
Definition: task-se3-equality.hpp:35
static math::ConstraintEquality compute(TaskSE3 &self, const double t, const Eigen::VectorXd &q, const Eigen::VectorXd &v, pinocchio::Data &data)
Definition: task-se3-equality.hpp:73
static void expose(const std::string &class_name)
Definition: task-se3-equality.hpp:133
static void setKp(TaskSE3 &self, const ::Eigen::VectorXd Kp)
Definition: task-se3-equality.hpp:115
static const Eigen::VectorXd & Kp(TaskSE3 &self)
Definition: task-se3-equality.hpp:109
static const Eigen::VectorXd & getDesiredAcceleration(const TaskSE3 &self)
Definition: task-se3-equality.hpp:85
Definition: constraint-bound.hpp:26
static math::ConstraintEquality getConstraint(const TaskSE3 &self)
Definition: task-se3-equality.hpp:78
static const Eigen::VectorXd & velocity(const TaskSE3 &self)
Definition: task-se3-equality.hpp:100
pinocchio::Data Data
Definition: inverse-dynamics-formulation-acc-force.cpp:29