예제 #1
0
  def __init__(self, CP, use_lanelines=True, wide_camera=False):
    self.use_lanelines = use_lanelines
    self.LP = LanePlanner(wide_camera)

    self.last_cloudlog_t = 0

    self.setup_mpc()
    self.solution_invalid_cnt = 0

    self.laneless_mode = int(Params().get("LanelessMode", encoding="utf8"))
    self.laneless_mode_status = False
    self.laneless_mode_status_buffer = False

    self.nudgeless_enabled = Params().get_bool("NudgelessLaneChange")
    self.nudgeless_delay = 3.0 # [s] amount of time blinker has to be on before nudgless lane change

    self.lane_change_state = LaneChangeState.off
    self.prev_lane_change_state = self.lane_change_state
    self.preLaneChange_start_t = 0.
    self.lane_change_direction = LaneChangeDirection.none
    self.lane_change_timer = 0.0
    self.lane_change_ll_prob = 1.0
    self.keep_pulse_timer = 0.0
    self.prev_one_blinker = False
    self.desire = log.LateralPlan.Desire.none

    self.path_xyz = np.zeros((TRAJECTORY_SIZE,3))
    self.path_xyz_stds = np.ones((TRAJECTORY_SIZE,3))
    self.plan_yaw = np.zeros((TRAJECTORY_SIZE,))
    self.t_idxs = np.arange(TRAJECTORY_SIZE)
    self.y_pts = np.zeros(TRAJECTORY_SIZE)
    self.d_path_w_lines_xyz = np.zeros((TRAJECTORY_SIZE, 3))
    self.second = 0.0
예제 #2
0
    def __init__(self, CP, use_lanelines=True, wide_camera=False):
        self.use_lanelines = use_lanelines
        self.LP = LanePlanner(wide_camera)

        self.last_cloudlog_t = 0
        self.steer_rate_cost = CP.steerRateCost

        self.setup_mpc()
        self.solution_invalid_cnt = 0
        self.lane_change_state = LaneChangeState.off
        self.lane_change_direction = LaneChangeDirection.none
        self.lane_change_timer = 0.0
        self.lane_change_ll_prob = 1.0
        self.prev_one_blinker = False
        self.desire = log.LateralPlan.Desire.none

        self.path_xyz = np.zeros((TRAJECTORY_SIZE, 3))
        self.path_xyz_stds = np.ones((TRAJECTORY_SIZE, 3))
        self.plan_yaw = np.zeros((TRAJECTORY_SIZE, ))
        self.t_idxs = np.arange(TRAJECTORY_SIZE)
        self.y_pts = np.zeros(TRAJECTORY_SIZE)

        # dp
        self.dp_lc_auto_allowed = False
        self.dp_lc_auto_timer = None
        self.dp_lc_auto_delay = 2.
        self.dp_lc_auto_cont = False
        self.dp_lc_auto_completed = False
예제 #3
0
  def __init__(self, CP):
    self.LP = LanePlanner()

    self.last_cloudlog_t = 0
    self.steer_rate_cost = CP.steerRateCost
    self.steerRatio = CP.steerRatio    
    

    self.setup_mpc()
    self.solution_invalid_cnt = 0

    self.steerRatio_last = 0

    self.params = Params()

    # Lane change 
    self.lane_change_enabled = self.params.get('LaneChangeEnabled') == b'1'
    self.lane_change_auto_delay = self.params.get_OpkrAutoLanechangedelay()  #int( self.params.get('OpkrAutoLanechangedelay') )

    self.lane_change_state = LaneChangeState.off
    self.lane_change_direction = LaneChangeDirection.none
    self.lane_change_run_timer = 0.0
    self.lane_change_wait_timer = 0.0
    self.lane_change_ll_prob = 1.0
    self.prev_one_blinker = False

    # atom
    self.trPATH = trace1.Loger("path")
    self.trLearner = trace1.Loger("Learner")
    self.trpathPlan = trace1.Loger("pathPlan")

    self.atom_timer_cnt = 0
    self.atom_steer_ratio = None
    self.atom_sr_boost_bp = [0., 0.]
    self.atom_sr_boost_range = [0., 0.]
예제 #4
0
    def __init__(self, CP):
        self.LP = LanePlanner()

        self.last_cloudlog_t = 0
        self.steer_rate_cost = CP.steerRateCost

        self.setup_mpc()
        self.solution_invalid_cnt = 0
        self.lane_change_enabled = Params().get('LaneChangeEnabled') == b'1'
        self.lane_change_state = LaneChangeState.off
        self.lane_change_direction = LaneChangeDirection.none
        self.lane_change_timer = 0.0
        self.lane_change_ll_prob = 1.0
        self.prev_one_blinker = False

        # dragonpilot
        self.params = Params()
        self.dragon_auto_lc_enabled = False
        self.dragon_auto_lc_allowed = False
        self.dragon_auto_lc_timer = None
        self.dragon_assisted_lc_min_mph = LANE_CHANGE_SPEED_MIN
        self.dragon_auto_lc_min_mph = 60 * CV.MPH_TO_MS
        self.dragon_auto_lc_delay = 2.
        self.last_ts = 0.
        self.dp_last_modified = None
        self.dp_enable_sr_boost = False

        self.dp_steer_ratio = 0.
        self.dp_sr_boost_bp = None
        self.dp_sr_boost_range = None
예제 #5
0
    def __init__(self, CP, wide_camera=False):
        self.use_lanelines = True
        self.LP = LanePlanner(wide_camera)

        self.last_cloudlog_t = 0
        self.steer_rate_cost = CP.steerRateCost

        self.solution_invalid_cnt = 0
        self.lane_change_state = LaneChangeState.off
        self.lane_change_direction = LaneChangeDirection.none
        self.lane_change_timer = 0.0
        self.lane_change_ll_prob = 1.0
        self.keep_pulse_timer = 0.0
        self.prev_one_blinker = False
        self.desire = log.LateralPlan.Desire.none

        self.path_xyz = np.zeros((TRAJECTORY_SIZE, 3))
        self.path_xyz_stds = np.ones((TRAJECTORY_SIZE, 3))
        self.plan_yaw = np.zeros((TRAJECTORY_SIZE, ))
        self.t_idxs = np.arange(TRAJECTORY_SIZE)
        self.y_pts = np.zeros(TRAJECTORY_SIZE)

        self.lat_mpc = LateralMpc()
        self.reset_mpc(np.zeros(6))

        self.lateralPlan = None
예제 #6
0
  def __init__(self, CP):
    self.LP = LanePlanner()

    self.last_cloudlog_t = 0
    self.steer_rate_cost = CP.steerRateCost

    self.setup_mpc()
    self.solution_invalid_cnt = 0
    self.lane_change_enabled = Params().get('LaneChangeEnabled') == b'1'

    if int(Params().get('OpkrAutoLaneChangeDelay')) == 0:
      self.lane_change_auto_delay = 0.0
    elif int(Params().get('OpkrAutoLaneChangeDelay')) == 1:
      self.lane_change_auto_delay = 0.5
    elif int(Params().get('OpkrAutoLaneChangeDelay')) == 2:
      self.lane_change_auto_delay = 1.0
    elif int(Params().get('OpkrAutoLaneChangeDelay')) == 3:
      self.lane_change_auto_delay = 1.5
    elif int(Params().get('OpkrAutoLaneChangeDelay')) == 4:
      self.lane_change_auto_delay = 2.0
    self.trRapidCurv = trace1.Loger("079_OPKR_RapidCurv")   
    self.lane_change_wait_timer = 0.0
    self.lane_change_state = LaneChangeState.off
    self.lane_change_direction = LaneChangeDirection.none
    self.lane_change_timer = 0.0
    self.lane_change_ll_prob = 1.0
    self.prev_one_blinker = False

    self.mpc_frame = 0

    self.lane_change_adjust = [0.2, 1.3]
    self.lane_change_adjust_vel = [16, 30]
    self.lane_change_adjust_new = 0.0

    self.new_steerRatio = CP.steerRatio
예제 #7
0
  def __init__(self, CP):
    self.LP = LanePlanner()

    self.last_cloudlog_t = 0
    self.steer_rate_cost = CP.steerRateCost

    self.setup_mpc()
    self.solution_invalid_cnt = 0
    self.lane_change_enabled = Params().get('LaneChangeEnabled') == b'1'
    self.lane_change_state = LaneChangeState.off
    self.lane_change_direction = LaneChangeDirection.none
    self.lane_change_timer = 0.0
    self.lane_change_ll_prob = 1.0
    self.prev_one_blinker = False
    self.desire = log.LateralPlan.Desire.none

    self.path_xyz = np.zeros((TRAJECTORY_SIZE,3))
    self.path_xyz_stds = np.ones((TRAJECTORY_SIZE,3))
    self.plan_yaw = np.zeros((TRAJECTORY_SIZE,))
    self.t_idxs = np.arange(TRAJECTORY_SIZE)
    self.y_pts = np.zeros(TRAJECTORY_SIZE)

    self.kegman = kegman_conf(CP)
    self.mpc_frame = 0
    self.model_laneless = "0"
