Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
KDL::Path_Composite Class Reference

#include <path_composite.hpp>

Inheritance diagram for KDL::Path_Composite:
Inheritance graph
[legend]

Public Member Functions

virtual Twist Acc (double s, double sd, double sdd) const
 
void Add (Path *geom, bool aggregate=true)
 
virtual PathClone ()
 
virtual void GetCurrentSegmentLocation (double s, int &segment_number, double &inner_s)
 
virtual IdentifierType getIdentifier () const
 
virtual double GetLengthToEndOfSegment (int i)
 
virtual int GetNrOfSegments ()
 
virtual PathGetSegment (int i)
 
virtual double LengthToS (double length)
 
 Path_Composite ()
 
virtual double PathLength ()
 
virtual Frame Pos (double s) const
 
virtual Twist Vel (double s, double sd) const
 
virtual void Write (std::ostream &os)
 
virtual ~Path_Composite ()
 
- Public Member Functions inherited from KDL::Path
virtual ~Path ()
 

Private Types

typedef std::vector< double > DoubleVector
 
typedef std::vector< std::pair< Path *, bool > > PathVector
 

Private Member Functions

double Lookup (double s) const
 

Private Attributes

double cached_ends
 
int cached_index
 
double cached_starts
 
DoubleVector dv
 
PathVector gv
 
double pathlength
 

Additional Inherited Members

- Public Types inherited from KDL::Path
enum  IdentifierType {
  ID_LINE =1, ID_CIRCLE =2, ID_COMPOSITE =3, ID_ROUNDED_COMPOSITE =4,
  ID_POINT =5, ID_CYCLIC_CLOSED =6
}
 
- Static Public Member Functions inherited from KDL::Path
static PathRead (std::istream &is)
 

Detailed Description

A Path being the composition of other Path objects.

For several of its methods, this class needs to lookup the segment corresponding to a value of the path variable s. To increase efficiency, this value is cached.

Currently a linear search is used to look up the segment. A binary search is more efficient. Can STL be used for this ? Increase the efficiency for caching for the common case of a fine grained monotonously increasing path variable s.

For all Path.., VelocityProfile.., Trajectory... check the bounds on the inputs with asserts.

explain this routine in the wiki.

Definition at line 69 of file path_composite.hpp.

Member Typedef Documentation

◆ DoubleVector

typedef std::vector<double> KDL::Path_Composite::DoubleVector
private

Definition at line 72 of file path_composite.hpp.

◆ PathVector

typedef std::vector< std::pair<Path*,bool> > KDL::Path_Composite::PathVector
private

Definition at line 71 of file path_composite.hpp.

Constructor & Destructor Documentation

◆ Path_Composite()

KDL::Path_Composite::Path_Composite ( )

Definition at line 75 of file path_composite.cpp.

◆ ~Path_Composite()

KDL::Path_Composite::~Path_Composite ( )
virtual

Definition at line 153 of file path_composite.cpp.

Member Function Documentation

◆ Acc()

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

Definition at line 108 of file path_composite.cpp.

◆ Add()

void KDL::Path_Composite::Add ( Path geom,
bool  aggregate = true 
)

Adds a Path* to this composite

Definition at line 82 of file path_composite.cpp.

◆ Clone()

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

Virtual constructor, constructing by copying, Returns a deep copy of this Path Object

Implements KDL::Path.

Definition at line 113 of file path_composite.cpp.

◆ GetCurrentSegmentLocation()

void KDL::Path_Composite::GetCurrentSegmentLocation ( double  s,
int &  segment_number,
double &  inner_s 
)
virtual
Parameters
s[INPUT] path length variable for the composite.
segment_number[OUTPUT] segments that corresponds to the path length variable s.
inner_s[OUTPUT] path length to use within the segment.

Definition at line 146 of file path_composite.cpp.

◆ getIdentifier()

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

gets an identifier indicating the type of this Path object

Implements KDL::Path.

Definition at line 159 of file path_composite.hpp.

◆ GetLengthToEndOfSegment()

double KDL::Path_Composite::GetLengthToEndOfSegment ( int  i)
virtual

gets the length to the end of the given segment.

Parameters
isegment number
Returns
length to the end of the segment, i.e. the value for s corresponding to the end of this segment.

Definition at line 140 of file path_composite.cpp.

◆ GetNrOfSegments()

int KDL::Path_Composite::GetNrOfSegments ( )
virtual

returns the number of underlying segments.

Definition at line 130 of file path_composite.cpp.

◆ GetSegment()

Path * KDL::Path_Composite::GetSegment ( int  i)
virtual

returns a pointer to the underlying Path of the given segment number i.

Parameters
isegment number
Returns
pointer to the underlying Path
Warning
The pointer is still owned by this class and is lifetime depends on the lifetime of this class.

Definition at line 134 of file path_composite.cpp.

◆ LengthToS()

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

Definition at line 88 of file path_composite.cpp.

◆ Lookup()

double KDL::Path_Composite::Lookup ( double  s) const
private

Definition at line 55 of file path_composite.cpp.

◆ PathLength()

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

Definition at line 93 of file path_composite.cpp.

◆ Pos()

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

Returns the Frame at the current path length s

Implements KDL::Path.

Definition at line 98 of file path_composite.cpp.

◆ Vel()

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

Definition at line 103 of file path_composite.cpp.

◆ Write()

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

Writes one of the derived objects to the stream

Implements KDL::Path.

Definition at line 121 of file path_composite.cpp.

Member Data Documentation

◆ cached_ends

double KDL::Path_Composite::cached_ends
mutableprivate

Definition at line 80 of file path_composite.hpp.

◆ cached_index

int KDL::Path_Composite::cached_index
mutableprivate

Definition at line 81 of file path_composite.hpp.

◆ cached_starts

double KDL::Path_Composite::cached_starts
mutableprivate

Definition at line 79 of file path_composite.hpp.

◆ dv

DoubleVector KDL::Path_Composite::dv
private

Definition at line 75 of file path_composite.hpp.

◆ gv

PathVector KDL::Path_Composite::gv
private

Definition at line 74 of file path_composite.hpp.

◆ pathlength

double KDL::Path_Composite::pathlength
private

Definition at line 76 of file path_composite.hpp.


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


orocos_kdl
Author(s):
autogenerated on Thu Apr 13 2023 02:19:15