diff --git a/selfdrive/car/gm/carcontroller.py b/selfdrive/car/gm/carcontroller.py index ff76b70ea..922c0182b 100644 --- a/selfdrive/car/gm/carcontroller.py +++ b/selfdrive/car/gm/carcontroller.py @@ -63,13 +63,6 @@ class CarController(CarControllerBase): self.aego = 0.0 self.regen_paddle_timer = 0 - # Smoothing state for paddle blending - self.prev_regen_paddle_pressed = False - self.regen_paddle_pressed_changed = False - self.regen_paddle_pressed_changed_counter = 0 - self.prev_pedal_gas = 0.0 - - # Midpoint + overflow spoof accumulator and flags self.spoof_accum = 0.0 self.spoof_mid_sent = False @@ -92,13 +85,9 @@ class CarController(CarControllerBase): # else: hold timer between -0.7 and -0.3 # Base paddle press hysteresis - self.regen_paddle_pressed = self.regen_paddle_timer >= 30 # 30 frames + self.regen_paddle_pressed = self.regen_paddle_timer >= 20 # 30 frames press_regen_paddle = self.regen_paddle_pressed - # Detect press/release edges for smoothing - self.regen_paddle_pressed_changed = (self.regen_paddle_pressed != self.prev_regen_paddle_pressed) - self.prev_regen_paddle_pressed = self.regen_paddle_pressed - # Regen gain ratios from bin-averaged 60–0 deceleration sweep; Calculates stronger decel from paddle speed_mps = [0.559, 1.678, 2.797, 3.916, 5.035, 6.154, 7.273, 8.392, 9.511, 10.63, 11.749, 12.868, 13.987, 15.106, 16.225, 17.344, 18.463, 19.582, 20.701, 21.820, @@ -116,10 +105,9 @@ class CarController(CarControllerBase): # --- Immediate application of raw pedal gas, no blending --- pedal_gas = raw_pedal_gas - # Safety cap on initial takeoff: limit pedal_gas based on vehicle speed - pedal_gas_max = interp(car_velocity, [0.0, 5, 30], [0.22, 0.3275, 0.3725]) + # Safety cap: ramp from 22% at 0 m/s to 37.25% at 10 mph (4.47 m/s), then allow full throttleAdd commentMore actions + pedal_gas_max = interp(car_velocity, [0.0, 4.47, 4.48], [0.22, 0.3725, 1.0]) pedal_gas = clip(pedal_gas, 0.0, pedal_gas_max) - self.prev_pedal_gas = pedal_gas return pedal_gas, press_regen_paddle @@ -144,7 +132,7 @@ class CarController(CarControllerBase): self.CP.openpilotLongitudinalControl and CC.longActive and self.CP.enableGasInterceptor and - self.regen_paddle_timer >= 30 # raw hysteresis-only + self.regen_paddle_timer >= 20 # raw hysteresis-only ) regen_active = raw_regen_active