Hyundai Ioniq EV LTD (#1694)
* add ioniq
* bump panda
* test route
* bump pnada
old-commit-hash: 224672705c
This commit is contained in:
parent
4d22e32167
commit
e4f549c998
|
@ -141,6 +141,7 @@ Community Maintained Cars and Features
|
|||
| Holden | Astra 2017<sup>1</sup> | Adaptive Cruise | openpilot | 0mph | 7mph |
|
||||
| Hyundai | Elantra 2017-19<sup>2</sup> | SCC + LKAS | Stock | 19mph | 34mph |
|
||||
| Hyundai | Genesis 2015-16<sup>2</sup> | SCC + LKAS | Stock | 19mph | 37mph |
|
||||
| Hyundai | Ioniq 2019 Electric | SCC + LKAS | Stock | 0mph | 32mph |
|
||||
| Hyundai | Kona 2017-19<sup>2</sup> | SCC + LKAS | Stock | 22mph | 0mph |
|
||||
| Hyundai | Kona 2019 EV<sup>2</sup> | SCC + LKAS | Stock | 0mph | 0mph |
|
||||
| Hyundai | Palisade 2020<sup>2</sup> | All | Stock | 0mph | 0mph |
|
||||
|
|
2
panda
2
panda
|
@ -1 +1 @@
|
|||
Subproject commit d0442fd1e45589880c12b27c8a744cd1f540f540
|
||||
Subproject commit abb229c9e7a25418db7e2eee8308de15ffb496af
|
|
@ -1,5 +1,5 @@
|
|||
from cereal import car
|
||||
from selfdrive.car.hyundai.values import DBC, STEER_THRESHOLD, FEATURES
|
||||
from selfdrive.car.hyundai.values import DBC, STEER_THRESHOLD, FEATURES, EV_HYBRID
|
||||
from selfdrive.car.interfaces import CarStateBase
|
||||
from opendbc.can.parser import CANParser
|
||||
from selfdrive.config import Conversions as CV
|
||||
|
@ -54,9 +54,12 @@ class CarState(CarStateBase):
|
|||
# TODO: Check this
|
||||
ret.brakeLights = bool(cp.vl["TCS13"]['BrakeLight'] or ret.brakePressed)
|
||||
|
||||
#TODO: find pedal signal for EV/HYBRID Cars
|
||||
ret.gas = cp.vl["EMS12"]['PV_AV_CAN'] / 100
|
||||
ret.gasPressed = bool(cp.vl["EMS16"]["CF_Ems_AclAct"])
|
||||
if self.CP.carFingerprint in EV_HYBRID:
|
||||
ret.gas = cp.vl["E_EMS11"]['Accel_Pedal_Pos'] / 256.
|
||||
ret.gasPressed = ret.gas > 0
|
||||
else:
|
||||
ret.gas = cp.vl["EMS12"]['PV_AV_CAN'] / 100
|
||||
ret.gasPressed = bool(cp.vl["EMS16"]["CF_Ems_AclAct"])
|
||||
|
||||
# TODO: refactor gear parsing in function
|
||||
# Gear Selection via Cluster - For those Kia/Hyundai which are not fully discovered, we can use the Cluster Indicator for Gear Selection,
|
||||
|
@ -180,9 +183,6 @@ class CarState(CarStateBase):
|
|||
("SCCInfoDisplay", "SCC11", 0),
|
||||
("ACC_ObjDist", "SCC11", 0),
|
||||
("ACCMode", "SCC12", 1),
|
||||
|
||||
("PV_AV_CAN", "EMS12", 0),
|
||||
("CF_Ems_AclAct", "EMS16", 0),
|
||||
]
|
||||
|
||||
checks = [
|
||||
|
@ -198,9 +198,25 @@ class CarState(CarStateBase):
|
|||
("SAS11", 100),
|
||||
("SCC11", 50),
|
||||
("SCC12", 50),
|
||||
("EMS12", 100),
|
||||
("EMS16", 100),
|
||||
]
|
||||
|
||||
if CP.carFingerprint in EV_HYBRID:
|
||||
signals += [
|
||||
("Accel_Pedal_Pos", "E_EMS11", 0),
|
||||
]
|
||||
checks += [
|
||||
("E_EMS11", 50),
|
||||
]
|
||||
else:
|
||||
signals += [
|
||||
("PV_AV_CAN", "EMS12", 0),
|
||||
("CF_Ems_AclAct", "EMS16", 0),
|
||||
]
|
||||
checks += [
|
||||
("EMS12", 100),
|
||||
("EMS16", 100),
|
||||
]
|
||||
|
||||
if CP.carFingerprint in FEATURES["use_cluster_gears"]:
|
||||
signals += [
|
||||
("CF_Clu_InhibitD", "CLU15", 0),
|
||||
|
|
|
@ -126,6 +126,15 @@ class CarInterface(CarInterfaceBase):
|
|||
tire_stiffness_factor = 0.385
|
||||
ret.lateralTuning.pid.kiBP, ret.lateralTuning.pid.kpBP = [[0.], [0.]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.25], [0.05]]
|
||||
elif candidate == CAR.IONIQ_EV_LTD:
|
||||
ret.lateralTuning.pid.kf = 0.00006
|
||||
ret.mass = 1490. + STD_CARGO_KG #weight per hyundai site https://www.hyundaiusa.com/ioniq-electric/specifications.aspx
|
||||
ret.wheelbase = 2.7
|
||||
ret.steerRatio = 13.73 #Spec
|
||||
tire_stiffness_factor = 0.385
|
||||
ret.lateralTuning.pid.kiBP, ret.lateralTuning.pid.kpBP = [[0.], [0.]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.25], [0.05]]
|
||||
ret.minSteerSpeed = 32 * CV.MPH_TO_MS
|
||||
elif candidate == CAR.KIA_FORTE:
|
||||
ret.lateralTuning.pid.kf = 0.00005
|
||||
ret.mass = 3558. * CV.LB_TO_KG
|
||||
|
@ -136,7 +145,7 @@ class CarInterface(CarInterfaceBase):
|
|||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.25], [0.05]]
|
||||
|
||||
# these cars require a special panda safety mode due to missing counters and checksums in the messages
|
||||
if candidate in [CAR.HYUNDAI_GENESIS]:
|
||||
if candidate in [CAR.HYUNDAI_GENESIS, CAR.IONIQ_EV_LTD]:
|
||||
ret.safetyModel = car.CarParams.SafetyModel.hyundaiLegacy
|
||||
|
||||
ret.centerToFront = ret.wheelbase * 0.4
|
||||
|
|
|
@ -20,6 +20,7 @@ class CAR:
|
|||
GENESIS_G80 = "GENESIS G80 2017"
|
||||
GENESIS_G90 = "GENESIS G90 2017"
|
||||
HYUNDAI_GENESIS = "HYUNDAI GENESIS 2015-2016"
|
||||
IONIQ_EV_LTD = "HYUNDAI IONIQ ELECTRIC LIMITED 2019"
|
||||
KIA_FORTE = "KIA FORTE E 2018"
|
||||
KIA_OPTIMA = "KIA OPTIMA SX 2019 & 2016"
|
||||
KIA_OPTIMA_H = "KIA OPTIMA HYBRID 2017 & SPORTS 2019"
|
||||
|
@ -109,6 +110,9 @@ FINGERPRINTS = {
|
|||
CAR.GENESIS_G90: [{
|
||||
67: 8, 68: 8, 127: 8, 304: 8, 320: 8, 339: 8, 356: 4, 358: 6, 359: 8, 544: 8, 593: 8, 608: 8, 688: 5, 809: 8, 854: 7, 870: 7, 871: 8, 872: 8, 897: 8, 902: 8, 903: 8, 916: 8, 1040: 8, 1056: 8, 1057: 8, 1078: 4, 1107: 5, 1136: 8, 1151: 6, 1162: 4, 1168: 7, 1170: 8, 1173: 8, 1184: 8, 1265: 4, 1280: 1, 1281: 3, 1287: 4, 1290: 8, 1292: 8, 1294: 8, 1312: 8, 1322: 8, 1345: 8, 1348: 8, 1363: 8, 1369: 8, 1370: 8, 1371: 8, 1378: 4, 1384: 8, 1407: 8, 1419: 8, 1425: 2, 1427: 6, 1434: 2, 1456: 4, 1470: 8, 1988: 8, 2000: 8, 2003: 8, 2004: 8, 2005: 8, 2008: 8, 2011: 8, 2012: 8, 2013: 8
|
||||
}],
|
||||
CAR.IONIQ_EV_LTD: [{
|
||||
127: 8, 304: 8, 320: 8, 339: 8, 352: 8, 356: 4, 544: 7, 593: 8, 688: 5, 832: 8, 881: 8, 882: 8, 897: 8, 902: 8, 903: 8, 916: 8, 1040: 8, 1056: 8, 1057: 8, 1078: 4, 1136: 8, 1151: 6, 1168: 7, 1173: 8, 1265: 4, 1280: 1, 1287: 4, 1290: 8, 1291: 8, 1292: 8, 1294: 8, 1322: 8, 1342: 6, 1345: 8, 1348: 8, 1355: 8, 1363: 8, 1369: 8, 1407: 8, 1419: 8, 1425: 2, 1426: 8, 1427: 6, 1429: 8, 1430: 8, 1456: 4, 1470: 8, 1507: 8, 1535: 8
|
||||
}],
|
||||
CAR.KONA: [{
|
||||
67: 8, 127: 8, 304: 8, 320: 8, 339: 8, 354: 3, 356: 4, 544: 8, 593: 8, 608: 8, 688: 5, 809: 8, 832: 8, 854: 7, 870: 7, 871: 8, 872: 8, 897: 8, 902: 8, 903: 8, 909: 8, 916: 8, 1040: 8, 1078: 4, 1107: 5, 1136: 8, 1156: 8, 1170: 8, 1173: 8, 1191: 2, 1265: 4, 1280: 1, 1287: 4, 1292: 8, 1294: 8, 1312: 8, 1322: 8, 1342: 6, 1345: 8, 1348: 8, 1363: 8, 1369: 8, 1384: 8, 1394: 8, 1407: 8, 1414: 3, 1419: 8, 1427: 6, 1456: 4, 1470: 8, 2004: 8, 2009: 8, 2012: 8
|
||||
}],
|
||||
|
@ -197,15 +201,18 @@ CHECKSUM = {
|
|||
FEATURES = {
|
||||
"use_cluster_gears": [CAR.ELANTRA, CAR.KONA, CAR.ELANTRA_GT_I30], # Use Cluster for Gear Selection, rather than Transmission
|
||||
"use_tcu_gears": [CAR.KIA_OPTIMA, CAR.SONATA_2019], # Use TCU Message for Gear Selection
|
||||
"use_elect_gears": [CAR.KIA_OPTIMA_H, CAR.KONA_EV], # Use TCU Message for Gear Selection
|
||||
"use_elect_gears": [CAR.KIA_OPTIMA_H, CAR.IONIQ_EV_LTD, CAR.KONA_EV], # Use TCU Message for Gear Selection
|
||||
}
|
||||
|
||||
EV_HYBRID = [CAR.IONIQ_EV_LTD]
|
||||
|
||||
DBC = {
|
||||
CAR.ELANTRA: dbc_dict('hyundai_kia_generic', None),
|
||||
CAR.ELANTRA_GT_I30: dbc_dict('hyundai_kia_generic', None),
|
||||
CAR.GENESIS_G80: dbc_dict('hyundai_kia_generic', None),
|
||||
CAR.GENESIS_G90: dbc_dict('hyundai_kia_generic', None),
|
||||
CAR.HYUNDAI_GENESIS: dbc_dict('hyundai_kia_generic', None),
|
||||
CAR.IONIQ_EV_LTD: dbc_dict('hyundai_kia_generic', None),
|
||||
CAR.KIA_FORTE: dbc_dict('hyundai_kia_generic', None),
|
||||
CAR.KIA_OPTIMA: dbc_dict('hyundai_kia_generic', None),
|
||||
CAR.KIA_OPTIMA_H: dbc_dict('hyundai_kia_generic', None),
|
||||
|
|
|
@ -192,6 +192,10 @@ routes = {
|
|||
'carFingerprint': HYUNDAI.PALISADE,
|
||||
'enableCamera': True,
|
||||
},
|
||||
"610ebb9faaad6b43|2020-06-13--15-28-36": {
|
||||
'carFingerprint': HYUNDAI.IONIQ_EV_LTD,
|
||||
'enableCamera': True,
|
||||
},
|
||||
"f7b6be73e3dfd36c|2019-05-12--18-07-16": {
|
||||
'carFingerprint': TOYOTA.AVALON,
|
||||
'enableCamera': False,
|
||||
|
@ -364,14 +368,14 @@ routes = {
|
|||
'carFingerprint': NISSAN.LEAF,
|
||||
'enableCamera': True,
|
||||
},
|
||||
"32a319f057902bb3|2020-04-27--15-18-58": {
|
||||
'carFingerprint': MAZDA.CX5,
|
||||
'enableCamera': True,
|
||||
},
|
||||
"059ab9162e23198e|2020-05-30--09-41-01": {
|
||||
'carFingerprint': NISSAN.ROGUE,
|
||||
'enableCamera': True,
|
||||
},
|
||||
"32a319f057902bb3|2020-04-27--15-18-58": {
|
||||
'carFingerprint': MAZDA.CX5,
|
||||
'enableCamera': True,
|
||||
},
|
||||
}
|
||||
|
||||
passive_routes: List[str] = [
|
||||
|
|
Loading…
Reference in New Issue