예제 #8
0
    def __init__(self, CP):
        self.LP = LanePlanner()

        self.last_cloudlog_t = 0

        self.setup_mpc(CP.steerRateCost)
        self.solution_invalid_cnt = 0
        self.path_offset_i = 0.0
        self.mpc_frame = 0
        self.sR_delay_counter = 0
        self.steerRatio_new = 0.0
        self.sR_time = 1

        kegman = kegman_conf(CP)
        if kegman.conf['steerRatio'] == "-1":
            self.steerRatio = CP.steerRatio
        else:
            self.steerRatio = float(kegman.conf['steerRatio'])

        if kegman.conf['steerRateCost'] == "-1":
            self.steerRateCost = CP.steerRateCost
        else:
            self.steerRateCost = float(kegman.conf['steerRateCost'])

        self.sR = [
            float(kegman.conf['steerRatio']),
            (float(kegman.conf['steerRatio']) + float(kegman.conf['sR_boost']))
        ]
        self.sRBP = [
            float(kegman.conf['sR_BP0']),
            float(kegman.conf['sR_BP1'])
        ]

        self.steerRateCost_prev = self.steerRateCost
        self.setup_mpc(self.steerRateCost)
예제 #9
0
    def __init__(self, CP):
        self.LP = LanePlanner()

        self.last_cloudlog_t = 0
        self.steer_rate_cost = CP.steerRateCost

        self.setup_mpc()
        self.solution_invalid_cnt = 0
        self.lane_change_enabled = Params().get('LaneChangeEnabled') == b'1'

        if int(Params().get('OpkrAutoLanechangedelay')) == 0:
            self.lane_change_auto_delay = 0.0
        elif int(Params().get('OpkrAutoLanechangedelay')) == 1:
            self.lane_change_auto_delay = 0.5
        elif int(Params().get('OpkrAutoLanechangedelay')) == 2:
            self.lane_change_auto_delay = 1.0
        elif int(Params().get('OpkrAutoLanechangedelay')) == 3:
            self.lane_change_auto_delay = 1.5
        elif int(Params().get('OpkrAutoLanechangedelay')) == 4:
            self.lane_change_auto_delay = 2.0

        self.lane_change_wait_timer = 0.0
        self.lane_change_state = LaneChangeState.off
        self.lane_change_direction = LaneChangeDirection.none
        self.lane_change_timer = 0.0
        self.lane_change_ll_prob = 1.0
        self.prev_one_blinker = False
예제 #10
0
  def __init__(self, CP, use_lanelines=True, wide_camera=False):
    self.use_lanelines = use_lanelines
    self.LP = LanePlanner(wide_camera)

    self.last_cloudlog_t = 0

    self.setup_mpc()
    self.solution_invalid_cnt = 0

    self.lane_change_enabled = True
    self.auto_lane_change_enabled = Params().get_bool('AutoLaneChangeEnabled')
    self.lane_change_state = LaneChangeState.off
    self.lane_change_direction = LaneChangeDirection.none
    self.lane_change_timer = 0.0
    self.lane_change_ll_prob = 1.0
    self.prev_one_blinker = False
    self.desire = log.LateralPlan.Desire.none

    self.path_xyz = np.zeros((TRAJECTORY_SIZE,3))
    self.path_xyz_stds = np.ones((TRAJECTORY_SIZE,3))
    self.plan_yaw = np.zeros((TRAJECTORY_SIZE,))
    self.t_idxs = np.arange(TRAJECTORY_SIZE)
    self.y_pts = np.zeros(TRAJECTORY_SIZE)

    self.auto_lane_change_timer = 0.0
    self.prev_torque_applied = False
    self.steerRatio = 0.0
