|
|
@ -1,6 +1,7 @@ |
|
|
|
from common.numpy_fast import interp |
|
|
|
from common.numpy_fast import interp |
|
|
|
import numpy as np |
|
|
|
import numpy as np |
|
|
|
from selfdrive.hardware import EON, TICI |
|
|
|
from selfdrive.hardware import EON, TICI |
|
|
|
|
|
|
|
from selfdrive.swaglog import cloudlog |
|
|
|
from cereal import log |
|
|
|
from cereal import log |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -91,6 +92,10 @@ class LanePlanner: |
|
|
|
|
|
|
|
|
|
|
|
self.d_prob = l_prob + r_prob - l_prob * r_prob |
|
|
|
self.d_prob = l_prob + r_prob - l_prob * r_prob |
|
|
|
lane_path_y = (l_prob * path_from_left_lane + r_prob * path_from_right_lane) / (l_prob + r_prob + 0.0001) |
|
|
|
lane_path_y = (l_prob * path_from_left_lane + r_prob * path_from_right_lane) / (l_prob + r_prob + 0.0001) |
|
|
|
lane_path_y_interp = np.interp(path_t, self.ll_t, lane_path_y) |
|
|
|
safe_idxs = np.isfinite(self.ll_t) |
|
|
|
path_xyz[:,1] = self.d_prob * lane_path_y_interp + (1.0 - self.d_prob) * path_xyz[:,1] |
|
|
|
if safe_idxs[0]: |
|
|
|
|
|
|
|
lane_path_y_interp = np.interp(path_t, self.ll_t[safe_idxs], lane_path_y[safe_idxs]) |
|
|
|
|
|
|
|
path_xyz[:,1] = self.d_prob * lane_path_y_interp + (1.0 - self.d_prob) * path_xyz[:,1] |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
cloudlog.warning("Lateral mpc - NaNs in laneline times, ignoring") |
|
|
|
return path_xyz |
|
|
|
return path_xyz |
|
|
|