|
|
@ -709,7 +709,7 @@ class GamepadManager : public InputInterface { |
|
|
double normalized = std::min((planner_stick_magnitude_ - dead_zone_) / (1.0 - dead_zone_), 1.0); |
|
|
double normalized = std::min((planner_stick_magnitude_ - dead_zone_) / (1.0 - dead_zone_), 1.0); |
|
|
double target_speed = normalized * 0.8; // 0.0 at dead zone edge, 0.8 at full stick
|
|
|
double target_speed = normalized * 0.8; // 0.0 at dead zone edge, 0.8 at full stick
|
|
|
// Rate-limit acceleration only (decel is instant)
|
|
|
// Rate-limit acceleration only (decel is instant)
|
|
|
constexpr double max_accel_per_frame = 0.002; // ~2s ramp 0→0.8 at 200Hz
|
|
|
|
|
|
|
|
|
constexpr double max_accel_per_frame = 0.001; // ~4s ramp 0→0.8 at 200Hz
|
|
|
if (target_speed > smoothed_speed_) { |
|
|
if (target_speed > smoothed_speed_) { |
|
|
smoothed_speed_ = std::min(target_speed, smoothed_speed_ + max_accel_per_frame); |
|
|
smoothed_speed_ = std::min(target_speed, smoothed_speed_ + max_accel_per_frame); |
|
|
} else { |
|
|
} else { |
|
|
|