|
KDL 1.5.1
|
The specification of a path, composed of way-points with rounded corners. More...
#include <src/path_roundedcomposite.hpp>


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_RoundedComposite (double radius, double eqradius, RotationalInterpolation *orient, bool aggregate=true) | |
| void | Add (const Frame &F_base_point) |
| Adds a point to this rounded composite, between to adjecent points a Path_Line will be created, between two lines there will be rounding with the given radius with a Path_Circle. | |
| void | Finish () |
| to be called after the last line is added to finish up the work | |
| virtual double | LengthToS (double length) |
| LengthToS() converts a physical length along the trajectory to the parameter s used in Pos, Vel and Acc. | |
| 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. | |
| virtual Frame | Pos (double s) const |
| Returns the Frame at the current path length s. | |
| virtual Twist | Vel (double s, double sd) const |
| Returns the velocity twist at path length s theta and with derivative of s == sd. | |
| 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. | |
| virtual Path * | Clone () |
| virtual constructor, constructing by copying. | |
| virtual void | Write (std::ostream &os) |
| Writes one of the derived objects to the stream. | |
| virtual int | GetNrOfSegments () |
| returns the number of underlying segments. | |
| virtual Path * | GetSegment (int i) |
| returns a pointer to the underlying Path of the given segment number i. | |
| virtual double | GetLengthToEndOfSegment (int i) |
| gets the length to the end of the given segment. | |
| virtual void | GetCurrentSegmentLocation (double s, int &segment_number, double &inner_s) |
| virtual IdentifierType | getIdentifier () const |
| gets an identifier indicating the type of this Path object | |
| virtual | ~Path_RoundedComposite () |
Static Public Member Functions | |
| static Path * | Read (std::istream &is) |
| Reads one of the derived objects from the stream and returns a pointer (factory method) | |
Private Member Functions | |
| Path_RoundedComposite (Path_Composite *comp, double radius, double eqradius, RotationalInterpolation *orient, bool aggregate, int nrofpoints) | |
Private Attributes | |
| Path_Composite * | comp |
| a Path_Composite is aggregated to hold the rounded trajectory with circles and lines | |
| double | radius |
| double | eqradius |
| RotationalInterpolation * | orient |
| Frame | F_base_start |
| Frame | F_base_via |
| int | nrofpoints |
| bool | aggregate |
The specification of a path, composed of way-points with rounded corners.
|
inherited |
|
private |
| KDL::Path_RoundedComposite::Path_RoundedComposite | ( | double | radius, |
| double | eqradius, | ||
| RotationalInterpolation * | orient, | ||
| bool | aggregate = true ) |
| radius | : radius of the rounding circles |
| eqradius | : equivalent radius to compare rotations/velocities |
| orient | : method of rotational_interpolation interpolation |
| aggregate | : if true, this object will own the _orient pointer, i.e. it will delete the _orient pointer when the destructor of this object is called. |
References aggregate, comp, eqradius, nrofpoints, orient, and radius.
|
virtual |
|
virtual |
| void KDL::Path_RoundedComposite::Add | ( | const Frame & | F_base_point | ) |
Adds a point to this rounded composite, between to adjecent points a Path_Line will be created, between two lines there will be rounding with the given radius with a Path_Circle.
The Error_MotionPlanning_Not_Feasible has a type (obtained by GetType) of:
| F_base_point | the pose of a new via point. |
References comp, KDL::dot(), eqradius, F_base_start, F_base_via, KDL::Frame::M, KDL::Vector::Norm(), KDL::Vector::Normalize(), nrofpoints, orient, KDL::Frame::p, and radius.
|
virtual |
virtual constructor, constructing by copying.
In this case it returns the Clone() of the aggregated Path_Composite because this is all one ever will need.
Implements KDL::Path.
References comp, eqradius, nrofpoints, orient, Path_RoundedComposite(), and radius.
| void KDL::Path_RoundedComposite::Finish | ( | ) |
to be called after the last line is added to finish up the work
References comp, eqradius, F_base_start, F_base_via, nrofpoints, and orient.
|
virtual |
| 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. |
References comp.
|
inlinevirtual |
gets an identifier indicating the type of this Path object
Implements KDL::Path.
References KDL::Path::ID_ROUNDED_COMPOSITE.
|
virtual |
gets the length to the end of the given segment.
| i | segment number |
References comp.
|
virtual |
returns the number of underlying segments.
References comp.
|
virtual |
|
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 comp.
|
virtual |
|
virtual |
|
staticinherited |
Reads one of the derived objects from the stream and returns a pointer (factory method)
References Read(), and KDL::RotationalInterpolation::Read().
Referenced by Read(), and KDL::Trajectory::Read().
|
virtual |
|
virtual |
|
private |
Referenced by Path_RoundedComposite(), Path_RoundedComposite(), and ~Path_RoundedComposite().
|
private |
a Path_Composite is aggregated to hold the rounded trajectory with circles and lines
Referenced by Acc(), Add(), Clone(), Finish(), GetCurrentSegmentLocation(), GetLengthToEndOfSegment(), GetNrOfSegments(), GetSegment(), LengthToS(), Path_RoundedComposite(), Path_RoundedComposite(), PathLength(), Pos(), Vel(), Write(), and ~Path_RoundedComposite().
|
private |
Referenced by Add(), Clone(), Finish(), Path_RoundedComposite(), and Path_RoundedComposite().
|
private |
Referenced by Add(), Clone(), Finish(), Path_RoundedComposite(), and Path_RoundedComposite().
|
private |
Referenced by Add(), Clone(), Finish(), Path_RoundedComposite(), Path_RoundedComposite(), and ~Path_RoundedComposite().
|
private |
Referenced by Add(), Clone(), Path_RoundedComposite(), and Path_RoundedComposite().