mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-08-06 11:05:42 +08:00
visuals-radar-tracks
commit1e8d692804Merge:5d5dc6c50c097dd9b5f2Author: royjr <royjr96@gmail.com> Date: Tue Jun 9 00:13:12 2026 -0400 Merge branch 'master' into visuals-radar-tracks commit5d5dc6c50cAuthor: royjr <royjr96@gmail.com> Date: Tue Jun 9 00:12:06 2026 -0400 yaml commit5c64fe0695Merge:37eeb121cd066ba92e77Author: royjr <royjr96@gmail.com> Date: Mon Jun 8 23:19:24 2026 -0400 Merge branch 'master' into visuals-radar-tracks commit37eeb121cdMerge:19a5202f4c1658898498Author: royjr <royjr96@gmail.com> Date: Fri Mar 27 16:27:10 2026 -0700 Merge branch 'master' into visuals-radar-tracks commit19a5202f4cMerge:920ef49b32a17a38d8c3Author: royjr <royjr96@gmail.com> Date: Mon Mar 2 02:44:58 2026 -0500 Merge branch 'master' into visuals-radar-tracks commit920ef49b32Author: royjr <royjr96@gmail.com> Date: Thu Feb 5 01:01:07 2026 -0500 no return commitc7a37ca89eMerge:45ca076aef5c12a7cfc3Author: royjr <royjr96@gmail.com> Date: Thu Feb 5 00:52:12 2026 -0500 Merge branch 'master' into visuals-radar-tracks commit45ca076aefMerge:70cf5e6d5219a7d1d5d7Author: royjr <royjr96@gmail.com> Date: Wed Dec 31 15:26:12 2025 -0500 Merge branch 'master' into visuals-radar-tracks commit70cf5e6d52Author: royjr <royjr96@gmail.com> Date: Mon Dec 29 12:03:57 2025 -0500 Update params_metadata.json commitf4c71e4918Author: royjr <royjr96@gmail.com> Date: Mon Dec 29 10:05:17 2025 -0500 lint commit8408241495Author: royjr <royjr96@gmail.com> Date: Mon Dec 29 02:23:10 2025 -0500 Update toggles.py commit640988673eAuthor: royjr <royjr96@gmail.com> Date: Mon Dec 29 02:22:16 2025 -0500 mici toggle commit1429975f1eAuthor: royjr <royjr96@gmail.com> Date: Mon Dec 29 02:22:01 2025 -0500 Revert "force enable for now" This reverts commitefd499448a. commitefd499448aAuthor: royjr <royjr96@gmail.com> Date: Mon Dec 29 00:42:38 2025 -0500 force enable for now commitf7e636f089Author: royjr <royjr96@gmail.com> Date: Mon Dec 29 00:42:19 2025 -0500 use params commit00187dc59eAuthor: royjr <royjr96@gmail.com> Date: Mon Dec 29 00:37:19 2025 -0500 use checks commitcde6368cf7Author: royjr <royjr96@gmail.com> Date: Mon Dec 29 00:30:15 2025 -0500 cleaner commit08b56f9b33Author: royjr <royjr96@gmail.com> Date: Mon Dec 29 00:28:12 2025 -0500 better sp commit78efe3a476Author: royjr <royjr96@gmail.com> Date: Mon Dec 29 00:21:08 2025 -0500 init sp commit54578675c2Author: royjr <royjr96@gmail.com> Date: Mon Dec 29 00:19:17 2025 -0500 init
This commit is contained in:
@@ -178,6 +178,7 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
|
||||
{"OnroadUploads", {PERSISTENT | BACKUP, BOOL, "1"}},
|
||||
{"QuickBootToggle", {PERSISTENT | BACKUP, BOOL, "0"}},
|
||||
{"QuietMode", {PERSISTENT | BACKUP, BOOL, "0"}},
|
||||
{"RadarTracks", {PERSISTENT | BACKUP, BOOL, "0"}},
|
||||
{"RainbowMode", {PERSISTENT | BACKUP, BOOL, "0"}},
|
||||
{"RocketFuel", {PERSISTENT | BACKUP, BOOL, "0"}},
|
||||
{"ShowAdvancedControls", {PERSISTENT | BACKUP, BOOL, "0"}},
|
||||
|
||||
@@ -22,8 +22,10 @@ class TogglesLayoutMici(NavScroller):
|
||||
record_mic = BigParamControl("record & upload mic audio", "RecordAudio", toggle_callback=restart_needed_callback)
|
||||
enable_openpilot = BigParamControl("enable sunnypilot", "OpenpilotEnabledToggle", toggle_callback=restart_needed_callback)
|
||||
hyundai_radar = BigMultiParamToggle("hyundai radar", "HyundaiRadar", ["off", "lead only", "full radar"])
|
||||
radar_tracks = BigParamControl("radar tracks", "RadarTracks")
|
||||
|
||||
self._scroller.add_widgets([
|
||||
radar_tracks,
|
||||
self._personality_toggle,
|
||||
self._experimental_btn,
|
||||
is_metric_toggle,
|
||||
@@ -37,6 +39,7 @@ class TogglesLayoutMici(NavScroller):
|
||||
# Toggle lists
|
||||
self._refresh_toggles = (
|
||||
("HyundaiRadar", hyundai_radar),
|
||||
("RadarTracks", radar_tracks),
|
||||
("ExperimentalMode", self._experimental_btn),
|
||||
("IsMetric", is_metric_toggle),
|
||||
("IsLdwEnabled", ldw_toggle),
|
||||
|
||||
@@ -153,6 +153,9 @@ class ModelRenderer(Widget, ModelRendererSP):
|
||||
self._draw_lane_lines()
|
||||
self._draw_path(sm)
|
||||
|
||||
if ui_state.radar_tracks and sm.valid['liveTracks'] and sm.recv_frame['liveTracks'] >= ui_state.started_frame:
|
||||
self.radar_tracks.draw_radar_tracks(sm['liveTracks'], self._map_to_screen, self._path_offset_z, track_size=3)
|
||||
|
||||
# if render_lead_indicator and radar_state:
|
||||
# self._draw_lead_indicator()
|
||||
|
||||
|
||||
@@ -135,6 +135,9 @@ class ModelRenderer(Widget, ChevronMetrics, ModelRendererSP):
|
||||
self._draw_lane_lines()
|
||||
self._draw_path(sm)
|
||||
|
||||
if ui_state.radar_tracks and sm.valid['liveTracks'] and sm.recv_frame['liveTracks'] >= ui_state.started_frame:
|
||||
self.radar_tracks.draw_radar_tracks(sm['liveTracks'], self._map_to_screen, self._path_offset_z)
|
||||
|
||||
if render_lead_indicator and radar_state:
|
||||
self._draw_lead_indicator()
|
||||
self.chevron_metrics.draw_lead_status(sm, radar_state, self._rect, self._lead_vehicles)
|
||||
|
||||
@@ -6,9 +6,12 @@ See the LICENSE.md file in the root directory for more details.
|
||||
"""
|
||||
from openpilot.selfdrive.ui.sunnypilot.onroad.chevron_metrics import ChevronMetrics
|
||||
from openpilot.selfdrive.ui.sunnypilot.onroad.rainbow_path import RainbowPath
|
||||
from openpilot.selfdrive.ui.sunnypilot.onroad.radar_tracks import RadarTracks
|
||||
|
||||
|
||||
class ModelRendererSP:
|
||||
def __init__(self):
|
||||
self.rainbow_path = RainbowPath()
|
||||
self.chevron_metrics = ChevronMetrics()
|
||||
self.radar_tracks = RadarTracks()
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
"""
|
||||
Copyright (c) 2021-, Haibin Wen, sunnypilot, and a number of other contributors.
|
||||
|
||||
This file is part of sunnypilot and is licensed under the MIT License.
|
||||
See the LICENSE.md file in the root directory for more details.
|
||||
"""
|
||||
import math
|
||||
import pyray as rl
|
||||
|
||||
|
||||
class RadarTracks:
|
||||
def draw_radar_tracks(self, live_tracks, map_to_screen, path_offset_z, track_size=6):
|
||||
for track in live_tracks.points:
|
||||
d_rel, y_rel, v_rel, a_rel = track.dRel, track.yRel, track.vRel, track.aRel
|
||||
if not (math.isfinite(d_rel) and math.isfinite(y_rel) and math.isfinite(v_rel) and math.isfinite(a_rel)):
|
||||
continue
|
||||
|
||||
pt = map_to_screen(d_rel, -y_rel, path_offset_z)
|
||||
if pt is None:
|
||||
continue
|
||||
|
||||
x, y = pt
|
||||
rl.draw_circle(int(x), int(y), track_size, rl.Color(0, 255, 64, 255))
|
||||
@@ -169,6 +169,7 @@ class UIStateSP:
|
||||
self.turn_signals = self.params.get_bool("ShowTurnSignals")
|
||||
self.boot_offroad_mode = self.params.get("DeviceBootMode", return_default=True)
|
||||
self.always_offroad = self.params.get_bool("OffroadMode")
|
||||
self.radar_tracks = self.params.get_bool("RadarTracks")
|
||||
|
||||
if not self._sp_initialized:
|
||||
self._sp_initialized = True
|
||||
|
||||
@@ -63,6 +63,7 @@ class UIState(UIStateSP):
|
||||
"liveParameters",
|
||||
"testJoystick",
|
||||
"rawAudioData",
|
||||
"liveTracks",
|
||||
] + self.sm_services_ext
|
||||
)
|
||||
|
||||
|
||||
@@ -1296,6 +1296,12 @@
|
||||
"title": "Display Turn Signals",
|
||||
"description": "When enabled, visual turn indicators are drawn on the HUD."
|
||||
},
|
||||
{
|
||||
"key": "RadarTracks",
|
||||
"widget": "toggle",
|
||||
"title": "Radar Tracks",
|
||||
"description": "Show radar tracks"
|
||||
},
|
||||
{
|
||||
"key": "RoadNameToggle",
|
||||
"widget": "toggle",
|
||||
|
||||
@@ -24,6 +24,10 @@ sections:
|
||||
widget: toggle
|
||||
title: Display Turn Signals
|
||||
description: When enabled, visual turn indicators are drawn on the HUD.
|
||||
- key: RadarTracks
|
||||
widget: toggle
|
||||
title: Radar Tracks
|
||||
description: Show radar tracks
|
||||
- key: RoadNameToggle
|
||||
widget: toggle
|
||||
title: Display Road Name
|
||||
|
||||
Reference in New Issue
Block a user