Go to the documentation of this file.00001
00002 #ifndef SPEED_LIMITER_H
00003 #define SPEED_LIMITER_H
00004
00005 namespace four_wheel_steering_controller
00006 {
00007
00008 class SpeedLimiter
00009 {
00010 public:
00011
00024 SpeedLimiter(
00025 bool has_velocity_limits = false,
00026 bool has_acceleration_limits = false,
00027 bool has_jerk_limits = false,
00028 double min_velocity = 0.0,
00029 double max_velocity = 0.0,
00030 double min_acceleration = 0.0,
00031 double max_acceleration = 0.0,
00032 double min_jerk = 0.0,
00033 double max_jerk = 0.0
00034 );
00035
00044 double limit(double& v, double v0, double v1, double dt);
00045
00051 double limit_velocity(double& v);
00052
00060 double limit_acceleration(double& v, double v0, double dt);
00061
00071 double limit_jerk(double& v, double v0, double v1, double dt);
00072
00073 public:
00074
00075 bool has_velocity_limits;
00076 bool has_acceleration_limits;
00077 bool has_jerk_limits;
00078
00079
00080 double min_velocity;
00081 double max_velocity;
00082
00083
00084 double min_acceleration;
00085 double max_acceleration;
00086
00087
00088 double min_jerk;
00089 double max_jerk;
00090 };
00091
00092 }
00093
00094 #endif // SPEED_LIMITER_H