A 'Half' Trapezoidal VelocityProfile.
More...
#include <src/velocityprofile_traphalf.hpp>
|
| 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 () |
|
A 'Half' Trapezoidal VelocityProfile.
A constructor flag indicates if the calculated profile should be starting or ending.
◆ VelocityProfile_TrapHalf()
KDL::VelocityProfile_TrapHalf::VelocityProfile_TrapHalf |
( |
double |
_maxvel = 0 , |
|
|
double |
_maxacc = 0 , |
|
|
bool |
_starting = true |
|
) |
| |
- Parameters
-
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 |
References t1.
◆ ~VelocityProfile_TrapHalf()
KDL::VelocityProfile_TrapHalf::~VelocityProfile_TrapHalf |
( |
| ) |
|
|
virtual |
◆ Acc()
double KDL::VelocityProfile_TrapHalf::Acc |
( |
double |
time | ) |
const |
|
virtual |
◆ Clone()
◆ Duration()
double KDL::VelocityProfile_TrapHalf::Duration |
( |
| ) |
const |
|
virtual |
◆ PlanProfile1()
void KDL::VelocityProfile_TrapHalf::PlanProfile1 |
( |
double |
v, |
|
|
double |
a |
|
) |
| |
|
private |
◆ PlanProfile2()
void KDL::VelocityProfile_TrapHalf::PlanProfile2 |
( |
double |
v, |
|
|
double |
a |
|
) |
| |
|
private |
◆ Pos()
double KDL::VelocityProfile_TrapHalf::Pos |
( |
double |
time | ) |
const |
|
virtual |
◆ Read()
◆ SetMax()
void KDL::VelocityProfile_TrapHalf::SetMax |
( |
double |
_maxvel, |
|
|
double |
_maxacc, |
|
|
bool |
_starting |
|
) |
| |
◆ SetProfile()
void KDL::VelocityProfile_TrapHalf::SetProfile |
( |
double |
pos1, |
|
|
double |
pos2 |
|
) |
| |
|
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.
- Parameters
-
pos1 | Starting position |
pos2 | Ending position |
Can throw a Error_MotionPlanning_Not_Feasible
Implements KDL::VelocityProfile.
◆ SetProfileDuration()
void KDL::VelocityProfile_TrapHalf::SetProfileDuration |
( |
double |
pos1, |
|
|
double |
pos2, |
|
|
double |
newduration |
|
) |
| |
|
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.
- Parameters
-
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.
◆ Vel()
double KDL::VelocityProfile_TrapHalf::Vel |
( |
double |
time | ) |
const |
|
virtual |
◆ Write()
void KDL::VelocityProfile_TrapHalf::Write |
( |
std::ostream & |
os | ) |
const |
|
virtual |
◆ a1
double KDL::VelocityProfile_TrapHalf::a1 |
|
private |
◆ a2
double KDL::VelocityProfile_TrapHalf::a2 |
|
private |
◆ a3
double KDL::VelocityProfile_TrapHalf::a3 |
|
private |
◆ b1
double KDL::VelocityProfile_TrapHalf::b1 |
|
private |
◆ b2
double KDL::VelocityProfile_TrapHalf::b2 |
|
private |
◆ b3
double KDL::VelocityProfile_TrapHalf::b3 |
|
private |
◆ c1
double KDL::VelocityProfile_TrapHalf::c1 |
|
private |
◆ c2
double KDL::VelocityProfile_TrapHalf::c2 |
|
private |
◆ c3
double KDL::VelocityProfile_TrapHalf::c3 |
|
private |
◆ duration
double KDL::VelocityProfile_TrapHalf::duration |
|
private |
◆ endpos
double KDL::VelocityProfile_TrapHalf::endpos |
|
private |
◆ maxacc
double KDL::VelocityProfile_TrapHalf::maxacc |
|
private |
◆ maxvel
double KDL::VelocityProfile_TrapHalf::maxvel |
|
private |
◆ starting
bool KDL::VelocityProfile_TrapHalf::starting |
|
private |
◆ startpos
double KDL::VelocityProfile_TrapHalf::startpos |
|
private |
◆ t1
double KDL::VelocityProfile_TrapHalf::t1 |
|
private |
◆ t2
double KDL::VelocityProfile_TrapHalf::t2 |
|
private |
The documentation for this class was generated from the following files: