KDL 1.5.1
Loading...
Searching...
No Matches
velocityprofile.hpp
Go to the documentation of this file.
1/***************************************************************************
2 tag: Erwin Aertbelien Mon Jan 10 16:38:38 CET 2005 velocityprofile.h
3
4 velocityprofile.h - description
5 -------------------
6 begin : Mon January 10 2005
7 copyright : (C) 2005 Erwin Aertbelien
8 email : erwin.aertbelien@mech.kuleuven.ac.be
9
10 ***************************************************************************
11 * This library is free software; you can redistribute it and/or *
12 * modify it under the terms of the GNU Lesser General Public *
13 * License as published by the Free Software Foundation; either *
14 * version 2.1 of the License, or (at your option) any later version. *
15 * *
16 * This library is distributed in the hope that it will be useful, *
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
19 * Lesser General Public License for more details. *
20 * *
21 * You should have received a copy of the GNU Lesser General Public *
22 * License along with this library; if not, write to the Free Software *
23 * Foundation, Inc., 59 Temple Place, *
24 * Suite 330, Boston, MA 02111-1307 USA *
25 * *
26 ***************************************************************************/
27
28
29/*****************************************************************************
30 *
31 * \author
32 * Erwin Aertbelien, Div. PMA, Dep. of Mech. Eng., K.U.Leuven
33 *
34 * \version
35 * ORO_Geometry V0.2
36 *
37 * \par History
38 * - $log$
39 *
40 * \par Release
41 * $Id: velocityprofile.h,v 1.1.1.1.2.5 2003/07/24 13:26:15 psoetens Exp $
42 * $Name: $
43 ****************************************************************************/
44
45#ifndef KDL_VELOCITYPROFILE_H
46#define KDL_VELOCITYPROFILE_H
47
48#include "utilities/utility.h"
49#include "utilities/utility_io.h"
50
51
52namespace KDL {
53
54
63 {
64 public:
65 // trajectory parameters are set in constructor of
66 // derived class
67
68 virtual void SetProfile(double pos1,double pos2) = 0;
69 // sets a trajectory from pos1 to pos2 as fast as possible
70
71 virtual void SetProfileDuration(
72 double pos1,double pos2,double duration) = 0;
73 // Sets a trajectory from pos1 to pos2 in <duration> seconds.
74 // @post new.Duration() will not be shorter than the one obtained
75 // from SetProfile(pos1,pos2).
76
77
78 virtual double Duration() const = 0;
79 // returns the duration of the motion in [sec]
80
81 virtual double Pos(double time) const = 0;
82 // returns the position at <time> in the units of the input
83 // of the constructor of the derived class.
84
85 virtual double Vel(double time) const = 0;
86 // returns the velocity at <time> in the units of the input
87 // of the constructor of the derived class.
88
89 virtual double Acc(double time) const = 0;
90 // returns the acceleration at <time> in the units of the input
91 // of the constructor of the derived class.
92
93 virtual void Write(std::ostream& os) const = 0;
94 // Writes object to a stream.
95
96 static VelocityProfile* Read(std::istream& is);
97 // reads a VelocityProfile object from the stream and returns it.
98
99 virtual VelocityProfile* Clone() const = 0;
100 // returns copy of current VelocityProfile object. (virtual constructor)
101
102 virtual ~VelocityProfile() {}
103 };
104}
105
106
107#endif
A VelocityProfile stores the velocity profile that is used within a trajectory.
Definition velocityprofile.hpp:63
virtual void SetProfile(double pos1, double pos2)=0
static VelocityProfile * Read(std::istream &is)
Definition velocityprofile.cpp:53
virtual void SetProfileDuration(double pos1, double pos2, double duration)=0
virtual double Duration() const =0
virtual VelocityProfile * Clone() const =0
virtual ~VelocityProfile()
Definition velocityprofile.hpp:102
virtual void Write(std::ostream &os) const =0
virtual double Pos(double time) const =0
virtual double Acc(double time) const =0
virtual double Vel(double time) const =0
Definition articulatedbodyinertia.cpp:26