|
|
|
@ -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_factor + v_weight * v_wheel |
|
|
|
|
ret.vEgoRaw = (1. - v_weight) * cp.vl["ENGINE_DATA"]["XMISSION_SPEED"] * CV.KPH_TO_MS * self.CP.wheelSpeedFactor + v_weight * v_wheel |
|
|
|
|
ret.vEgo, ret.aEgo = self.update_speed_kf(ret.vEgoRaw) |
|
|
|
|
|
|
|
|
|
ret.steeringAngleDeg = cp.vl["STEERING_SENSORS"]["STEER_ANGLE"] |
|
|
|
|