From 65809fbf226e28f8011d971226c202d625c75789 Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Thu, 24 Oct 2019 20:44:51 +0200 Subject: [PATCH 01/25] Add back my fingerprint file --- selfdrive/car/chrysler/values.py | 171 +++++-------------------------- 1 file changed, 26 insertions(+), 145 deletions(-) diff --git a/selfdrive/car/chrysler/values.py b/selfdrive/car/chrysler/values.py index 8c45d4f62f0d76..f2bcf3170f89eb 100644 --- a/selfdrive/car/chrysler/values.py +++ b/selfdrive/car/chrysler/values.py @@ -5,8 +5,10 @@ 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" # Also covers Pacifica 2017. - JEEP_CHEROKEE = "JEEP GRAND CHEROKEE V6 2018" # Also covers Tailhawk 2017. + PACIFICA_2017 = "CHRYSLER PACIFICA 2017" + PACIFICA_2018 = "CHRYSLER PACIFICA 2018" + JEEP_CHEROKEE_2017 = "JEEP GRAND CHEROKEE Tailhawk 2017" + JEEP_CHEROKEE_2018 = "JEEP GRAND CHEROKEE V6 2018" JEEP_CHEROKEE_2019 = "JEEP GRAND CHEROKEE 2019" @@ -22,160 +24,33 @@ class CAR: # For 924, Trailhawk 2017 has length 3, whereas 2018 V6 has length 8. FINGERPRINTS = { + CAR.PACIFICA_2017: [ + {55: 8, 257: 5, 258: 8, 264: 8, 268: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 292: 8, 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 416: 7, 448: 6, 456: 4, 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 516: 7, 517: 7, 520: 8, 524: 8, 526: 6, 528: 8, 532: 8, 542: 8, 544: 8, 557: 8, 559: 8, 560: 4, 564: 4, 571: 3, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 656: 4, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 678: 8, 680: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 746: 5, 752: 2, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 808: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 882: 8, 897: 8, 924: 3, 926: 3, 937: 8, 947: 8, 948: 8, 969: 4, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1098: 8, 1100: 8, 1537: 8, 1538: 8, 1562: 8} + ], CAR.PACIFICA_2017_HYBRID: [ - {168: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, 294: 8, - 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 448: 6, 456: 4, 464: 8, - 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 515: 7, 516: 7, 517: 7, 518: 7, 520: 8, 528: 8, 532: 8, 542: 8, - 544: 8, 557: 8, 559: 8, 560: 4, 564: 4, 571: 3, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 653: 8, 654: 8, - 655: 8, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 678: 8, 680: 8, 701: 8, 704: 8, 705: 8, 706: 8, 709: 8, 710: 8, - 719: 8, 720: 6, 729: 5, 736: 8, 737: 8, 746: 5, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 782: 8, 784: 8, - 792: 8, 799: 8, 800: 8, 804: 8, 808: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, - 856: 4, 860: 6, 863: 8, 878: 8, 882: 8, 897: 8, 908: 8, 924: 3, 926: 3, 929: 8, 937: 8, 938: 8, 939: 8, 940: 8, - 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 956: 8, 958: 8, 959: 8, 969: 4, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, - 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, - 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, - 1082: 8, 1083: 8, 1098: 8, 1100: 8, 1216: 8, 1218: 8, 1220: 8, 1225: 8, 1235: 8, 1242: 8, 1246: 8, 1250: 8, - 1284: 8, 1537: 8, 1538: 8, 1562: 8, 1568: 8, 1856: 8, 1858: 8, 1860: 8, 1865: 8, 1875: 8, 1882: 8, 1886: 8, - 1890: 8, 1892: 8, 2016: 8, 2024: 8}, + {168: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 448: 6, 456: 4, 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 515: 7, 516: 7, 517: 7, 518: 7, 520: 8, 528: 8, 532: 8, 542: 8, 544: 8, 557: 8, 559: 8, 560: 4, 564: 4, 571: 3, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 653: 8, 654: 8, 655: 8, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 678: 8, 680: 8, 701: 8, 704: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 737: 8, 746: 5, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 782: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 808: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 878: 8, 882: 8, 897: 8, 908: 8, 924: 3, 926: 3, 929: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 956: 8, 958: 8, 959: 8, 969: 4, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1082: 8, 1083: 8, 1098: 8, 1100: 8, 1216: 8, 1218: 8, 1220: 8, 1225: 8, 1235: 8, 1242: 8, 1246: 8, 1250: 8, 1284: 8, 1537: 8, 1538: 8, 1562: 8, 1568: 8, 1596: 8, 1856: 8, 1858: 8, 1860: 8, 1865: 8, 1875: 8, 1882: 8, 1886: 8, 1890: 8, 1892: 8, 2016: 8, 2024: 8}, ], CAR.PACIFICA_2018: [ - {55: 8, 257: 5, 258: 8, 264: 8, 268: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 292: 8, 294: 8, 300: 8, 308: 8, - 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 416: 7, 448: 6, 456: 4, 464: 8, 469: 8, - 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 516: 7, 517: 7, 520: 8, 524: 8, 526: 6, 528: 8, 532: 8, 542: 8, 544: 8, - 557: 8, 559: 8, 560: 4, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 656: 4, 658: 6, - 660: 8, 669: 3, 671: 8, 672: 8, 678: 8, 680: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, - 746: 5, 752: 2, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 808: 8, - 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 882: 8, 897: 8, - 924: 8, 926: 3, 937: 8, 947: 8, 948: 8, 969: 4, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, - 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, - 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1098: 8, 1100: 8, 1537: 8, - 1538: 8, 1562: 8}, - {55: 8, 257: 5, 258: 8, 264: 8, 268: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 292: 8, 294: 8, 300: 8, 308: 8, - 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 416: 7, 448: 6, 456: 4, 464: 8, 469: 8, - 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 516: 7, 517: 7, 520: 8, 524: 8, 526: 6, 528: 8, 532: 8, 542: 8, 544: 8, - 557: 8, 559: 8, 560: 4, 564: 4, 571: 3, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 656: 4, 658: 6, 660: 8, - 669: 3, 671: 8, 672: 8, 678: 8, 680: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 746: 5, - 752: 2, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 808: 8, 816: 8, - 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 882: 8, 897: 8, 924: 3, - 926: 3, 937: 8, 947: 8, 948: 8, 969: 4, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, - 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, - 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1098: 8, 1100: 8, 1537: 8, 1538: 8, - 1562: 8}, + {55: 8, 257: 5, 258: 8, 264: 8, 268: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 292: 8, 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 416: 7, 448: 6, 456: 4, 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 516: 7, 517: 7, 520: 8, 524: 8, 526: 6, 528: 8, 532: 8, 542: 8, 544: 8, 557: 8, 559: 8, 560: 4, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 656: 4, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 678: 8, 680: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 746: 5, 752: 2, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 808: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 882: 8, 897: 8, 924: 8, 926: 3, 937: 8, 947: 8, 948: 8, 969: 4, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1098: 8, 1100: 8, 1537: 8, 1538: 8, 1562: 8}, ], CAR.PACIFICA_2018_HYBRID: [ - {68: 8, 168: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, - 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 448: 6, 456: 4, - 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 520: 8, 528: 8, 532: 8, 544: 8, 557: 8, 559: 8, 560: 4, - 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 653: 8, 654: 8, 655: 8, 658: 6, 660: 8, - 669: 3, 671: 8, 672: 8, 680: 8, 701: 8, 704: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 736: 8, 737: 8, - 746: 5, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 782: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 808: 8, - 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 878: 8, 882: 8, - 897: 8, 908: 8, 924: 8, 926: 3, 929: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, - 958: 8, 959: 8, 969: 4, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, - 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, - 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1082: 8, 1083: 8, 1098: 8, 1100: 8}, - # based on 9ae7821dc4e92455|2019-07-01--16-42-55 - {168: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, 294: 8, - 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 448: 6, 456: 4, 464: 8, - 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 515: 7, 516: 7, 517: 7, 518: 7, 520: 8, 528: 8, 532: 8, 542: 8, - 544: 8, 557: 8, 559: 8, 560: 4, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 653: 8, - 654: 8, 655: 8, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 678: 8, 680: 8, 701: 8, 704: 8, 705: 8, 706: 8, 709: 8, - 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 737: 8, 746: 5, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 782: 8, - 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 808: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, - 853: 8, 856: 4, 860: 6, 863: 8, 878: 8, 882: 8, 897: 8, 908: 8, 924: 8, 926: 3, 929: 8, 937: 8, 938: 8, 939: 8, - 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 958: 8, 959: 8, 969: 4, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, - 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, - 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, - 1082: 8, 1083: 8, 1098: 8, 1100: 8, 1216: 8, 1218: 8, 1220: 8, 1225: 8, 1235: 8, 1242: 8, 1246: 8, 1250: 8, - 1251: 8, 1252: 8, 1258: 8, 1259: 8, 1260: 8, 1262: 8, 1284: 8, 1537: 8, 1538: 8, 1562: 8, 1568: 8, 1856: 8, - 1858: 8, 1860: 8, 1865: 8, 1875: 8, 1882: 8, 1886: 8, 1890: 8, 1891: 8, 1892: 8, 1898: 8, 1899: 8, 1900: 8, - 1902: 8, 2016: 8, 2018: 8, 2019: 8, 2020: 8, 2023: 8, 2024: 8, 2026: 8, 2027: 8, 2028: 8, 2031: 8}, + {68: 8, 168: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 448: 6, 456: 4, 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 515: 7, 516: 7, 517: 7, 518: 7, 520: 8, 528: 8, 532: 8, 542: 8, 544: 8, 557: 8, 559: 8, 560: 4, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 653: 8, 654: 8, 655: 8, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 678: 8, 680: 8, 701: 8, 704: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 737: 8, 746: 5, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 777: 8, 779: 8, 782: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 808: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 878: 8, 882: 8, 897: 8, 908: 8, 924: 8, 926: 3, 929: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 958: 8, 959: 8, 969: 4, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 999: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1082: 8, 1083: 8, 1098: 8, 1100: 8, 1235: 8, 1250: 8, 1538: 8, 1562: 8, 1856: 8, 1892: 8} ], CAR.PACIFICA_2019_HYBRID: [ - {168: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, 294: 8, - 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 448: 6, 456: 4, 464: 8, - 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 515: 7, 516: 7, 517: 7, 518: 7, 520: 8, 528: 8, 532: 8, 542: 8, - 544: 8, 557: 8, 559: 8, 560: 8, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 653: 8, - 654: 8, 655: 8, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 680: 8, 701: 8, 703: 8, 704: 8, 705: 8, 706: 8, 709: 8, - 710: 8, 719: 8, 720: 6, 736: 8, 737: 8, 746: 5, 752: 2, 754: 8, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, - 782: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, - 853: 8, 856: 4, 860: 6, 863: 8, 878: 8, 882: 8, 897: 8, 906: 8, 908: 8, 924: 8, 926: 3, 929: 8, 937: 8, 938: 8, - 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 958: 8, 959: 8, 962: 8, 969: 4, 973: 8, 974: 5, 979: 8, - 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, - 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, - 1033: 8, 1050: 8, 1059: 8, 1082: 8, 1083: 8, 1098: 8, 1100: 8, 1538: 8}, - # Based on 0607d2516fc2148f|2019-02-13--23-03-16 - { - 168: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, 294: 8, - 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 448: 6, 456: 4, 464: 8, - 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 520: 8, 528: 8, 532: 8, 544: 8, 557: 8, 559: 8, 560: 8, 564: 8, - 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 653: 8, 654: 8, 655: 8, 658: 6, 660: 8, 669: 3, - 671: 8, 672: 8, 678: 8, 680: 8, 701: 8, 703: 8, 704: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, - 736: 8, 737: 8, 746: 5, 752: 2, 754: 8, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 782: 8, 784: 8, 792: 8, - 799: 8, 800: 8, 804: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, - 863: 8, 878: 8, 882: 8, 897: 8, 906: 8, 908: 8, 924: 8, 926: 3, 929: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, - 942: 8, 943: 8, 947: 8, 948: 8, 958: 8, 959: 8, 962: 8, 969: 4, 973: 8, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, - 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, - 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, - 1082: 8, 1083: 8, 1098: 8, 1100: 8, 1537: 8 - }, - # Based on 3c7ce223e3571b54|2019-05-11--20-16-14 - { - 168: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, 294: 8, - 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 448: 6, 456: 4, 464: 8, - 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 520: 8, 528: 8, 532: 8, 544: 8, 557: 8, 559: 8, 560: 8, 564: 8, - 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 653: 8, 654: 8, 655: 8, 658: 6, 660: 8, 669: 3, - 671: 8, 672: 8, 678: 8, 680: 8, 701: 8, 703: 8, 704: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, - 736: 8, 737: 8, 746: 5, 752: 2, 754: 8, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 782: 8, 784: 8, 792: 8, - 799: 8, 800: 8, 804: 8, 808: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, - 860: 6, 863: 8, 878: 8, 882: 8, 897: 8, 906: 8, 908: 8, 924: 8, 926: 3, 929: 8, 937: 8, 938: 8, 939: 8, 940: 8, - 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 958: 8, 959: 8, 962: 8, 969: 4, 973: 8, 974: 5, 979: 8, 980: 8, 981: 8, - 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, - 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, - 1059: 8, 1082: 8, 1083: 8, 1098: 8, 1100: 8, 1562: 8, 1570: 8 - } + {55: 8, 168: 8, 181: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 416: 7, 448: 6, 456: 4, 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 515: 7, 516: 7, 517: 7, 518: 7, 520: 8, 524: 8, 526: 6, 528: 8, 532: 8, 542: 8, 544: 8, 557: 8, 559: 8, 560: 8, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 653: 8, 654: 8, 655: 8, 656: 4, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 678: 8, 680: 8, 701: 8, 703: 8, 704: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 737: 8, 746: 5, 752: 2, 754: 8, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 782: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 808: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 878: 8, 882: 8, 897: 8, 906: 8, 908: 8, 924: 8, 926: 3, 929: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 958: 8, 959: 8, 962: 8, 969: 4, 973: 8, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1082: 8, 1083: 8, 1098: 8, 1100: 8, 1537: 8, 1538: 8, 1562: 8, 1570: 8, 1572: 8} ], - CAR.JEEP_CHEROKEE: [ - # JEEP GRAND CHEROKEE V6 2018 - {55: 8, 168: 8, 181: 8, 256: 4, 257: 5, 258: 8, 264: 8, 268: 8, 272: 6, 273: 6, 274: 2, 280: 8, 284: 8, 288: 7, - 290: 6, 292: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 352: 8, 362: 8, 368: 8, 376: 3, 384: 8, - 388: 4, 416: 7, 448: 6, 456: 4, 464: 8, 500: 8, 501: 8, 512: 8, 514: 8, 520: 8, 532: 8, 544: 8, 557: 8, 559: 8, - 560: 4, 564: 4, 571: 3, 579: 8, 584: 8, 608: 8, 618: 8, 624: 8, 625: 8, 632: 8, 639: 8, 656: 4, 658: 6, 660: 8, - 671: 8, 672: 8, 676: 8, 678: 8, 680: 8, 683: 8, 684: 8, 703: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, - 729: 5, 736: 8, 737: 8, 738: 8, 746: 5, 752: 2, 754: 8, 760: 8, 761: 8, 764: 8, 766: 8, 773: 8, 776: 8, 779: 8, - 782: 8, 783: 8, 784: 8, 785: 8, 788: 3, 792: 8, 799: 8, 800: 8, 804: 8, 806: 2, 808: 8, 810: 8, 816: 8, 817: 8, - 820: 8, 825: 2, 826: 8, 831: 6, 832: 8, 838: 2, 844: 5, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 882: 8, 897: 8, - 906: 8, 924: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 956: 8, 968: 8, 969: 4, - 970: 8, 973: 8, 974: 5, 976: 8, 977: 4, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, - 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, - 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1062: 8, 1098: 8, 1100: 8}, + CAR.JEEP_CHEROKEE_2017: [ # Jeep Grand Cherokee 2017 Trailhawk - {257: 5, 258: 8, 264: 8, 268: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 292: 8, 300: 8, 308: 8, 320: 8, 324: 8, - 331: 8, 332: 8, 344: 8, 352: 8, 362: 8, 368: 8, 376: 3, 384: 8, 388: 4, 416: 7, 448: 6, 456: 4, 464: 8, 500: 8, - 501: 8, 512: 8, 514: 8, 520: 8, 532: 8, 544: 8, 557: 8, 559: 8, 560: 4, 564: 4, 571: 3, 584: 8, 608: 8, 618: 8, - 624: 8, 625: 8, 632: 8, 639: 8, 658: 6, 660: 8, 671: 8, 672: 8, 680: 8, 684: 8, 703: 8, 705: 8, 706: 8, 709: 8, - 710: 8, 719: 8, 720: 6, 736: 8, 737: 8, 746: 5, 752: 2, 760: 8, 761: 8, 764: 8, 766: 8, 773: 8, 776: 8, 779: 8, - 783: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 806: 2, 808: 8, 810: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, - 831: 6, 832: 8, 838: 2, 844: 5, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 882: 8, 897: 8, 924: 3, 937: 8, 947: 8, - 948: 8, 969: 4, 974: 5, 977: 4, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, - 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, - 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1062: 8, 1098: 8, 1100: 8}, + {256: 4, 257: 5, 258: 8, 264: 8, 268: 8, 272: 6, 273: 6, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 292: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 352: 8, 362: 8, 368: 8, 376: 3, 384: 8, 388: 4, 416: 7, 448: 6, 456: 4, 464: 8, 500: 8, 501: 8, 512: 8, 514: 8, 520: 8, 532: 8, 536: 8, 544: 8, 557: 8, 559: 8, 560: 4, 564: 4, 571: 3, 584: 8, 608: 8, 618: 8, 624: 8, 625: 8, 632: 8, 639: 8, 658: 6, 660: 8, 671: 8, 672: 8, 678: 8, 680: 8, 683: 8, 684: 8, 685: 8, 703: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 737: 8, 746: 5, 752: 2, 760: 8, 761: 8, 762: 5, 764: 8, 766: 8, 772: 8, 773: 8, 776: 8, 779: 8, 783: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 806: 2, 808: 8, 810: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 831: 6, 832: 8, 836: 2, 838: 2, 844: 5, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 874: 2, 882: 8, 897: 8, 924: 3, 937: 8, 947: 8, 948: 8, 956: 8, 968: 8, 969: 4, 970: 8, 974: 5, 975: 8, 977: 4, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 994: 3, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1027: 8, 1031: 8, 1033: 8, 1050: 8, 1058: 8, 1059: 8, 1062: 8, 1098: 8, 1100: 8, 1216: 8, 1218: 8, 1220: 8, 1223: 8, 1225: 8, 1227: 8, 1242: 8, 1250: 8, 1251: 8, 1252: 8, 1264: 8, 1408: 8, 1572: 8, 1856: 8, 1858: 8, 1860: 8, 1863: 8, 1865: 8, 1867: 8, 1882: 8, 1890: 8, 1891: 8, 1892: 8, 1898: 8, 1899: 8, 1900: 8, 1902: 8, 1904: 8, 2017: 8, 2019: 8, 2023: 8, 2025: 8} + ], + CAR.JEEP_CHEROKEE_2018: [ + # JEEP GRAND CHEROKEE V6 2018 + {55: 8, 168: 8, 181: 8, 256: 4, 257: 5, 258: 8, 264: 8, 268: 8, 272: 6, 273: 6, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 292: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 352: 8, 362: 8, 368: 8, 376: 3, 384: 8, 388: 4, 416: 7, 448: 6, 456: 4, 464: 8, 500: 8, 501: 8, 512: 8, 514: 8, 520: 8, 532: 8, 544: 8, 557: 8, 559: 8, 560: 4, 564: 4, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 658: 6, 660: 8, 671: 8, 672: 8, 676: 8, 678: 8, 680: 8, 683: 8, 684: 8, 703: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 737: 8, 738: 8, 746: 5, 752: 2, 754: 8, 760: 8, 761: 8, 764: 8, 766: 8, 773: 8, 776: 8, 779: 8, 782: 8, 783: 8, 784: 8, 785: 8, 792: 8, 799: 8, 800: 8, 804: 8, 806: 2, 808: 8, 810: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 831: 6, 832: 8, 838: 2, 844: 5, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 882: 8, 897: 8, 906: 8, 924: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 968: 8, 969: 4, 970: 8, 973: 8, 974: 5, 976: 8, 977: 4, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1062: 8, 1098: 8, 1100: 8, 1218: 8, 1284: 8, 1543: 8, 1562: 8, 1568: 8, 1858: 8} ], CAR.JEEP_CHEROKEE_2019: [ # Jeep Grand Cherokee 2019 from Switzerland # 530: 8 is so far only in this Jeep. - {55: 8, 181: 8, 256: 4, 257: 5, 258: 8, 264: 8, 268: 8, 272: 6, 273: 6, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, - 292: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 352: 8, 362: 8, 368: 8, 376: 3, 384: 8, 388: 4, - 416: 7, 448: 6, 456: 4, 464: 8, 500: 8, 501: 8, 512: 8, 514: 8, 520: 8, 530: 8, 532: 8, 544: 8, 557: 8, 559: 8, - 560: 8, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 618: 8, 624: 8, 625: 8, 632: 8, 639: 8, 658: 6, 660: 8, 671: 8, - 672: 8, 676: 8, 680: 8, 683: 8, 684: 8, 703: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 736: 8, 737: 8, - 738: 8, 746: 5, 752: 2, 754: 8, 760: 8, 761: 8, 764: 8, 773: 8, 776: 8, 779: 8, 782: 8, 783: 8, 784: 8, 792: 8, - 799: 8, 804: 8, 806: 2, 808: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 831: 6, 832: 8, 838: 2, 844: 5, 848: 8, - 853: 8, 856: 4, 860: 6, 882: 8, 897: 8, 906: 8, 924: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, - 947: 8, 948: 8, 968: 8, 969: 4, 970: 8, 973: 8, 974: 5, 977: 4, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, - 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, - 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1062: 8, 1098: 8, - 1100: 8}, + {55: 8, 181: 8, 256: 4, 257: 5, 258: 8, 264: 8, 268: 8, 272: 6, 273: 6, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 292: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 352: 8, 362: 8, 368: 8, 376: 3, 384: 8, 388: 4, 416: 7, 448: 6, 456: 4, 464: 8, 500: 8, 501: 8, 512: 8, 514: 8, 520: 8, 530: 8, 532: 8, 544: 8, 557: 8, 559: 8, 560: 8, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 618: 8, 624: 8, 625: 8, 632: 8, 639: 8, 660: 8, 671: 8, 672: 8, 676: 8, 680: 8, 683: 8, 684: 8, 703: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 736: 8, 737: 8, 738: 8, 746: 5, 752: 2, 754: 8, 760: 8, 761: 8, 764: 8, 773: 8, 776: 8, 779: 8, 782: 8, 783: 8, 784: 8, 792: 8, 799: 8, 804: 8, 806: 2, 808: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 831: 6, 832: 8, 838: 2, 844: 5, 848: 8, 853: 8, 856: 4, 860: 6, 882: 8, 897: 8, 906: 8, 924: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 968: 8, 969: 4, 970: 8, 973: 8, 974: 5, 977: 4, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1062: 8, 1098: 8, 1100: 8}, ], } @@ -183,6 +58,9 @@ class CAR: CAR.PACIFICA_2017_HYBRID: dbc_dict( 'chrysler_pacifica_2017_hybrid', # 'pt' 'chrysler_pacifica_2017_hybrid_private_fusion'), # 'radar' + CAR.PACIFICA_2017: dbc_dict( # Same DBC file works. + 'chrysler_pacifica_2017_hybrid', # 'pt' + 'chrysler_pacifica_2017_hybrid_private_fusion'), # 'radar' CAR.PACIFICA_2018: dbc_dict( # Same DBC file works. 'chrysler_pacifica_2017_hybrid', # 'pt' 'chrysler_pacifica_2017_hybrid_private_fusion'), # 'radar' @@ -192,7 +70,10 @@ class CAR: CAR.PACIFICA_2019_HYBRID: dbc_dict( # Same DBC file works. 'chrysler_pacifica_2017_hybrid', # 'pt' 'chrysler_pacifica_2017_hybrid_private_fusion'), # 'radar' - CAR.JEEP_CHEROKEE: dbc_dict( # Same DBC file works. + CAR.JEEP_CHEROKEE_2017: dbc_dict( # Same DBC file works. + 'chrysler_pacifica_2017_hybrid', # 'pt' + 'chrysler_pacifica_2017_hybrid_private_fusion'), # 'radar' + CAR.JEEP_CHEROKEE_2018: dbc_dict( # Same DBC file works. 'chrysler_pacifica_2017_hybrid', # 'pt' 'chrysler_pacifica_2017_hybrid_private_fusion'), # 'radar' CAR.JEEP_CHEROKEE_2019: dbc_dict( # Same DBC file works. @@ -209,4 +90,4 @@ class ECU: ECU_FINGERPRINT = { ECU.CAM: [0x292], # lkas cmd -} \ No newline at end of file +} From 36329e1fa0beff4a8099682fc28e4eaa7bfb1f60 Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Thu, 24 Oct 2019 20:47:38 +0200 Subject: [PATCH 02/25] Add back old fingerprint compatibility --- selfdrive/car/chrysler/interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/car/chrysler/interface.py b/selfdrive/car/chrysler/interface.py index d3ea4cac8f34bd..ac1aa9da32a11e 100755 --- a/selfdrive/car/chrysler/interface.py +++ b/selfdrive/car/chrysler/interface.py @@ -59,7 +59,7 @@ def get_params(candidate, fingerprint=gen_empty_fingerprint(), vin="", has_relay ret.steerActuatorDelay = 0.1 ret.steerRateCost = 0.7 - if candidate in (CAR.JEEP_CHEROKEE, CAR.JEEP_CHEROKEE_2019): + if candidate in (CAR.JEEP_CHEROKEE_2017, CAR.JEEP_CHEROKEE_2018, CAR.JEEP_CHEROKEE_2019): ret.wheelbase = 2.91 # in meters ret.steerRatio = 12.7 ret.steerActuatorDelay = 0.2 # in seconds From 42f1523caabf8fec62637608e4a99075b74a9c3d Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Thu, 24 Oct 2019 21:05:42 +0200 Subject: [PATCH 03/25] Reduce output by 10% to avoid oversteer --- selfdrive/controls/lib/latcontrol_lqr.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/controls/lib/latcontrol_lqr.py b/selfdrive/controls/lib/latcontrol_lqr.py index e68050229c1651..e3a9bd3b50bb1f 100644 --- a/selfdrive/controls/lib/latcontrol_lqr.py +++ b/selfdrive/controls/lib/latcontrol_lqr.py @@ -69,7 +69,7 @@ def update(self, active, v_ego, angle_steers, angle_steers_rate, eps_torque, ste self.i_lqr = i self.output_steer = lqr_output + self.i_lqr - self.output_steer = clip(self.output_steer, -steers_max, steers_max) + self.output_steer = clip(self.output_steer*0.9, -steers_max, steers_max) lqr_log.steerAngle = angle_steers_k + path_plan.angleOffset lqr_log.i = self.i_lqr From be4413bbc9814d87feadf3a67e2abc107077022a Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Thu, 24 Oct 2019 23:24:03 +0200 Subject: [PATCH 04/25] Add 2017 --- selfdrive/test/test_car_models.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/selfdrive/test/test_car_models.py b/selfdrive/test/test_car_models.py index 27b29aa1191958..ac2bc5542932d0 100755 --- a/selfdrive/test/test_car_models.py +++ b/selfdrive/test/test_car_models.py @@ -81,7 +81,7 @@ def get_route_logs(route_name): # 'enableCamera': True, # }, "9f7a7e50a51fb9db|2019-01-17--18-34-21": { - 'carFingerprint': CHRYSLER.JEEP_CHEROKEE, + 'carFingerprint': CHRYSLER.JEEP_CHEROKEE_2017, 'enableCamera': True, }, "192a598e34926b1e|2019-04-04--13-27-39": { @@ -549,4 +549,4 @@ def get_route_logs(route_name): print("TEST FAILED") sys.exit(1) else: - print("TEST SUCESSFUL") \ No newline at end of file + print("TEST SUCESSFUL") From 85cc5cb98b89af9a77c4b57eb59cfb37262ed547 Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Thu, 24 Oct 2019 23:57:19 +0200 Subject: [PATCH 05/25] Set jump set speed to 5 if you hold stock --- selfdrive/car/toyota/carstate.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/selfdrive/car/toyota/carstate.py b/selfdrive/car/toyota/carstate.py index d2f2b0bae8e930..7cec37b2006d88 100644 --- a/selfdrive/car/toyota/carstate.py +++ b/selfdrive/car/toyota/carstate.py @@ -130,6 +130,7 @@ def __init__(self, CP): self.v_cruise_pcmlast = 41 self.pcm_acc_status = False self.setspeedoffset = 34.0 + self.setspeedcounter = 0 self.Angles = np.zeros(250) self.Angles_later = np.zeros(250) self.Angle_counter = 0 @@ -251,12 +252,27 @@ def update(self, cp, cp_cam): self.setspeedoffset = 0 self.v_cruise_pcmlast = self.v_cruise_pcm if self.v_cruise_pcm < self.v_cruise_pcmlast: - self.setspeedoffset = self.setspeedoffset + math.floor((int((-self.v_cruise_pcm)*34/128 + 169*34/128)-self.setspeedoffset)/(self.v_cruise_pcm-40)) + if self.setspeedcounter > 0: + self.setspeedoffset = self.setspeedoffset - 4 + else: + self.setspeedoffset = self.setspeedoffset + math.floor((int((-self.v_cruise_pcm)*34/128 + 169*34/128)-self.setspeedoffset)/(self.v_cruise_pcm-40)) + self.setspeedcounter = 100 if self.v_cruise_pcmlast < self.v_cruise_pcm: - self.setspeedoffset = self.setspeedoffset + math.floor((int((-self.v_cruise_pcm)*34/128 + 169*34/128)-self.setspeedoffset)/(170-self.v_cruise_pcm)) - + if self.setspeedcounter > 0: + self.setspeedoffset = self.setspeedoffset + 4 + else: + self.setspeedoffset = self.setspeedoffset + math.floor((int((-self.v_cruise_pcm)*34/128 + 169*34/128)-self.setspeedoffset)/(170-self.v_cruise_pcm)) + self.setspeedcounter = 100 + if self.setspeedcounter > 0: + self.setspeedcounter = self.setspeedcounter - 1 self.v_cruise_pcmlast = self.v_cruise_pcm - self.v_cruise_pcm = max(7, int(self.v_cruise_pcm) - self.setspeedoffset) + if int(self.v_cruise_pcm) - self.setspeedoffset < 7: + self.setspeedoffset = int(self.v_cruise_pcm) - 7 + if int(self.v_cruise_pcm) - self.setspeedoffset > 169: + self.setspeedoffset = int(self.v_cruise_pcm) - 169 + + + self.v_cruise_pcm = min(max(7, int(self.v_cruise_pcm) - self.setspeedoffset),169) if not self.left_blinker_on and not self.right_blinker_on: self.Angles[self.Angle_counter] = abs(self.angle_steers) From aadd86b422e3739a0cd4847c2a523b9c3ff6017c Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Fri, 25 Oct 2019 07:20:04 +0200 Subject: [PATCH 06/25] Fix sign and reduce time for hold --- selfdrive/car/toyota/carstate.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/selfdrive/car/toyota/carstate.py b/selfdrive/car/toyota/carstate.py index 7cec37b2006d88..d680857b8e5cbf 100644 --- a/selfdrive/car/toyota/carstate.py +++ b/selfdrive/car/toyota/carstate.py @@ -253,16 +253,16 @@ def update(self, cp, cp_cam): self.v_cruise_pcmlast = self.v_cruise_pcm if self.v_cruise_pcm < self.v_cruise_pcmlast: if self.setspeedcounter > 0: - self.setspeedoffset = self.setspeedoffset - 4 + self.setspeedoffset = self.setspeedoffset + 4 else: self.setspeedoffset = self.setspeedoffset + math.floor((int((-self.v_cruise_pcm)*34/128 + 169*34/128)-self.setspeedoffset)/(self.v_cruise_pcm-40)) - self.setspeedcounter = 100 + self.setspeedcounter = 50 if self.v_cruise_pcmlast < self.v_cruise_pcm: if self.setspeedcounter > 0: - self.setspeedoffset = self.setspeedoffset + 4 + self.setspeedoffset = self.setspeedoffset - 4 else: self.setspeedoffset = self.setspeedoffset + math.floor((int((-self.v_cruise_pcm)*34/128 + 169*34/128)-self.setspeedoffset)/(170-self.v_cruise_pcm)) - self.setspeedcounter = 100 + self.setspeedcounter = 50 if self.setspeedcounter > 0: self.setspeedcounter = self.setspeedcounter - 1 self.v_cruise_pcmlast = self.v_cruise_pcm From 8f3c64a674fc0210950220ced98c7319678f78cb Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Fri, 25 Oct 2019 09:41:05 +0200 Subject: [PATCH 07/25] Add some limits to keep car happy --- selfdrive/car/toyota/carstate.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/selfdrive/car/toyota/carstate.py b/selfdrive/car/toyota/carstate.py index d680857b8e5cbf..32dbe035c9fc6f 100644 --- a/selfdrive/car/toyota/carstate.py +++ b/selfdrive/car/toyota/carstate.py @@ -252,13 +252,13 @@ def update(self, cp, cp_cam): self.setspeedoffset = 0 self.v_cruise_pcmlast = self.v_cruise_pcm if self.v_cruise_pcm < self.v_cruise_pcmlast: - if self.setspeedcounter > 0: + if self.setspeedcounter > 0 and self.v_cruise_pcm > 41: self.setspeedoffset = self.setspeedoffset + 4 else: self.setspeedoffset = self.setspeedoffset + math.floor((int((-self.v_cruise_pcm)*34/128 + 169*34/128)-self.setspeedoffset)/(self.v_cruise_pcm-40)) self.setspeedcounter = 50 if self.v_cruise_pcmlast < self.v_cruise_pcm: - if self.setspeedcounter > 0: + if self.setspeedcounter > 0 and (self.setspeedoffset - 4) > 0: self.setspeedoffset = self.setspeedoffset - 4 else: self.setspeedoffset = self.setspeedoffset + math.floor((int((-self.v_cruise_pcm)*34/128 + 169*34/128)-self.setspeedoffset)/(170-self.v_cruise_pcm)) From 4eb14ddfc2b9365b65a61de6c3d0bf2fbe511d88 Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Fri, 25 Oct 2019 10:29:59 +0200 Subject: [PATCH 08/25] if setting down force a lower speed Sometimes the calculation would make it that the speed did not change or even worse go up when setting it to go down. Due to the offset now being much higher this needs to be checked before changing the setspeedoffset --- selfdrive/car/toyota/carstate.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/selfdrive/car/toyota/carstate.py b/selfdrive/car/toyota/carstate.py index 32dbe035c9fc6f..50af8df4267e15 100644 --- a/selfdrive/car/toyota/carstate.py +++ b/selfdrive/car/toyota/carstate.py @@ -255,7 +255,8 @@ def update(self, cp, cp_cam): if self.setspeedcounter > 0 and self.v_cruise_pcm > 41: self.setspeedoffset = self.setspeedoffset + 4 else: - self.setspeedoffset = self.setspeedoffset + math.floor((int((-self.v_cruise_pcm)*34/128 + 169*34/128)-self.setspeedoffset)/(self.v_cruise_pcm-40)) + if not math.floor((int((-self.v_cruise_pcm)*34/128 + 169*34/128)-self.setspeedoffset)/(self.v_cruise_pcm-40)) > 0: + self.setspeedoffset = self.setspeedoffset + math.floor((int((-self.v_cruise_pcm)*34/128 + 169*34/128)-self.setspeedoffset)/(self.v_cruise_pcm-40)) self.setspeedcounter = 50 if self.v_cruise_pcmlast < self.v_cruise_pcm: if self.setspeedcounter > 0 and (self.setspeedoffset - 4) > 0: From eb803e5ae0790041403ffc974595e94644f4132b Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Fri, 25 Oct 2019 10:42:42 +0200 Subject: [PATCH 09/25] Fix if Statement --- selfdrive/car/toyota/carstate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/car/toyota/carstate.py b/selfdrive/car/toyota/carstate.py index 50af8df4267e15..a9b7e1aec7382d 100644 --- a/selfdrive/car/toyota/carstate.py +++ b/selfdrive/car/toyota/carstate.py @@ -255,7 +255,7 @@ def update(self, cp, cp_cam): if self.setspeedcounter > 0 and self.v_cruise_pcm > 41: self.setspeedoffset = self.setspeedoffset + 4 else: - if not math.floor((int((-self.v_cruise_pcm)*34/128 + 169*34/128)-self.setspeedoffset)/(self.v_cruise_pcm-40)) > 0: + if math.floor((int((-self.v_cruise_pcm)*34/128 + 169*34/128)-self.setspeedoffset)/(self.v_cruise_pcm-40)) > 0: self.setspeedoffset = self.setspeedoffset + math.floor((int((-self.v_cruise_pcm)*34/128 + 169*34/128)-self.setspeedoffset)/(self.v_cruise_pcm-40)) self.setspeedcounter = 50 if self.v_cruise_pcmlast < self.v_cruise_pcm: From 7613d1df384992b5b53ec015bebd362b2c2de86f Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Fri, 25 Oct 2019 15:40:14 +0200 Subject: [PATCH 10/25] Remove offset rather reduce hysterical gap --- selfdrive/car/toyota/carcontroller.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/selfdrive/car/toyota/carcontroller.py b/selfdrive/car/toyota/carcontroller.py index a9c0bb1aa815ec..11b7c61bced2dc 100644 --- a/selfdrive/car/toyota/carcontroller.py +++ b/selfdrive/car/toyota/carcontroller.py @@ -12,7 +12,7 @@ VisualAlert = car.CarControl.HUDControl.VisualAlert # Accel limits -ACCEL_HYST_GAP = 0.02 # don't change accel command for small oscilalitons within this value +ACCEL_HYST_GAP = 0.01 # don't change accel command for small oscilalitons within this value ACCEL_MAX = 2.7 # 2.7 m/s2 ACCEL_MIN = -2.7 # -2.7 m/s2 ACCEL_SCALE = max(ACCEL_MAX, -ACCEL_MIN) @@ -44,9 +44,9 @@ def accel_hysteresis(accel, accel_steady, enabled): # send 0 when disabled, otherwise acc faults accel_steady = 0. elif accel > accel_steady + ACCEL_HYST_GAP: - accel_steady = accel - ACCEL_HYST_GAP + 0.0111 + accel_steady = accel - ACCEL_HYST_GAP elif accel < accel_steady - ACCEL_HYST_GAP: - accel_steady = accel + ACCEL_HYST_GAP + 0.0111 + accel_steady = accel + ACCEL_HYST_GAP accel = accel_steady return accel, accel_steady From 7c2675c3a3a4b9f1349356e25708828164fca821 Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Fri, 25 Oct 2019 15:41:13 +0200 Subject: [PATCH 11/25] Reduce output another 10% --- selfdrive/controls/lib/latcontrol_lqr.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/controls/lib/latcontrol_lqr.py b/selfdrive/controls/lib/latcontrol_lqr.py index e3a9bd3b50bb1f..cc7dbc5261cdd0 100644 --- a/selfdrive/controls/lib/latcontrol_lqr.py +++ b/selfdrive/controls/lib/latcontrol_lqr.py @@ -69,7 +69,7 @@ def update(self, active, v_ego, angle_steers, angle_steers_rate, eps_torque, ste self.i_lqr = i self.output_steer = lqr_output + self.i_lqr - self.output_steer = clip(self.output_steer*0.9, -steers_max, steers_max) + self.output_steer = clip(self.output_steer*0.8, -steers_max, steers_max) lqr_log.steerAngle = angle_steers_k + path_plan.angleOffset lqr_log.i = self.i_lqr From 72ae3ef2324ceb29a62cca305673d7e3603688ed Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Fri, 25 Oct 2019 21:47:42 +0200 Subject: [PATCH 12/25] Increase value again --- selfdrive/car/toyota/carcontroller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/car/toyota/carcontroller.py b/selfdrive/car/toyota/carcontroller.py index 11b7c61bced2dc..95f3f6f38bc1cc 100644 --- a/selfdrive/car/toyota/carcontroller.py +++ b/selfdrive/car/toyota/carcontroller.py @@ -12,7 +12,7 @@ VisualAlert = car.CarControl.HUDControl.VisualAlert # Accel limits -ACCEL_HYST_GAP = 0.01 # don't change accel command for small oscilalitons within this value +ACCEL_HYST_GAP = 0.02 # don't change accel command for small oscilalitons within this value ACCEL_MAX = 2.7 # 2.7 m/s2 ACCEL_MIN = -2.7 # -2.7 m/s2 ACCEL_SCALE = max(ACCEL_MAX, -ACCEL_MIN) From 244d7252ed86b5e244df238af0e7f46f3a7da774 Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Fri, 25 Oct 2019 22:19:12 +0200 Subject: [PATCH 13/25] Bad signal in tunnel should still allow traffic signal values --- selfdrive/mapd/mapd.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/mapd/mapd.py b/selfdrive/mapd/mapd.py index bc1a9302a0a4bd..34cff721311112 100755 --- a/selfdrive/mapd/mapd.py +++ b/selfdrive/mapd/mapd.py @@ -204,7 +204,7 @@ def mapsd_thread(): fix_ok = gps.flags & 1 - if gps.accuracy > 2.0: + if gps.accuracy > 2.0 and not speedLimittrafficvalid: fix_ok = False if not fix_ok or last_query_result is None or not cache_valid: cur_way = None From 31c5268b3768b9dcbd3ce0726f419890c5640117 Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Sat, 26 Oct 2019 10:13:37 +0200 Subject: [PATCH 14/25] include rate of curvature calculation --- selfdrive/mapd/mapd_helpers.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/selfdrive/mapd/mapd_helpers.py b/selfdrive/mapd/mapd_helpers.py index 748ffd4b9631eb..c43ba96706f334 100644 --- a/selfdrive/mapd/mapd_helpers.py +++ b/selfdrive/mapd/mapd_helpers.py @@ -19,6 +19,14 @@ with open(DEFAULT_SPEEDS_BY_REGION_JSON_FILE, "rb") as f: DEFAULT_SPEEDS_BY_REGION = json.loads(f.read()) +def rate_curvature_points(p2,p3,curvature2,curvature3): + x2, y2, _ = p2 + x3, y3, _ = p3 + if curvature3 > curvature2: + return (curvature3-curvature2)/(np.sqrt((x3-x2)**2+(y3-y2)**2)) + else: + return 0 + def circle_through_points(p1, p2, p3, force=False): """Fits a circle through three points Formulas from: http://www.ambrsoft.com/trigocalc/circle3d.htm""" From cfdbece56c5d938169125e5a675b1174a68572a4 Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Sat, 26 Oct 2019 10:15:58 +0200 Subject: [PATCH 15/25] Add direction to radius --- selfdrive/mapd/mapd_helpers.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/selfdrive/mapd/mapd_helpers.py b/selfdrive/mapd/mapd_helpers.py index c43ba96706f334..b48c94c36529d6 100644 --- a/selfdrive/mapd/mapd_helpers.py +++ b/selfdrive/mapd/mapd_helpers.py @@ -27,7 +27,7 @@ def rate_curvature_points(p2,p3,curvature2,curvature3): else: return 0 -def circle_through_points(p1, p2, p3, force=False): +def circle_through_points(p1, p2, p3, force=False, direction=False): """Fits a circle through three points Formulas from: http://www.ambrsoft.com/trigocalc/circle3d.htm""" x1, y1, _ = p1 @@ -40,7 +40,13 @@ def circle_through_points(p1, p2, p3, force=False): D = (x1**2 + y1**2) * (x3 * y2 - x2 * y3) + (x2**2 + y2**2) * (x1 * y3 - x3 * y1) + (x3**2 + y3**2) * (x2 * y1 - x1 * y2) try: if abs((y3-y1)*x2-(x3-x1)*y2+x3*y1-y3*x1)/np.sqrt((y3-y1)**2+(x3-x1)**2) > 0.1 or force: - return (-B / (2 * A), - C / (2 * A), np.sqrt((B**2 + C**2 - 4 * A * D) / (4 * A**2))) + if direction: + if (x2-x1)*(y3-y1)-(y2-y1)*(x3-x1)>0: + return (-B / (2 * A), - C / (2 * A), np.sqrt((B**2 + C**2 - 4 * A * D) / (4 * A**2))) + else: + return (-B / (2 * A), - C / (2 * A), -np.sqrt((B**2 + C**2 - 4 * A * D) / (4 * A**2))) + else: + return (-B / (2 * A), - C / (2 * A), np.sqrt((B**2 + C**2 - 4 * A * D) / (4 * A**2))) else: return (-B / (2 * A), - C / (2 * A), 10000) except RuntimeWarning: From f501989905bfa4832f724f677d91d2136253e436 Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Sat, 26 Oct 2019 10:24:08 +0200 Subject: [PATCH 16/25] Adjust curvature due to rate if there is no rate change in curvature make 10% less for the speed reduction calculation. If curvature is increasing apply a factor to increase the effect --- selfdrive/mapd/mapd.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/selfdrive/mapd/mapd.py b/selfdrive/mapd/mapd.py index 34cff721311112..a1555e7148461d 100755 --- a/selfdrive/mapd/mapd.py +++ b/selfdrive/mapd/mapd.py @@ -21,7 +21,7 @@ from common.transformations.coordinates import geodetic2ecef import selfdrive.mapd.messaging as messaging -from selfdrive.mapd.mapd_helpers import MAPS_LOOKAHEAD_DISTANCE, Way, circle_through_points +from selfdrive.mapd.mapd_helpers import MAPS_LOOKAHEAD_DISTANCE, Way, circle_through_points, rate_curvature_points OVERPASS_API_URL = "https://z.overpass-api.de/api/interpreter" OVERPASS_API_URL2 = "https://lz4.overpass-api.de/api/interpreter" @@ -245,7 +245,7 @@ def mapsd_thread(): if curvature_valid: # Compute the curvature for each point with np.errstate(divide='ignore'): - circles = [circle_through_points(*p) for p in zip(pnts, pnts[1:], pnts[2:])] + circles = [circle_through_points(*p, direction=True) for p in zip(pnts, pnts[1:], pnts[2:])] circles = np.asarray(circles) radii = np.nan_to_num(circles[:, 2]) radii[radii < 15.] = 10000 @@ -256,7 +256,9 @@ def mapsd_thread(): radii = radii*2.8 curvature = 1. / radii - + rate = [rate_curvature_points(*p) for p in zip(pnts[1:], pnts[2:],curvature[0:],curvature[1:])] + rate = ([0] + rate) + curvature = np.multiply(np.multiply(rate,2000)+0.9,curvature) # Index of closest point closest = np.argmin(np.linalg.norm(pnts, axis=1)) dist_to_closest = pnts[closest, 0] # We can use x distance here since it should be close @@ -275,7 +277,6 @@ def mapsd_thread(): curvature = curvature[close_idx] if len(curvature): - # TODO: Determine left or right turn curvature = np.nan_to_num(curvature) From 0ac196328799fb4776067ba1bf0330885f9b9790 Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Sat, 26 Oct 2019 10:28:17 +0200 Subject: [PATCH 17/25] consider curvature changes in both directions --- selfdrive/mapd/mapd_helpers.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/selfdrive/mapd/mapd_helpers.py b/selfdrive/mapd/mapd_helpers.py index b48c94c36529d6..3437690b97cfc4 100644 --- a/selfdrive/mapd/mapd_helpers.py +++ b/selfdrive/mapd/mapd_helpers.py @@ -22,10 +22,7 @@ def rate_curvature_points(p2,p3,curvature2,curvature3): x2, y2, _ = p2 x3, y3, _ = p3 - if curvature3 > curvature2: - return (curvature3-curvature2)/(np.sqrt((x3-x2)**2+(y3-y2)**2)) - else: - return 0 + return abs((curvature3-curvature2)/(np.sqrt((x3-x2)**2+(y3-y2)**2))) def circle_through_points(p1, p2, p3, force=False, direction=False): """Fits a circle through three points From 6bcea7673f3ab712c3133b639d3c6ed6077a41be Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Sat, 26 Oct 2019 13:28:14 +0200 Subject: [PATCH 18/25] apply only if curvature increases --- selfdrive/mapd/mapd_helpers.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/selfdrive/mapd/mapd_helpers.py b/selfdrive/mapd/mapd_helpers.py index 3437690b97cfc4..a4d7e1ed15cdcd 100644 --- a/selfdrive/mapd/mapd_helpers.py +++ b/selfdrive/mapd/mapd_helpers.py @@ -22,7 +22,10 @@ def rate_curvature_points(p2,p3,curvature2,curvature3): x2, y2, _ = p2 x3, y3, _ = p3 - return abs((curvature3-curvature2)/(np.sqrt((x3-x2)**2+(y3-y2)**2))) + if abs(curvature3) > abs(curvature2): + return abs((curvature3-curvature2)/(np.sqrt((x3-x2)**2+(y3-y2)**2))) + else: + return 0 def circle_through_points(p1, p2, p3, force=False, direction=False): """Fits a circle through three points From 2bf66f40a6360ae710b1d1ef7b6cda5f5d8b45a8 Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Sun, 27 Oct 2019 16:23:40 +0100 Subject: [PATCH 19/25] Default 10x factor --- selfdrive/controls/lib/driver_monitor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/controls/lib/driver_monitor.py b/selfdrive/controls/lib/driver_monitor.py index d0be56854cdcfe..56aa29cd589612 100644 --- a/selfdrive/controls/lib/driver_monitor.py +++ b/selfdrive/controls/lib/driver_monitor.py @@ -7,7 +7,7 @@ from common.travis_checker import travis op_params = opParams() -factor = op_params.get('awareness_factor', 2.0) +factor = op_params.get('awareness_factor', 10.0) if travis: factor = 1.0 From 9c6ff20ba22992abfaaa0a7047daeca30beb8a84 Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Tue, 29 Oct 2019 07:58:10 +0100 Subject: [PATCH 20/25] Reduce again by 10% --- selfdrive/controls/lib/latcontrol_lqr.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/controls/lib/latcontrol_lqr.py b/selfdrive/controls/lib/latcontrol_lqr.py index cc7dbc5261cdd0..e07d2da37628d0 100644 --- a/selfdrive/controls/lib/latcontrol_lqr.py +++ b/selfdrive/controls/lib/latcontrol_lqr.py @@ -69,7 +69,7 @@ def update(self, active, v_ego, angle_steers, angle_steers_rate, eps_torque, ste self.i_lqr = i self.output_steer = lqr_output + self.i_lqr - self.output_steer = clip(self.output_steer*0.8, -steers_max, steers_max) + self.output_steer = clip(self.output_steer*0.7, -steers_max, steers_max) lqr_log.steerAngle = angle_steers_k + path_plan.angleOffset lqr_log.i = self.i_lqr From 1065e281fdf172901cd210c267e363290b5478a9 Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Tue, 29 Oct 2019 09:54:09 +0100 Subject: [PATCH 21/25] Increase TR for safer braking distance --- selfdrive/controls/lib/long_mpc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/controls/lib/long_mpc.py b/selfdrive/controls/lib/long_mpc.py index 93dd90b288bab4..99bb80ae4f5988 100644 --- a/selfdrive/controls/lib/long_mpc.py +++ b/selfdrive/controls/lib/long_mpc.py @@ -136,7 +136,7 @@ def smooth_follow(self): # in m/s def get_cost(self, TR): x = [.9, 1.8, 2.7] - y = [3.5, .8, .3] + y = [4.5, 1.8, .8] if self.x_lead is not None and self.v_ego is not None and self.v_ego != 0: real_TR = self.x_lead / float(self.v_ego) # switched to cost generation using actual distance from lead car; should be safer if abs(real_TR - TR) >= .25: # use real TR if diff is greater than x safety threshold From 884a1496764944fbbca50a2f552abd821a4f33a1 Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Tue, 29 Oct 2019 10:14:17 +0100 Subject: [PATCH 22/25] Limit Rate factor to 0.7-1.1 Curvature can be reduced by 30% if no curvature exists or if curvature is decreasing. To avoid odd braking the maximum increase in curvature is limited to 10% for now. --- selfdrive/mapd/mapd.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/mapd/mapd.py b/selfdrive/mapd/mapd.py index a1555e7148461d..0ad4387ddfb455 100755 --- a/selfdrive/mapd/mapd.py +++ b/selfdrive/mapd/mapd.py @@ -258,7 +258,7 @@ def mapsd_thread(): curvature = 1. / radii rate = [rate_curvature_points(*p) for p in zip(pnts[1:], pnts[2:],curvature[0:],curvature[1:])] rate = ([0] + rate) - curvature = np.multiply(np.multiply(rate,2000)+0.9,curvature) + curvature = np.multiply(np.minimum(np.multiply(rate,4000)+0.7,1.1),curvature) # Index of closest point closest = np.argmin(np.linalg.norm(pnts, axis=1)) dist_to_closest = pnts[closest, 0] # We can use x distance here since it should be close From bbd29c864f54e3bc42ba781adb52e45f2d8713b9 Mon Sep 17 00:00:00 2001 From: Comma Device Date: Thu, 31 Oct 2019 10:08:15 +0100 Subject: [PATCH 23/25] black panda compatibility --- panda/VERSION | 2 +- panda/board/obj/code.bin | Bin 25744 -> 25744 bytes panda/board/obj/gitversion.h | 2 +- panda/board/obj/main.panda.o | Bin 236916 -> 236916 bytes panda/board/obj/panda.bin | Bin 25872 -> 25872 bytes panda/board/obj/panda.bin.signed | Bin 25740 -> 0 bytes panda/board/obj/panda.elf | Bin 202768 -> 202768 bytes 7 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 panda/board/obj/panda.bin.signed diff --git a/panda/VERSION b/panda/VERSION index deadb48401ba6c..74a63a2249463a 100644 --- a/panda/VERSION +++ b/panda/VERSION @@ -1 +1 @@ -v2.4.7 \ No newline at end of file +v1.5.2 \ No newline at end of file diff --git a/panda/board/obj/code.bin b/panda/board/obj/code.bin index 6bede20ddbc9cd1802a177173079173374831f26..1f27f82ae253a27d47cc37fea0ef128a39af0631 100755 GIT binary patch delta 20 bcmbPml5xUG#tn?&tcH4~dPbYs!n=3@OVb8j delta 20 bcmbPml5xUG#tn?&tVVh!dghzi!n=3@OY;U| diff --git a/panda/board/obj/gitversion.h b/panda/board/obj/gitversion.h index 5efb4c78e33976..6a199f6077401d 100644 --- a/panda/board/obj/gitversion.h +++ b/panda/board/obj/gitversion.h @@ -1 +1 @@ -const uint8_t gitversion[] = "v2.4.7-EON-unknown-DEBUG"; +const uint8_t gitversion[] = "v1.5.2-EON-unknown-DEBUG"; diff --git a/panda/board/obj/main.panda.o b/panda/board/obj/main.panda.o index bbea3c126df6e280a3250e21634cb27e61e3b8b7..9e107f709f680d68cd7c01552912fd5e86a5a0aa 100644 GIT binary patch delta 32 ncmeyei|@-Wz710&SPk_|^^BTlMYPX~U<6{O?Xx17Z@B;f=W`81 delta 32 ncmeyei|@-Wz710&SdH{d^vs)QMYPX~U<6{O?Xx17Z@B;f=g$pD diff --git a/panda/board/obj/panda.bin b/panda/board/obj/panda.bin index 19be824b30521f3e14243b18fcf60df38a66eaac..143af559f5b07b409ba2974498687300a1ef9c7a 100644 GIT binary patch delta 150 zcmV;H0BQe_$^nqd0k8pA1u-r)E;6$QSBedPC4IyB79~%jSi`o;Jr~NDhT>BJIj0^A z7Y^5B%jb}9EP+nd~5DP2Z{10ZxNQ=WI!kwR9;IYloRgi5?6Gr2%ep2 zu2=09glNMjMcs0u+92c$Z?TCc?5gI5n9<*U{|Zj&h*2-ik`YA54LHu^ct>;pNIQrD EBy-F}$p8QV delta 150 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 Date: Sun, 3 Nov 2019 14:06:37 +0100 Subject: [PATCH 24/25] Allow high deceleration at low speeds --- selfdrive/controls/lib/planner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/controls/lib/planner.py b/selfdrive/controls/lib/planner.py index 2807e9e8d34ffa..d108b330135ece 100644 --- a/selfdrive/controls/lib/planner.py +++ b/selfdrive/controls/lib/planner.py @@ -33,7 +33,7 @@ # lookup tables VS speed to determine min and max accels in cruise # make sure these accelerations are smaller than mpc limits -_A_CRUISE_MIN_V = [-0.8, -0.7, -0.6, -0.5, -0.3] +_A_CRUISE_MIN_V = [-1.6, -0.7, -0.6, -0.5, -0.3] _A_CRUISE_MIN_BP = [0.0, 5.0, 10.0, 20.0, 55.0] # need fast accel at very low speed for stop and go From 78eaca7528a3814152e869a5e90303d2ffbd8261 Mon Sep 17 00:00:00 2001 From: Arne Schwarck Date: Sun, 3 Nov 2019 15:22:09 +0100 Subject: [PATCH 25/25] Brake higher at low speeds to avoid collision --- selfdrive/controls/lib/long_mpc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/controls/lib/long_mpc.py b/selfdrive/controls/lib/long_mpc.py index 99bb80ae4f5988..26a70a1cad5d27 100644 --- a/selfdrive/controls/lib/long_mpc.py +++ b/selfdrive/controls/lib/long_mpc.py @@ -136,7 +136,7 @@ def smooth_follow(self): # in m/s def get_cost(self, TR): x = [.9, 1.8, 2.7] - y = [4.5, 1.8, .8] + y = [4.5, 2.8, 1.2] if self.x_lead is not None and self.v_ego is not None and self.v_ego != 0: real_TR = self.x_lead / float(self.v_ego) # switched to cost generation using actual distance from lead car; should be safer if abs(real_TR - TR) >= .25: # use real TR if diff is greater than x safety threshold