Orocos KDL
KDL::Path_Composite Class Reference

#include <path_composite.hpp>

Inheritance diagram for KDL::Path_Composite:
KDL::Path

Public Member Functions

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

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 Path * Read (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.

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

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

\TODO explain this routine in the wiki.

Constructor & Destructor Documentation

◆ Path_Composite()

KDL::Path_Composite::Path_Composite ( )

◆ ~Path_Composite()

virtual KDL::Path_Composite::~Path_Composite ( )
virtual

Member Function Documentation

◆ Acc()

virtual 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.

◆ Add()

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

Adds a Path* to this composite

◆ Clone()

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

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

Implements KDL::Path.

◆ GetCurrentSegmentLocation()

virtual 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.

◆ getIdentifier()

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

gets an identifier indicating the type of this Path object

Implements KDL::Path.

◆ GetLengthToEndOfSegment()

virtual 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.

◆ GetNrOfSegments()

virtual int KDL::Path_Composite::GetNrOfSegments ( )
virtual

returns the number of underlying segments.

◆ GetSegment()

virtual 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.

◆ LengthToS()

virtual 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.

◆ PathLength()

virtual 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.

◆ Pos()

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

Returns the Frame at the current path length s

Implements KDL::Path.

◆ Vel()

virtual 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.

◆ Write()

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

Writes one of the derived objects to the stream

Implements KDL::Path.


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