From e9d70a12222dd9b20e6abadaf1adb4514c86bca1 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Sun, 5 Jun 2022 22:23:45 -0500 Subject: [PATCH 1/7] Chrysler_Update --- selfdrive/car/chrysler/carstate.py | 58 ++++++++++++++++-------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/selfdrive/car/chrysler/carstate.py b/selfdrive/car/chrysler/carstate.py index e3ee4753cc3e3d..73e193a0918940 100644 --- a/selfdrive/car/chrysler/carstate.py +++ b/selfdrive/car/chrysler/carstate.py @@ -10,7 +10,7 @@ class CarState(CarStateBase): def __init__(self, CP): super().__init__(CP) can_define = CANDefine(DBC[CP.carFingerprint]["pt"]) - self.shifter_values = can_define.dv["GEAR"]["PRNDL"] + self.shifter_values = can_define.dv["TRANSMISSION_STATUS"]["GEAR_STATE"] def update(self, cp, cp_cam): @@ -18,6 +18,7 @@ def update(self, cp, cp_cam): self.frame = int(cp.vl["EPS_STATUS"]["COUNTER"]) + # lock info ret.doorOpen = any([cp.vl["DOORS"]["DOOR_OPEN_FL"], cp.vl["DOORS"]["DOOR_OPEN_FR"], cp.vl["DOORS"]["DOOR_OPEN_RL"], @@ -25,15 +26,14 @@ def update(self, cp, cp_cam): ret.seatbeltUnlatched = cp.vl["SEATBELT_STATUS"]["SEATBELT_DRIVER_UNLATCHED"] == 1 # brake pedal + ret.brakePressed = cp.vl["BRAKE_2"]["BRAKE_PRESSED_2"] ==1 # Physical brake pedal switch ret.brake = 0 - ret.brakePressed = cp.vl["ESP_1"]['Brake_Pedal_State'] == 1 # Physical brake pedal switch # gas pedal - ret.gas = cp.vl["ECM_5"]["Accelerator_Position"] + ret.gas = cp.vl["ACCEL_GAS_22F"]["ACCELERATOR_POSITION"] ret.gasPressed = ret.gas > 1e-5 - ret.espDisabled = (cp.vl["TRACTION_BUTTON"]["TRACTION_OFF"] == 1) - + # Speeds ret.wheelSpeeds = self.get_wheel_speeds( cp.vl["WHEEL_SPEEDS"]["WHEEL_SPEED_FL"], cp.vl["WHEEL_SPEEDS"]["WHEEL_SPEED_FR"], @@ -41,39 +41,42 @@ def update(self, cp, cp_cam): cp.vl["WHEEL_SPEEDS"]["WHEEL_SPEED_RR"], unit=1, ) - ret.vEgoRaw = (cp.vl["SPEED_1"]["SPEED_LEFT"] + cp.vl["SPEED_1"]["SPEED_RIGHT"]) / 2. + ret.vEgoRaw = cp.vl["BRAKE_1"]["VEHICLE_SPEED"] * CV.KPH_TO_MS ret.vEgo, ret.aEgo = self.update_speed_kf(ret.vEgoRaw) ret.standstill = not ret.vEgoRaw > 0.001 + # Button Presses + ret.espDisabled = (cp.vl["TRACTION_BUTTON"]["TRACTION_OFF"] == 1) # TODO: button is pressed. This doesn't mean ESP is diabled. ret.leftBlinker = cp.vl["STEERING_LEVERS"]["TURN_SIGNALS"] == 1 ret.rightBlinker = cp.vl["STEERING_LEVERS"]["TURN_SIGNALS"] == 2 - ret.steeringAngleDeg = cp.vl["STEERING"]["STEER_ANGLE"] - ret.steeringRateDeg = cp.vl["STEERING"]["STEERING_RATE"] - ret.gearShifter = self.parse_gear_shifter(self.shifter_values.get(cp.vl["GEAR"]["PRNDL"], None)) + ret.genericToggle = bool(cp.vl["STEERING_LEVERS"]["HIGH_BEAM_FLASH"]) - ret.cruiseState.enabled = cp.vl["ACC_2"]["ACC_STATUS_2"] == 7 # ACC is green. - ret.cruiseState.available = ret.cruiseState.enabled # FIXME: for now same as enabled - ret.cruiseState.speed = cp.vl["DASHBOARD"]["ACC_SPEED_CONFIG_KPH"] * CV.KPH_TO_MS - # CRUISE_STATE is a three bit msg, 0 is off, 1 and 2 are Non-ACC mode, 3 and 4 are ACC mode, find if there are other states too - ret.cruiseState.nonAdaptive = cp.vl["DASHBOARD"]["CRUISE_STATE"] in (1, 2) - ret.accFaulted = cp.vl["ACC_2"]["ACC_FAULTED"] != 0 + #Gear + ret.gearShifter = self.parse_gear_shifter(self.shifter_values.get(cp.vl["TRANSMISSION_STATUS"]["GEAR_STATE"], None)) + #Steering Info + ret.steeringAngleDeg = cp.vl["STEERING"]["STEER_ANGLE"] + ret.steeringRateDeg = cp.vl["STEERING"]["STEERING_RATE"] ret.steeringTorque = cp.vl["EPS_STATUS"]["TORQUE_DRIVER"] ret.steeringTorqueEps = cp.vl["EPS_STATUS"]["TORQUE_MOTOR"] ret.steeringPressed = abs(ret.steeringTorque) > STEER_THRESHOLD steer_state = cp.vl["EPS_STATUS"]["LKAS_STATE"] - ret.steerFaultPermanent = steer_state == 4 or (steer_state == 0 and ret.vEgo > self.CP.minSteerSpeed) - - ret.genericToggle = bool(cp.vl["STEERING_LEVERS"]["HIGH_BEAM_FLASH"]) + self.button_counter = cp.vl["WHEEL_BUTTONS"]["COUNTER"] if self.CP.enableBsm: ret.leftBlindspot = cp.vl["BLIND_SPOT_WARNINGS"]["BLIND_SPOT_LEFT"] == 1 ret.rightBlindspot = cp.vl["BLIND_SPOT_WARNINGS"]["BLIND_SPOT_RIGHT"] == 1 + ret.cruiseState.enabled = cp.vl["ACC_2"]["ACC_ENGAGED"] == 1 # ACC is green. + ret.cruiseState.available = cp.vl["ACC_2"]["ACC_ENABLED"] == 1 + ret.cruiseState.speed = cp.vl["DASHBOARD"]["ACC_SPEED_CONFIG_KPH"] * CV.KPH_TO_MS + # CRUISE_STATE is a three bit msg, 0 is off, 1 and 2 are Non-ACC mode, 3 and 4 are ACC mode, find if there are other states too + ret.cruiseState.nonAdaptive = cp.vl["DASHBOARD"]["CRUISE_STATE"] in (1, 2) + ret.accFaulted = cp.vl["ACC_2"]["ACC_FAULTED"] != 0 self.lkas_counter = cp_cam.vl["LKAS_COMMAND"]["COUNTER"] self.lkas_car_model = cp_cam.vl["LKAS_HUD"]["CAR_MODEL"] self.lkas_status_ok = cp_cam.vl["LKAS_HEARTBIT"]["LKAS_STATUS_OK"] - self.button_counter = cp.vl["WHEEL_BUTTONS"]["COUNTER"] + ret.steerFaultPermanent = steer_state == 4 or (steer_state == 0 and ret.vEgo > self.CP.minSteerSpeed) return ret @@ -81,15 +84,14 @@ def update(self, cp, cp_cam): def get_can_parser(CP): signals = [ # sig_name, sig_address - ("PRNDL", "GEAR"), + ("GEAR_STATE", "TRANSMISSION_STATUS"), ("DOOR_OPEN_FL", "DOORS"), ("DOOR_OPEN_FR", "DOORS"), ("DOOR_OPEN_RL", "DOORS"), ("DOOR_OPEN_RR", "DOORS"), - ("Brake_Pedal_State", "ESP_1"), - ("Accelerator_Position", "ECM_5"), - ("SPEED_LEFT", "SPEED_1"), - ("SPEED_RIGHT", "SPEED_1"), + ("BRAKE_PRESSED_2", "BRAKE_2"), + ("ACCELERATOR_POSITION", "ACCEL_GAS_22F"), + ("VEHICLE_SPEED", "BRAKE_1"), ("WHEEL_SPEED_FL", "WHEEL_SPEEDS"), ("WHEEL_SPEED_RR", "WHEEL_SPEEDS"), ("WHEEL_SPEED_RL", "WHEEL_SPEEDS"), @@ -97,7 +99,8 @@ def get_can_parser(CP): ("STEER_ANGLE", "STEERING"), ("STEERING_RATE", "STEERING"), ("TURN_SIGNALS", "STEERING_LEVERS"), - ("ACC_STATUS_2", "ACC_2"), + ("ACC_ENGAGED", "ACC_2"), + ("ACC_ENABLED", "ACC_2"), ("ACC_FAULTED", "ACC_2"), ("HIGH_BEAM_FLASH", "STEERING_LEVERS"), ("ACC_SPEED_CONFIG_KPH", "DASHBOARD"), @@ -119,14 +122,15 @@ def get_can_parser(CP): ("WHEEL_SPEEDS", 50), ("STEERING", 100), ("ACC_2", 50), - ("GEAR", 50), - ("ECM_5", 50), + ("TRANSMISSION_STATUS", 50), + ("ACCEL_GAS_22F", 50), ("WHEEL_BUTTONS", 50), ("DASHBOARD", 15), ("STEERING_LEVERS", 10), ("SEATBELT_STATUS", 2), ("DOORS", 1), ("TRACTION_BUTTON", 1), + ("BRAKE_1", 50), ] if CP.enableBsm: From f72dccaeca7ec4fdc0ea513741d93465ef477455 Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Tue, 21 Jun 2022 01:53:22 -0700 Subject: [PATCH 2/7] only steering --- opendbc | 2 +- selfdrive/car/chrysler/carstate.py | 54 ++++++++++++++---------------- 2 files changed, 26 insertions(+), 30 deletions(-) diff --git a/opendbc b/opendbc index 5e2a82026842a7..70f1154227ecea 160000 --- a/opendbc +++ b/opendbc @@ -1 +1 @@ -Subproject commit 5e2a82026842a7082e5e81e5823dab6b6616dbf4 +Subproject commit 70f1154227ecea285534ff09bbe36d34f58abc86 diff --git a/selfdrive/car/chrysler/carstate.py b/selfdrive/car/chrysler/carstate.py index 73e193a0918940..8939df35bb67de 100644 --- a/selfdrive/car/chrysler/carstate.py +++ b/selfdrive/car/chrysler/carstate.py @@ -10,7 +10,7 @@ class CarState(CarStateBase): def __init__(self, CP): super().__init__(CP) can_define = CANDefine(DBC[CP.carFingerprint]["pt"]) - self.shifter_values = can_define.dv["TRANSMISSION_STATUS"]["GEAR_STATE"] + self.shifter_values = can_define.dv["GEAR"]["PRNDL"] def update(self, cp, cp_cam): @@ -18,7 +18,6 @@ def update(self, cp, cp_cam): self.frame = int(cp.vl["EPS_STATUS"]["COUNTER"]) - # lock info ret.doorOpen = any([cp.vl["DOORS"]["DOOR_OPEN_FL"], cp.vl["DOORS"]["DOOR_OPEN_FR"], cp.vl["DOORS"]["DOOR_OPEN_RL"], @@ -26,14 +25,15 @@ def update(self, cp, cp_cam): ret.seatbeltUnlatched = cp.vl["SEATBELT_STATUS"]["SEATBELT_DRIVER_UNLATCHED"] == 1 # brake pedal - ret.brakePressed = cp.vl["BRAKE_2"]["BRAKE_PRESSED_2"] ==1 # Physical brake pedal switch ret.brake = 0 + ret.brakePressed = cp.vl["ESP_1"]['Brake_Pedal_State'] == 1 # Physical brake pedal switch # gas pedal - ret.gas = cp.vl["ACCEL_GAS_22F"]["ACCELERATOR_POSITION"] + ret.gas = cp.vl["ECM_5"]["Accelerator_Position"] ret.gasPressed = ret.gas > 1e-5 - # Speeds + ret.espDisabled = (cp.vl["TRACTION_BUTTON"]["TRACTION_OFF"] == 1) + ret.wheelSpeeds = self.get_wheel_speeds( cp.vl["WHEEL_SPEEDS"]["WHEEL_SPEED_FL"], cp.vl["WHEEL_SPEEDS"]["WHEEL_SPEED_FR"], @@ -41,42 +41,39 @@ def update(self, cp, cp_cam): cp.vl["WHEEL_SPEEDS"]["WHEEL_SPEED_RR"], unit=1, ) - ret.vEgoRaw = cp.vl["BRAKE_1"]["VEHICLE_SPEED"] * CV.KPH_TO_MS + ret.vEgoRaw = (cp.vl["SPEED_1"]["SPEED_LEFT"] + cp.vl["SPEED_1"]["SPEED_RIGHT"]) / 2. ret.vEgo, ret.aEgo = self.update_speed_kf(ret.vEgoRaw) ret.standstill = not ret.vEgoRaw > 0.001 - # Button Presses - ret.espDisabled = (cp.vl["TRACTION_BUTTON"]["TRACTION_OFF"] == 1) # TODO: button is pressed. This doesn't mean ESP is diabled. ret.leftBlinker = cp.vl["STEERING_LEVERS"]["TURN_SIGNALS"] == 1 ret.rightBlinker = cp.vl["STEERING_LEVERS"]["TURN_SIGNALS"] == 2 - ret.genericToggle = bool(cp.vl["STEERING_LEVERS"]["HIGH_BEAM_FLASH"]) + ret.gearShifter = self.parse_gear_shifter(self.shifter_values.get(cp.vl["GEAR"]["PRNDL"], None)) - #Gear - ret.gearShifter = self.parse_gear_shifter(self.shifter_values.get(cp.vl["TRANSMISSION_STATUS"]["GEAR_STATE"], None)) + ret.cruiseState.enabled = cp.vl["ACC_2"]["ACC_STATUS_2"] == 7 # ACC is green. + ret.cruiseState.available = ret.cruiseState.enabled # FIXME: for now same as enabled + ret.cruiseState.speed = cp.vl["DASHBOARD"]["ACC_SPEED_CONFIG_KPH"] * CV.KPH_TO_MS + # CRUISE_STATE is a three bit msg, 0 is off, 1 and 2 are Non-ACC mode, 3 and 4 are ACC mode, find if there are other states too + ret.cruiseState.nonAdaptive = cp.vl["DASHBOARD"]["CRUISE_STATE"] in (1, 2) + ret.accFaulted = cp.vl["ACC_2"]["ACC_FAULTED"] != 0 - #Steering Info ret.steeringAngleDeg = cp.vl["STEERING"]["STEER_ANGLE"] ret.steeringRateDeg = cp.vl["STEERING"]["STEERING_RATE"] ret.steeringTorque = cp.vl["EPS_STATUS"]["TORQUE_DRIVER"] ret.steeringTorqueEps = cp.vl["EPS_STATUS"]["TORQUE_MOTOR"] ret.steeringPressed = abs(ret.steeringTorque) > STEER_THRESHOLD steer_state = cp.vl["EPS_STATUS"]["LKAS_STATE"] - self.button_counter = cp.vl["WHEEL_BUTTONS"]["COUNTER"] + ret.steerFaultPermanent = steer_state == 4 or (steer_state == 0 and ret.vEgo > self.CP.minSteerSpeed) + + ret.genericToggle = bool(cp.vl["STEERING_LEVERS"]["HIGH_BEAM_FLASH"]) if self.CP.enableBsm: ret.leftBlindspot = cp.vl["BLIND_SPOT_WARNINGS"]["BLIND_SPOT_LEFT"] == 1 ret.rightBlindspot = cp.vl["BLIND_SPOT_WARNINGS"]["BLIND_SPOT_RIGHT"] == 1 - ret.cruiseState.enabled = cp.vl["ACC_2"]["ACC_ENGAGED"] == 1 # ACC is green. - ret.cruiseState.available = cp.vl["ACC_2"]["ACC_ENABLED"] == 1 - ret.cruiseState.speed = cp.vl["DASHBOARD"]["ACC_SPEED_CONFIG_KPH"] * CV.KPH_TO_MS - # CRUISE_STATE is a three bit msg, 0 is off, 1 and 2 are Non-ACC mode, 3 and 4 are ACC mode, find if there are other states too - ret.cruiseState.nonAdaptive = cp.vl["DASHBOARD"]["CRUISE_STATE"] in (1, 2) - ret.accFaulted = cp.vl["ACC_2"]["ACC_FAULTED"] != 0 self.lkas_counter = cp_cam.vl["LKAS_COMMAND"]["COUNTER"] self.lkas_car_model = cp_cam.vl["LKAS_HUD"]["CAR_MODEL"] self.lkas_status_ok = cp_cam.vl["LKAS_HEARTBIT"]["LKAS_STATUS_OK"] - ret.steerFaultPermanent = steer_state == 4 or (steer_state == 0 and ret.vEgo > self.CP.minSteerSpeed) + self.button_counter = cp.vl["WHEEL_BUTTONS"]["COUNTER"] return ret @@ -84,14 +81,15 @@ def update(self, cp, cp_cam): def get_can_parser(CP): signals = [ # sig_name, sig_address - ("GEAR_STATE", "TRANSMISSION_STATUS"), + ("PRNDL", "GEAR"), ("DOOR_OPEN_FL", "DOORS"), ("DOOR_OPEN_FR", "DOORS"), ("DOOR_OPEN_RL", "DOORS"), ("DOOR_OPEN_RR", "DOORS"), - ("BRAKE_PRESSED_2", "BRAKE_2"), - ("ACCELERATOR_POSITION", "ACCEL_GAS_22F"), - ("VEHICLE_SPEED", "BRAKE_1"), + ("Brake_Pedal_State", "ESP_1"), + ("Accelerator_Position", "ECM_5"), + ("SPEED_LEFT", "SPEED_1"), + ("SPEED_RIGHT", "SPEED_1"), ("WHEEL_SPEED_FL", "WHEEL_SPEEDS"), ("WHEEL_SPEED_RR", "WHEEL_SPEEDS"), ("WHEEL_SPEED_RL", "WHEEL_SPEEDS"), @@ -99,8 +97,7 @@ def get_can_parser(CP): ("STEER_ANGLE", "STEERING"), ("STEERING_RATE", "STEERING"), ("TURN_SIGNALS", "STEERING_LEVERS"), - ("ACC_ENGAGED", "ACC_2"), - ("ACC_ENABLED", "ACC_2"), + ("ACC_STATUS_2", "ACC_2"), ("ACC_FAULTED", "ACC_2"), ("HIGH_BEAM_FLASH", "STEERING_LEVERS"), ("ACC_SPEED_CONFIG_KPH", "DASHBOARD"), @@ -122,15 +119,14 @@ def get_can_parser(CP): ("WHEEL_SPEEDS", 50), ("STEERING", 100), ("ACC_2", 50), - ("TRANSMISSION_STATUS", 50), - ("ACCEL_GAS_22F", 50), + ("GEAR", 50), + ("ECM_5", 50), ("WHEEL_BUTTONS", 50), ("DASHBOARD", 15), ("STEERING_LEVERS", 10), ("SEATBELT_STATUS", 2), ("DOORS", 1), ("TRACTION_BUTTON", 1), - ("BRAKE_1", 50), ] if CP.enableBsm: From 32c87f7cd9e1ab08d8edbc71a18575552cbde5af Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Tue, 21 Jun 2022 01:57:02 -0700 Subject: [PATCH 3/7] revert other changes for now only steering --- opendbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc b/opendbc index 70f1154227ecea..6442052a460ef2 160000 --- a/opendbc +++ b/opendbc @@ -1 +1 @@ -Subproject commit 70f1154227ecea285534ff09bbe36d34f58abc86 +Subproject commit 6442052a460ef2fd77c63bce274d0e1ea26741cf From fd452769b32cf6a6f44200ce85d97726b1e1efe1 Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Wed, 22 Jun 2022 15:16:32 -0700 Subject: [PATCH 4/7] bump --- opendbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc b/opendbc index 5dacb5a269d5fe..c0c8e40d19d5ad 160000 --- a/opendbc +++ b/opendbc @@ -1 +1 @@ -Subproject commit 5dacb5a269d5fe920a9991590c39053b4edcadad +Subproject commit c0c8e40d19d5adb533ae97d6542b1181bc9d74b7 From 2edc5d9d57f3b02618606fbce27c355956230be2 Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Sat, 25 Jun 2022 01:45:01 -0700 Subject: [PATCH 5/7] Update ref_commit --- selfdrive/test/process_replay/ref_commit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/test/process_replay/ref_commit b/selfdrive/test/process_replay/ref_commit index 662f8cc5b85247..6c1271996893c0 100644 --- a/selfdrive/test/process_replay/ref_commit +++ b/selfdrive/test/process_replay/ref_commit @@ -1 +1 @@ -41161c8d151b0c2017214cad0aad3156533ab868 +e7399358ea476e7c63d453b6fcb4817e38384347 From a0b5ce7b2e0b9c073e51ac8908402d53e1d99722 Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Tue, 28 Jun 2022 13:34:12 -0700 Subject: [PATCH 6/7] bump opendbc --- opendbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc b/opendbc index a65f4ce2bef938..47b79c4d5ab5ad 160000 --- a/opendbc +++ b/opendbc @@ -1 +1 @@ -Subproject commit a65f4ce2bef938f877c96f6e1ee5101eb0944704 +Subproject commit 47b79c4d5ab5adc0bdd9d228c3d9594da0355c49 From 33b176589e57b84c2d4ea09554ccb03b1899aab5 Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Tue, 28 Jun 2022 13:56:20 -0700 Subject: [PATCH 7/7] update refs --- selfdrive/test/process_replay/ref_commit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/test/process_replay/ref_commit b/selfdrive/test/process_replay/ref_commit index f7023ed01c8023..946ddce19e5451 100644 --- a/selfdrive/test/process_replay/ref_commit +++ b/selfdrive/test/process_replay/ref_commit @@ -1 +1 @@ -2ee969b34585f8055bb3eabab2dcc4061cc4bef9 +a0b5ce7b2e0b9c073e51ac8908402d53e1d99722 \ No newline at end of file