FrogPilot setup - Python imports
This commit is contained in:
parent
851f082705
commit
70b4cd4f48
@ -6,6 +6,7 @@ from openpilot.selfdrive.car.chrysler.values import CAR, RAM_HD, RAM_DT, RAM_CAR
|
|||||||
from openpilot.selfdrive.car.interfaces import CarInterfaceBase
|
from openpilot.selfdrive.car.interfaces import CarInterfaceBase
|
||||||
|
|
||||||
ButtonType = car.CarState.ButtonEvent.Type
|
ButtonType = car.CarState.ButtonEvent.Type
|
||||||
|
FrogPilotButtonType = custom.FrogPilotCarState.ButtonEvent.Type
|
||||||
|
|
||||||
|
|
||||||
class CarInterface(CarInterfaceBase):
|
class CarInterface(CarInterfaceBase):
|
||||||
|
@ -9,6 +9,7 @@ from openpilot.selfdrive.car.interfaces import CarInterfaceBase
|
|||||||
ButtonType = car.CarState.ButtonEvent.Type
|
ButtonType = car.CarState.ButtonEvent.Type
|
||||||
TransmissionType = car.CarParams.TransmissionType
|
TransmissionType = car.CarParams.TransmissionType
|
||||||
GearShifter = car.CarState.GearShifter
|
GearShifter = car.CarState.GearShifter
|
||||||
|
FrogPilotButtonType = custom.FrogPilotCarState.ButtonEvent.Type
|
||||||
|
|
||||||
|
|
||||||
class CarInterface(CarInterfaceBase):
|
class CarInterface(CarInterfaceBase):
|
||||||
|
@ -19,6 +19,7 @@ TransmissionType = car.CarParams.TransmissionType
|
|||||||
NetworkLocation = car.CarParams.NetworkLocation
|
NetworkLocation = car.CarParams.NetworkLocation
|
||||||
BUTTONS_DICT = {CruiseButtons.RES_ACCEL: ButtonType.accelCruise, CruiseButtons.DECEL_SET: ButtonType.decelCruise,
|
BUTTONS_DICT = {CruiseButtons.RES_ACCEL: ButtonType.accelCruise, CruiseButtons.DECEL_SET: ButtonType.decelCruise,
|
||||||
CruiseButtons.MAIN: ButtonType.altButton3, CruiseButtons.CANCEL: ButtonType.cancel}
|
CruiseButtons.MAIN: ButtonType.altButton3, CruiseButtons.CANCEL: ButtonType.cancel}
|
||||||
|
FrogPilotButtonType = custom.FrogPilotCarState.ButtonEvent.Type
|
||||||
|
|
||||||
PEDAL_MSG = 0x201
|
PEDAL_MSG = 0x201
|
||||||
CAM_MSG = 0x320 # AEBCmd
|
CAM_MSG = 0x320 # AEBCmd
|
||||||
|
@ -17,6 +17,7 @@ TransmissionType = car.CarParams.TransmissionType
|
|||||||
BUTTONS_DICT = {CruiseButtons.RES_ACCEL: ButtonType.accelCruise, CruiseButtons.DECEL_SET: ButtonType.decelCruise,
|
BUTTONS_DICT = {CruiseButtons.RES_ACCEL: ButtonType.accelCruise, CruiseButtons.DECEL_SET: ButtonType.decelCruise,
|
||||||
CruiseButtons.MAIN: ButtonType.altButton3, CruiseButtons.CANCEL: ButtonType.cancel}
|
CruiseButtons.MAIN: ButtonType.altButton3, CruiseButtons.CANCEL: ButtonType.cancel}
|
||||||
SETTINGS_BUTTONS_DICT = {CruiseSettings.DISTANCE: ButtonType.gapAdjustCruise, CruiseSettings.LKAS: ButtonType.altButton1}
|
SETTINGS_BUTTONS_DICT = {CruiseSettings.DISTANCE: ButtonType.gapAdjustCruise, CruiseSettings.LKAS: ButtonType.altButton1}
|
||||||
|
FrogPilotButtonType = custom.FrogPilotCarState.ButtonEvent.Type
|
||||||
|
|
||||||
|
|
||||||
class CarInterface(CarInterfaceBase):
|
class CarInterface(CarInterfaceBase):
|
||||||
|
@ -15,6 +15,7 @@ EventName = car.CarEvent.EventName
|
|||||||
ENABLE_BUTTONS = (Buttons.RES_ACCEL, Buttons.SET_DECEL, Buttons.CANCEL)
|
ENABLE_BUTTONS = (Buttons.RES_ACCEL, Buttons.SET_DECEL, Buttons.CANCEL)
|
||||||
BUTTONS_DICT = {Buttons.RES_ACCEL: ButtonType.accelCruise, Buttons.SET_DECEL: ButtonType.decelCruise,
|
BUTTONS_DICT = {Buttons.RES_ACCEL: ButtonType.accelCruise, Buttons.SET_DECEL: ButtonType.decelCruise,
|
||||||
Buttons.GAP_DIST: ButtonType.gapAdjustCruise, Buttons.CANCEL: ButtonType.cancel}
|
Buttons.GAP_DIST: ButtonType.gapAdjustCruise, Buttons.CANCEL: ButtonType.cancel}
|
||||||
|
FrogPilotButtonType = custom.FrogPilotCarState.ButtonEvent.Type
|
||||||
|
|
||||||
|
|
||||||
class CarInterface(CarInterfaceBase):
|
class CarInterface(CarInterfaceBase):
|
||||||
|
@ -15,7 +15,7 @@ from openpilot.common.numpy_fast import clip
|
|||||||
from openpilot.common.realtime import DT_CTRL
|
from openpilot.common.realtime import DT_CTRL
|
||||||
from openpilot.selfdrive.car import apply_hysteresis, gen_empty_fingerprint, scale_rot_inertia, scale_tire_stiffness, STD_CARGO_KG
|
from openpilot.selfdrive.car import apply_hysteresis, gen_empty_fingerprint, scale_rot_inertia, scale_tire_stiffness, STD_CARGO_KG
|
||||||
from openpilot.selfdrive.car.values import PLATFORMS
|
from openpilot.selfdrive.car.values import PLATFORMS
|
||||||
from openpilot.selfdrive.controls.lib.drive_helpers import V_CRUISE_MAX, get_friction
|
from openpilot.selfdrive.controls.lib.drive_helpers import CRUISE_LONG_PRESS, V_CRUISE_MAX, get_friction
|
||||||
from openpilot.selfdrive.controls.lib.events import Events
|
from openpilot.selfdrive.controls.lib.events import Events
|
||||||
from openpilot.selfdrive.controls.lib.vehicle_model import VehicleModel
|
from openpilot.selfdrive.controls.lib.vehicle_model import VehicleModel
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ from openpilot.selfdrive.car.interfaces import CarInterfaceBase
|
|||||||
|
|
||||||
ButtonType = car.CarState.ButtonEvent.Type
|
ButtonType = car.CarState.ButtonEvent.Type
|
||||||
EventName = car.CarEvent.EventName
|
EventName = car.CarEvent.EventName
|
||||||
|
FrogPilotButtonType = custom.FrogPilotCarState.ButtonEvent.Type
|
||||||
|
|
||||||
class CarInterface(CarInterfaceBase):
|
class CarInterface(CarInterfaceBase):
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ from openpilot.selfdrive.car.interfaces import CarInterfaceBase
|
|||||||
from openpilot.selfdrive.car.nissan.values import CAR
|
from openpilot.selfdrive.car.nissan.values import CAR
|
||||||
|
|
||||||
ButtonType = car.CarState.ButtonEvent.Type
|
ButtonType = car.CarState.ButtonEvent.Type
|
||||||
|
FrogPilotButtonType = custom.FrogPilotCarState.ButtonEvent.Type
|
||||||
|
|
||||||
|
|
||||||
class CarInterface(CarInterfaceBase):
|
class CarInterface(CarInterfaceBase):
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
from cereal import car, custom
|
from cereal import car, custom
|
||||||
from panda import Panda
|
from panda import Panda
|
||||||
from openpilot.selfdrive.car import get_safety_config
|
from openpilot.selfdrive.car import create_button_events, get_safety_config
|
||||||
from openpilot.selfdrive.car.disable_ecu import disable_ecu
|
from openpilot.selfdrive.car.disable_ecu import disable_ecu
|
||||||
from openpilot.selfdrive.car.interfaces import CarInterfaceBase
|
from openpilot.selfdrive.car.interfaces import CarInterfaceBase
|
||||||
from openpilot.selfdrive.car.subaru.values import CAR, GLOBAL_ES_ADDR, SubaruFlags
|
from openpilot.selfdrive.car.subaru.values import CAR, GLOBAL_ES_ADDR, SubaruFlags
|
||||||
|
|
||||||
|
FrogPilotButtonType = custom.FrogPilotCarState.ButtonEvent.Type
|
||||||
|
|
||||||
class CarInterface(CarInterfaceBase):
|
class CarInterface(CarInterfaceBase):
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ from openpilot.selfdrive.car.interfaces import CarInterfaceBase
|
|||||||
ButtonType = car.CarState.ButtonEvent.Type
|
ButtonType = car.CarState.ButtonEvent.Type
|
||||||
EventName = car.CarEvent.EventName
|
EventName = car.CarEvent.EventName
|
||||||
SteerControlType = car.CarParams.SteerControlType
|
SteerControlType = car.CarParams.SteerControlType
|
||||||
|
FrogPilotButtonType = custom.FrogPilotCarState.ButtonEvent.Type
|
||||||
|
|
||||||
|
|
||||||
class CarInterface(CarInterfaceBase):
|
class CarInterface(CarInterfaceBase):
|
||||||
|
@ -32,6 +32,9 @@ from openpilot.selfdrive.controls.lib.vehicle_model import VehicleModel
|
|||||||
from openpilot.system.hardware import HARDWARE
|
from openpilot.system.hardware import HARDWARE
|
||||||
from openpilot.system.version import get_short_branch
|
from openpilot.system.version import get_short_branch
|
||||||
|
|
||||||
|
from openpilot.selfdrive.frogpilot.controls.lib.frogpilot_functions import MovingAverageCalculator
|
||||||
|
from openpilot.selfdrive.frogpilot.controls.lib.frogpilot_variables import CRUISING_SPEED, PROBABILITY
|
||||||
|
|
||||||
SOFT_DISABLE_TIME = 3 # seconds
|
SOFT_DISABLE_TIME = 3 # seconds
|
||||||
LDW_MIN_SPEED = 31 * CV.MPH_TO_MS
|
LDW_MIN_SPEED = 31 * CV.MPH_TO_MS
|
||||||
LANE_DEPARTURE_THRESHOLD = 0.1
|
LANE_DEPARTURE_THRESHOLD = 0.1
|
||||||
@ -50,7 +53,9 @@ LaneChangeState = log.LaneChangeState
|
|||||||
LaneChangeDirection = log.LaneChangeDirection
|
LaneChangeDirection = log.LaneChangeDirection
|
||||||
EventName = car.CarEvent.EventName
|
EventName = car.CarEvent.EventName
|
||||||
ButtonType = car.CarState.ButtonEvent.Type
|
ButtonType = car.CarState.ButtonEvent.Type
|
||||||
|
GearShifter = car.CarState.GearShifter
|
||||||
SafetyModel = car.CarParams.SafetyModel
|
SafetyModel = car.CarParams.SafetyModel
|
||||||
|
FrogPilotButtonType = custom.FrogPilotCarState.ButtonEvent.Type
|
||||||
|
|
||||||
IGNORED_SAFETY_MODES = (SafetyModel.silent, SafetyModel.noOutput)
|
IGNORED_SAFETY_MODES = (SafetyModel.silent, SafetyModel.noOutput)
|
||||||
CSID_MAP = {"1": EventName.roadCameraError, "2": EventName.wideRoadCameraError, "0": EventName.driverCameraError}
|
CSID_MAP = {"1": EventName.roadCameraError, "2": EventName.wideRoadCameraError, "0": EventName.driverCameraError}
|
||||||
|
@ -17,6 +17,8 @@ else:
|
|||||||
|
|
||||||
from casadi import SX, vertcat
|
from casadi import SX, vertcat
|
||||||
|
|
||||||
|
from openpilot.selfdrive.frogpilot.controls.lib.frogpilot_variables import CITY_SPEED_LIMIT
|
||||||
|
|
||||||
MODEL_NAME = 'long'
|
MODEL_NAME = 'long'
|
||||||
LONG_MPC_DIR = os.path.dirname(os.path.abspath(__file__))
|
LONG_MPC_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||||
EXPORT_DIR = os.path.join(LONG_MPC_DIR, "c_generated_code")
|
EXPORT_DIR = os.path.join(LONG_MPC_DIR, "c_generated_code")
|
||||||
|
@ -14,7 +14,8 @@ from openpilot.selfdrive.controls.lib.longitudinal_mpc_lib.long_mpc import A_CHA
|
|||||||
get_safe_obstacle_distance, get_stopped_equivalence_factor, get_T_FOLLOW
|
get_safe_obstacle_distance, get_stopped_equivalence_factor, get_T_FOLLOW
|
||||||
from openpilot.selfdrive.controls.lib.longitudinal_planner import A_CRUISE_MIN, Lead, get_max_accel
|
from openpilot.selfdrive.controls.lib.longitudinal_planner import A_CRUISE_MIN, Lead, get_max_accel
|
||||||
|
|
||||||
from openpilot.selfdrive.frogpilot.controls.lib.frogpilot_functions import CITY_SPEED_LIMIT, CRUISING_SPEED, calculate_lane_width, calculate_road_curvature
|
from openpilot.selfdrive.frogpilot.controls.lib.frogpilot_functions import calculate_lane_width, calculate_road_curvature
|
||||||
|
from openpilot.selfdrive.frogpilot.controls.lib.frogpilot_variables import CITY_SPEED_LIMIT, CRUISING_SPEED
|
||||||
|
|
||||||
GearShifter = car.CarState.GearShifter
|
GearShifter = car.CarState.GearShifter
|
||||||
|
|
||||||
|
@ -13,10 +13,7 @@ from openpilot.common.params_pyx import UnknownKeyName
|
|||||||
from openpilot.system.hardware import HARDWARE
|
from openpilot.system.hardware import HARDWARE
|
||||||
from openpilot.system.version import get_short_branch, get_commit_date
|
from openpilot.system.version import get_short_branch, get_commit_date
|
||||||
|
|
||||||
CITY_SPEED_LIMIT = 25 # 55mph is typically the minimum speed for highways
|
from openpilot.selfdrive.frogpilot.controls.lib.frogpilot_variables import PROBABILITY, THRESHOLD
|
||||||
CRUISING_SPEED = 5 # Roughly the speed cars go when not touching the gas while in drive
|
|
||||||
PROBABILITY = 0.6 # 60% chance of condition being true
|
|
||||||
THRESHOLD = 5 # Time threshold (0.25s)
|
|
||||||
|
|
||||||
def calculate_lane_width(lane, current_lane, road_edge):
|
def calculate_lane_width(lane, current_lane, road_edge):
|
||||||
lane_x, lane_y = np.array(lane.x), np.array(lane.y)
|
lane_x, lane_y = np.array(lane.x), np.array(lane.y)
|
||||||
@ -37,6 +34,7 @@ def calculate_road_curvature(modelData, v_ego):
|
|||||||
max_pred_lat_acc = np.amax(orientation_rate * velocity)
|
max_pred_lat_acc = np.amax(orientation_rate * velocity)
|
||||||
return max_pred_lat_acc / (v_ego**2)
|
return max_pred_lat_acc / (v_ego**2)
|
||||||
|
|
||||||
|
|
||||||
class MovingAverageCalculator:
|
class MovingAverageCalculator:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.data = []
|
self.data = []
|
||||||
|
@ -4,6 +4,8 @@ import os
|
|||||||
import signal
|
import signal
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
import threading
|
||||||
|
import time
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
from cereal import log
|
from cereal import log
|
||||||
@ -11,6 +13,7 @@ import cereal.messaging as messaging
|
|||||||
import openpilot.selfdrive.sentry as sentry
|
import openpilot.selfdrive.sentry as sentry
|
||||||
from openpilot.common.params import Params, ParamKeyType
|
from openpilot.common.params import Params, ParamKeyType
|
||||||
from openpilot.common.text_window import TextWindow
|
from openpilot.common.text_window import TextWindow
|
||||||
|
from openpilot.common.time import system_time_valid
|
||||||
from openpilot.system.hardware import HARDWARE, PC
|
from openpilot.system.hardware import HARDWARE, PC
|
||||||
from openpilot.selfdrive.manager.helpers import unblock_stdout, write_onroad_params, save_bootlog
|
from openpilot.selfdrive.manager.helpers import unblock_stdout, write_onroad_params, save_bootlog
|
||||||
from openpilot.selfdrive.manager.process import ensure_running
|
from openpilot.selfdrive.manager.process import ensure_running
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import math
|
import math
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
import os
|
||||||
import time
|
import time
|
||||||
import wave
|
import wave
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user