Speed maximum (SPEED_MAX)
Description
This parameter defines the Physical Maximum Speed of the Rover at 100% throttle. The navigation controller uses this value to scale its throttle output. If set to 0, the autopilot will attempt to estimate it based on CRUISE_SPEED and CRUISE_THROTTLE, but setting it explicitly provides better performance.
The Mathematics
$$ \text{Throttle}\_{demand} \approx \frac{\text{Target Speed}}{\text{SPEED\_MAX}} $$
The Engineer's View
Defined in Rover/Parameters.cpp. Used in AR_AttitudeControl (the Ackermann/Skid steering controller) to normalize speed demands to throttle percentages.
- If 0:
SPEED_MAX is derived: $\text{SPEED\_MAX} = \text{CRUISE\_SPEED} / (\text{CRUISE\_THROTTLE} / 100) $.
Tuning & Behavior
- Default Value: 0 (Auto-calculate)
- Set to: The actual top speed of the rover in meters/second.
- Effect: Improving this value helps the speed controller achieve target speeds more accurately without overshooting (if too low) or undershooting (if too high).