Loading...
Searching...
No Matches
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
28namespace 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"))
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:29
Definition: trajectory-base.hpp:36
Definition: constraint-bound.hpp:27
Definition: task-se3-equality.hpp:37
static void setReference(TaskSE3 &self, trajectories::TrajectorySample &ref)
Definition: task-se3-equality.hpp:82
static const Eigen::VectorXd & position(const TaskSE3 &self)
Definition: task-se3-equality.hpp:97
static const Eigen::VectorXd & position_error(const TaskSE3 &self)
Definition: task-se3-equality.hpp:91
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 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 const Eigen::VectorXd & velocity(const TaskSE3 &self)
Definition: task-se3-equality.hpp:100
static std::string name(TaskSE3 &self)
Definition: task-se3-equality.hpp:69
static void setKp(TaskSE3 &self, const ::Eigen::VectorXd Kp)
Definition: task-se3-equality.hpp:115
static const Eigen::VectorXd & position_ref(const TaskSE3 &self)
Definition: task-se3-equality.hpp:103
static const Eigen::VectorXd & velocity_error(const TaskSE3 &self)
Definition: task-se3-equality.hpp:94
void visit(PyClass &cl) const
Definition: task-se3-equality.hpp:42
static Eigen::VectorXd getAcceleration(TaskSE3 &self, const Eigen::VectorXd dv)
Definition: task-se3-equality.hpp:88
static void useLocalFrame(TaskSE3 &self, const bool local_frame)
Definition: task-se3-equality.hpp:121
static void setMask(TaskSE3 &self, const ::Eigen::VectorXd mask)
Definition: task-se3-equality.hpp:127
static void expose(const std::string &class_name)
Definition: task-se3-equality.hpp:133
static const Eigen::VectorXd & Kd(TaskSE3 &self)
Definition: task-se3-equality.hpp:112
static const Eigen::VectorXd & getDesiredAcceleration(const TaskSE3 &self)
Definition: task-se3-equality.hpp:85
static void getMask(TaskSE3 &self)
Definition: task-se3-equality.hpp:124
static const Eigen::VectorXd & Kp(TaskSE3 &self)
Definition: task-se3-equality.hpp:109
static void setKd(TaskSE3 &self, const ::Eigen::VectorXd Kv)
Definition: task-se3-equality.hpp:118
static math::ConstraintEquality getConstraint(const TaskSE3 &self)
Definition: task-se3-equality.hpp:78