Exemplo n.º 1
0
    STEER_ERROR_MAX = 80


class CAR:
    PACIFICA_2017_HYBRID = "CHRYSLER PACIFICA HYBRID 2017"
    PACIFICA_2018_HYBRID = "CHRYSLER PACIFICA HYBRID 2018"
    PACIFICA_2019_HYBRID = "CHRYSLER PACIFICA HYBRID 2019"
    PACIFICA_2018 = "CHRYSLER PACIFICA 2018"  # includes 2017 Pacifica
    PACIFICA_2020 = "CHRYSLER PACIFICA 2020"
    JEEP_CHEROKEE = "JEEP GRAND CHEROKEE V6 2018"  # includes 2017 Trailhawk
    JEEP_CHEROKEE_2019 = "JEEP GRAND CHEROKEE 2019"  # includes 2020 Trailhawk


CAR_INFO: Dict[str, Union[CarInfo, List[CarInfo]]] = {
    CAR.PACIFICA_2017_HYBRID:
    CarInfo("Chrysler Pacifica Hybrid 2017-18", "Adaptive Cruise"),
    CAR.PACIFICA_2019_HYBRID:
    CarInfo("Chrysler Pacifica Hybrid 2019-21", "Adaptive Cruise"),
    CAR.PACIFICA_2018:
    CarInfo("Chrysler Pacifica 2017-18", "Adaptive Cruise"),
    CAR.PACIFICA_2020:
    CarInfo("Chrysler Pacifica 2020", "Adaptive Cruise"),
    CAR.JEEP_CHEROKEE:
    CarInfo("Jeep Grand Cherokee 2016-18", "Adaptive Cruise",
            "https://www.youtube.com/watch?v=eLR9o2JkuRk"),
    CAR.JEEP_CHEROKEE_2019:
    CarInfo("Jeep Grand Cherokee 2019-20", "Adaptive Cruise",
            "https://www.youtube.com/watch?v=jBe4lWnRSu4"),
}

# Unique CAN messages:
Exemplo n.º 2
0

class CarControllerParams:
    ANGLE_DELTA_BP = [0., 5., 15.]
    ANGLE_DELTA_V = [5., .8, .15]  # windup limit
    ANGLE_DELTA_VU = [5., 3.5, 0.4]  # unwind limit
    LKAS_MAX_TORQUE = 1  # A value of 1 is easy to overpower
    STEER_THRESHOLD = 1.0


class CAR:
    BODY = "COMMA BODY"


CAR_INFO: Dict[str, CarInfo] = {
    CAR.BODY: CarInfo("comma body", package="All"),
}

FW_VERSIONS = {
    CAR.BODY: {
        (Ecu.engine, 0x720, None): [b'0.0.01', b'02/27/2022'],
        (Ecu.debug, 0x721, None): [
            b'166bd860'  # git hash of the firmware used
        ],
    },
}

DBC = {
    CAR.BODY: dbc_dict('comma_body', None),
}
Exemplo n.º 3
0
    self.STEER_DRIVER_FACTOR = 1       # from dbc


class CAR:
  ASCENT = "SUBARU ASCENT LIMITED 2019"
  IMPREZA = "SUBARU IMPREZA LIMITED 2019"
  IMPREZA_2020 = "SUBARU IMPREZA SPORT 2020"
  FORESTER = "SUBARU FORESTER 2019"
  FORESTER_PREGLOBAL = "SUBARU FORESTER 2017 - 2018"
  LEGACY_PREGLOBAL = "SUBARU LEGACY 2015 - 2018"
  OUTBACK_PREGLOBAL = "SUBARU OUTBACK 2015 - 2017"
  OUTBACK_PREGLOBAL_2018 = "SUBARU OUTBACK 2018 - 2019"


CAR_INFO: Dict[str, Union[CarInfo, List[CarInfo]]] = {
  CAR.ASCENT: CarInfo("Subaru Ascent 2019", "EyeSight"),
  CAR.IMPREZA: [
    CarInfo("Subaru Impreza 2017-19", "EyeSight"),
    CarInfo("Subaru Crosstrek 2018-20", "EyeSight"),
  ],
  CAR.FORESTER: CarInfo("Subaru Forester 2019-21", "EyeSight"),
  CAR.FORESTER_PREGLOBAL: CarInfo("Subaru Forester 2017-18", "EyeSight"),
  CAR.LEGACY_PREGLOBAL: CarInfo("Subaru Legacy 2015-18", "EyeSight"),
  CAR.OUTBACK_PREGLOBAL: CarInfo("Subaru Outback 2015-17", "EyeSight"),
  CAR.OUTBACK_PREGLOBAL_2018: CarInfo("Subaru Outback 2018-19", "EyeSight"),
}


