KDL  1.4.0
path_circle.hpp
Go to the documentation of this file.
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"
50 
51 
52 namespace KDL {
53 
54 
60 class Path_Circle : public Path
61  {
62 
63  // Orientatie gedeelte
64  RotationalInterpolation* orient;
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,
91  RotationalInterpolation* otraj,
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 
107  virtual IdentifierType getIdentifier() const {
108  return ID_CIRCLE;
109  }
110 
111  virtual ~Path_Circle();
112  };
113 
114 
115 }
116 
117 
118 #endif
KDL::Path_Circle::Write
virtual void Write(std::ostream &os)
Writes one of the derived objects to the stream.
Definition: path_circle.cpp:193
KDL::RotationalInterpolation::Vel
virtual Vector Vel(double theta, double thetad) const =0
Returns the rotational velocity at angle theta and with derivative of theta == thetad.
KDL::Frame::p
Vector p
origine of the Frame
Definition: frames.hpp:572
KDL::Path_Circle::F_base_center
Frame F_base_center
Definition: path_circle.hpp:146
KDL::Path_Circle::Vel
virtual Twist Vel(double s, double sd) const
Returns the velocity twist at path length s theta and with derivative of s == sd.
Definition: path_circle.cpp:150
KDL::Path_Circle::Acc
virtual Twist Acc(double s, double sd, double sdd) const
Returns the acceleration twist at path length s and with derivative of s == sd, and 2nd derivative of...
Definition: path_circle.cpp:158
KDL
Definition: articulatedbodyinertia.cpp:28
KDL::Path_Circle::~Path_Circle
virtual ~Path_Circle()
Definition: path_circle.cpp:186
KDL::Path_Circle::aggregate
bool aggregate
Definition: path_circle.hpp:156
KDL::Twist
represents both translational and rotational velocities.
Definition: frames.hpp:720
KDL::RotationalInterpolation::Write
virtual void Write(std::ostream &os) const =0
Writes one of the derived objects to the stream.
KDL::Path_Circle::orient
RotationalInterpolation * orient
Definition: path_circle.hpp:142
KDL::Path::IdentifierType
IdentifierType
Definition: path.hpp:137
KDL::RotationalInterpolation::Acc
virtual Vector Acc(double theta, double thetad, double thetadd) const =0
Returns the rotational acceleration at angle theta and with derivative of theta == thetad,...
KDL::Path_Circle::pathlength
double pathlength
Definition: path_circle.hpp:152
KDL::Path_Circle::PathLength
virtual double PathLength()
Returns the total path length of the trajectory (has dimension LENGTH) This is not always a physical ...
Definition: path_circle.cpp:138
KDL::Path_Circle::radius
double radius
Definition: path_circle.hpp:145
KDL::Rotation::UnitY
Vector UnitY() const
Access to the underlying unitvectors of the rotation matrix.
Definition: frames.hpp:522
KDL::Path_Circle::getIdentifier
virtual IdentifierType getIdentifier() const
gets an identifier indicating the type of this Path object
Definition: path_circle.hpp:185
KDL::Frame::M
Rotation M
Orientation of the Frame.
Definition: frames.hpp:573
KDL::Path_Circle::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)
CAN THROW Error_MotionPlanning_Circle_ToSmall CAN THROW Error_MotionPlanning_Circle_No_Plane.
Definition: path_circle.cpp:88
path_circle.hpp
KDL::RotationalInterpolation::Clone
virtual RotationalInterpolation * Clone() const =0
virtual constructor, construction by copying .
KDL::Path_Circle::eqradius
double eqradius
Definition: path_circle.hpp:149
KDL::Path_Circle::Clone
virtual Path * Clone()
Virtual constructor, constructing by copying, Returns a deep copy of this Path Object.
Definition: path_circle.cpp:173
path.hpp
rotational_interpolation.hpp
KDL::Path
The specification of the path of a trajectory.
Definition: path.hpp:97
KDL::Path_Circle::scalerot
double scalerot
Definition: path_circle.hpp:154
KDL::Path_Circle::LengthToS
double LengthToS(double length)
LengthToS() converts a physical length along the trajectory to the parameter s used in Pos,...
Definition: path_circle.cpp:133
KDL::Path_Circle::Pos
virtual Frame Pos(double s) const
Returns the Frame at the current path length s.
Definition: path_circle.cpp:142
KDL::Path::ID_CIRCLE
@ ID_CIRCLE
Definition: path.hpp:177
KDL::RotationalInterpolation::Pos
virtual Rotation Pos(double theta) const =0
Returns the rotation matrix at angle theta.
KDL::Path_Circle::scalelin
double scalelin
Definition: path_circle.hpp:153