Skip to content

Commit

Permalink
Improve Toyota radar filtering (#409)
Browse files Browse the repository at this point in the history
  • Loading branch information
pd0wm authored Oct 26, 2018
1 parent 3d05cca commit 5501541
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions selfdrive/car/toyota/radar_interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class RadarInterface(object):
def __init__(self, CP):
# radar
self.pts = {}
self.seen_valid = {key: False for key in RADAR_A_MSGS}
self.valid_cnt = {key: 0 for key in RADAR_A_MSGS}
self.track_id = 0

self.delay = 0.0 # Delay of radar
Expand All @@ -57,8 +57,7 @@ def update(self):
while 1:
tm = int(sec_since_boot() * 1e9)
updated_messages.update(self.rcp.update(tm, True))
# TODO: do not hardcode last msg
if 0x22f in updated_messages:
if RADAR_B_MSGS[-1] in updated_messages:
break

errors = []
Expand All @@ -71,17 +70,18 @@ def update(self):
if ii in RADAR_A_MSGS:
cpt = self.rcp.vl[ii]

if cpt['LONG_DIST'] >= 255 or cpt['NEW_TRACK']:
self.seen_valid[ii] = False # reset validity

if cpt['LONG_DIST'] < 255 and cpt['VALID']:
self.seen_valid[ii] = True
if cpt['LONG_DIST'] >=255 or cpt['NEW_TRACK']:
self.valid_cnt[ii] = 0 # reset counter
if cpt['VALID'] and cpt['LONG_DIST'] < 255:
self.valid_cnt[ii] += 1
else:
self.valid_cnt[ii] = max(self.valid_cnt[ii] -1, 0)

score = self.rcp.vl[ii+16]['SCORE']
# print ii, score, cpt['VALID'], cpt['LONG_DIST'], cpt['LAT_DIST']
# print ii, self.valid_cnt[ii], score, cpt['VALID'], cpt['LONG_DIST'], cpt['LAT_DIST']

# radar point only valid if it's a valid measurement and score is above 50
if (cpt['VALID'] or score > 50) and cpt['LONG_DIST'] < 255 and self.seen_valid[ii]:
if cpt['VALID'] or (score > 50 and cpt['LONG_DIST'] < 255 and self.valid_cnt[ii] > 0):
if ii not in self.pts or cpt['NEW_TRACK']:
self.pts[ii] = car.RadarState.RadarPoint.new_message()
self.pts[ii].trackId = self.track_id
Expand Down

0 comments on commit 5501541

Please sign in to comment.