Loading...
Searching...
No Matches
task-am-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_am_hpp__
19#define __tsid_python_task_am_hpp__
20
22
28namespace tsid
29{
30 namespace python
31 {
32 namespace bp = boost::python;
33
34 template<typename TaskAM>
36 : public boost::python::def_visitor< TaskAMEqualityPythonVisitor<TaskAM> >
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", &TaskAM::dim, "return dimension size")
47 .def("setReference", &TaskAMEqualityPythonVisitor::setReference, bp::arg("ref"))
48 .add_property("getDesiredMomentumDerivative", bp::make_function(&TaskAMEqualityPythonVisitor::getDesiredMomentumDerivative, bp::return_value_policy<bp::copy_const_reference>()), "Return dL_desired")
49 .def("getdMomentum", &TaskAMEqualityPythonVisitor::getdMomentum, bp::arg("dv"))
50 .add_property("momentum_error", bp::make_function(&TaskAMEqualityPythonVisitor::momentum_error, bp::return_value_policy<bp::copy_const_reference>()))
51 .add_property("momentum", bp::make_function(&TaskAMEqualityPythonVisitor::momentum, bp::return_value_policy<bp::copy_const_reference>()))
52 .add_property("momentum_ref", bp::make_function(&TaskAMEqualityPythonVisitor::momentum_ref, bp::return_value_policy<bp::copy_const_reference>()))
53 .add_property("dmomentum_ref", bp::make_function(&TaskAMEqualityPythonVisitor::dmomentum_ref, bp::return_value_policy<bp::copy_const_reference>()))
54 .add_property("Kp", bp::make_function(&TaskAMEqualityPythonVisitor::Kp, bp::return_value_policy<bp::copy_const_reference>()))
55 .add_property("Kd", bp::make_function(&TaskAMEqualityPythonVisitor::Kd, bp::return_value_policy<bp::copy_const_reference>()))
56 .def("setKp", &TaskAMEqualityPythonVisitor::setKp, bp::arg("Kp"))
57 .def("setKd", &TaskAMEqualityPythonVisitor::setKd, bp::arg("Kd"))
58 .def("compute", &TaskAMEqualityPythonVisitor::compute, bp::args("t", "q", "v", "data"))
59 .def("getConstraint", &TaskAMEqualityPythonVisitor::getConstraint)
60 .add_property("name", &TaskAMEqualityPythonVisitor::name)
61 ;
62 }
63 static std::string name(TaskAM & self){
64 std::string name = self.name();
65 return name;
66 }
67 static math::ConstraintEquality compute(TaskAM & self, const double t, const Eigen::VectorXd & q, const Eigen::VectorXd & v, pinocchio::Data & data){
68 self.compute(t, q, v, data);
69 math::ConstraintEquality cons(self.getConstraint().name(), self.getConstraint().matrix(), self.getConstraint().vector());
70 return cons;
71 }
72 static math::ConstraintEquality getConstraint(const TaskAM & self){
73 math::ConstraintEquality cons(self.getConstraint().name(), self.getConstraint().matrix(), self.getConstraint().vector());
74 return cons;
75 }
76 static void setReference(TaskAM & self, const trajectories::TrajectorySample & ref){
77 self.setReference(ref);
78 }
79 static const Eigen::Vector3d & getDesiredMomentumDerivative(const TaskAM & self){
80 return self.getDesiredMomentumDerivative();
81 }
82 static Eigen::Vector3d getdMomentum (TaskAM & self, const Eigen::VectorXd dv){
83 return self.getdMomentum(dv);
84 }
85 static const Eigen::Vector3d & momentum_error(const TaskAM & self){
86 return self.momentum_error();
87 }
88 static const Eigen::Vector3d & momentum (const TaskAM & self){
89 return self.momentum();
90 }
91 static const Eigen::VectorXd & momentum_ref (const TaskAM & self){
92 return self.momentum_ref();
93 }
94 static const Eigen::VectorXd & dmomentum_ref (const TaskAM & self){
95 return self.dmomentum_ref();
96 }
97 static const Eigen::Vector3d & Kp (TaskAM & self){
98 return self.Kp();
99 }
100 static const Eigen::Vector3d & Kd (TaskAM & self){
101 return self.Kd();
102 }
103 static void setKp (TaskAM & self, const::Eigen::VectorXd Kp){
104 return self.Kp(Kp);
105 }
106 static void setKd (TaskAM & self, const::Eigen::VectorXd Kv){
107 return self.Kd(Kv);
108 }
109 static void expose(const std::string & class_name)
110 {
111 std::string doc = "TaskAMEqualityPythonVisitor info.";
112 bp::class_<TaskAM>(class_name.c_str(),
113 doc.c_str(),
114 bp::no_init)
116 }
117 };
118 }
119}
120
121
122#endif // ifndef __tsid_python_task_am_hpp__
Definition: constraint-equality.hpp:29
Definition: trajectory-base.hpp:36
Definition: constraint-bound.hpp:27
Definition: task-am-equality.hpp:37
static const Eigen::VectorXd & momentum_ref(const TaskAM &self)
Definition: task-am-equality.hpp:91
static const Eigen::Vector3d & getDesiredMomentumDerivative(const TaskAM &self)
Definition: task-am-equality.hpp:79
static void setKp(TaskAM &self, const ::Eigen::VectorXd Kp)
Definition: task-am-equality.hpp:103
static const Eigen::VectorXd & dmomentum_ref(const TaskAM &self)
Definition: task-am-equality.hpp:94
static Eigen::Vector3d getdMomentum(TaskAM &self, const Eigen::VectorXd dv)
Definition: task-am-equality.hpp:82
static math::ConstraintEquality compute(TaskAM &self, const double t, const Eigen::VectorXd &q, const Eigen::VectorXd &v, pinocchio::Data &data)
Definition: task-am-equality.hpp:67
static void expose(const std::string &class_name)
Definition: task-am-equality.hpp:109
void visit(PyClass &cl) const
Definition: task-am-equality.hpp:42
static const Eigen::Vector3d & momentum_error(const TaskAM &self)
Definition: task-am-equality.hpp:85
static std::string name(TaskAM &self)
Definition: task-am-equality.hpp:63
static const Eigen::Vector3d & Kp(TaskAM &self)
Definition: task-am-equality.hpp:97
static math::ConstraintEquality getConstraint(const TaskAM &self)
Definition: task-am-equality.hpp:72
static void setKd(TaskAM &self, const ::Eigen::VectorXd Kv)
Definition: task-am-equality.hpp:106
static void setReference(TaskAM &self, const trajectories::TrajectorySample &ref)
Definition: task-am-equality.hpp:76
static const Eigen::Vector3d & momentum(const TaskAM &self)
Definition: task-am-equality.hpp:88
static const Eigen::Vector3d & Kd(TaskAM &self)
Definition: task-am-equality.hpp:100