예제 #11
0
    def __init__(self, CP, use_lanelines=True, wide_camera=False):
        self.use_lanelines = use_lanelines
        self.LP = LanePlanner(wide_camera)

        self.last_cloudlog_t = 0
        self.steer_rate_cost = CP.steerRateCost

        self.setup_mpc()
        self.solution_invalid_cnt = 0

        self.use_lanelines = False
        self.laneless_mode = 0
        self.laneless_mode_status = False
        self.laneless_mode_status_buffer = False
        self.laneless_mode_at_stopping = False
        self.laneless_mode_at_stopping_timer = 0

        if int(Params().get("OpkrAutoLaneChangeDelay", encoding="utf8")) == 0:
            self.lane_change_auto_delay = 0.0
        elif int(Params().get("OpkrAutoLaneChangeDelay",
                              encoding="utf8")) == 1:
            self.lane_change_auto_delay = 0.2
        elif int(Params().get("OpkrAutoLaneChangeDelay",
                              encoding="utf8")) == 2:
            self.lane_change_auto_delay = 0.5
        elif int(Params().get("OpkrAutoLaneChangeDelay",
                              encoding="utf8")) == 3:
            self.lane_change_auto_delay = 1.0
        elif int(Params().get("OpkrAutoLaneChangeDelay",
                              encoding="utf8")) == 4:
            self.lane_change_auto_delay = 1.5
        elif int(Params().get("OpkrAutoLaneChangeDelay",
                              encoding="utf8")) == 5:
            self.lane_change_auto_delay = 2.0

        self.lane_change_wait_timer = 0.0
        self.lane_change_state = LaneChangeState.off
        self.lane_change_direction = LaneChangeDirection.none
        self.lane_change_timer = 0.0
        self.lane_change_ll_prob = 1.0
        self.prev_one_blinker = False
        self.desire = log.LateralPlan.Desire.none

        self.path_xyz = np.zeros((TRAJECTORY_SIZE, 3))
        self.path_xyz_stds = np.ones((TRAJECTORY_SIZE, 3))
        self.plan_yaw = np.zeros((TRAJECTORY_SIZE, ))
        self.t_idxs = np.arange(TRAJECTORY_SIZE)
        self.y_pts = np.zeros(TRAJECTORY_SIZE)

        self.lane_change_adjust = [0.11, 0.18, 0.75, 1.25]
        self.lane_change_adjust_vel = [8.3, 16, 22, 30]
        self.lane_change_adjust_new = 0.0

        self.standstill_elapsed_time = 0.0
        self.v_cruise_kph = 0
        self.stand_still = False
        self.steer_actuator_delay_to_send = 0.0

        self.output_scale = 0.0
예제 #12
0
    def __init__(self, CP):
        self.LP = LanePlanner(shouldUseAlca=True)

        self.last_cloudlog_t = 0

        self.setup_mpc(CP.steerRateCost)
        self.solution_invalid_cnt = 0
        self.path_offset_i = 0.0
예제 #13
0
  def __init__(self, CP):
    self.LP = LanePlanner()

    self.last_cloudlog_t = 0

    self.setup_mpc(CP.steerRateCost)
    self.solution_invalid_cnt = 0
    self.frame = 0
    self.curvature_offset = CurvatureLearner(debug=False)
예제 #14
0
    def __init__(self, CP):
        self.LP = LanePlanner()

        self.last_cloudlog_t = 0
        if not travis:
            self.latControl_sock = messaging.pub_sock(
                service_list['latControl'].port)
        self.setup_mpc(CP.steerRateCost)
        self.solution_invalid_cnt = 0
        self.path_offset_i = 0.0
예제 #15
0
  def __init__(self, CP):
    self.LP = LanePlanner(shouldUseAlca=True)

    self.last_cloudlog_t = 0

    self.plan = messaging.pub_sock(service_list['pathPlan'].port)
    self.livempc = messaging.pub_sock(service_list['liveMpc'].port)

    self.setup_mpc(CP.steerRateCost)
    self.solution_invalid_cnt = 0
    self.path_offset_i = 0.0
예제 #16
0
    def __init__(self, CP):
        self.LP = LanePlanner()

        self.last_cloudlog_t = 0
        self.steer_rate_cost = CP.steerRateCost

        self.setup_mpc()
        self.solution_invalid_cnt = 0
        self.path_offset_i = 0.0
        self.lane_change_state = LaneChangeState.off
        self.lane_change_timer = 0.0
        self.prev_one_blinker = False
예제 #17
0
    def __init__(self, CP):
        self.LP = LanePlanner()

        self.last_cloudlog_t = 0
        self.steer_rate_cost = CP.steerRateCost

        self.setup_mpc()
        self.solution_invalid_cnt = 0
        self.frame = 0
        self.curvature_offset = CurvatureLearner(debug=False)
        self.lane_change_state = LaneChangeState.off
        self.lane_change_timer = 0.0
        self.prev_one_blinker = False
