|
| TractionLimiter (double min_velocity=NAN, double max_velocity=NAN, double min_acceleration=NAN, double max_acceleration=NAN, double min_deceleration=NAN, double max_deceleration=NAN, double min_jerk=NAN, double max_jerk=NAN) |
| Constructor. More...
|
|
double | limit (double &v, double v0, double v1, double dt) |
| Limit the velocity and acceleration. More...
|
|
double | limit_velocity (double &v) |
| Limit the velocity. More...
|
|
double | limit_acceleration (double &v, double v0, double dt) |
| Limit the acceleration. More...
|
|
double | limit_jerk (double &v, double v0, double v1, double dt) |
| Limit the jerk. More...
|
|
◆ TractionLimiter()
tricycle_controller::TractionLimiter::TractionLimiter |
( |
double |
min_velocity = NAN , |
|
|
double |
max_velocity = NAN , |
|
|
double |
min_acceleration = NAN , |
|
|
double |
max_acceleration = NAN , |
|
|
double |
min_deceleration = NAN , |
|
|
double |
max_deceleration = NAN , |
|
|
double |
min_jerk = NAN , |
|
|
double |
max_jerk = NAN |
|
) |
| |
Constructor.
Parameters are applied symmetrically for both directions, i.e., are applied to the absolute value of the corresponding quantity.
- Warning
- Setting min_velocity: the robot can't stand still
- Setting min_deceleration/min_acceleration: the robot can't move with constant velocity
- Setting min_jerk: the robot can't move with constant acceleration
- Parameters
-
[in] | min_velocity | Minimum velocity [m/s] or [rad/s] |
[in] | max_velocity | Maximum velocity [m/s] or [rad/s] |
[in] | min_acceleration | Minimum acceleration [m/s^2] or [rad/s^2] |
[in] | max_acceleration | Maximum acceleration [m/s^2] or [rad/s^2] |
[in] | min_deceleration | Minimum deceleration [m/s^2] or [rad/s^2] |
[in] | max_deceleration | Maximum deceleration [m/s^2] or [rad/s^2] |
[in] | min_jerk | Minimum jerk [m/s^3] |
[in] | max_jerk | Maximum jerk [m/s^3] |
◆ limit()
double tricycle_controller::TractionLimiter::limit |
( |
double & |
v, |
|
|
double |
v0, |
|
|
double |
v1, |
|
|
double |
dt |
|
) |
| |
Limit the velocity and acceleration.
- Parameters
-
[in,out] | v | Velocity [m/s] or [rad/s] |
[in] | v0 | Previous velocity to v [m/s] or [rad/s] |
[in] | v1 | Previous velocity to v0 [m/s] or [rad/s] |
[in] | dt | Time step [s] |
- Returns
- Limiting factor (1.0 if none)
◆ limit_acceleration()
double tricycle_controller::TractionLimiter::limit_acceleration |
( |
double & |
v, |
|
|
double |
v0, |
|
|
double |
dt |
|
) |
| |
Limit the acceleration.
- Parameters
-
[in,out] | v | Velocity [m/s] or [rad/s] |
[in] | v0 | Previous velocity [m/s] or [rad/s] |
[in] | dt | Time step [s] |
- Returns
- Limiting factor (1.0 if none)
◆ limit_jerk()
double tricycle_controller::TractionLimiter::limit_jerk |
( |
double & |
v, |
|
|
double |
v0, |
|
|
double |
v1, |
|
|
double |
dt |
|
) |
| |
◆ limit_velocity()
double tricycle_controller::TractionLimiter::limit_velocity |
( |
double & |
v | ) |
|
Limit the velocity.
- Parameters
-
[in,out] | v | Velocity [m/s] or [rad/s] |
- Returns
- Limiting factor (1.0 if none)
The documentation for this class was generated from the following files:
- ros2_controllers/tricycle_controller/include/tricycle_controller/traction_limiter.hpp
- ros2_controllers/tricycle_controller/src/traction_limiter.cpp