Loading...
Searching...
No Matches
task-com-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_com_hpp__
19#define __tsid_python_task_com_hpp__
20
22
28namespace tsid
29{
30 namespace python
31 {
32 namespace bp = boost::python;
33
34 template<typename TaskCOM>
36 : public boost::python::def_visitor< TaskCOMEqualityPythonVisitor<TaskCOM> >
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", &TaskCOM::dim, "return dimension size")
47 .def("setReference", &TaskCOMEqualityPythonVisitor::setReference, bp::arg("ref"))
48 .add_property("getDesiredAcceleration", bp::make_function(&TaskCOMEqualityPythonVisitor::getDesiredAcceleration, bp::return_value_policy<bp::copy_const_reference>()), "Return Acc_desired")
49 .def("getAcceleration", &TaskCOMEqualityPythonVisitor::getAcceleration, bp::arg("dv"))
50 .add_property("position_error", bp::make_function(&TaskCOMEqualityPythonVisitor::position_error, bp::return_value_policy<bp::copy_const_reference>()))
51 .add_property("velocity_error", bp::make_function(&TaskCOMEqualityPythonVisitor::velocity_error, bp::return_value_policy<bp::copy_const_reference>()))
52 .add_property("position", bp::make_function(&TaskCOMEqualityPythonVisitor::position, bp::return_value_policy<bp::copy_const_reference>()))
53 .add_property("velocity", bp::make_function(&TaskCOMEqualityPythonVisitor::velocity, bp::return_value_policy<bp::copy_const_reference>()))
54 .add_property("position_ref", bp::make_function(&TaskCOMEqualityPythonVisitor::position_ref, bp::return_value_policy<bp::copy_const_reference>()))
55 .add_property("velocity_ref", bp::make_function(&TaskCOMEqualityPythonVisitor::velocity_ref, bp::return_value_policy<bp::copy_const_reference>()))
56 .add_property("Kp", bp::make_function(&TaskCOMEqualityPythonVisitor::Kp, bp::return_value_policy<bp::copy_const_reference>()))
57 .add_property("Kd", bp::make_function(&TaskCOMEqualityPythonVisitor::Kd, bp::return_value_policy<bp::copy_const_reference>()))
58 .def("setKp", &TaskCOMEqualityPythonVisitor::setKp, bp::arg("Kp"))
59 .def("setKd", &TaskCOMEqualityPythonVisitor::setKd, bp::arg("Kd"))
60 .def("compute", &TaskCOMEqualityPythonVisitor::compute, bp::args("t", "q", "v", "data"))
62 .add_property("name", &TaskCOMEqualityPythonVisitor::name)
63 .add_property("mask", bp::make_function(&TaskCOMEqualityPythonVisitor::getmask, bp::return_value_policy<bp::copy_const_reference>()), "Return mask")
64 .def("setMask", &TaskCOMEqualityPythonVisitor::setmask, bp::arg("mask"))
65 ;
66 }
67 static std::string name(TaskCOM & self){
68 std::string name = self.name();
69 return name;
70 }
71 static math::ConstraintEquality compute(TaskCOM & 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 TaskCOM & self){
77 math::ConstraintEquality cons(self.getConstraint().name(), self.getConstraint().matrix(), self.getConstraint().vector());
78 return cons;
79 }
80 static void setReference(TaskCOM & self, const trajectories::TrajectorySample & ref){
81 self.setReference(ref);
82 }
83 static const Eigen::VectorXd & getDesiredAcceleration(const TaskCOM & self){
84 return self.getDesiredAcceleration();
85 }
86 static Eigen::VectorXd getAcceleration (TaskCOM & self, const Eigen::VectorXd dv){
87 return self.getAcceleration(dv);
88 }
89 static const Eigen::VectorXd & position_error(const TaskCOM & self){
90 return self.position_error();
91 }
92 static const Eigen::VectorXd & velocity_error(const TaskCOM & self){
93 return self.velocity_error();
94 }
95 static const Eigen::VectorXd & position (const TaskCOM & self){
96 return self.position();
97 }
98 static const Eigen::VectorXd & velocity (const TaskCOM & self){
99 return self.velocity();
100 }
101 static const Eigen::VectorXd & position_ref (const TaskCOM & self){
102 return self.position_ref();
103 }
104 static const Eigen::VectorXd & velocity_ref (const TaskCOM & self){
105 return self.velocity_ref();
106 }
107 static const Eigen::Vector3d & Kp (TaskCOM & self){
108 return self.Kp();
109 }
110 static const Eigen::Vector3d & Kd (TaskCOM & self){
111 return self.Kd();
112 }
113 static void setKp (TaskCOM & self, const::Eigen::VectorXd Kp){
114 return self.Kp(Kp);
115 }
116 static void setKd (TaskCOM & self, const::Eigen::VectorXd Kv){
117 return self.Kd(Kv);
118 }
119 static const Eigen::VectorXd & getmask(const TaskCOM & self){
120 return self.getMask();
121 }
122 static void setmask (TaskCOM & self, const Eigen::VectorXd mask){
123 return self.setMask(mask);
124 }
125 static void expose(const std::string & class_name)
126 {
127 std::string doc = "TaskCOMEqualityPythonVisitor info.";
128 bp::class_<TaskCOM>(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_com_hpp__
Definition: constraint-equality.hpp:29
Definition: trajectory-base.hpp:36
Definition: constraint-bound.hpp:27
Definition: task-com-equality.hpp:37
static const Eigen::VectorXd & velocity(const TaskCOM &self)
Definition: task-com-equality.hpp:98
static const Eigen::VectorXd & getDesiredAcceleration(const TaskCOM &self)
Definition: task-com-equality.hpp:83
static const Eigen::VectorXd & velocity_ref(const TaskCOM &self)
Definition: task-com-equality.hpp:104
static const Eigen::VectorXd & getmask(const TaskCOM &self)
Definition: task-com-equality.hpp:119
static std::string name(TaskCOM &self)
Definition: task-com-equality.hpp:67
static math::ConstraintEquality compute(TaskCOM &self, const double t, const Eigen::VectorXd &q, const Eigen::VectorXd &v, pinocchio::Data &data)
Definition: task-com-equality.hpp:71
static math::ConstraintEquality getConstraint(const TaskCOM &self)
Definition: task-com-equality.hpp:76
static const Eigen::VectorXd & position_error(const TaskCOM &self)
Definition: task-com-equality.hpp:89
static void setKp(TaskCOM &self, const ::Eigen::VectorXd Kp)
Definition: task-com-equality.hpp:113
static void setmask(TaskCOM &self, const Eigen::VectorXd mask)
Definition: task-com-equality.hpp:122
static const Eigen::VectorXd & position(const TaskCOM &self)
Definition: task-com-equality.hpp:95
static const Eigen::Vector3d & Kp(TaskCOM &self)
Definition: task-com-equality.hpp:107
static const Eigen::VectorXd & position_ref(const TaskCOM &self)
Definition: task-com-equality.hpp:101
static const Eigen::VectorXd & velocity_error(const TaskCOM &self)
Definition: task-com-equality.hpp:92
void visit(PyClass &cl) const
Definition: task-com-equality.hpp:42
static Eigen::VectorXd getAcceleration(TaskCOM &self, const Eigen::VectorXd dv)
Definition: task-com-equality.hpp:86
static void setReference(TaskCOM &self, const trajectories::TrajectorySample &ref)
Definition: task-com-equality.hpp:80
static void setKd(TaskCOM &self, const ::Eigen::VectorXd Kv)
Definition: task-com-equality.hpp:116
static const Eigen::Vector3d & Kd(TaskCOM &self)
Definition: task-com-equality.hpp:110
static void expose(const std::string &class_name)
Definition: task-com-equality.hpp:125