KDL
1.4.0
|
A 'Half' Trapezoidal VelocityProfile. More...
#include <src/velocityprofile_traphalf.hpp>
Public Member Functions | |
VelocityProfile_TrapHalf (double _maxvel=0, double _maxacc=0, bool _starting=true) | |
void | SetMax (double _maxvel, double _maxacc, bool _starting) |
virtual void | SetProfile (double pos1, double pos2) |
Plans a 'Half' Trapezoidal VelocityProfile between pos1 and pos2. More... | |
virtual void | SetProfileDuration (double pos1, double pos2, double newduration) |
Can be used to prolong the profile, there are two possible outcomes: in a first phase the acceleration is lowered as such that the end position and maximum velocity are reached at the given duration (newduration). More... | |
virtual double | Duration () const |
virtual double | Pos (double time) const |
virtual double | Vel (double time) const |
virtual double | Acc (double time) const |
virtual void | Write (std::ostream &os) const |
virtual VelocityProfile * | Clone () const |
virtual | ~VelocityProfile_TrapHalf () |
Static Public Member Functions | |
static VelocityProfile * | Read (std::istream &is) |
Private Member Functions | |
void | PlanProfile1 (double v, double a) |
void | PlanProfile2 (double v, double a) |
Private Attributes | |
double | a1 |
double | a2 |
double | a3 |
double | b1 |
double | b2 |
double | b3 |
double | c1 |
double | c2 |
double | c3 |
double | duration |
double | t1 |
double | t2 |
double | startpos |
double | endpos |
double | maxvel |
double | maxacc |
bool | starting |
A 'Half' Trapezoidal VelocityProfile.
A constructor flag indicates if the calculated profile should be starting or ending.
KDL::VelocityProfile_TrapHalf::VelocityProfile_TrapHalf | ( | double | _maxvel = 0 , |
double | _maxacc = 0 , |
||
bool | _starting = true |
||
) |
maxvel | maximal velocity of the motion profile (positive) |
maxacc | maximal acceleration of the motion profile (positive) |
starting | this value is true when initial velocity is zero and ending velocity is maxvel, is false for the reverse |
Referenced by Clone().
|
virtual |
|
virtual |
|
virtual |
Implements KDL::VelocityProfile.
References duration, endpos, maxacc, maxvel, SetProfileDuration(), starting, startpos, and VelocityProfile_TrapHalf().
|
virtual |
Implements KDL::VelocityProfile.
References duration.
|
private |
|
private |
|
virtual |
|
staticinherited |
Referenced by KDL::Trajectory::Read().
void KDL::VelocityProfile_TrapHalf::SetMax | ( | double | _maxvel, |
double | _maxacc, | ||
bool | _starting | ||
) |
|
virtual |
Plans a 'Half' Trapezoidal VelocityProfile between pos1 and pos2.
If the distance is too short between pos1 and pos2, only the acceleration phase is set and the max velocity is not reached.
pos1 | Starting position |
pos2 | Ending position |
Can throw a Error_MotionPlanning_Not_Feasible
Implements KDL::VelocityProfile.
References duration, endpos, maxacc, maxvel, PlanProfile1(), PlanProfile2(), starting, startpos, t1, and t2.
Referenced by SetProfileDuration().
|
virtual |
Can be used to prolong the profile, there are two possible outcomes: in a first phase the acceleration is lowered as such that the end position and maximum velocity are reached at the given duration (newduration).
In this case there is an acceleration part and a constant velocity part, when this reaches a minimum acceleration value at which the constant part disappears, the motion is stalled, in this case their is a non-motion part and an acceleration part.
pos1 | starting position |
pos2 | ending position |
newduration | the desired duration, if it is lower than the minimum duration, the minimum duration will be used instead of the given duration. |
Implements KDL::VelocityProfile.
References duration, endpos, maxvel, PlanProfile1(), PlanProfile2(), SetProfile(), starting, startpos, t1, and t2.
Referenced by Clone().
|
virtual |
|
virtual |
Implements KDL::VelocityProfile.
|
private |
Referenced by PlanProfile1(), PlanProfile2(), and Pos().
|
private |
Referenced by PlanProfile1(), PlanProfile2(), Pos(), and Vel().
|
private |
Referenced by Acc(), PlanProfile1(), PlanProfile2(), Pos(), and Vel().
|
private |
Referenced by PlanProfile1(), PlanProfile2(), and Pos().
|
private |
Referenced by PlanProfile1(), PlanProfile2(), Pos(), and Vel().
|
private |
Referenced by Acc(), PlanProfile1(), PlanProfile2(), Pos(), and Vel().
|
private |
Referenced by PlanProfile1(), PlanProfile2(), and Pos().
|
private |
Referenced by PlanProfile1(), PlanProfile2(), Pos(), and Vel().
|
private |
Referenced by Acc(), PlanProfile1(), PlanProfile2(), Pos(), and Vel().
|
private |
Referenced by Acc(), Clone(), Duration(), PlanProfile1(), Pos(), SetProfile(), SetProfileDuration(), and Vel().
|
private |
Referenced by Clone(), PlanProfile1(), PlanProfile2(), Pos(), SetProfile(), and SetProfileDuration().
|
private |
Referenced by Clone(), SetMax(), SetProfile(), and Write().
|
private |
Referenced by Clone(), SetMax(), SetProfile(), SetProfileDuration(), and Write().
|
private |
Referenced by Clone(), SetMax(), SetProfile(), SetProfileDuration(), and Write().
|
private |
Referenced by Clone(), PlanProfile1(), PlanProfile2(), Pos(), SetProfile(), and SetProfileDuration().
|
private |
Referenced by Acc(), PlanProfile1(), Pos(), SetProfile(), SetProfileDuration(), and Vel().
|
private |
Referenced by Acc(), PlanProfile2(), Pos(), SetProfile(), SetProfileDuration(), and Vel().