filter ACC_13, disable secondary accel

pull/23257/head
Jason Young 4 years ago
parent d4704582ca
commit d1d1a2ce88
  1. 2
      opendbc
  2. 2
      panda
  3. 11
      selfdrive/car/volkswagen/carcontroller.py
  4. 6
      selfdrive/car/volkswagen/carstate.py
  5. 14
      selfdrive/car/volkswagen/volkswagencan.py

@ -1 +1 @@
Subproject commit 61534fd13162d714432c5685f2c59fafe7a96823
Subproject commit 6efaf246a90b513995a374a9939e4e051cf1b41c

@ -1 +1 @@
Subproject commit f24db459559423bd326f6237ffa2a00c42fafda6
Subproject commit 48d50b6182820a4b8d03462a0c96c2c31074efac

@ -66,21 +66,24 @@ class CarController():
cb_pos = 0.0 if lead_visible or CS.out.vEgo < 2.0 else 0.1 # react faster to lead cars, also don't get hung up at DSG clutch release/kiss points when creeping to stop
cb_neg = 0.0 if accel < 0 else 0.2 # IDK why, but stock likes to zero this out when accel is negative
secondary_accel = accel if lead_visible else 0 # try matching part of stock behavior, presumably drag/compression brake only if we can get away with it
idx = (frame / P.ACC_CONTROL_STEP) % 16
can_sends.append(volkswagencan.create_mqb_acc_06_control(self.packer_pt, CANBUS.pt, enabled, acc_status,
accel, self.acc_stopping, self.acc_starting,
cb_pos, cb_neg, idx))
can_sends.append(volkswagencan.create_mqb_acc_07_control(self.packer_pt, CANBUS.pt, enabled,
accel, secondary_accel, acc_hold_request, acc_hold_release,
accel, acc_hold_request, acc_hold_release,
acc_hold_type, stopping_distance, idx))
if frame % P.ACC_HUD_STEP == 0:
idx = (frame / P.ACC_HUD_STEP) % 16
can_sends.append(volkswagencan.create_mqb_acc_02_control(self.packer_pt, CANBUS.pt, CS.tsk_status,
set_speed * CV.MS_TO_KPH, speed_visible, lead_visible, idx))
can_sends.append(volkswagencan.create_mqb_acc_04_control(self.packer_pt, CANBUS.pt, CS.acc_04_stock_values, idx))
set_speed * CV.MS_TO_KPH, speed_visible, lead_visible,
idx))
can_sends.append(volkswagencan.create_mqb_acc_04_control(self.packer_pt, CANBUS.pt, CS.acc_04_stock_values,
idx))
can_sends.append(volkswagencan.create_mqb_acc_13_control(self.packer_pt, CANBUS.pt, enabled,
CS.acc_13_stock_values))
# **** Steering Controls ************************************************ #

@ -98,6 +98,7 @@ class CarState(CarStateBase):
# Update ACC radar status.
self.acc_04_stock_values = ext_cp.vl["ACC_04"]
self.acc_13_stock_values = ext_cp.vl["ACC_13"]
self.tsk_status = pt_cp.vl["TSK_06"]["TSK_Status"]
if self.tsk_status == 2:
# ACC okay and enabled, but not currently engaged
@ -273,11 +274,14 @@ class MqbExtraSignals:
("AWV2_Freigabe", "ACC_10", 0), # FCW brake jerk release
("ANB_Teilbremsung_Freigabe", "ACC_10", 0), # AEB partial braking release
("ANB_Zielbremsung_Freigabe", "ACC_10", 0), # AEB target braking release
("Unknown_Osc_1", "ACC_13", 0), # Unknown oscillating value (checksum/xor?)
("Unknown_Osc_2", "ACC_13", 0), # Unknown oscillating value (checksum/xor?)
]
fwd_radar_checks = [
("ACC_10", 50), # From J428 ACC radar control module
("ACC_04", 17), # From J428 ACC radar control module
("ACC_02", 17), # From J428 ACC radar control module
("ACC_04", 17), # From J428 ACC radar control module
("ACC_13", 17), # From J428 ACC radar control module
]
bsm_radar_signals = [
("SWA_Infostufe_SWA_li", "SWA_01", 0), # Blind spot object info, left

@ -85,7 +85,7 @@ def create_mqb_acc_06_control(packer, bus, enabled, acc_status, accel, acc_stopp
return packer.make_can_msg("ACC_06", bus, values, idx)
def create_mqb_acc_07_control(packer, bus, enabled, accel, secondary_accel, acc_hold_request, acc_hold_release,
def create_mqb_acc_07_control(packer, bus, enabled, accel, acc_hold_request, acc_hold_release,
acc_hold_type, stopping_distance, idx):
values = {
"ACC_Distance_to_Stop": stopping_distance,
@ -93,8 +93,18 @@ def create_mqb_acc_07_control(packer, bus, enabled, accel, secondary_accel, acc_
"ACC_Freewheel_Type": 2 if enabled else 0,
"ACC_Hold_Type": acc_hold_type,
"ACC_Hold_Release": acc_hold_release,
"ACC_Accel_Secondary": secondary_accel+0.01 if enabled else 3.03, # FIXME: think there are rounding/scaling issues here
"ACC_Accel_Secondary": 3.02, # not using this unless and until we understand its impact
"ACC_Accel_TSK": accel if enabled else 3.01,
}
return packer.make_can_msg("ACC_07", bus, values, idx)
def create_mqb_acc_13_control(packer, bus, enabled, acc_13_stock_values):
values = acc_13_stock_values.copy()
values.update({
"Unknown_Status": 15,
"ACC_Engaged": enabled,
})
return packer.make_can_msg("ACC_13", bus, values)

Loading…
Cancel
Save