Orocos KDL
path_circle.hpp
1/***************************************************************************
2 tag: Erwin Aertbelien Mon Jan 10 16:38:39 CET 2005 path_circle.h
3
4 path_circle.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* ALTERNATIVE FOR trajectory_circle.h/cpp
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: path_circle.h,v 1.1.1.1.2.3 2003/07/24 13:26:15 psoetens Exp $
42 * $Name: $
43 ****************************************************************************/
44
45#ifndef KDL_MOTION_PATHCIRCLE_H
46#define KDL_MOTION_PATHCIRCLE_H
47
48#include "path.hpp"
49#include "rotational_interpolation.hpp"
50
51
52namespace KDL {
53
54
60class Path_Circle : public Path
61 {
62
63 // Orientatie gedeelte
65
66 // Circular gedeelte
67 double radius;
68 Frame F_base_center;
69
70 // equivalent radius
71 double eqradius;
72
73 // verdeling baanlengte over pos/rot
74 double pathlength;
75 double scalelin;
76 double scalerot;
77
78 bool aggregate;
79
80 public:
81
87 Path_Circle(const Frame& F_base_start,const Vector& V_base_center,
88 const Vector& V_base_p,
89 const Rotation& R_base_end,
90 double alpha,
92 double eqradius,
93 bool _aggregate=true);
94
95 double LengthToS(double length);
96
97 virtual double PathLength();
98 virtual Frame Pos(double s) const;
99 virtual Twist Vel(double s,double sd) const;
100 virtual Twist Acc(double s,double sd,double sdd) const;
101 virtual Path* Clone();
102 virtual void Write(std::ostream& os);
103
108 return ID_CIRCLE;
109 }
110
111 virtual ~Path_Circle();
112 };
113
114
115}
116
117
118#endif
represents a frame transformation in 3D space (rotation + translation)
Definition frames.hpp:572
virtual void Write(std::ostream &os)
virtual ~Path_Circle()
Path_Circle(const Frame &F_base_start, const Vector &V_base_center, const Vector &V_base_p, const Rotation &R_base_end, double alpha, RotationalInterpolation *otraj, double eqradius, bool _aggregate=true)
virtual Frame Pos(double s) const
virtual Twist Vel(double s, double sd) const
double LengthToS(double length)
virtual Path * Clone()
virtual IdentifierType getIdentifier() const
Definition path_circle.hpp:107
virtual Twist Acc(double s, double sd, double sdd) const
virtual double PathLength()
Definition path.hpp:59
IdentifierType
Definition path.hpp:61
@ ID_CIRCLE
Definition path.hpp:63
represents rotations in 3 dimensional space.
Definition frames.hpp:304
Definition rotational_interpolation.hpp:63
represents both translational and rotational velocities.
Definition frames.hpp:723
A concrete implementation of a 3 dimensional vector class.
Definition frames.hpp:163
Definition articulatedbodyinertia.hpp:32