An acceleration limiter for the kobuki. More...
#include <acceleration_limiter.hpp>
Public Member Functions | |
AccelerationLimiter () | |
void | init (bool enable_acceleration_limiter, double linear_acceleration_max_=0.5, double angular_acceleration_max_=3.5, double linear_deceleration_max_=-0.5 *1.2, double angular_deceleration_max_=-3.5 *1.2) |
bool | isEnabled () const |
std::vector< double > | limit (const std::vector< double > &command) |
Limits the input velocity commands if gatekeeper is enabled. | |
std::vector< double > | limit (const double &vx, const double &wz) |
Private Attributes | |
double | angular_acceleration_max |
double | angular_deceleration_max |
double | command_vx |
double | command_wz |
bool | is_enabled |
short | last_radius |
short | last_speed |
ecl::TimeStamp | last_timestamp |
double | last_vx |
double | last_wz |
double | linear_acceleration_max |
double | linear_deceleration_max |
An acceleration limiter for the kobuki.
This class will check incoming velocity commands and limit them if the change since the last incoming command is great.
Right now, this hasn't got any configurable parameters for the user - that might be an option to provide for users in the future. Ideally
Definition at line 50 of file acceleration_limiter.hpp.
kobuki::AccelerationLimiter::AccelerationLimiter | ( | ) | [inline] |
Definition at line 52 of file acceleration_limiter.hpp.
void kobuki::AccelerationLimiter::init | ( | bool | enable_acceleration_limiter, |
double | linear_acceleration_max_ = 0.5 , |
||
double | angular_acceleration_max_ = 3.5 , |
||
double | linear_deceleration_max_ = -0.5*1.2 , |
||
double | angular_deceleration_max_ = -3.5*1.2 |
||
) | [inline] |
Definition at line 57 of file acceleration_limiter.hpp.
bool kobuki::AccelerationLimiter::isEnabled | ( | ) | const [inline] |
Definition at line 68 of file acceleration_limiter.hpp.
std::vector<double> kobuki::AccelerationLimiter::limit | ( | const std::vector< double > & | command | ) | [inline] |
Limits the input velocity commands if gatekeeper is enabled.
What is the limit?
speed | : .. |
radius | : .. |
Definition at line 78 of file acceleration_limiter.hpp.
std::vector<double> kobuki::AccelerationLimiter::limit | ( | const double & | vx, |
const double & | wz | ||
) | [inline] |
Definition at line 80 of file acceleration_limiter.hpp.
double kobuki::AccelerationLimiter::angular_acceleration_max [private] |
Definition at line 136 of file acceleration_limiter.hpp.
double kobuki::AccelerationLimiter::angular_deceleration_max [private] |
Definition at line 136 of file acceleration_limiter.hpp.
double kobuki::AccelerationLimiter::command_vx [private] |
Definition at line 134 of file acceleration_limiter.hpp.
double kobuki::AccelerationLimiter::command_wz [private] |
Definition at line 134 of file acceleration_limiter.hpp.
bool kobuki::AccelerationLimiter::is_enabled [private] |
Definition at line 127 of file acceleration_limiter.hpp.
short kobuki::AccelerationLimiter::last_radius [private] |
Definition at line 129 of file acceleration_limiter.hpp.
short kobuki::AccelerationLimiter::last_speed [private] |
Definition at line 128 of file acceleration_limiter.hpp.
ecl::TimeStamp kobuki::AccelerationLimiter::last_timestamp [private] |
Definition at line 131 of file acceleration_limiter.hpp.
double kobuki::AccelerationLimiter::last_vx [private] |
Definition at line 133 of file acceleration_limiter.hpp.
double kobuki::AccelerationLimiter::last_wz [private] |
Definition at line 133 of file acceleration_limiter.hpp.
double kobuki::AccelerationLimiter::linear_acceleration_max [private] |
Definition at line 135 of file acceleration_limiter.hpp.
double kobuki::AccelerationLimiter::linear_deceleration_max [private] |
Definition at line 135 of file acceleration_limiter.hpp.