Loading...
Searching...
No Matches
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>
29namespace tsid
30{
31 namespace python
32 {
33 namespace bp = boost::python;
34 typedef pinocchio::SE3 SE3;
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
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);
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__
#define TSID_DISABLE_WARNING_PUSH
Definition: macros.hpp:22
#define TSID_DISABLE_WARNING_DEPRECATED
Definition: macros.hpp:24
#define TSID_DISABLE_WARNING_POP
Definition: macros.hpp:23
void SE3ToVector(const pinocchio::SE3 &M, RefVector vec)
Definition: utils.cpp:32
pinocchio::SE3 SE3
Definition: trajectory-base.hpp:34
Definition: constraint-bound.hpp:27
Definition: trajectory-base.hpp:39
static void expose(const std::string &class_name)
Definition: trajectory-base.hpp:115
static Eigen::VectorXd value(const TrajSample &self)
Definition: trajectory-base.hpp:105
static void resize2(TrajSample &self, const unsigned int &value_size, const unsigned int &derivative_size)
Definition: trajectory-base.hpp:102
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
static void setvalue_se3(TrajSample &self, const pinocchio::SE3 &value)
Definition: trajectory-base.hpp:84
void visit(PyClass &cl) const
Definition: trajectory-base.hpp:43
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 Eigen::VectorXd second_derivative(const TrajSample &self)
Definition: trajectory-base.hpp:111