KDL  1.4.0
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
KDL::Path_Circle Class Reference

A circular Path with 'open ends'. More...

#include <src/path_circle.hpp>

Inheritance diagram for KDL::Path_Circle:
Inheritance graph
[legend]
Collaboration diagram for KDL::Path_Circle:
Collaboration graph
[legend]

Public Types

enum  IdentifierType {
  ID_LINE =1, ID_CIRCLE =2, ID_COMPOSITE =3, ID_ROUNDED_COMPOSITE =4,
  ID_POINT =5, ID_CYCLIC_CLOSED =6
}
 

Public Member Functions

 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. More...
 
double LengthToS (double length)
 LengthToS() converts a physical length along the trajectory to the parameter s used in Pos, Vel and Acc. More...
 
virtual double PathLength ()
 Returns the total path length of the trajectory (has dimension LENGTH) This is not always a physical length , ie when dealing with rotations that are dominant. More...
 
virtual Frame Pos (double s) const
 Returns the Frame at the current path length s. More...
 
virtual Twist Vel (double s, double sd) const
 Returns the velocity twist at path length s theta and with derivative of s == sd. More...
 
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 s == sdd. More...
 
virtual PathClone ()
 Virtual constructor, constructing by copying, Returns a deep copy of this Path Object. More...
 
virtual void Write (std::ostream &os)
 Writes one of the derived objects to the stream. More...
 
virtual IdentifierType getIdentifier () const
 gets an identifier indicating the type of this Path object More...
 
virtual ~Path_Circle ()
 

Static Public Member Functions

static PathRead (std::istream &is)
 Reads one of the derived objects from the stream and returns a pointer (factory method) More...
 

Private Attributes

RotationalInterpolationorient
 
double radius
 
Frame F_base_center
 
double eqradius
 
double pathlength
 
double scalelin
 
double scalerot
 
bool aggregate
 

Detailed Description

A circular Path with 'open ends'.

Path_Arc would have been a better name though.

Member Enumeration Documentation

§ IdentifierType

enum KDL::Path::IdentifierType
inherited
Enumerator
ID_LINE 
ID_CIRCLE 
ID_COMPOSITE 
ID_ROUNDED_COMPOSITE 
ID_POINT 
ID_CYCLIC_CLOSED 

Constructor & Destructor Documentation

§ Path_Circle()

KDL::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.

References KDL::RotationalInterpolation::Angle(), eqradius, F_base_center, KDL::Frame::M, KDL::Vector::Normalize(), orient, KDL::Frame::p, pathlength, radius, scalelin, scalerot, and KDL::RotationalInterpolation::SetStartEnd().

Referenced by Clone().

§ ~Path_Circle()

KDL::Path_Circle::~Path_Circle ( )
virtual

References aggregate, and orient.

Referenced by getIdentifier().

Member Function Documentation

§ Acc()

Twist KDL::Path_Circle::Acc ( double  s,
double  sd,
double  sdd 
) const
virtual

Returns the acceleration twist at path length s and with derivative of s == sd, and 2nd derivative of s == sdd.

Implements KDL::Path.

References KDL::RotationalInterpolation::Acc(), F_base_center, KDL::Frame::M, orient, radius, scalelin, and scalerot.

§ Clone()

Path * KDL::Path_Circle::Clone ( )
virtual

§ getIdentifier()

virtual IdentifierType KDL::Path_Circle::getIdentifier ( ) const
inlinevirtual

gets an identifier indicating the type of this Path object

Implements KDL::Path.

References KDL::Path::ID_CIRCLE, and ~Path_Circle().

§ LengthToS()

double KDL::Path_Circle::LengthToS ( double  length)
virtual

LengthToS() converts a physical length along the trajectory to the parameter s used in Pos, Vel and Acc.

This is used because in cases with large rotations the parameter s does NOT correspond to the lineair length along the trajectory. User should be sure that the lineair distance travelled by this path object is NOT zero, when using this method ! (e.g. the case of only rotational change) throws Error_MotionPlanning_Not_Applicable if used on composed path objects.

Implements KDL::Path.

References scalelin.

§ PathLength()

double KDL::Path_Circle::PathLength ( )
virtual

Returns the total path length of the trajectory (has dimension LENGTH) This is not always a physical length , ie when dealing with rotations that are dominant.

Implements KDL::Path.

References pathlength.

§ Pos()

Frame KDL::Path_Circle::Pos ( double  s) const
virtual

Returns the Frame at the current path length s.

Implements KDL::Path.

References F_base_center, orient, KDL::RotationalInterpolation::Pos(), radius, scalelin, and scalerot.

Referenced by Clone(), and Write().

§ Read()

Path * KDL::Path::Read ( std::istream &  is)
staticinherited

Reads one of the derived objects from the stream and returns a pointer (factory method)

References KDL::RotationalInterpolation::Read().

Referenced by KDL::Trajectory::Read().

§ Vel()

Twist KDL::Path_Circle::Vel ( double  s,
double  sd 
) const
virtual

Returns the velocity twist at path length s theta and with derivative of s == sd.

Implements KDL::Path.

References F_base_center, KDL::Frame::M, orient, radius, scalelin, scalerot, and KDL::RotationalInterpolation::Vel().

§ Write()

void KDL::Path_Circle::Write ( std::ostream &  os)
virtual

Member Data Documentation

§ aggregate

bool KDL::Path_Circle::aggregate
private

Referenced by Clone(), and ~Path_Circle().

§ eqradius

double KDL::Path_Circle::eqradius
private

Referenced by Clone(), Path_Circle(), and Write().

§ F_base_center

Frame KDL::Path_Circle::F_base_center
private

Referenced by Acc(), Clone(), Path_Circle(), Pos(), Vel(), and Write().

§ orient

RotationalInterpolation* KDL::Path_Circle::orient
private

§ pathlength

double KDL::Path_Circle::pathlength
private

Referenced by Clone(), Path_Circle(), PathLength(), and Write().

§ radius

double KDL::Path_Circle::radius
private

Referenced by Acc(), Clone(), Path_Circle(), Pos(), Vel(), and Write().

§ scalelin

double KDL::Path_Circle::scalelin
private

§ scalerot

double KDL::Path_Circle::scalerot
private

Referenced by Acc(), Clone(), Path_Circle(), Pos(), Vel(), and Write().


The documentation for this class was generated from the following files: