Skip to content

Commit

Permalink
openpilot v0.3.7 tweaks
Browse files Browse the repository at this point in the history
  • Loading branch information
Vehicle Researcher committed Oct 4, 2017
1 parent 8385b27 commit 4830358
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 19 deletions.
2 changes: 1 addition & 1 deletion opendbc
35 changes: 19 additions & 16 deletions selfdrive/controls/controlsd.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ def isEnabled(state):
return (isActive(state) or state == State.PRE_ENABLED)


def data_sample(CI, CC, thermal, health, cal, cal_status, cal_perc):
def data_sample(CI, CC, thermal, health, cal, cal_status, overtemp, free_space):

# *** read can and compute car states ***
CS = CI.update(CC)
Expand All @@ -68,23 +68,25 @@ def data_sample(CI, CC, thermal, health, cal, cal_status, cal_perc):
# thermal data, checked every second
td = messaging.recv_sock(thermal)
if td is not None:
# Check temperature
# overtemp above 95 deg
overtemp = any(
t > 950
for t in (td.thermal.cpu0, td.thermal.cpu1, td.thermal.cpu2,
td.thermal.cpu3, td.thermal.mem, td.thermal.gpu))
if overtemp:
events.append(create_event('overheat', [ET.NO_ENTRY, ET.SOFT_DISABLE]))

# under 15% of space free
if td.thermal.freeSpace < 0.15:
events.append(create_event('outOfSpace', [ET.NO_ENTRY]))
# under 15% of space free no enable allowed
free_space = td.thermal.freeSpace < 0.15

if overtemp:
events.append(create_event('overheat', [ET.NO_ENTRY, ET.SOFT_DISABLE]))

if free_space:
events.append(create_event('outOfSpace', [ET.NO_ENTRY]))

# *** read calibration status ***
cal = messaging.recv_sock(cal)
if cal is not None:
cal_status = cal.liveCalibration.calStatus
cal_perc = cal.liveCalibration.calPerc

if cal_status != Calibration.CALIBRATED:
if cal_status == Calibration.UNCALIBRATED:
Expand All @@ -99,7 +101,7 @@ def data_sample(CI, CC, thermal, health, cal, cal_status, cal_perc):
if not controls_allowed:
events.append(create_event('controlsMismatch', [ET.NO_ENTRY, ET.IMMEDIATE_DISABLE]))

return CS, events, cal_status, cal_perc
return CS, events, cal_status, overtemp, free_space


def calc_plan(CS, events, PL, LoC):
Expand All @@ -119,7 +121,7 @@ def calc_plan(CS, events, PL, LoC):
return plan, plan_ts


def state_transition(CS, CP, state, events, soft_disable_timer, v_cruise_kph, cal_perc, AM):
def state_transition(CS, CP, state, events, soft_disable_timer, v_cruise_kph, AM):
# compute conditional state transitions and execute actions on state transitions
enabled = isEnabled(state)

Expand All @@ -146,8 +148,7 @@ def state_transition(CS, CP, state, events, soft_disable_timer, v_cruise_kph, ca
for e in get_events(events, [ET.SOFT_DISABLE, ET.IMMEDIATE_DISABLE]):
AM.add(e, enabled)
for e in get_events(events, [ET.NO_ENTRY]):
txt = str(cal_perc) + '%' if e == 'calibrationInProgress' else ''
AM.add(str(e) + "NoEntry", enabled, txt)
AM.add(str(e) + "NoEntry", enabled)
else:
if get_events(events, [ET.PRE_ENABLE]):
state = State.PRE_ENABLED
Expand Down Expand Up @@ -191,7 +192,7 @@ def state_transition(CS, CP, state, events, soft_disable_timer, v_cruise_kph, ca

elif soft_disable_timer <= 0:
state = State.DISABLED

# TODO: PRE ENABLING
elif state == State.PRE_ENABLED:
if get_events(events, [ET.USER_DISABLE]):
Expand Down Expand Up @@ -447,7 +448,8 @@ def controlsd_thread(gctx, rate=100):
state = State.DISABLED
soft_disable_timer = 0
v_cruise_kph = 255
cal_perc = 0
overtemp = False
free_space = False
cal_status = Calibration.UNCALIBRATED
rear_view_toggle = False
rear_view_allowed = params.get("IsRearViewMirror") == "1"
Expand All @@ -474,15 +476,16 @@ def controlsd_thread(gctx, rate=100):
prof.reset() # avoid memory leak

# sample data and compute car events
CS, events, cal_status, cal_perc = data_sample(CI, CC, thermal, health, cal, cal_status, cal_perc)
CS, events, cal_status, overtemp, free_space = data_sample(CI, CC, thermal, health, cal, cal_status,
overtemp, free_space)
prof.checkpoint("Sample")

# define plan
plan, plan_ts = calc_plan(CS, events, PL, LoC)
prof.checkpoint("Plan")

# update control state
state, soft_disable_timer, v_cruise_kph = state_transition(CS, CP, state, events, soft_disable_timer, v_cruise_kph, cal_perc, AM)
state, soft_disable_timer, v_cruise_kph = state_transition(CS, CP, state, events, soft_disable_timer, v_cruise_kph, AM)
prof.checkpoint("State transition")

# compute actuators
Expand Down
2 changes: 1 addition & 1 deletion selfdrive/controls/lib/alertmanager.py
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ class AlertManager(object):

"calibrationInProgressNoEntry": Alert(
"Comma Unavailable",
"Calibration in Progress: ",
"Calibration in Progress",
PT.LOW, None, "chimeDouble", .4, 2., 3.),

"doorOpenNoEntry": Alert(
Expand Down
3 changes: 3 additions & 0 deletions selfdrive/controls/radard.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,10 @@ def radard_thread(gctx=None):
# publish tracks (debugging)
dat = messaging.new_message()
dat.init('liveTracks', len(tracks))
#print "NEW TRACKS"
for cnt, ids in enumerate(tracks.keys()):
#print "%5s %5s %5s %5s" % \
# (ids, round(tracks[ids].dRel, 2), round(tracks[ids].vRel, 2), round(tracks[ids].yRel, 2))
dat.liveTracks[cnt].trackId = ids
dat.liveTracks[cnt].dRel = float(tracks[ids].dRel)
dat.liveTracks[cnt].yRel = float(tracks[ids].yRel)
Expand Down
3 changes: 2 additions & 1 deletion selfdrive/ui/ui.c
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,7 @@ static void ui_init_vision(UIState *s, const VisionStreamBufs back_bufs,

s->scene = (UIScene){
.frontview = 0,
.cal_status = CALIBRATION_CALIBRATED,
.transformed_width = ui_info.transformed_width,
.transformed_height = ui_info.transformed_height,
.front_box_x = ui_info.front_box_x,
Expand Down Expand Up @@ -854,7 +855,7 @@ static void ui_draw_vision(UIState *s) {
}

// Draw calibration progress (if needed)
if (scene->cal_status == CALIBRATION_UNCALIBRATED && scene->cal_perc > 0) {
if (scene->cal_status == CALIBRATION_UNCALIBRATED) {
int rec_width = 1020;
int x_pos = 470;
nvgBeginPath(s->vg);
Expand Down
Binary file modified selfdrive/visiond/visiond
Binary file not shown.

0 comments on commit 4830358

Please sign in to comment.