예제 #18
0
    def __init__(self, CP):
        self.LP = LanePlanner()

        self.last_cloudlog_t = 0
        self.steer_rate_cost = CP.steerRateCost

        self.setup_mpc()
        self.solution_invalid_cnt = 0
        self.lane_change_enabled = Params().get('LaneChangeEnabled') == b'1'
        self.lane_change_state = LaneChangeState.off
        self.lane_change_direction = LaneChangeDirection.none
        self.lane_change_timer = 0.0
        self.prev_one_blinker = False
예제 #19
0
    def __init__(self, CP):
        self.LP = LanePlanner()

        self.last_cloudlog_t = 0
        self.steer_rate_cost = CP.steerRateCost

        self.setup_mpc()
        self.solution_invalid_cnt = 0
        self.lane_change_enabled = Params().get('LaneChangeEnabled') == b'1'

        if int(Params().get('OpkrAutoLaneChangeDelay')) == 0:
            self.lane_change_auto_delay = 0.0
        elif int(Params().get('OpkrAutoLaneChangeDelay')) == 1:
            self.lane_change_auto_delay = 0.2
        elif int(Params().get('OpkrAutoLaneChangeDelay')) == 2:
            self.lane_change_auto_delay = 0.5
        elif int(Params().get('OpkrAutoLaneChangeDelay')) == 3:
            self.lane_change_auto_delay = 1.0
        elif int(Params().get('OpkrAutoLaneChangeDelay')) == 4:
            self.lane_change_auto_delay = 1.5
        elif int(Params().get('OpkrAutoLaneChangeDelay')) == 5:
            self.lane_change_auto_delay = 2.0

        self.lane_change_wait_timer = 0.0
        self.lane_change_state = LaneChangeState.off
        self.lane_change_direction = LaneChangeDirection.none
        self.lane_change_timer = 0.0
        self.lane_change_ll_prob = 1.0
        self.prev_one_blinker = False

        self.mpc_frame = 0

        self.lane_change_adjust = [0.12, 0.19, 0.9, 1.4]
        self.lane_change_adjust_vel = [8.3, 16, 22, 30]
        self.lane_change_adjust_new = 0.0

        self.angle_differ_range = [0, 45]
        self.steerRatio_range = [CP.steerRatio, 17.5]
        self.new_steerRatio = CP.steerRatio
        self.new_steerRatio_prev = CP.steerRatio

        self.new_steer_rate_cost = CP.steerRateCost
        #self.steer_rate_cost_range = [CP.steerRateCost, 0.1]

        self.steer_actuator_delay_range = [0.1, CP.steerActuatorDelay]
        self.steer_actuator_delay_vel = [3, 13]
        self.new_steer_actuator_delay = CP.steerActuatorDelay

        self.angle_offset_select = int(Params().get('OpkrAngleOffsetSelect'))

        self.standstill_elapsed_time = 0.0
예제 #20
0
    def __init__(self, CP):
        self.LP = LanePlanner()

        self.last_cloudlog_t = 0
        self.steer_rate_cost = CP.steerRateCost

        self.setup_mpc()
        self.solution_invalid_cnt = 0
        self.path_offset_i = 0.0

        self.mpc_frame = 0
        self.sR_delay_counter = 0
        self.steerRatio_new = 0.0
        self.sR_time = 1

        kegman = KegmanConf(CP)
        if kegman.conf['steerRatio'] == "-1":
            self.steerRatio = CP.steerRatio
        else:
            self.steerRatio = float(kegman.conf['steerRatio'])

        if kegman.conf['steerRateCost'] == "-1":
            self.steerRateCost = CP.steerRateCost
        else:
            self.steerRateCost = float(kegman.conf['steerRateCost'])

        if kegman.conf['steerActuatorDelay'] == "-1":
            self.steerActuatorDelay = CP.steerActuatorDelay
        else:
            self.steerActuatorDelay = float(kegman.conf['steerActuatorDelay'])

        self.sR = [
            float(kegman.conf['steerRatio']),
            (float(kegman.conf['steerRatio']) + float(kegman.conf['sR_boost']))
        ]
        self.sRBP = [
            float(kegman.conf['sR_BP0']),
            float(kegman.conf['sR_BP1'])
        ]

        self.steerRateCost_prev = self.steerRateCost
        self.setup_mpc()

        self.alc_nudge_less = bool(int(kegman.conf['ALCnudgeLess']))
        self.alc_min_speed = float(kegman.conf['ALCminSpeed'])
        self.alc_timer = float(kegman.conf['ALCtimer'])

        self.lane_change_state = LaneChangeState.off
        self.lane_change_timer = 0.0
        self.pre_lane_change_timer = 0.0
        self.prev_one_blinker = False
