Split car identities to CX5, CX9, and Mazda3 (#2097)
Add test routes for CX9 and Mazda3 CX9: "10b5a4b380434151|2020-08-26--17-11-45" Mazda3: "74f1038827005090|2020-08-26--20-05-50" Signed-off-by: Jafar Al-Gharaibeh <to.jafar@gmail.com>pull/2148/head
parent
fde8b18f73
commit
6c292c3f0c
|
@ -3,7 +3,7 @@ from selfdrive.config import Conversions as CV
|
|||
from opendbc.can.can_define import CANDefine
|
||||
from opendbc.can.parser import CANParser
|
||||
from selfdrive.car.interfaces import CarStateBase
|
||||
from selfdrive.car.mazda.values import DBC, LKAS_LIMITS, CAR
|
||||
from selfdrive.car.mazda.values import DBC, LKAS_LIMITS, GEN1
|
||||
|
||||
class CarState(CarStateBase):
|
||||
def __init__(self, CP):
|
||||
|
@ -121,7 +121,7 @@ class CarState(CarStateBase):
|
|||
("WHEEL_SPEEDS", 100),
|
||||
]
|
||||
|
||||
if CP.carFingerprint == CAR.CX5:
|
||||
if CP.carFingerprint in GEN1:
|
||||
signals += [
|
||||
("LKAS_BLOCK", "STEER_RATE", 0),
|
||||
("LKAS_TRACK_STATE", "STEER_RATE", 0),
|
||||
|
@ -165,7 +165,7 @@ class CarState(CarStateBase):
|
|||
signals = []
|
||||
checks = []
|
||||
|
||||
if CP.carFingerprint == CAR.CX5:
|
||||
if CP.carFingerprint in GEN1:
|
||||
signals += [
|
||||
# sig_name, sig_address, default
|
||||
("LKAS_REQUEST", "CAM_LKAS", 0),
|
||||
|
|
|
@ -33,18 +33,31 @@ class CarInterface(CarInterfaceBase):
|
|||
ret.steerLimitTimer = 0.8
|
||||
tire_stiffness_factor = 0.70 # not optimized yet
|
||||
|
||||
if candidate in [CAR.CX5]:
|
||||
if candidate == CAR.CX5:
|
||||
ret.mass = 3655 * CV.LB_TO_KG + STD_CARGO_KG
|
||||
ret.wheelbase = 2.7
|
||||
ret.steerRatio = 15.5
|
||||
|
||||
ret.lateralTuning.pid.kiBP, ret.lateralTuning.pid.kpBP = [[0.], [0.]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.2], [0.2]]
|
||||
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.19], [0.019]]
|
||||
ret.lateralTuning.pid.kf = 0.00006
|
||||
elif candidate == CAR.CX9:
|
||||
ret.mass = 4217 * CV.LB_TO_KG + STD_CARGO_KG
|
||||
ret.wheelbase = 3.1
|
||||
ret.steerRatio = 17.6
|
||||
ret.lateralTuning.pid.kiBP, ret.lateralTuning.pid.kpBP = [[0.], [0.]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.19], [0.019]]
|
||||
ret.lateralTuning.pid.kf = 0.00006
|
||||
elif candidate == CAR.Mazda3:
|
||||
ret.mass = 2875 * CV.LB_TO_KG + STD_CARGO_KG
|
||||
ret.wheelbase = 2.7
|
||||
ret.steerRatio = 14.0
|
||||
ret.lateralTuning.pid.kiBP, ret.lateralTuning.pid.kpBP = [[0.], [0.]]
|
||||
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.19], [0.019]]
|
||||
ret.lateralTuning.pid.kf = 0.00006
|
||||
|
||||
# No steer below disable speed
|
||||
ret.minSteerSpeed = LKAS_LIMITS.DISABLE_SPEED * CV.KPH_TO_MS
|
||||
|
||||
# No steer below disable speed
|
||||
ret.minSteerSpeed = LKAS_LIMITS.DISABLE_SPEED * CV.KPH_TO_MS
|
||||
|
||||
ret.centerToFront = ret.wheelbase * 0.41
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
from selfdrive.car.mazda.values import CAR, Buttons
|
||||
from selfdrive.car.mazda.values import GEN1, Buttons
|
||||
|
||||
def create_steering_control(packer, car_fingerprint, frame, apply_steer, lkas):
|
||||
|
||||
|
@ -40,7 +40,7 @@ def create_steering_control(packer, car_fingerprint, frame, apply_steer, lkas):
|
|||
|
||||
csum = csum % 256
|
||||
|
||||
if car_fingerprint == CAR.CX5:
|
||||
if car_fingerprint in GEN1:
|
||||
values = {
|
||||
"LKAS_REQUEST" : apply_steer,
|
||||
"CTR" : ctr,
|
||||
|
@ -69,7 +69,7 @@ def create_button_cmd(packer, car_fingerprint, button):
|
|||
can = 0
|
||||
res = 0
|
||||
|
||||
if car_fingerprint == CAR.CX5:
|
||||
if car_fingerprint in GEN1:
|
||||
values = {
|
||||
"CAN_OFF" : can,
|
||||
"CAN_OFF_INV" : (can + 1) % 2,
|
||||
|
|
|
@ -18,6 +18,8 @@ class SteerLimitParams:
|
|||
|
||||
class CAR:
|
||||
CX5 = "Mazda CX-5 2017"
|
||||
CX9 = "Mazda CX-9 2017"
|
||||
Mazda3 = "Mazda3 2017"
|
||||
|
||||
class LKAS_LIMITS:
|
||||
STEER_THRESHOLD = 15
|
||||
|
@ -41,13 +43,10 @@ FINGERPRINTS = {
|
|||
# CX-5 2019 GTR
|
||||
{
|
||||
64: 8, 70: 8, 80: 8, 117: 8, 118: 8, 120: 8, 121: 8, 130: 8, 134: 8, 145: 8, 154: 8, 155: 8, 157: 8, 158: 8, 159: 8, 253: 8, 254: 8, 304: 8, 305: 8, 357: 8, 358: 8, 359: 8, 512: 8, 514: 8, 515: 8, 529: 8, 533: 8, 535: 8, 539: 8, 540: 8, 541: 8, 542: 8, 543: 8, 552: 8, 576: 8, 577: 8, 578: 8, 579: 8, 580: 8, 581: 8, 582: 8, 605: 8, 606: 8, 607: 8, 608: 8, 628: 8, 736: 8, 832: 8, 836: 8, 863: 8, 865: 8, 866: 8, 867: 8, 868: 8, 869: 8, 870: 8, 976: 8, 977: 8, 978: 8, 1034: 8, 1045: 8, 1056: 8, 1061: 8, 1067: 8, 1078: 8, 1080: 8, 1085: 8, 1086: 8, 1088: 8, 1093: 8, 1108: 8, 1114: 8, 1115: 8, 1116: 8, 1139: 8, 1143: 8, 1147: 8, 1154: 8, 1157: 8, 1160: 8, 1163: 8, 1166: 8, 1170: 8, 1171: 8, 1173: 8, 1177: 8, 1178: 8, 1179: 8, 1180: 8, 1183: 8, 1233: 8, 1236: 8, 1237: 8, 1238: 8, 1239: 8, 1241: 8, 1242: 8, 1244: 8, 1260: 8, 1264: 8, 1266: 8, 1267: 8, 1269: 8, 1270: 8, 1271: 8, 1272: 8, 1274: 8, 1277: 8, 1278: 8, 1409: 8, 1416: 8, 1425: 8, 1430: 8, 1435: 8, 1440: 8, 1446: 8, 1456: 8, 1479: 8, 1776: 8, 1792: 8, 1872: 8, 1937: 8, 1953: 8, 1968: 8, 2015: 8, 2016: 8, 2024: 8
|
||||
},
|
||||
|
||||
# Mazda 6 2017 GT
|
||||
{
|
||||
64: 8, 70: 8, 80: 8, 117: 8, 118: 8, 120: 8, 121: 8, 130: 8, 134: 8, 145: 8, 154: 8, 155: 8, 157: 8, 158: 8, 159: 8, 253: 8, 304: 8, 305: 8, 357: 8, 358: 8, 359: 8, 512: 8, 514: 8, 515: 8, 529: 8, 533: 8, 535: 8, 539: 8, 540: 8, 541: 8, 542: 8, 543: 8, 552: 8, 576: 8, 577: 8, 578: 8, 579: 8, 580: 8, 581: 8, 582: 8, 605: 8, 606: 8, 607: 8, 628: 8, 832: 8, 836: 8, 863: 8, 865: 8, 866: 8, 867: 8, 868: 8, 869: 8, 870: 8, 976: 8, 977: 8, 978: 8, 1034: 8, 1045: 8, 1056: 8, 1061: 8, 1067: 8, 1070: 8, 1078: 8, 1080: 8, 1085: 8, 1086: 8, 1088: 8, 1093: 8, 1108: 8, 1114: 8, 1115: 8, 1116: 8, 1143: 8, 1147: 8, 1154: 8, 1157: 8, 1160: 8, 1163: 8, 1166: 8, 1177: 8, 1178: 8, 1179: 8, 1180: 8, 1182: 8, 1183: 8, 1233: 8, 1236: 8, 1237: 8, 1238: 8, 1239: 8, 1241: 8, 1242: 8, 1243: 8, 1244: 8, 1264: 8, 1266: 8, 1267: 8, 1269: 8, 1270: 8, 1271: 8, 1272: 8, 1274: 8, 1275: 8, 1277: 8, 1278: 8, 1409: 8, 1416: 8, 1425: 8, 1430: 8, 1435: 8, 1440: 8, 1456: 8, 1479: 8
|
||||
},
|
||||
}
|
||||
],
|
||||
|
||||
CAR.CX9: [
|
||||
# CX-9 2017 Australia - old CAM connector
|
||||
{
|
||||
64: 8, 70: 8, 80: 8, 117: 8, 118: 8, 120: 8, 121: 8, 130: 8, 134: 8, 138: 8, 145: 8, 154: 8, 155: 8, 157: 8, 158: 8, 159: 8, 253: 8, 304: 8, 305: 8, 357: 8, 358: 8, 359: 8, 512: 8, 514: 8, 515: 8, 522: 8, 529: 8, 533: 8, 535: 8, 539: 8, 540: 8, 541: 8, 542: 8, 543: 8, 552: 8, 576: 8, 577: 8, 578: 8, 579: 8, 580: 8, 581: 8, 582: 8, 583: 8, 605: 8, 606: 8, 628: 8, 832: 8, 976: 8, 977: 8, 978: 8, 1034: 8, 1045: 8, 1056: 8, 1061: 8, 1067: 8, 1078: 8, 1085: 8, 1086: 8, 1088: 8, 1093: 8, 1108: 8, 1114: 8, 1115: 8, 1116: 8, 1139: 8, 1143: 8, 1147: 8, 1154: 8, 1157: 8, 1160: 8, 1163: 8, 1166: 8, 1170: 8, 1177: 8, 1180: 8, 1183: 8, 1233: 8, 1236: 8, 1237: 8, 1238: 8, 1239: 8, 1241: 8, 1242: 8, 1243: 8, 1244: 8, 1247: 8, 1264: 8, 1266: 8, 1267: 8, 1269: 8, 1271: 8, 1272: 8, 1274: 8, 1277: 8, 1278: 8, 1409: 8, 1416: 8, 1425: 8, 1430: 8, 1435: 8, 1440: 8, 1446: 8, 1456: 8, 1479: 8
|
||||
|
@ -56,14 +55,20 @@ FINGERPRINTS = {
|
|||
# CX-9 2016 - old CAM connector
|
||||
{
|
||||
64: 8, 70: 8, 80: 8, 117: 8, 118: 8, 120: 8, 121: 8, 130: 8, 134: 8, 145: 8, 154: 8, 155: 8, 157: 8, 158: 8, 159: 8, 253: 8, 304: 8, 305: 8, 357: 8, 358: 8, 359: 8, 512: 8, 514: 8, 515: 8, 529: 8, 533: 8, 535: 8, 539: 8, 540: 8, 541: 8, 542: 8, 543: 8, 552: 8, 576: 8, 577: 8, 578: 8, 579: 8, 580: 8, 581: 8, 582: 8, 583: 8, 605: 8, 606: 8, 608: 8, 628: 8, 832: 8, 836: 8, 976: 8, 977: 8, 978: 8, 1034: 8, 1045: 8, 1056: 8, 1061: 8, 1067: 8, 1078: 8, 1080: 8, 1085: 8, 1086: 8, 1088: 8, 1093: 8, 1108: 8, 1114: 8, 1115: 8, 1116: 8, 1139: 8, 1143: 8, 1147: 8, 1154: 8, 1157: 8, 1160: 8, 1163: 8, 1166: 8, 1170: 8, 1177: 8, 1178: 8, 1179: 8, 1180: 8, 1181: 8, 1183: 8, 1233: 8, 1236: 8, 1237: 8, 1238: 8, 1239: 8, 1241: 8, 1242: 8, 1244: 8, 1264: 8, 1266: 8, 1267: 8, 1269: 8, 1271: 8, 1272: 8, 1274: 8, 1277: 8, 1278: 8, 1409: 8, 1416: 8, 1425: 8, 1430: 8, 1435: 8, 1440: 8, 1446: 8, 1456: 8, 1479: 8, 1792: 8, 1872: 8, 1937: 8, 1953: 8, 1968: 8, 1988: 8, 1996: 8, 2000: 8, 2001: 8, 2004: 8, 2015: 8, 2016: 8, 2017: 8, 2024: 8, 2025: 8
|
||||
},
|
||||
}
|
||||
],
|
||||
|
||||
CAR.Mazda3: [
|
||||
# Mazda 3 2017
|
||||
{
|
||||
19: 5, 80: 8, 117: 8, 118: 8, 120: 8, 121: 8, 130: 8, 134: 8, 145: 8, 154: 8, 155: 8, 157: 8, 158: 8, 159: 8, 253: 8, 304: 8, 305: 8, 357: 8, 358: 8, 359: 8, 512: 8, 514: 8, 515: 8, 529: 8, 533: 8, 535: 8, 539: 8, 540: 8, 541: 8, 542: 8, 543: 8, 552: 8, 576: 8, 577: 8, 578: 8, 579: 8, 580: 8, 581: 8, 582: 8, 605: 8, 606: 8, 607: 8, 628: 8, 832: 8, 863: 8, 865: 8, 866: 8, 867: 8, 868: 8, 869: 8, 870: 8, 976: 8, 977: 8, 978: 8, 1034: 8, 1045: 8, 1056: 8, 1061: 8, 1067: 8, 1070: 8, 1078: 8, 1086: 8, 1088: 8, 1093: 8, 1108: 8, 1114: 8, 1115: 8, 1116: 8, 1143: 8, 1147: 8, 1154: 8, 1157: 8, 1160: 8, 1163: 8, 1166: 8, 1169: 8, 1170: 8, 1173: 8, 1177: 8, 1180: 8, 1182: 8, 1183: 8, 1233: 8, 1236: 8, 1237: 8, 1238: 8, 1239: 8, 1241: 8, 1242: 8, 1243: 8, 1244: 8, 1264: 8, 1266: 8, 1267: 8, 1269: 8, 1270: 8, 1271: 8, 1272: 8, 1274: 8, 1275: 8, 1277: 8, 1278: 8, 1409: 8, 1416: 8, 1425: 8, 1430: 8, 1435: 8, 1440: 8, 1456: 8, 1479: 8, 2015: 8, 2024: 8, 2025: 8
|
||||
},
|
||||
],
|
||||
|
||||
# Mazda 6 2017 GT
|
||||
{
|
||||
64: 8, 70: 8, 80: 8, 117: 8, 118: 8, 120: 8, 121: 8, 130: 8, 134: 8, 145: 8, 154: 8, 155: 8, 157: 8, 158: 8, 159: 8, 253: 8, 304: 8, 305: 8, 357: 8, 358: 8, 359: 8, 512: 8, 514: 8, 515: 8, 529: 8, 533: 8, 535: 8, 539: 8, 540: 8, 541: 8, 542: 8, 543: 8, 552: 8, 576: 8, 577: 8, 578: 8, 579: 8, 580: 8, 581: 8, 582: 8, 605: 8, 606: 8, 607: 8, 628: 8, 832: 8, 836: 8, 863: 8, 865: 8, 866: 8, 867: 8, 868: 8, 869: 8, 870: 8, 976: 8, 977: 8, 978: 8, 1034: 8, 1045: 8, 1056: 8, 1061: 8, 1067: 8, 1070: 8, 1078: 8, 1080: 8, 1085: 8, 1086: 8, 1088: 8, 1093: 8, 1108: 8, 1114: 8, 1115: 8, 1116: 8, 1143: 8, 1147: 8, 1154: 8, 1157: 8, 1160: 8, 1163: 8, 1166: 8, 1177: 8, 1178: 8, 1179: 8, 1180: 8, 1182: 8, 1183: 8, 1233: 8, 1236: 8, 1237: 8, 1238: 8, 1239: 8, 1241: 8, 1242: 8, 1243: 8, 1244: 8, 1264: 8, 1266: 8, 1267: 8, 1269: 8, 1270: 8, 1271: 8, 1272: 8, 1274: 8, 1275: 8, 1277: 8, 1278: 8, 1409: 8, 1416: 8, 1425: 8, 1430: 8, 1435: 8, 1440: 8, 1456: 8, 1479: 8
|
||||
}
|
||||
],
|
||||
}
|
||||
|
||||
ECU_FINGERPRINT = {
|
||||
|
@ -73,4 +78,8 @@ ECU_FINGERPRINT = {
|
|||
|
||||
DBC = {
|
||||
CAR.CX5: dbc_dict('mazda_2017', None),
|
||||
CAR.CX9: dbc_dict('mazda_2017', None),
|
||||
CAR.Mazda3: dbc_dict('mazda_2017', None),
|
||||
}
|
||||
|
||||
GEN1 = [ CAR.CX5, CAR.CX9, CAR.Mazda3 ]
|
||||
|
|
|
@ -433,6 +433,14 @@ routes = {
|
|||
'carFingerprint': MAZDA.CX5,
|
||||
'enableCamera': True,
|
||||
},
|
||||
"10b5a4b380434151|2020-08-26--17-11-45": {
|
||||
'carFingerprint': MAZDA.CX9,
|
||||
'enableCamera': True,
|
||||
},
|
||||
"74f1038827005090|2020-08-26--20-05-50": {
|
||||
'carFingerprint': MAZDA.Mazda3,
|
||||
'enableCamera': True,
|
||||
},
|
||||
}
|
||||
|
||||
passive_routes: List[str] = [
|
||||
|
@ -442,8 +450,12 @@ forced_dashcam_routes = [
|
|||
# Ford fusion
|
||||
"f1b4c567731f4a1b|2018-04-18--11-29-37",
|
||||
"f1b4c567731f4a1b|2018-04-30--10-15-35",
|
||||
# Mazda
|
||||
# Mazda CX5
|
||||
"32a319f057902bb3|2020-04-27--15-18-58",
|
||||
# Mazda CX9
|
||||
"10b5a4b380434151|2020-08-26--17-11-45",
|
||||
# Mazda3
|
||||
"74f1038827005090|2020-08-26--20-05-50",
|
||||
]
|
||||
|
||||
# TODO: add routes for these cars
|
||||
|
|
Loading…
Reference in New Issue