SpeedLimiter.hh
Go to the documentation of this file.
Class to limit velocity, acceleration and jerk.
Definition: SpeedLimiter.hh:37
void SetMinVelocity(double _lim)
Set minimum velocity limit in m/s, usually <= 0.
void SetMinAcceleration(double _lim)
Set minimum acceleration limit in m/s^2, usually <= 0.
void SetMinJerk(double _lim)
Set minimum jerk limit in m/s^3, usually <= 0.
void SetMaxAcceleration(double _lim)
Set maximum acceleration limit in m/s^2, usually >= 0.
double MaxAcceleration() const
Get maximum acceleration limit, defaults to positive infinity.
void SetMaxJerk(double _lim)
Set maximum jerk limit in m/s^3, usually >= 0.
double MaxJerk() const
Get maximum jerk limit, defaults to positive infinity.
double Limit(double &_vel, double _prevVel, double _prevPrevVel, std::chrono::steady_clock::duration _dt) const
Limit velocity, acceleration and jerk.
void SetMaxVelocity(double _lim)
Set maximum velocity limit in m/s, usually >= 0.
double MaxVelocity() const
Get maximum velocity limit, defaults to positive infinity.
SpeedLimiter()
Constructor. There are no limits by default.
double MinAcceleration() const
Get minimum acceleration limit, defaults to negative infinity.
double LimitAcceleration(double &_vel, double _prevVel, std::chrono::steady_clock::duration _dt) const
Limit the acceleration using a first-order backward difference method.
double LimitVelocity(double &_vel) const
Limit the velocity.
double MinJerk() const
Get minimum jerk limit, defaults to negative infinity.
double MinVelocity() const
Get minimum velocity limit, defaults to negative infinity.
double LimitJerk(double &_vel, double _prevVel, double _prevPrevVel, std::chrono::steady_clock::duration _dt) const
Limit the jerk using a second-order backward difference method.
Definition: Angle.hh:43