예제 #21
0
    def __init__(self, CP):
        self.LP = LanePlanner()

        self.last_cloudlog_t = 0
        self.steer_rate_cost = CP.steerRateCost

        self.setup_mpc()
        self.solution_invalid_cnt = 0
        self.lane_change_enabled = Params().get('LaneChangeEnabled') == b'1'
        self.path_offset_i = 0.0

        self.mpc_frame = 0
        self.sR_delay_counter = 0
        self.steerRatio_new = 0.0
        self.sR_time = 1

        kegman = kegman_conf(CP)
        if kegman.conf['steerRatio'] == "-1":
            self.steerRatio = CP.steerRatio
        else:
            self.steerRatio = float(kegman.conf['steerRatio'])

        if kegman.conf['steerRateCost'] == "-1":
            self.steerRateCost = CP.steerRateCost
        else:
            self.steerRateCost = float(kegman.conf['steerRateCost'])

        self.sR = [
            float(kegman.conf['steerRatio']),
            (float(kegman.conf['steerRatio']) + float(kegman.conf['sR_boost']))
        ]
        self.sRBP = [
            float(kegman.conf['sR_BP0']),
            float(kegman.conf['sR_BP1'])
        ]

        self.steerRateCost_prev = self.steerRateCost
        self.setup_mpc()

        self.alc_nudge_less = bool(int(kegman.conf['ALCnudgeLess']))
        self.alc_min_speed = float(kegman.conf['ALCminSpeed'])
        self.alc_timer = float(kegman.conf['ALCtimer'])

        self.lane_change_state = LaneChangeState.off
        self.lane_change_direction = LaneChangeDirection.none
        self.lane_change_timer = 0.0
        self.lane_change_ll_prob = 1.0
        self.prev_one_blinker = False
        self.sR_delay_counter = 0
        self.v_ego_ed = 0.0
예제 #22
0
    def __init__(self, use_lanelines=True, wide_camera=False):
        self.use_lanelines = use_lanelines
        self.LP = LanePlanner(wide_camera)
        self.DH = DesireHelper()

        self.last_cloudlog_t = 0
        self.solution_invalid_cnt = 0

        self.path_xyz = np.zeros((TRAJECTORY_SIZE, 3))
        self.path_xyz_stds = np.ones((TRAJECTORY_SIZE, 3))
        self.plan_yaw = np.zeros((TRAJECTORY_SIZE, ))
        self.t_idxs = np.arange(TRAJECTORY_SIZE)
        self.y_pts = np.zeros(TRAJECTORY_SIZE)

        self.lat_mpc = LateralMpc()
        self.reset_mpc(np.zeros(4))
예제 #23
0
  def __init__(self, CP):
    self.LP = LanePlanner()

    self.last_cloudlog_t = 0
    self.steer_rate_cost = CP.steerRateCost

    self.setup_mpc()
    self.solution_invalid_cnt = 0
    self.lane_change_enabled = Params().get('LaneChangeEnabled') == b'1'

    if int(Params().get('OpkrAutoLaneChangeDelay')) == 0:
      self.lane_change_auto_delay = 0.0
    elif int(Params().get('OpkrAutoLaneChangeDelay')) == 1:
      self.lane_change_auto_delay = 0.2
    elif int(Params().get('OpkrAutoLaneChangeDelay')) == 2:
      self.lane_change_auto_delay = 0.5
    elif int(Params().get('OpkrAutoLaneChangeDelay')) == 3:
      self.lane_change_auto_delay = 1.0
    elif int(Params().get('OpkrAutoLaneChangeDelay')) == 4:
      self.lane_change_auto_delay = 1.5
    elif int(Params().get('OpkrAutoLaneChangeDelay')) == 5:
      self.lane_change_auto_delay = 2.0

    self.lane_change_wait_timer = 0.0
    self.lane_change_state = LaneChangeState.off
    self.lane_change_direction = LaneChangeDirection.none
    self.lane_change_timer = 0.0
    self.lane_change_ll_prob = 1.0
    self.prev_one_blinker = False
    self.desire = log.LateralPlan.Desire.none

    self.path_xyz = np.zeros((TRAJECTORY_SIZE,3))
    self.plan_yaw = np.zeros((TRAJECTORY_SIZE,))
    self.t_idxs = np.arange(TRAJECTORY_SIZE)
    self.y_pts = np.zeros(TRAJECTORY_SIZE)

    self.lane_change_adjust = [0.12, 0.19, 0.9, 1.4]
    self.lane_change_adjust_vel = [8.3, 16, 22, 30]
    self.lane_change_adjust_new = 0.0

    self.new_steer_actuator_delay = CP.steerActuatorDelay

    self.standstill_elapsed_time = 0.0
    self.v_cruise_kph = 0
    self.stand_still = False
    
    self.output_scale = 0.0
