A circular Path with 'open ends'. More...
#include <path_circle.hpp>
Public Member Functions | |
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, Returns a deep copy of this Path Object. | |
double | LengthToS (double length) |
LengthToS() converts a physical length along the trajectory to the parameter s used in Pos, Vel and Acc. | |
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. | |
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 void | Write (std::ostream &os) |
Writes one of the derived objects to the stream. | |
virtual | ~Path_Circle () |
A circular Path with 'open ends'.
Path_Arc would have been a better name though.
Definition at line 60 of file path_circle.hpp.
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.
Definition at line 50 of file path_circle.cpp.
References KDL::RotationalInterpolation::Angle(), draftlibs::fcvec::dist(), KDL::epsilon, KDL::Frame::M, KDL::Vector::Normalize(), KDL::Frame::p, KDL::RotationalInterpolation::SetStartEnd(), and MovieTool::x.
Referenced by Clone().
KDL::Path_Circle::~Path_Circle | ( | ) | [virtual] |
Definition at line 150 of file path_circle.cpp.
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.
Definition at line 122 of file path_circle.cpp.
References KDL::RotationalInterpolation::Acc(), KDL::cos(), KDL::Frame::M, draftTools::p, and KDL::sin().
Path * KDL::Path_Circle::Clone | ( | ) | [virtual] |
Virtual constructor, constructing by copying, Returns a deep copy of this Path Object.
Implements KDL::Path.
Definition at line 137 of file path_circle.cpp.
References KDL::RotationalInterpolation::Clone(), KDL::deg2rad, KDL::Frame::M, KDL::Frame::p, Path_Circle(), KDL::RotationalInterpolation::Pos(), Pos(), and KDL::Rotation::UnitY().
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.
Definition at line 97 of file path_circle.cpp.
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.
Definition at line 102 of file path_circle.cpp.
Frame KDL::Path_Circle::Pos | ( | double | s | ) | const [virtual] |
Returns the Frame at the current path length s.
Implements KDL::Path.
Definition at line 106 of file path_circle.cpp.
References KDL::cos(), draftTools::p, KDL::RotationalInterpolation::Pos(), and KDL::sin().
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.
Definition at line 114 of file path_circle.cpp.
References KDL::cos(), KDL::Frame::M, draftTools::p, KDL::sin(), and KDL::RotationalInterpolation::Vel().
void KDL::Path_Circle::Write | ( | std::ostream & | os | ) | [virtual] |
Writes one of the derived objects to the stream.
Implements KDL::Path.
Definition at line 157 of file path_circle.cpp.
References KDL::deg2rad, KDL::Frame::M, KDL::Frame::p, KDL::RotationalInterpolation::Pos(), Pos(), KDL::Rotation::UnitY(), and KDL::RotationalInterpolation::Write().