diff --git a/tools/replay/lib/rp_helpers.py b/tools/replay/lib/rp_helpers.py index c1e0b4442f5c83..555311ca78fb71 100644 --- a/tools/replay/lib/rp_helpers.py +++ b/tools/replay/lib/rp_helpers.py @@ -9,7 +9,7 @@ (240, "orange", (255, 146, 0)), (255, "white", (255, 255, 255)), (110, "carColor", (255,0,127)), - (0, "background", (0, 0, 0)),] + (0, "background", (0, 0, 0))] class UIParams: @@ -70,24 +70,25 @@ def plot_lead(rs, lid_overlay): def maybe_update_radar_points(lt, lid_overlay): - if lt is not None and hasattr(lt, 'trackList'): + ar_pts = [] + if lt is not None: ar_pts = {} - for track in lt.trackList: + for track in lt: ar_pts[track.trackId] = [track.dRel, track.yRel, track.vRel, track.aRel, track.oncoming, track.stationary] - for ids, pt in ar_pts.items(): - # negative here since radar is left positive - px, py = to_topdown_pt(pt[0], -pt[1]) - if px != -1: - if pt[-1]: - color = rerunColorPalette[4][0] - elif pt[-2]: - color = rerunColorPalette[3][0] - else: - color = rerunColorPalette[5][0] - if int(ids) == 1: - lid_overlay[px - 2:px + 2, py - 10:py + 10] = rerunColorPalette[1][0] - else: - lid_overlay[px - 2:px + 2, py - 2:py + 2] = color + for ids, pt in ar_pts.items(): + # negative here since radar is left positive + px, py = to_topdown_pt(pt[0], -pt[1]) + if px != -1: + if pt[-1]: + color = rerunColorPalette[4][0] + elif pt[-2]: + color = rerunColorPalette[3][0] + else: + color = rerunColorPalette[5][0] + if int(ids) == 1: + lid_overlay[px - 2:px + 2, py - 10:py + 10] = rerunColorPalette[1][0] + else: + lid_overlay[px - 2:px + 2, py - 2:py + 2] = color def get_blank_lid_overlay(UP): diff --git a/tools/replay/rp_visualization.py b/tools/replay/rp_visualization.py index 01058967b2cc56..c57e6b47cec0a1 100755 --- a/tools/replay/rp_visualization.py +++ b/tools/replay/rp_visualization.py @@ -33,7 +33,8 @@ def visualize(addr): if sm.recv_frame['radarState']: plot_lead(sm['radarState'], lid_overlay) liveTracksTime = sm.logMonoTime['liveTracks'] - maybe_update_radar_points(sm['liveTracks'], lid_overlay) + if sm['liveTracks'] is not None and hasattr(sm['liveTracks'], 'trackList'): + maybe_update_radar_points(sm['liveTracks'], lid_overlay) rr.set_time_nanos("TIMELINE", liveTracksTime) rr.log("tracks", rr.SegmentationImage(np.flip(np.rot90(lid_overlay, k=-1), axis=1)))