예제 #24
0
    def __init__(self, CP):
        self.LP = LanePlanner()

        self.last_cloudlog_t = 0
        self.steer_rate_cost = CP.steerRateCost

        self.setup_mpc()
        self.solution_invalid_cnt = 0
        self.lane_change_enabled = Params().get('LaneChangeEnabled') == b'1'
        self.path_offset_i = 0.0

        self.mpc_frame = 0
        self.sR_delay_counter = 0
        self.steerRatio_new = 0.0
        self.sR_time = 1

        kegman = kegman_conf(CP)
        if kegman.conf['steerRatio'] == "-1":
            self.steerRatio = CP.steerRatio
        else:
            self.steerRatio = float(kegman.conf['steerRatio'])

        if kegman.conf['steerRateCost'] == "-1":
            self.steerRateCost = CP.steerRateCost
        else:
            self.steerRateCost = float(kegman.conf['steerRateCost'])

        self.sR = [
            float(kegman.conf['steerRatio']),
            (float(kegman.conf['steerRatio']) + float(kegman.conf['sR_boost']))
        ]
        self.sRBP = [
            float(kegman.conf['sR_BP0']),
            float(kegman.conf['sR_BP1'])
        ]

        self.steerRateCost_prev = self.steerRateCost
        self.setup_mpc()

        self.lane_change_state = LaneChangeState.off
        self.lane_change_direction = LaneChangeDirection.none
        self.lane_change_timer = 0.0
        self.prev_one_blinker = False
        self.pre_auto_LCA_timer = 0.0
        self.lane_change_BSM = LaneChangeBSM.off
        self.prev_torque_applied = False
예제 #25
0
    def __init__(self, CP):
        self.LP = LanePlanner()

        self.last_cloudlog_t = 0
        self.steer_rate_cost = CP.steerRateCost

        self.setup_mpc()
        self.solution_invalid_cnt = 0
        self.lane_change_enabled = Params().get('LaneChangeEnabled') == b'1'
        self.lane_change_state = LaneChangeState.off
        self.lane_change_direction = LaneChangeDirection.none
        self.lane_change_timer = 0.0
        self.lane_change_ll_prob = 1.0
        self.prev_one_blinker = False

        self.path_xyz = np.zeros((TRAJECTORY_SIZE, 3))
        self.plan_yaw = np.zeros((TRAJECTORY_SIZE, ))
        self.t_idxs = np.arange(TRAJECTORY_SIZE)
예제 #26
0
  def __init__(self, CP, use_lanelines=True, wide_camera=False):
    self.use_lanelines = use_lanelines
    self.LP = LanePlanner(wide_camera)

    self.last_cloudlog_t = 0
    self.steer_rate_cost = CP.steerRateCost

    self.setup_mpc()
    self.solution_invalid_cnt = 0

    self.laneless_mode = int(Params().get("LanelessMode", encoding="utf8"))
    self.laneless_mode_status = False
    self.laneless_mode_status_buffer = False

    self.lane_change_delay = int(Params().get("OpkrAutoLaneChangeDelay", encoding="utf8"))
    self.lane_change_auto_delay = 0.0 if self.lane_change_delay == 0 else 0.2 if self.lane_change_delay == 1 else 0.5 if self.lane_change_delay == 2 \
     else 1.0 if self.lane_change_delay == 3 else 1.5 if self.lane_change_delay == 4 else 2.0

    self.lane_change_wait_timer = 0.0
    self.lane_change_state = LaneChangeState.off
    self.lane_change_direction = LaneChangeDirection.none
    self.lane_change_timer = 0.0
    self.lane_change_ll_prob = 1.0
    self.prev_one_blinker = False
    self.desire = log.LateralPlan.Desire.none

    self.path_xyz = np.zeros((TRAJECTORY_SIZE,3))
    self.path_xyz_stds = np.ones((TRAJECTORY_SIZE,3))
    self.plan_yaw = np.zeros((TRAJECTORY_SIZE,))
    self.t_idxs = np.arange(TRAJECTORY_SIZE)
    self.y_pts = np.zeros(TRAJECTORY_SIZE)

    self.lane_change_adjust = [float(Decimal(Params().get("LCTimingFactor30", encoding="utf8")) * Decimal('0.01')), float(Decimal(Params().get("LCTimingFactor60", encoding="utf8")) * Decimal('0.01')),
     float(Decimal(Params().get("LCTimingFactor80", encoding="utf8")) * Decimal('0.01')), float(Decimal(Params().get("LCTimingFactor110", encoding="utf8")) * Decimal('0.01'))]
    self.lane_change_adjust_vel = [30*CV.KPH_TO_MS, 60*CV.KPH_TO_MS, 80*CV.KPH_TO_MS, 110*CV.KPH_TO_MS]
    self.lane_change_adjust_new = 0.0

    self.standstill_elapsed_time = 0.0
    self.v_cruise_kph = 0
    self.stand_still = False
    
    self.output_scale = 0.0
    self.second = 0.0
