trajectory-base.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_traj_sample_hpp__
19 #define __tsid_python_traj_sample_hpp__
20 
22 
23 
24 #include <tsid/math/utils.hpp>
26 
27 #include <pinocchio/bindings/python/utils/deprecation.hpp>
28 #include <assert.h>
29 namespace tsid
30 {
31  namespace python
32  {
33  namespace bp = boost::python;
35 
36  template<typename TrajSample>
38  : public boost::python::def_visitor< TrajectorySamplePythonVisitor<TrajSample> >
39  {
40 
41  template<class PyClass>
42 
43  void visit(PyClass& cl) const
44  {
45  cl
46  .def(bp::init<unsigned int>((bp::arg("size")), "Default Constructor with size"))
47  .def(bp::init<unsigned int, unsigned int>((bp::arg("value_size"), bp::arg("derivative_size")), "Default Constructor with value and derivative size"))
48 
49  .def("resize", &TrajectorySamplePythonVisitor::resize, bp::arg("size"))
50  .def("resize", &TrajectorySamplePythonVisitor::resize2, bp::args("value_size", "derivative_size"))
51 
54  .def("second_derivative", &TrajectorySamplePythonVisitor::second_derivative)
55 
59  .def("second_derivative", &TrajectorySamplePythonVisitor::setsecond_derivative)
60 
61  // Deprecated methods:
63  pinocchio::python::deprecated_function<>("This method is now deprecated. Please use .value"))
65  pinocchio::python::deprecated_function<>("This method is now deprecated. Please use .derivative"))
67  pinocchio::python::deprecated_function<>("This method is now deprecated. Please use .second_derivative"))
68 
70  pinocchio::python::deprecated_function<>("This method is now deprecated. Please use .value"))
72  pinocchio::python::deprecated_function<>("This method is now deprecated. Please use .value"))
74  pinocchio::python::deprecated_function<>("This method is now deprecated. Please use .derivative"))
76  pinocchio::python::deprecated_function<>("This method is now deprecated. Please use .second_derivative"))
77  ;
78  }
79 
80  static void setvalue_vec(TrajSample & self, const Eigen::VectorXd value){
81  assert (self.getValue().size() == value.size());
82  self.setValue(value);
83  }
84  static void setvalue_se3(TrajSample & self, const pinocchio::SE3 & value){
85  assert (self.getValue().size() == 12);
88  tsid::math::SE3ToVector(value, self.pos);
90  }
91  static void setderivative(TrajSample & self, const Eigen::VectorXd derivative){
92  assert (self.getDerivative().size() == derivative.size());
93  self.setDerivative(derivative);
94  }
95  static void setsecond_derivative(TrajSample & self, const Eigen::VectorXd second_derivative){
96  assert (self.getSecondDerivative().size() == second_derivative.size());
97  self.setSecondDerivative(second_derivative);
98  }
99  static void resize(TrajSample & self, const unsigned int & size){
100  self.resize(size, size);
101  }
102  static void resize2(TrajSample & self, const unsigned int & value_size, const unsigned int & derivative_size){
103  self.resize(value_size, derivative_size);
104  }
105  static Eigen::VectorXd value(const TrajSample & self){
106  return self.getValue();
107  }
108  static Eigen::VectorXd derivative(const TrajSample & self){
109  return self.getDerivative();
110  }
111  static Eigen::VectorXd second_derivative(const TrajSample & self){
112  return self.getSecondDerivative();
113  }
114 
115  static void expose(const std::string & class_name)
116  {
117  std::string doc = "Trajectory Sample info.";
118  bp::class_<TrajSample>(class_name.c_str(),
119  doc.c_str(),
120  bp::no_init)
122  }
123  };
124  }
125 }
126 
127 
128 #endif // ifndef __tsid_python_traj_euclidian_hpp__
void SE3ToVector(const pinocchio::SE3 &M, RefVector vec)
Definition: utils.cpp:32
#define TSID_DISABLE_WARNING_POP
Definition: macros.hpp:23
#define TSID_DISABLE_WARNING_PUSH
Definition: macros.hpp:22
pinocchio::SE3 SE3
Definition: trajectory-base.hpp:34
#define TSID_DISABLE_WARNING_DEPRECATED
Definition: macros.hpp:24
void visit(PyClass &cl) const
Definition: trajectory-base.hpp:43
static Eigen::VectorXd second_derivative(const TrajSample &self)
Definition: trajectory-base.hpp:111
static void expose(const std::string &class_name)
Definition: trajectory-base.hpp:115
static void setvalue_se3(TrajSample &self, const pinocchio::SE3 &value)
Definition: trajectory-base.hpp:84
static void resize2(TrajSample &self, const unsigned int &value_size, const unsigned int &derivative_size)
Definition: trajectory-base.hpp:102
static Eigen::VectorXd value(const TrajSample &self)
Definition: trajectory-base.hpp:105
static void setvalue_vec(TrajSample &self, const Eigen::VectorXd value)
Definition: trajectory-base.hpp:80
static void setsecond_derivative(TrajSample &self, const Eigen::VectorXd second_derivative)
Definition: trajectory-base.hpp:95
static void setderivative(TrajSample &self, const Eigen::VectorXd derivative)
Definition: trajectory-base.hpp:91
static Eigen::VectorXd derivative(const TrajSample &self)
Definition: trajectory-base.hpp:108
static void resize(TrajSample &self, const unsigned int &size)
Definition: trajectory-base.hpp:99
Definition: constraint-bound.hpp:26
Definition: trajectory-base.hpp:37