|
|
|
@ -5,7 +5,7 @@ from selfdrive.controls.lib.drive_helpers import rate_limit |
|
|
|
|
from common.numpy_fast import clip, interp |
|
|
|
|
from selfdrive.car import create_gas_command |
|
|
|
|
from selfdrive.car.honda import hondacan |
|
|
|
|
from selfdrive.car.honda.values import CruiseButtons, VISUAL_HUD, HONDA_BOSCH, CarControllerParams |
|
|
|
|
from selfdrive.car.honda.values import CruiseButtons, VISUAL_HUD, HONDA_BOSCH, HONDA_NIDEC_ALT_PCM_ACCEL, CarControllerParams |
|
|
|
|
from opendbc.can.packer import CANPacker |
|
|
|
|
|
|
|
|
|
VisualAlert = car.CarControl.HUDControl.VisualAlert |
|
|
|
@ -183,16 +183,25 @@ class CarController(): |
|
|
|
|
# all of this is only relevant for HONDA NIDEC |
|
|
|
|
max_accel = interp(CS.out.vEgo, P.NIDEC_MAX_ACCEL_BP, P.NIDEC_MAX_ACCEL_V) |
|
|
|
|
# TODO this 1.44 is just to maintain previous behavior |
|
|
|
|
pcm_accel = int(clip((accel/1.44)/max_accel, 0.0, 1.0) * 0xc6) |
|
|
|
|
pcm_speed_BP = [-wind_brake, |
|
|
|
|
-wind_brake*(3/4), |
|
|
|
|
0.0, |
|
|
|
|
0.1] |
|
|
|
|
0.5] |
|
|
|
|
# The Honda ODYSSEY seems to have different PCM_ACCEL |
|
|
|
|
# msgs, is it other cars too? |
|
|
|
|
if CS.CP.carFingerprint in HONDA_NIDEC_ALT_PCM_ACCEL: |
|
|
|
|
pcm_speed_V = [0.0, |
|
|
|
|
clip(CS.out.vEgo - 3.0, 0.0, 100.0), |
|
|
|
|
clip(CS.out.vEgo + 0.0, 0.0, 100.0), |
|
|
|
|
clip(CS.out.vEgo + 5.0, 0.0, 100.0)] |
|
|
|
|
pcm_accel = int((1.0) * 0xc6) |
|
|
|
|
else: |
|
|
|
|
pcm_speed_V = [0.0, |
|
|
|
|
clip(CS.out.vEgo - 2.0, 0.0, 100.0), |
|
|
|
|
clip(CS.out.vEgo + 2.0, 0.0, 100.0), |
|
|
|
|
clip(CS.out.vEgo + 5.0, 0.0, 100.0)] |
|
|
|
|
pcm_accel = int(clip((accel/1.44)/max_accel, 0.0, 1.0) * 0xc6) |
|
|
|
|
|
|
|
|
|
pcm_speed_V = [0.0, |
|
|
|
|
clip(CS.out.vEgo + accel/2.0 - 2.0, 0.0, 100.0), |
|
|
|
|
clip(CS.out.vEgo + accel/2.0 + 2.0, 0.0, 100.0), |
|
|
|
|
clip(CS.out.vEgo + 5.0, 0.0, 100.0)] |
|
|
|
|
pcm_speed = interp(gas-brake, pcm_speed_BP, pcm_speed_V) |
|
|
|
|
|
|
|
|
|
if not CS.CP.openpilotLongitudinalControl: |
|
|
|
|