@ -5,7 +5,7 @@ from opendbc.can.can_define import CANDefine
from opendbc . can . parser import CANParser
from selfdrive . config import Conversions as CV
from selfdrive . car . interfaces import CarStateBase
from selfdrive . car . honda . values import CAR , DBC , STEER_THRESHOLD , SPEED_FACTOR , HONDA_BOSCH , HONDA_NIDEC_ALT_SCM_MESSAGES , HONDA_BOSCH_ALT_BRAKE_SIGNAL
from selfdrive . car . honda . values import CAR , DBC , STEER_THRESHOLD , HONDA_BOSCH , HONDA_NIDEC_ALT_SCM_MESSAGES , HONDA_BOSCH_ALT_BRAKE_SIGNAL
TransmissionType = car . CarParams . TransmissionType
@ -213,16 +213,17 @@ class CarState(CarStateBase):
self . brake_error = cp . vl [ " STANDSTILL " ] [ " BRAKE_ERROR_1 " ] or cp . vl [ " STANDSTILL " ] [ " BRAKE_ERROR_2 " ]
ret . espDisabled = cp . vl [ " VSA_STATUS " ] [ " ESP_DISABLED " ] != 0
speed_factor = SPEED_FACTOR . get ( self . CP . carFingerprint , 1. )
ret . wheelSpeeds . fl = cp . vl [ " WHEEL_SPEEDS " ] [ " WHEEL_SPEED_FL " ] * CV . KPH_TO_MS * speed_factor
ret . wheelSpeeds . fr = cp . vl [ " WHEEL_SPEEDS " ] [ " WHEEL_SPEED_FR " ] * CV . KPH_TO_MS * speed_factor
ret . wheelSpeeds . rl = cp . vl [ " WHEEL_SPEEDS " ] [ " WHEEL_SPEED_RL " ] * CV . KPH_TO_MS * speed_factor
ret . wheelSpeeds . rr = cp . vl [ " WHEEL_SPEEDS " ] [ " WHEEL_SPEED_RR " ] * CV . KPH_TO_MS * speed_factor
v_wheel = ( ret . wheelSpeeds . fl + ret . wheelSpeeds . fr + ret . wheelSpeeds . rl + ret . wheelSpeeds . rr ) / 4.
ret . wheelSpeeds = self . get_wheel_speeds (
cp . vl [ " WHEEL_SPEEDS " ] [ " WHEEL_SPEED_FL " ] ,
cp . vl [ " WHEEL_SPEEDS " ] [ " WHEEL_SPEED_FR " ] ,
cp . vl [ " WHEEL_SPEEDS " ] [ " WHEEL_SPEED_RL " ] ,
cp . vl [ " WHEEL_SPEEDS " ] [ " WHEEL_SPEED_RR " ] ,
)
v_wheel = ( ret . wheelSpeeds . fl + ret . wheelSpeeds . fr + ret . wheelSpeeds . rl + ret . wheelSpeeds . rr ) / 4.0
# blend in transmission speed at low speed, since it has more low speed accuracy
v_weight = interp ( v_wheel , v_weight_bp , v_weight_v )
ret . vEgoRaw = ( 1. - v_weight ) * cp . vl [ " ENGINE_DATA " ] [ " XMISSION_SPEED " ] * CV . KPH_TO_MS * speed_f actor + v_weight * v_wheel
ret . vEgoRaw = ( 1. - v_weight ) * cp . vl [ " ENGINE_DATA " ] [ " XMISSION_SPEED " ] * CV . KPH_TO_MS * self . CP . wheelSpeedF actor + v_weight * v_wheel
ret . vEgo , ret . aEgo = self . update_speed_kf ( ret . vEgoRaw )
ret . steeringAngleDeg = cp . vl [ " STEERING_SENSORS " ] [ " STEER_ANGLE " ]