From 9d60846b7041fcc79b93ec2707aeab88dff34016 Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Mon, 19 May 2025 22:17:38 -0400 Subject: [PATCH] MADS: Tesla support (#682) * MADS: Tesla and Rivian support * request lateral if acc is engaged * try this out * fix * make sure we keep the toggle off for tesla * namedtuple * disallow steering past 90 degrees for rivian * whoops * Revert "Revert "MADS: Steering Mode on Brake Pedal Press (#687)" (#789)" This reverts commit 8dec4ea5 * both rivian and tesla * enforce disengage on brake steering mode for Rivian and Tesla * wrong one * MADS: Steering Mode on Brake Pedal Press * bump * bump * descriptions * bump * bump * no tesla or rivian yet * codecov v5 * Revert "codecov v5" This reverts commit a347e3fb27c0fbf2510b69fe8148b254fa93b8de. * cleanup * refactor description * sync name * fix * make sure we don't allow if brake was already being pressed * no longer needed * proper ui! * allow LKAS tx at all times with MADS * extra * this ain't right * try this * test only * bring them back * some dynamic checks * dynamic description for mads toggle * one place for limited platforms * update tests * angle when long, lkas when mads * bump --- opendbc_repo | 2 +- .../qt/offroad/settings/lateral/mads_settings.h | 2 +- sunnypilot/mads/helpers.py | 10 ++-------- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/opendbc_repo b/opendbc_repo index 748a84787..5db6b93bc 160000 --- a/opendbc_repo +++ b/opendbc_repo @@ -1 +1 @@ -Subproject commit 748a84787ad8b55125cf3953fd08de7f90da10c6 +Subproject commit 5db6b93bc550edf5425d0b22e49c9bf51ec23eab diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/lateral/mads_settings.h b/selfdrive/ui/sunnypilot/qt/offroad/settings/lateral/mads_settings.h index 405a2613d..af624865c 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/lateral/mads_settings.h +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/lateral/mads_settings.h @@ -12,7 +12,7 @@ #include "selfdrive/ui/sunnypilot/qt/offroad/settings/settings.h" #include "selfdrive/ui/sunnypilot/qt/widgets/controls.h" -const std::vector mads_limited_settings_brands = {"rivian"}; +const std::vector mads_limited_settings_brands = {"rivian", "tesla"}; enum class MadsSteeringMode { REMAIN_ACTIVE = 0, diff --git a/sunnypilot/mads/helpers.py b/sunnypilot/mads/helpers.py index 806f8edbe..4b1095c63 100644 --- a/sunnypilot/mads/helpers.py +++ b/sunnypilot/mads/helpers.py @@ -18,7 +18,7 @@ class MadsSteeringModeOnBrake: def get_mads_limited_brands(CP: structs.CarParams) -> bool: - return CP.brand in ("rivian", ) + return CP.brand in ("rivian", "tesla") def read_steering_mode_param(CP: structs.CarParams, params: Params): @@ -56,15 +56,9 @@ def set_car_specific_params(CP: structs.CarParams, CP_SP: structs.CarParamsSP, p # MADS Partial Support # MADS is currently partially supported for these platforms due to lack of consistent states to engage controls # Only MadsSteeringModeOnBrake.DISENGAGE is supported for these platforms - # TODO-SP: To enable MADS full support for Rivian, identify consistent signals for MADS toggling + # TODO-SP: To enable MADS full support for Rivian/Tesla, identify consistent signals for MADS toggling mads_partial_support = get_mads_limited_brands(CP) if mads_partial_support: params.put("MadsSteeringMode", "2") params.put_bool("MadsUnifiedEngagementMode", True) params.remove("MadsMainCruiseAllowed") - - # MADS Disabled - No Support - # MADS is currently not supported for these platforms due to lack of consistent states to engage controls - # TODO-SP: To enable MADS full support for Tesla, identify consistent signals for MADS toggling - if CP.brand in ("tesla", ): - params.remove("Mads")