FINGERPRINTS = {
  CAR.IMPREZA_2020: [{
    2: 8, 64: 8, 65: 8, 72: 8, 73: 8, 280: 8, 281: 8, 282: 8, 290: 8, 312: 8, 313: 8, 314: 8, 315: 8, 316: 8, 326: 8, 372: 8, 544: 8, 545: 8, 546: 8, 552: 8, 554: 8, 557: 8, 576: 8, 577: 8, 722: 8, 801: 8, 802: 8, 803: 8, 805: 8, 808: 8, 816: 8, 826: 8, 837: 8, 838: 8, 839: 8, 842: 8, 912: 8, 915: 8, 940: 8, 1617: 8, 1632: 8, 1650: 8, 1677: 8, 1697: 8, 1722: 8, 1743: 8, 1759: 8, 1786: 5, 1787: 5, 1788: 8, 1809: 8, 1813: 8, 1817: 8, 1821: 8, 1840: 8, 1848: 8, 1924: 8, 1932: 8, 1952: 8, 1960: 8, 1968: 8, 1976: 8, 2015: 8, 2016: 8, 2024: 8
Exemplo n.º 4
0
  DELPHI_MRR = 'FORD_CADS'


class CANBUS:
  main = 0
  radar = 1
  camera = 2


class CAR:
  ESCAPE_MK4 = "FORD ESCAPE 4TH GEN"
  FOCUS_MK4 = "FORD FOCUS 4TH GEN"


CAR_INFO: Dict[str, Union[CarInfo, List[CarInfo]]] = {
  CAR.ESCAPE_MK4: CarInfo("Ford Escape", "NA"),
  CAR.FOCUS_MK4: CarInfo("Ford Focus", "NA"),
}


FW_VERSIONS = {
  CAR.ESCAPE_MK4: {
    (Ecu.eps, 0x730, None): [
      b'LX6C-14D003-AH\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
    ],
    (Ecu.esp, 0x760, None): [
      b'LX6C-2D053-NS\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
    ],
    (Ecu.fwdRadar, 0x764, None): [
      b'LB5T-14D049-AB\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
    ],
Exemplo n.º 5
0
    ESCALADE_ESV = "CADILLAC ESCALADE ESV 2016"


class Footnote(Enum):
    OBD_II = CarFootnote(
        'Requires an <a href="https://comma.ai/shop/products/comma-car-harness">OBD-II car harness</a> and '
        +
        '<a href="https://github.com/commaai/openpilot/wiki/GM#hardware">community built ASCM harness</a>. '
        +
        '<b><i>NOTE: disconnecting the ASCM disables Automatic Emergency Braking (AEB).</i></b>',
        Column.MODEL)


CAR_INFO: Dict[str, Union[CarInfo, List[CarInfo]]] = {
    CAR.HOLDEN_ASTRA:
    CarInfo("Holden Astra 2017", "Adaptive Cruise"),
    CAR.VOLT:
    CarInfo("Chevrolet Volt 2017-18",
            "Adaptive Cruise",
            footnotes=[Footnote.OBD_II],
            min_enable_speed=0),
    CAR.CADILLAC_ATS:
    CarInfo("Cadillac ATS Premium Performance 2018", "Adaptive Cruise"),
    CAR.MALIBU:
    CarInfo("Chevrolet Malibu Premier 2017", "Adaptive Cruise"),
    CAR.ACADIA:
    CarInfo("GMC Acadia 2018",
            "Adaptive Cruise",
            video_link="https://www.youtube.com/watch?v=0ZN6DdsBUZo",
            footnotes=[Footnote.OBD_II]),
    CAR.BUICK_REGAL:
Exemplo n.º 6
0
    LKAS_MAX_TORQUE = 1  # A value of 1 is easy to overpower
    STEER_THRESHOLD = 1.0


class CAR:
    XTRAIL = "NISSAN X-TRAIL 2017"
    LEAF = "NISSAN LEAF 2018"
    # Leaf with ADAS ECU found behind instrument cluster instead of glovebox
    # Currently the only known difference between them is the inverted seatbelt signal.
    LEAF_IC = "NISSAN LEAF 2018 Instrument Cluster"
    ROGUE = "NISSAN ROGUE 2019"
    ALTIMA = "NISSAN ALTIMA 2020"


CAR_INFO: Dict[str, Union[CarInfo, List[CarInfo]]] = {
    CAR.XTRAIL: CarInfo("Nissan X-Trail 2017", "ProPILOT"),
    CAR.LEAF: CarInfo("Nissan Leaf 2018-22", "ProPILOT"),
    CAR.ROGUE: CarInfo("Nissan Rogue 2018-20", "ProPILOT"),
    CAR.ALTIMA: CarInfo("Nissan Altima 2019-20", "ProPILOT"),
}

FINGERPRINTS = {
    CAR.XTRAIL: [
        {
            2: 5,
            42: 6,
            346: 6,
            347: 5,
            348: 8,
            349: 7,
            361: 8,
Exemplo n.º 7
0

class CarControllerParams:
    ANGLE_DELTA_BP = [0., 5., 15.]
    ANGLE_DELTA_V = [5., .8, .15]  # windup limit
    ANGLE_DELTA_VU = [5., 3.5, 0.4]  # unwind limit
    LKAS_MAX_TORQUE = 1  # A value of 1 is easy to overpower
    STEER_THRESHOLD = 1.0


class CAR:
    BODY = "COMMA BODY"


CAR_INFO: Dict[str, CarInfo] = {
    CAR.BODY: CarInfo("comma body", package="All", harness=Harness.none),
}

FW_VERSIONS = {
    CAR.BODY: {
        (Ecu.engine, 0x720, None): [b'0.0.01', b'02/27/2022'],
        (Ecu.debug, 0x721, None): [
            b'166bd860'  # git hash of the firmware used
        ],
    },
}

DBC = {
    CAR.BODY: dbc_dict('comma_body', None),
}
Exemplo n.º 8
0
from selfdrive.car import dbc_dict
from selfdrive.car.docs_definitions import CarInfo
from cereal import car

Button = namedtuple('Button', ['event_type', 'can_addr', 'can_msg', 'values'])
AngleRateLimit = namedtuple('AngleRateLimit',
                            ['speed_points', 'max_angle_diff_points'])


class CAR:
    AP1_MODELS = 'TESLA AP1 MODEL S'
    AP2_MODELS = 'TESLA AP2 MODEL S'


CAR_INFO: Dict[str, Union[CarInfo, List[CarInfo]]] = {
    CAR.AP1_MODELS: CarInfo("Tesla AP1 Model S", "All"),
    CAR.AP2_MODELS: CarInfo("Tesla AP2 Model S", "All"),
}

FINGERPRINTS = {
    CAR.AP2_MODELS: [
        {
            1: 8,
            3: 8,
            14: 8,
            21: 4,
            69: 8,
            109: 4,
            257: 3,
            264: 8,
            277: 6,
Exemplo n.º 9
0
  STEER_DRIVER_MULTIPLIER = 1     # weight driver torque
  STEER_DRIVER_FACTOR = 1         # from dbc
  STEER_ERROR_MAX = 350           # max delta between torque cmd and torque motor


class CAR:
  CX5 = "MAZDA CX-5"
  CX9 = "MAZDA CX-9"
  MAZDA3 = "MAZDA 3"
  MAZDA6 = "MAZDA 6"
  CX9_2021 = "MAZDA CX-9 2021"
  CX5_2022 = "MAZDA CX-5 2022"


CAR_INFO: Dict[str, Union[CarInfo, List[CarInfo]]] = {
  CAR.CX5: CarInfo("Mazda CX-5 2017, 2019", "All"),  # TODO: verify years and torque for first 4
  CAR.CX9: CarInfo("Mazda CX-9 2016-17", "All"),
  CAR.MAZDA3: CarInfo("Mazda 3 2017", "All"),
  CAR.MAZDA6: CarInfo("Mazda 6 2017", "All"),
  CAR.CX9_2021: CarInfo("Mazda CX-9 2021", "All", good_torque=True),
  CAR.CX5_2022: CarInfo("Mazda CX-5 2022", "All", good_torque=True),
}


class LKAS_LIMITS:
  STEER_THRESHOLD = 15
  DISABLE_SPEED = 45    # kph
  ENABLE_SPEED = 52     # kph

class Buttons:
  NONE = 0
Exemplo n.º 10
0

class CarControllerParams:
    ANGLE_DELTA_BP = [0., 5., 15.]
    ANGLE_DELTA_V = [5., .8, .15]  # windup limit
    ANGLE_DELTA_VU = [5., 3.5, 0.4]  # unwind limit
    LKAS_MAX_TORQUE = 1  # A value of 1 is easy to overpower
    STEER_THRESHOLD = 1.0


class CAR:
    BODY = "COMMA BODY"


CAR_INFO: Dict[str, CarInfo] = {
    CAR.BODY: CarInfo("comma body", package="All", good_torque=True),
}

FW_VERSIONS = {
    CAR.BODY: {
        (Ecu.engine, 0x720, None): [b'0.0.01', b'02/27/2022'],
        (Ecu.debug, 0x721, None): [
            b'166bd860'  # git hash of the firmware used
        ],
    },
}

DBC = {
    CAR.BODY: dbc_dict('comma_body', None),
}
Exemplo n.º 11
0
class CarControllerParams:
    ANGLE_DELTA_BP = [0., 5., 15.]
    ANGLE_DELTA_V = [5., .8, .15]  # windup limit
    ANGLE_DELTA_VU = [5., 3.5, 0.4]  # unwind limit
    LKAS_MAX_TORQUE = 1  # A value of 1 is easy to overpower
    STEER_THRESHOLD = 1.0


class CAR:
    BODY = "COMMA BODY"


CAR_INFO: Dict[str, CarInfo] = {
    CAR.BODY:
    CarInfo("comma body",
            package="All",
            good_torque=True,
            harness=Harness.none),
}

FW_VERSIONS = {
    CAR.BODY: {
        (Ecu.engine, 0x720, None): [b'0.0.01', b'02/27/2022'],
        (Ecu.debug, 0x721, None): [
            b'166bd860'  # git hash of the firmware used
        ],
    },
}

DBC = {
    CAR.BODY: dbc_dict('comma_body', None),
}