mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-07-15 21:52:08 +08:00
Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1e8d692804 | |||
| 5d5dc6c50c | |||
| 5c64fe0695 | |||
| 37eeb121cd | |||
| 19a5202f4c | |||
| 920ef49b32 | |||
| c7a37ca89e | |||
| 45ca076aef | |||
| 70cf5e6d52 | |||
| f4c71e4918 | |||
| 8408241495 | |||
| 640988673e | |||
| 1429975f1e | |||
| efd499448a | |||
| f7e636f089 | |||
| 00187dc59e | |||
| cde6368cf7 | |||
| 08b56f9b33 | |||
| 78efe3a476 | |||
| 54578675c2 |
@@ -178,6 +178,7 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
|
|||||||
{"OnroadUploads", {PERSISTENT | BACKUP, BOOL, "1"}},
|
{"OnroadUploads", {PERSISTENT | BACKUP, BOOL, "1"}},
|
||||||
{"QuickBootToggle", {PERSISTENT | BACKUP, BOOL, "0"}},
|
{"QuickBootToggle", {PERSISTENT | BACKUP, BOOL, "0"}},
|
||||||
{"QuietMode", {PERSISTENT | BACKUP, BOOL, "0"}},
|
{"QuietMode", {PERSISTENT | BACKUP, BOOL, "0"}},
|
||||||
|
{"RadarTracks", {PERSISTENT | BACKUP, BOOL, "0"}},
|
||||||
{"RainbowMode", {PERSISTENT | BACKUP, BOOL, "0"}},
|
{"RainbowMode", {PERSISTENT | BACKUP, BOOL, "0"}},
|
||||||
{"RocketFuel", {PERSISTENT | BACKUP, BOOL, "0"}},
|
{"RocketFuel", {PERSISTENT | BACKUP, BOOL, "0"}},
|
||||||
{"ShowAdvancedControls", {PERSISTENT | BACKUP, BOOL, "0"}},
|
{"ShowAdvancedControls", {PERSISTENT | BACKUP, BOOL, "0"}},
|
||||||
|
|||||||
@@ -21,8 +21,10 @@ class TogglesLayoutMici(NavScroller):
|
|||||||
record_front = BigParamControl("record & upload driver camera", "RecordFront", toggle_callback=restart_needed_callback)
|
record_front = BigParamControl("record & upload driver camera", "RecordFront", toggle_callback=restart_needed_callback)
|
||||||
record_mic = BigParamControl("record & upload mic audio", "RecordAudio", toggle_callback=restart_needed_callback)
|
record_mic = BigParamControl("record & upload mic audio", "RecordAudio", toggle_callback=restart_needed_callback)
|
||||||
enable_openpilot = BigParamControl("enable sunnypilot", "OpenpilotEnabledToggle", toggle_callback=restart_needed_callback)
|
enable_openpilot = BigParamControl("enable sunnypilot", "OpenpilotEnabledToggle", toggle_callback=restart_needed_callback)
|
||||||
|
radar_tracks = BigParamControl("radar tracks", "RadarTracks")
|
||||||
|
|
||||||
self._scroller.add_widgets([
|
self._scroller.add_widgets([
|
||||||
|
radar_tracks,
|
||||||
self._personality_toggle,
|
self._personality_toggle,
|
||||||
self._experimental_btn,
|
self._experimental_btn,
|
||||||
is_metric_toggle,
|
is_metric_toggle,
|
||||||
@@ -35,6 +37,7 @@ class TogglesLayoutMici(NavScroller):
|
|||||||
|
|
||||||
# Toggle lists
|
# Toggle lists
|
||||||
self._refresh_toggles = (
|
self._refresh_toggles = (
|
||||||
|
("RadarTracks", radar_tracks),
|
||||||
("ExperimentalMode", self._experimental_btn),
|
("ExperimentalMode", self._experimental_btn),
|
||||||
("IsMetric", is_metric_toggle),
|
("IsMetric", is_metric_toggle),
|
||||||
("IsLdwEnabled", ldw_toggle),
|
("IsLdwEnabled", ldw_toggle),
|
||||||
|
|||||||
@@ -153,6 +153,9 @@ class ModelRenderer(Widget, ModelRendererSP):
|
|||||||
self._draw_lane_lines()
|
self._draw_lane_lines()
|
||||||
self._draw_path(sm)
|
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:
|
# if render_lead_indicator and radar_state:
|
||||||
# self._draw_lead_indicator()
|
# self._draw_lead_indicator()
|
||||||
|
|
||||||
|
|||||||
@@ -135,6 +135,9 @@ class ModelRenderer(Widget, ChevronMetrics, ModelRendererSP):
|
|||||||
self._draw_lane_lines()
|
self._draw_lane_lines()
|
||||||
self._draw_path(sm)
|
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:
|
if render_lead_indicator and radar_state:
|
||||||
self._draw_lead_indicator()
|
self._draw_lead_indicator()
|
||||||
self.chevron_metrics.draw_lead_status(sm, radar_state, self._rect, self._lead_vehicles)
|
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.chevron_metrics import ChevronMetrics
|
||||||
from openpilot.selfdrive.ui.sunnypilot.onroad.rainbow_path import RainbowPath
|
from openpilot.selfdrive.ui.sunnypilot.onroad.rainbow_path import RainbowPath
|
||||||
|
from openpilot.selfdrive.ui.sunnypilot.onroad.radar_tracks import RadarTracks
|
||||||
|
|
||||||
|
|
||||||
class ModelRendererSP:
|
class ModelRendererSP:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.rainbow_path = RainbowPath()
|
self.rainbow_path = RainbowPath()
|
||||||
self.chevron_metrics = ChevronMetrics()
|
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.turn_signals = self.params.get_bool("ShowTurnSignals")
|
||||||
self.boot_offroad_mode = self.params.get("DeviceBootMode", return_default=True)
|
self.boot_offroad_mode = self.params.get("DeviceBootMode", return_default=True)
|
||||||
self.always_offroad = self.params.get_bool("OffroadMode")
|
self.always_offroad = self.params.get_bool("OffroadMode")
|
||||||
|
self.radar_tracks = self.params.get_bool("RadarTracks")
|
||||||
|
|
||||||
if not self._sp_initialized:
|
if not self._sp_initialized:
|
||||||
self._sp_initialized = True
|
self._sp_initialized = True
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ class UIState(UIStateSP):
|
|||||||
"liveParameters",
|
"liveParameters",
|
||||||
"testJoystick",
|
"testJoystick",
|
||||||
"rawAudioData",
|
"rawAudioData",
|
||||||
|
"liveTracks",
|
||||||
] + self.sm_services_ext
|
] + self.sm_services_ext
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -1296,6 +1296,12 @@
|
|||||||
"title": "Display Turn Signals",
|
"title": "Display Turn Signals",
|
||||||
"description": "When enabled, visual turn indicators are drawn on the HUD."
|
"description": "When enabled, visual turn indicators are drawn on the HUD."
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"key": "RadarTracks",
|
||||||
|
"widget": "toggle",
|
||||||
|
"title": "Radar Tracks",
|
||||||
|
"description": "Show radar tracks"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"key": "RoadNameToggle",
|
"key": "RoadNameToggle",
|
||||||
"widget": "toggle",
|
"widget": "toggle",
|
||||||
|
|||||||
@@ -24,6 +24,10 @@ sections:
|
|||||||
widget: toggle
|
widget: toggle
|
||||||
title: Display Turn Signals
|
title: Display Turn Signals
|
||||||
description: When enabled, visual turn indicators are drawn on the HUD.
|
description: When enabled, visual turn indicators are drawn on the HUD.
|
||||||
|
- key: RadarTracks
|
||||||
|
widget: toggle
|
||||||
|
title: Radar Tracks
|
||||||
|
description: Show radar tracks
|
||||||
- key: RoadNameToggle
|
- key: RoadNameToggle
|
||||||
widget: toggle
|
widget: toggle
|
||||||
title: Display Road Name
|
title: Display Road Name
|
||||||
|
|||||||
Reference in New Issue
Block a user