예제 #27
0
    def __init__(self, CP):
        self.LP = LanePlanner()

        self.last_cloudlog_t = 0
        self.steer_rate_cost = CP.steerRateCost

        self.setup_mpc()
        self.solution_invalid_cnt = 0
        self.lane_change_enabled = Params().get('LaneChangeEnabled') == b'1'
        self.lane_change_state = LaneChangeState.off
        self.lane_change_direction = LaneChangeDirection.none
        self.lane_change_timer = 0.0
        self.lane_change_ll_prob = 1.0
        self.prev_one_blinker = False

        self.op_params = opParams()
        self.alca_nudge_required = self.op_params.get('alca_nudge_required')
        self.alca_min_speed = self.op_params.get(
            'alca_min_speed') * CV.MPH_TO_MS
예제 #28
0
    def __init__(self, CP):
        self.LP = LanePlanner()

        self.last_cloudlog_t = 0
        self.steer_rate_cost = CP.steerRateCost

        self.setup_mpc()
        self.solution_invalid_cnt = 0
        self.lane_change_state = LaneChangeState.off
        self.lane_change_direction = LaneChangeDirection.none
        self.lane_change_timer = 0.0
        self.lane_change_ll_prob = 1.0
        self.prev_one_blinker = False
        self.desire = log.LateralPlan.Desire.none

        self.path_xyz = np.zeros((TRAJECTORY_SIZE, 3))
        self.plan_yaw = np.zeros((TRAJECTORY_SIZE, ))
        self.t_idxs = np.arange(TRAJECTORY_SIZE)
        self.y_pts = np.zeros(TRAJECTORY_SIZE)
예제 #29
0
    def __init__(self, CP):
        self.LP = LanePlanner()

        self.last_cloudlog_t = 0
        self.steer_rate_cost = CP.steerRateCost

        self.setup_mpc()
        self.solution_invalid_cnt = 0
        self.lane_change_enabled = Params().get('LaneChangeEnabled') == b'1'
        self.lane_change_state = LaneChangeState.off
        self.lane_change_direction = LaneChangeDirection.none
        self.lane_change_timer = 0.0
        self.lane_change_ll_prob = 1.0
        self.prev_one_blinker = False
        self.pre_auto_LCA_timer = 0.0
        self.lane_change_BSM = LaneChangeBSM.off
        self.prev_torque_applied = False

        self.tune = nTune(CP)
예제 #30
0
  def __init__(self, CP):
    self.LP = LanePlanner()

    self.last_cloudlog_t = 0
    #self.steer_rate_cost = CP.steerRateCost
    self.steer_rate_cost_prev = ntune_get('steerRateCost')

    self.setup_mpc()
    self.solution_invalid_cnt = 0
    self.lane_change_enabled = Params().get('LaneChangeEnabled') == b'1'
    self.auto_lane_change_enabled = Params().get('AutoLaneChangeEnabled') == b'1'
    self.lane_change_state = LaneChangeState.off
    self.lane_change_direction = LaneChangeDirection.none
    self.lane_change_timer = 0.0
    self.lane_change_ll_prob = 1.0
    self.prev_one_blinker = False
    self.auto_lane_change_timer = 0.0
    self.prev_torque_applied = False

    self.use_dynamic_sr = CP.carName in [CAR.GENESIS_G80]