diff --git a/CHANGELOGS.md b/CHANGELOGS.md index 48d2ac0ba..fa36b85c2 100644 --- a/CHANGELOGS.md +++ b/CHANGELOGS.md @@ -1,10 +1,10 @@ -dragonpilot 0.9.8 +dragonpilot beta3 0.9.8 ======================= * Up to comma.ai openpilot master branch commit cbee4421da690fa7b260f62c4a2c72ccacc6c902 (2024-07-14) * DP HIGHLIGHT: * Fixed Lexus IS/GS crashed issue. -dragonpilot [2024.07.13] +dragonpilot beta3 [2024.07.13] ======================= * Up to comma.ai openpilot master branch commit 01c2174d5968266b87f1d1fecefce5affaeaa624 (2024-07-02) * DP HIGHLIGHT: @@ -16,7 +16,7 @@ dragonpilot [2024.07.13] * Device Auto Shutdown Toggle. * Device Audible Alert Mode Toggle. -dragonpilot [2024.07.01] +dragonpilot beta3 [2024.07.01] ======================= * Up to comma.ai openpilot master branch commit 442e9f4ae492901a5698b3188741c97c053026c4 (2024-06-21) * DP HIGHLIGHT: diff --git a/body/board/obj/body.bin b/body/board/obj/body.bin index 893cae5b8..26d8f734c 100755 Binary files a/body/board/obj/body.bin and b/body/board/obj/body.bin differ diff --git a/body/board/obj/body.bin.signed b/body/board/obj/body.bin.signed index a3f3040e4..45f470598 100644 Binary files a/body/board/obj/body.bin.signed and b/body/board/obj/body.bin.signed differ diff --git a/body/board/obj/body.elf b/body/board/obj/body.elf index 0e0df9c73..f7f7771f8 100755 Binary files a/body/board/obj/body.elf and b/body/board/obj/body.elf differ diff --git a/body/board/obj/bootstub.body.bin b/body/board/obj/bootstub.body.bin index 1a5d7357f..0dd76eae0 100755 Binary files a/body/board/obj/bootstub.body.bin and b/body/board/obj/bootstub.body.bin differ diff --git a/body/board/obj/bootstub.body.elf b/body/board/obj/bootstub.body.elf index ef4c157fd..a843542c2 100755 Binary files a/body/board/obj/bootstub.body.elf and b/body/board/obj/bootstub.body.elf differ diff --git a/body/board/obj/gitversion.h b/body/board/obj/gitversion.h index 438ed5e91..efe487865 100644 --- a/body/board/obj/gitversion.h +++ b/body/board/obj/gitversion.h @@ -1 +1 @@ -const uint8_t gitversion[8] = "93068c73"; +const uint8_t gitversion[8] = "93031df2"; diff --git a/dp_ext/selfdrive/controls/lib/alt_driving_personality_controller.py b/dp_ext/selfdrive/controls/lib/alt_driving_personality_controller.py index 89c0f4109..9fb4f00ad 100644 --- a/dp_ext/selfdrive/controls/lib/alt_driving_personality_controller.py +++ b/dp_ext/selfdrive/controls/lib/alt_driving_personality_controller.py @@ -6,8 +6,13 @@ from openpilot.common.params import Params class AlternativeDrivingPersonalityController: def __init__(self): params = Params() + # try except to avoid issue in longitudinal testing + try: + self._speed = int(params.get("dp_long_alt_driving_personality_speed")) * CV.KPH_TO_MS + except: + self._speed = 0 + self._mode = params.get_bool("dp_long_alt_driving_personality_mode") - self._speed = int(params.get("dp_long_alt_driving_personality_speed")) * CV.KPH_TO_MS self._active = False def update(self, v_ego): diff --git a/dp_ext/selfdrive/controls/lib/curve_speed_limiter.py b/dp_ext/selfdrive/controls/lib/curve_speed_limiter.py index a8910dae6..fcdcbfdd1 100644 --- a/dp_ext/selfdrive/controls/lib/curve_speed_limiter.py +++ b/dp_ext/selfdrive/controls/lib/curve_speed_limiter.py @@ -15,6 +15,8 @@ class CurveSpeedLimiter: pass def update(self, v_ego, z, v): + if not self._enabled: + return max_lat_accel = interp(v_ego, [5, 10, 20], [1.5, 2.0, 3.0]) curvatures = np.interp(T_IDXS_MPC, ModelConstants.T_IDXS, z) / np.clip(v, 0.3, 100.0) max_v = np.sqrt(max_lat_accel / (np.abs(curvatures) + 1e-3)) - 2.0 diff --git a/dp_ext/selfdrive/controls/lib/personalized_accel_controller.py b/dp_ext/selfdrive/controls/lib/personalized_accel_controller.py index deb24deaa..f7c935725 100644 --- a/dp_ext/selfdrive/controls/lib/personalized_accel_controller.py +++ b/dp_ext/selfdrive/controls/lib/personalized_accel_controller.py @@ -1,64 +1,60 @@ import numpy as np -from collections import deque, defaultdict import json +import bisect +from collections import deque from openpilot.common.params import Params class PersonalizedAccelController: - def __init__(self, learning_rate=0.01, memory_size=10000, samples_per_range=100): + def __init__(self, learning_rate=0.01): self.enabled = False self._params = Params() - # A high smoothing factor with a low learning rate will result in very stable, slow-changing behavior. - # A low smoothing factor with a high learning rate will be very responsive to new data, potentially unstable. self.learning_rate = learning_rate - self.smoothing_factor = 0.9 # New parameter for smoothing - self.memory_size = memory_size - self.memory = deque(maxlen=memory_size) + self.smoothing_factor = 0.9 self.update_counter = 0 - self.samples_per_range = samples_per_range - # Fixed BP size from 0 to 39 in steps of 3 - self.profile_size = 14 # (39 - 0) / 3 + 1 - self.A_MAX_BP = list(np.arange(0, 40, 3)) + self.samples_per_range = self._initialize_variable_samples() + self.max_samples_per_range = 50 - # Default values (ensure non-negative) - self.MAX_VALS = np.maximum(0, np.interp(self.A_MAX_BP, [0., 10.0, 25., 40.], [1.6, 1.2, 0.8, 0.6])).tolist() + self.A_MAX_BP = [0, 0.5, 1, 1.5, 2, 3, 4, 5, 6, 8, 10, 12, 15, 20, 25, 30, 32.5, 35, 37.5, 40] + self.profile_size = len(self.A_MAX_BP) - # Initialize profiles + original_bp = [0., 10.0, 25., 40.] + original_vals = [1.6, 1.2, 0.8, 0.6] + + self.MAX_VALS = np.maximum(0, np.interp(self.A_MAX_BP, original_bp, original_vals)).tolist() self.A_CRUISE_MAX_VALS = self.MAX_VALS.copy() - # Initialize sample collectors - self.cruise_samples = defaultdict(list) + self.speed_range_samples = {i: deque(maxlen=self.max_samples_per_range) for i in range(self.profile_size)} - self.speed_range_samples = {i: [] for i in range(len(self.A_MAX_BP))} - - # Load saved model or use defaults self.load_model() + def _initialize_variable_samples(self): + return [5, 5, 8, 8, 10, 10, 12, 12, 15, 15, 20, 20, 25, 30, 35, 35, 40, 40, 40] + def update(self, car_state, lead_present): - blinker_off = not car_state.leftBlinker and not car_state.rightBlinker - straight_road = abs(car_state.steeringAngleDeg) < 30 + if (not lead_present and + not car_state.leftBlinker and + not car_state.rightBlinker and + car_state.gasPressed and + abs(car_state.steeringAngleDeg) < 30): - if not lead_present and blinker_off and car_state.gasPressed and straight_road: - speed = car_state.vEgo - acceleration = car_state.aEgo + speed_index = self._get_speed_index(car_state.vEgo) + self.speed_range_samples[speed_index].append(car_state.aEgo) - # Get the current speed range - speed_index = self._get_speed_index(speed) + if speed_index < len(self.samples_per_range): + if len(self.speed_range_samples[speed_index]) >= self.samples_per_range[speed_index]: + self._update_cruise_profile_for_index(speed_index) - # Update only the relevant speed range - self.speed_range_samples[speed_index].append(acceleration) - - # Update this speed range if we have enough samples - if len(self.speed_range_samples[speed_index]) >= self.samples_per_range: - self._update_cruise_profile_for_index(speed_index) - - # Increment update counter and save model periodically self.update_counter += 1 if self.update_counter % 1000 == 0: self.save_model() + def _get_speed_index(self, speed): + index = bisect.bisect_right(self.A_MAX_BP, speed) - 1 + return max(0, min(index, len(self.A_MAX_BP) - 1)) + def _update_cruise_profile_for_index(self, index): - samples = self.speed_range_samples[index] + samples = list(self.speed_range_samples[index]) if samples: new_sample_val = max(0, float(np.percentile(samples, 95))) @@ -67,43 +63,6 @@ class PersonalizedAccelController: self.A_CRUISE_MAX_VALS[index] = previous_val * (1 - self.learning_rate) + smoothed_val * self.learning_rate - self.speed_range_samples[index] = [] # Clear the samples after updating - - def _check_and_update_all_ranges(self): - for i in range(len(self.A_MAX_BP)): - if len(self.cruise_samples[i]) >= self.samples_per_range: - self._update_cruise_profile_for_index(i) - - def _update_acceleration_profiles(self): - for state, accel in self.memory: - speed, lead_present = state - speed_index = self._get_speed_index(speed) - - if not lead_present: - self.cruise_samples[speed_index].append((speed, accel)) - - # Update profiles if we have enough samples - self._update_cruise_profile() - - def _get_speed_index(self, speed): - return min(int(speed / 3), len(self.A_MAX_BP) - 1) - - def _update_cruise_profile(self): - for i, bp in enumerate(self.A_MAX_BP): - samples = self.cruise_samples[i] - if len(samples) >= self.samples_per_range: - speeds, accels = zip(*samples) - new_sample_val = max(0, float(np.percentile(accels, 95))) - - # Consider the previous value - previous_val = self.A_CRUISE_MAX_VALS[i] - smoothed_val = self.smoothing_factor * previous_val + (1 - self.smoothing_factor) * new_sample_val - - # Apply learning rate - self.A_CRUISE_MAX_VALS[i] = previous_val * (1 - self.learning_rate) + smoothed_val * self.learning_rate - - self.cruise_samples[i] = [] # Clear the samples after updating - def get_max_accel(self, v_ego, STOCK_BP, STOCK_VALS): if self.enabled: return np.interp(v_ego, self.A_MAX_BP, self.A_CRUISE_MAX_VALS) @@ -112,21 +71,24 @@ class PersonalizedAccelController: def set_profile_size(self, new_size): self.profile_size = new_size - # Reinitialize all acceleration profiles self.A_CRUISE_MAX_VALS = list(np.linspace(1.6, 0.6, num=new_size)) - self._update_acceleration_profiles() + self.speed_range_samples = {i: deque(maxlen=self.max_samples_per_range) for i in range(self.profile_size)} def set_enabled(self, enabled): self.enabled = enabled def save_model(self): - self._params.put("dp_long_pac_vals", json.dumps(self._numpy_to_list(self.A_CRUISE_MAX_VALS))) + data = { + 'bp': self.A_MAX_BP, + 'vals': self._numpy_to_list(self.A_CRUISE_MAX_VALS) + } + self._params.put("dp_long_pac_vals", json.dumps(data)) def load_model(self): params_val = self._params.get("dp_long_pac_vals") if params_val is not None: - self.A_CRUISE_MAX_VALS = json.loads(params_val) - print(self.A_CRUISE_MAX_VALS) + data = json.loads(params_val) + self.A_CRUISE_MAX_VALS = np.maximum(0, np.interp(self.A_MAX_BP, data.get('bp'), data.get('vals'))).tolist() def _numpy_to_list(self, obj): if isinstance(obj, np.ndarray): @@ -150,13 +112,12 @@ class PersonalizedAccelController: while True: sm.update() if sm.updated['carState']: - self.update(sm['carState'], sm['radarState'].leadOne.status and sm['carState'].vEgo > 0. and sm['radarState'].leadOne.dRel / sm['carState'].vEgo < 1.) - print(self.A_CRUISE_MAX_VALS) - + self.update(sm['carState'], sm['radarState'].leadOne.status and sm['carState'].vEgo > 0. and sm['radarState'].leadOne.dRel / sm['carState'].vEgo < 2.5) + # print(self.A_CRUISE_MAX_VALS) def main(): - pac = PersonalizedAccelController(learning_rate=0.01, memory_size=10000) + pac = PersonalizedAccelController() pac.pac_thread() if __name__ == "__main__": - main() + main() \ No newline at end of file diff --git a/panda/board/jungle/obj/bootstub.panda_jungle.bin b/panda/board/jungle/obj/bootstub.panda_jungle.bin index 84ba710d8..6bf614536 100755 Binary files a/panda/board/jungle/obj/bootstub.panda_jungle.bin and b/panda/board/jungle/obj/bootstub.panda_jungle.bin differ diff --git a/panda/board/jungle/obj/bootstub.panda_jungle.elf b/panda/board/jungle/obj/bootstub.panda_jungle.elf index 67418fc9a..64e897cc5 100755 Binary files a/panda/board/jungle/obj/bootstub.panda_jungle.elf and b/panda/board/jungle/obj/bootstub.panda_jungle.elf differ diff --git a/panda/board/jungle/obj/bootstub.panda_jungle_h7.bin b/panda/board/jungle/obj/bootstub.panda_jungle_h7.bin index 8754ddff0..2290f175e 100755 Binary files a/panda/board/jungle/obj/bootstub.panda_jungle_h7.bin and b/panda/board/jungle/obj/bootstub.panda_jungle_h7.bin differ diff --git a/panda/board/jungle/obj/bootstub.panda_jungle_h7.elf b/panda/board/jungle/obj/bootstub.panda_jungle_h7.elf index d59481820..269aec58c 100755 Binary files a/panda/board/jungle/obj/bootstub.panda_jungle_h7.elf and b/panda/board/jungle/obj/bootstub.panda_jungle_h7.elf differ diff --git a/panda/board/jungle/obj/panda_jungle.bin b/panda/board/jungle/obj/panda_jungle.bin index d426f88dd..98478ce89 100755 Binary files a/panda/board/jungle/obj/panda_jungle.bin and b/panda/board/jungle/obj/panda_jungle.bin differ diff --git a/panda/board/jungle/obj/panda_jungle.bin.signed b/panda/board/jungle/obj/panda_jungle.bin.signed index b741dadeb..2777d7052 100644 Binary files a/panda/board/jungle/obj/panda_jungle.bin.signed and b/panda/board/jungle/obj/panda_jungle.bin.signed differ diff --git a/panda/board/jungle/obj/panda_jungle.elf b/panda/board/jungle/obj/panda_jungle.elf index ce44222e3..a8a3691c4 100755 Binary files a/panda/board/jungle/obj/panda_jungle.elf and b/panda/board/jungle/obj/panda_jungle.elf differ diff --git a/panda/board/jungle/obj/panda_jungle_h7.bin b/panda/board/jungle/obj/panda_jungle_h7.bin index cbdc42100..57d7a4850 100755 Binary files a/panda/board/jungle/obj/panda_jungle_h7.bin and b/panda/board/jungle/obj/panda_jungle_h7.bin differ diff --git a/panda/board/jungle/obj/panda_jungle_h7.bin.signed b/panda/board/jungle/obj/panda_jungle_h7.bin.signed index 8abb1ef37..9c358c5b9 100644 Binary files a/panda/board/jungle/obj/panda_jungle_h7.bin.signed and b/panda/board/jungle/obj/panda_jungle_h7.bin.signed differ diff --git a/panda/board/jungle/obj/panda_jungle_h7.elf b/panda/board/jungle/obj/panda_jungle_h7.elf index 858ab0bf2..1f2128750 100755 Binary files a/panda/board/jungle/obj/panda_jungle_h7.elf and b/panda/board/jungle/obj/panda_jungle_h7.elf differ diff --git a/panda/board/obj/bootstub.panda.bin b/panda/board/obj/bootstub.panda.bin index 95f003461..e0261862f 100755 Binary files a/panda/board/obj/bootstub.panda.bin and b/panda/board/obj/bootstub.panda.bin differ diff --git a/panda/board/obj/bootstub.panda.elf b/panda/board/obj/bootstub.panda.elf index eec91afde..7fc69f763 100755 Binary files a/panda/board/obj/bootstub.panda.elf and b/panda/board/obj/bootstub.panda.elf differ diff --git a/panda/board/obj/bootstub.panda_h7.bin b/panda/board/obj/bootstub.panda_h7.bin index b78944f04..ce2d4fe1e 100755 Binary files a/panda/board/obj/bootstub.panda_h7.bin and b/panda/board/obj/bootstub.panda_h7.bin differ diff --git a/panda/board/obj/bootstub.panda_h7.elf b/panda/board/obj/bootstub.panda_h7.elf index fd50ea88d..ad682411b 100755 Binary files a/panda/board/obj/bootstub.panda_h7.elf and b/panda/board/obj/bootstub.panda_h7.elf differ diff --git a/panda/board/obj/gitversion.h b/panda/board/obj/gitversion.h index d1de87e98..761acd01e 100644 --- a/panda/board/obj/gitversion.h +++ b/panda/board/obj/gitversion.h @@ -1 +1 @@ -const uint8_t gitversion[] = "DEV-93068c73-DEBUG"; +const uint8_t gitversion[] = "DEV-93031df2-DEBUG"; diff --git a/panda/board/obj/panda.bin b/panda/board/obj/panda.bin index 9e4cc4aeb..7610f8c54 100755 Binary files a/panda/board/obj/panda.bin and b/panda/board/obj/panda.bin differ diff --git a/panda/board/obj/panda.bin.signed b/panda/board/obj/panda.bin.signed index 59a226de4..7aad47f50 100644 Binary files a/panda/board/obj/panda.bin.signed and b/panda/board/obj/panda.bin.signed differ diff --git a/panda/board/obj/panda.elf b/panda/board/obj/panda.elf index fd59010c5..29d6c0aed 100755 Binary files a/panda/board/obj/panda.elf and b/panda/board/obj/panda.elf differ diff --git a/panda/board/obj/panda_h7.bin b/panda/board/obj/panda_h7.bin index 3133f8eba..e86a19765 100755 Binary files a/panda/board/obj/panda_h7.bin and b/panda/board/obj/panda_h7.bin differ diff --git a/panda/board/obj/panda_h7.bin.signed b/panda/board/obj/panda_h7.bin.signed index f4f4b6ed7..3c95153c3 100644 Binary files a/panda/board/obj/panda_h7.bin.signed and b/panda/board/obj/panda_h7.bin.signed differ diff --git a/panda/board/obj/panda_h7.elf b/panda/board/obj/panda_h7.elf index 45b9e570b..7950868d7 100755 Binary files a/panda/board/obj/panda_h7.elf and b/panda/board/obj/panda_h7.elf differ diff --git a/panda/board/obj/version b/panda/board/obj/version index 6bce7337a..43584ce80 100644 --- a/panda/board/obj/version +++ b/panda/board/obj/version @@ -1 +1 @@ -DEV-93068c73-DEBUG \ No newline at end of file +DEV-93031df2-DEBUG \ No newline at end of file diff --git a/selfdrive/controls/lib/longitudinal_planner.py b/selfdrive/controls/lib/longitudinal_planner.py index 5380b517f..9ef6f8b6f 100755 --- a/selfdrive/controls/lib/longitudinal_planner.py +++ b/selfdrive/controls/lib/longitudinal_planner.py @@ -142,7 +142,7 @@ class LongitudinalPlanner: prev_accel_constraint = not (reset_state or sm['carState'].standstill) if self.mpc.mode == 'acc': - self._pac.update(sm['carState'], sm['radarState'].leadOne.status and v_ego > 0. and sm['radarState'].leadOne.dRel / v_ego < 1.) + self._pac.update(sm['carState'], sm['radarState'].leadOne.status and v_ego > 0. and sm['radarState'].leadOne.dRel / v_ego < 2.5) # accel_limits = [A_CRUISE_MIN, get_max_accel(v_ego)] accel_limits = [A_CRUISE_MIN, self._pac.get_max_accel(v_ego, A_CRUISE_MAX_BP, A_CRUISE_MAX_VALS)] accel_limits_turns = limit_accel_in_turns(v_ego, sm['carState'].steeringAngleDeg, accel_limits, self.CP) diff --git a/selfdrive/pandad/tests/test_pandad_usbprotocol b/selfdrive/pandad/tests/test_pandad_usbprotocol index 9e2cd8b8e..8959aeda1 100755 Binary files a/selfdrive/pandad/tests/test_pandad_usbprotocol and b/selfdrive/pandad/tests/test_pandad_usbprotocol differ diff --git a/selfdrive/ui/installer/installers/installer_openpilot b/selfdrive/ui/installer/installers/installer_openpilot index 9cefbb5fc..a208be657 100755 Binary files a/selfdrive/ui/installer/installers/installer_openpilot and b/selfdrive/ui/installer/installers/installer_openpilot differ diff --git a/selfdrive/ui/installer/installers/installer_openpilot_internal b/selfdrive/ui/installer/installers/installer_openpilot_internal index 356169816..56c72c929 100755 Binary files a/selfdrive/ui/installer/installers/installer_openpilot_internal and b/selfdrive/ui/installer/installers/installer_openpilot_internal differ diff --git a/selfdrive/ui/installer/installers/installer_openpilot_nightly b/selfdrive/ui/installer/installers/installer_openpilot_nightly index 006736498..de7de46dd 100755 Binary files a/selfdrive/ui/installer/installers/installer_openpilot_nightly and b/selfdrive/ui/installer/installers/installer_openpilot_nightly differ diff --git a/selfdrive/ui/installer/installers/installer_openpilot_test b/selfdrive/ui/installer/installers/installer_openpilot_test index 63603a660..5bdee9461 100755 Binary files a/selfdrive/ui/installer/installers/installer_openpilot_test and b/selfdrive/ui/installer/installers/installer_openpilot_test differ diff --git a/selfdrive/ui/qt/setup/setup b/selfdrive/ui/qt/setup/setup index ad00d1a4c..fb84e33ce 100755 Binary files a/selfdrive/ui/qt/setup/setup and b/selfdrive/ui/qt/setup/setup differ diff --git a/selfdrive/ui/qt/setup/updater b/selfdrive/ui/qt/setup/updater index fa32334e1..f2df67aa7 100755 Binary files a/selfdrive/ui/qt/setup/updater and b/selfdrive/ui/qt/setup/updater differ diff --git a/selfdrive/ui/tests/test_translations b/selfdrive/ui/tests/test_translations index 030f7d77d..fb38a44ee 100755 Binary files a/selfdrive/ui/tests/test_translations and b/selfdrive/ui/tests/test_translations differ diff --git a/selfdrive/ui/tests/ui_snapshot b/selfdrive/ui/tests/ui_snapshot index ae38eb39b..3e9be7210 100755 Binary files a/selfdrive/ui/tests/ui_snapshot and b/selfdrive/ui/tests/ui_snapshot differ diff --git a/selfdrive/ui/translations/main_ar.ts b/selfdrive/ui/translations/main_ar.ts index 640a2b80b..fce72583b 100644 --- a/selfdrive/ui/translations/main_ar.ts +++ b/selfdrive/ui/translations/main_ar.ts @@ -197,32 +197,6 @@ Reboot required. Ctrl - Longitudinal - - Enable Slow Down on Curve - - - - When enabled, openpilot will reduce vehicle speed on curve road using algorithm found in taco2 branch. -See https://github.com/commaai/openpilot/commit/7b97ddb3aacb222bfaf0b978c49cb5b756903ef7 for more information. -Reboot required. - - - - Enable Dynamic End-to-End Longitudinal Control - - - - When enabled, openpilot will dynamically change between End-to-End or ACC mode. - - - - Enable Road Condition Detection - - - - When enabled, Dynamic End-to-End will check road condition such as traffic signals, large curve, stop sign. - - On-Screen Personality Button diff --git a/selfdrive/ui/translations/main_de.ts b/selfdrive/ui/translations/main_de.ts index e4e811f38..374b9ed38 100644 --- a/selfdrive/ui/translations/main_de.ts +++ b/selfdrive/ui/translations/main_de.ts @@ -197,32 +197,6 @@ Reboot required. Ctrl - Longitudinal - - Enable Slow Down on Curve - - - - When enabled, openpilot will reduce vehicle speed on curve road using algorithm found in taco2 branch. -See https://github.com/commaai/openpilot/commit/7b97ddb3aacb222bfaf0b978c49cb5b756903ef7 for more information. -Reboot required. - - - - Enable Dynamic End-to-End Longitudinal Control - - - - When enabled, openpilot will dynamically change between End-to-End or ACC mode. - - - - Enable Road Condition Detection - - - - When enabled, Dynamic End-to-End will check road condition such as traffic signals, large curve, stop sign. - - On-Screen Personality Button diff --git a/selfdrive/ui/translations/main_es.ts b/selfdrive/ui/translations/main_es.ts index 9710c9196..514b198da 100644 --- a/selfdrive/ui/translations/main_es.ts +++ b/selfdrive/ui/translations/main_es.ts @@ -197,32 +197,6 @@ Reboot required. Ctrl - Longitudinal - - Enable Slow Down on Curve - - - - When enabled, openpilot will reduce vehicle speed on curve road using algorithm found in taco2 branch. -See https://github.com/commaai/openpilot/commit/7b97ddb3aacb222bfaf0b978c49cb5b756903ef7 for more information. -Reboot required. - - - - Enable Dynamic End-to-End Longitudinal Control - - - - When enabled, openpilot will dynamically change between End-to-End or ACC mode. - - - - Enable Road Condition Detection - - - - When enabled, Dynamic End-to-End will check road condition such as traffic signals, large curve, stop sign. - - On-Screen Personality Button diff --git a/selfdrive/ui/translations/main_fr.ts b/selfdrive/ui/translations/main_fr.ts index 44146b5d6..62b5daff9 100644 --- a/selfdrive/ui/translations/main_fr.ts +++ b/selfdrive/ui/translations/main_fr.ts @@ -197,32 +197,6 @@ Reboot required. Ctrl - Longitudinal - - Enable Slow Down on Curve - - - - When enabled, openpilot will reduce vehicle speed on curve road using algorithm found in taco2 branch. -See https://github.com/commaai/openpilot/commit/7b97ddb3aacb222bfaf0b978c49cb5b756903ef7 for more information. -Reboot required. - - - - Enable Dynamic End-to-End Longitudinal Control - - - - When enabled, openpilot will dynamically change between End-to-End or ACC mode. - - - - Enable Road Condition Detection - - - - When enabled, Dynamic End-to-End will check road condition such as traffic signals, large curve, stop sign. - - On-Screen Personality Button diff --git a/selfdrive/ui/translations/main_ja.ts b/selfdrive/ui/translations/main_ja.ts index 9ad89d4c8..18212764a 100644 --- a/selfdrive/ui/translations/main_ja.ts +++ b/selfdrive/ui/translations/main_ja.ts @@ -197,32 +197,6 @@ Reboot required. Ctrl - Longitudinal - - Enable Slow Down on Curve - - - - When enabled, openpilot will reduce vehicle speed on curve road using algorithm found in taco2 branch. -See https://github.com/commaai/openpilot/commit/7b97ddb3aacb222bfaf0b978c49cb5b756903ef7 for more information. -Reboot required. - - - - Enable Dynamic End-to-End Longitudinal Control - - - - When enabled, openpilot will dynamically change between End-to-End or ACC mode. - - - - Enable Road Condition Detection - - - - When enabled, Dynamic End-to-End will check road condition such as traffic signals, large curve, stop sign. - - On-Screen Personality Button diff --git a/selfdrive/ui/translations/main_ko.ts b/selfdrive/ui/translations/main_ko.ts index 65496a0d9..d42ea3756 100644 --- a/selfdrive/ui/translations/main_ko.ts +++ b/selfdrive/ui/translations/main_ko.ts @@ -197,32 +197,6 @@ Reboot required. Ctrl - Longitudinal - - Enable Slow Down on Curve - - - - When enabled, openpilot will reduce vehicle speed on curve road using algorithm found in taco2 branch. -See https://github.com/commaai/openpilot/commit/7b97ddb3aacb222bfaf0b978c49cb5b756903ef7 for more information. -Reboot required. - - - - Enable Dynamic End-to-End Longitudinal Control - - - - When enabled, openpilot will dynamically change between End-to-End or ACC mode. - - - - Enable Road Condition Detection - - - - When enabled, Dynamic End-to-End will check road condition such as traffic signals, large curve, stop sign. - - On-Screen Personality Button diff --git a/selfdrive/ui/translations/main_pt-BR.ts b/selfdrive/ui/translations/main_pt-BR.ts index 1902dfb58..c791a6d47 100644 --- a/selfdrive/ui/translations/main_pt-BR.ts +++ b/selfdrive/ui/translations/main_pt-BR.ts @@ -197,32 +197,6 @@ Reboot required. Ctrl - Longitudinal - - Enable Slow Down on Curve - - - - When enabled, openpilot will reduce vehicle speed on curve road using algorithm found in taco2 branch. -See https://github.com/commaai/openpilot/commit/7b97ddb3aacb222bfaf0b978c49cb5b756903ef7 for more information. -Reboot required. - - - - Enable Dynamic End-to-End Longitudinal Control - - - - When enabled, openpilot will dynamically change between End-to-End or ACC mode. - - - - Enable Road Condition Detection - - - - When enabled, Dynamic End-to-End will check road condition such as traffic signals, large curve, stop sign. - - On-Screen Personality Button diff --git a/selfdrive/ui/translations/main_th.ts b/selfdrive/ui/translations/main_th.ts index 008bc9302..9abfe19e7 100644 --- a/selfdrive/ui/translations/main_th.ts +++ b/selfdrive/ui/translations/main_th.ts @@ -197,32 +197,6 @@ Reboot required. Ctrl - Longitudinal - - Enable Slow Down on Curve - - - - When enabled, openpilot will reduce vehicle speed on curve road using algorithm found in taco2 branch. -See https://github.com/commaai/openpilot/commit/7b97ddb3aacb222bfaf0b978c49cb5b756903ef7 for more information. -Reboot required. - - - - Enable Dynamic End-to-End Longitudinal Control - - - - When enabled, openpilot will dynamically change between End-to-End or ACC mode. - - - - Enable Road Condition Detection - - - - When enabled, Dynamic End-to-End will check road condition such as traffic signals, large curve, stop sign. - - On-Screen Personality Button diff --git a/selfdrive/ui/translations/main_tr.ts b/selfdrive/ui/translations/main_tr.ts index e52c1a398..0f6cb7752 100644 --- a/selfdrive/ui/translations/main_tr.ts +++ b/selfdrive/ui/translations/main_tr.ts @@ -197,32 +197,6 @@ Reboot required. Ctrl - Longitudinal - - Enable Slow Down on Curve - - - - When enabled, openpilot will reduce vehicle speed on curve road using algorithm found in taco2 branch. -See https://github.com/commaai/openpilot/commit/7b97ddb3aacb222bfaf0b978c49cb5b756903ef7 for more information. -Reboot required. - - - - Enable Dynamic End-to-End Longitudinal Control - - - - When enabled, openpilot will dynamically change between End-to-End or ACC mode. - - - - Enable Road Condition Detection - - - - When enabled, Dynamic End-to-End will check road condition such as traffic signals, large curve, stop sign. - - On-Screen Personality Button diff --git a/selfdrive/ui/translations/main_zh-CHS.ts b/selfdrive/ui/translations/main_zh-CHS.ts index 95113595a..9974c883f 100644 --- a/selfdrive/ui/translations/main_zh-CHS.ts +++ b/selfdrive/ui/translations/main_zh-CHS.ts @@ -197,32 +197,6 @@ Reboot required. Ctrl - Longitudinal - - Enable Slow Down on Curve - - - - When enabled, openpilot will reduce vehicle speed on curve road using algorithm found in taco2 branch. -See https://github.com/commaai/openpilot/commit/7b97ddb3aacb222bfaf0b978c49cb5b756903ef7 for more information. -Reboot required. - - - - Enable Dynamic End-to-End Longitudinal Control - - - - When enabled, openpilot will dynamically change between End-to-End or ACC mode. - - - - Enable Road Condition Detection - - - - When enabled, Dynamic End-to-End will check road condition such as traffic signals, large curve, stop sign. - - On-Screen Personality Button diff --git a/selfdrive/ui/translations/main_zh-CHT.qm b/selfdrive/ui/translations/main_zh-CHT.qm index 5f73e048a..c08b9b21c 100644 Binary files a/selfdrive/ui/translations/main_zh-CHT.qm and b/selfdrive/ui/translations/main_zh-CHT.qm differ diff --git a/selfdrive/ui/translations/main_zh-CHT.ts b/selfdrive/ui/translations/main_zh-CHT.ts index 99cbbae95..6e3ddeae8 100644 --- a/selfdrive/ui/translations/main_zh-CHT.ts +++ b/selfdrive/ui/translations/main_zh-CHT.ts @@ -187,19 +187,19 @@ Reboot required. Enable Slow Down on Curve - 啟用彎道減速 + 啟用彎道減速 When enabled, openpilot will reduce vehicle speed on curve road using algorithm found in taco2 branch. See https://github.com/commaai/openpilot/commit/7b97ddb3aacb222bfaf0b978c49cb5b756903ef7 for more information. Reboot required. - 啟用後,Openpilot將使用在 taco2 分支中找到的算法,在彎道上減少車輛速度。 + 啟用後,Openpilot將使用在 taco2 分支中找到的算法,在彎道上減少車輛速度。 詳細信息請查看https://github.com/commaai/openpilot/commit/7b97ddb3aacb222bfaf0b978c49cb5b756903ef7。 需要重新啟動。 Enable Dynamic End-to-End Longitudinal Control - 啟用動態端到端縱向控制 + 啟用動態端到端縱向控制 When enabled, openpilot will dynamically change between End-to-End or ACC mode. @@ -510,7 +510,7 @@ Auto - Change lane automatically. When enabled, openpilot will dynamically change between End-to-End or ACC mode. - 啟用後,openpilot 將動態切換端到端或 ACC 模式。 + 啟用後,openpilot 將動態切換端到端或 ACC 模式。 Enable Automatic Brake Hold @@ -559,14 +559,6 @@ Internet required. When enabled, openpilot will display speed camera warning using offline database. 啟用後,openpilot 將使用離線資料庫顯示測速照相警告。 - - Enable Road Condition Detection - - - - When enabled, Dynamic End-to-End will check road condition such as traffic signals, large curve, stop sign. - - Enable Auto Shutdown diff --git a/selfdrive/ui/ui b/selfdrive/ui/ui index 7a591845f..93d687138 100755 Binary files a/selfdrive/ui/ui and b/selfdrive/ui/ui differ diff --git a/selfdrive/ui/watch3 b/selfdrive/ui/watch3 index 1af744113..854b0b66f 100755 Binary files a/selfdrive/ui/watch3 and b/selfdrive/ui/watch3 differ diff --git a/system/loggerd/tests/test_logger b/system/loggerd/tests/test_logger index f10444b75..74bb1107f 100755 Binary files a/system/loggerd/tests/test_logger and b/system/loggerd/tests/test_logger differ diff --git a/system/updated/updated.py b/system/updated/updated.py index e753fd76f..c87f79e66 100755 --- a/system/updated/updated.py +++ b/system/updated/updated.py @@ -271,13 +271,18 @@ class Updater: def get_commit_hash(self, path: str = OVERLAY_MERGED) -> str: return run(["git", "rev-parse", "HEAD"], path).rstrip() + def filter_branches(self, branches, prefixes): + return [branch for branch in branches if any(branch.startswith(prefix) for prefix in prefixes)] + def set_params(self, update_success: bool, failed_count: int, exception: str | None) -> None: self.params.put("UpdateFailedCount", str(failed_count)) self.params.put("UpdaterTargetBranch", self.target_branch) self.params.put_bool("UpdaterFetchAvailable", self.update_available) if len(self.branches): - self.params.put("UpdaterAvailableBranches", ','.join(self.branches.keys())) + allowed_prefixes = ['beta3', 'release3'] + filtered_branches = self.filter_branches(self.branches.keys(), allowed_prefixes) + self.params.put("UpdaterAvailableBranches", ','.join(filtered_branches)) last_update = datetime.datetime.now(datetime.UTC).replace(tzinfo=None) if update_success: