diff --git a/README.md b/README.md index f665b15a7f..4939358dcd 100644 --- a/README.md +++ b/README.md @@ -172,6 +172,7 @@ Community Maintained Cars and Features | SEAT | Ateca 2018 | Driver Assistance | Stock | 0mph | 0mph | | Škoda | Kodiaq 2018 | Driver Assistance | Stock | 0mph | 0mph | | Škoda | Scala 2020 | Driver Assistance | Stock | 0mph | 0mph | +| Škoda | Superb 2018 | Driver Assistance | Stock | 0mph | 0mph | | Subaru | Ascent 2019 | EyeSight | Stock | 0mph | 0mph | | Subaru | Crosstrek 2018-19 | EyeSight | Stock | 0mph | 0mph | | Subaru | Forester 2019-20 | EyeSight | Stock | 0mph | 0mph | diff --git a/RELEASES.md b/RELEASES.md index 4bdc9d0755..42b6379b49 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1,4 +1,4 @@ -Version 0.8.3 (2021-XX-XX) +Version 0.8.3 (2021-04-01) ======================== * New model * Trained on new diverse dataset from 2000+ users from 30+ countries @@ -10,9 +10,7 @@ Version 0.8.3 (2021-XX-XX) * Default SSH key only used for setup * Kia Ceed 2019 support thanks to ZanZaD13! * Kia Seltos 2021 support thanks to speedking456! - * Škoda Kodiaq 2018 support thanks to jyoung8607! - * Volkswagen Tiguan 2020 support thanks to jyoung8607! - * Volkswagen Jetta 2018-2021 support thanks to jyoung8607! + * Added support for many Volkswagen and Škoda models thanks to jyoung8607! Version 0.8.2 (2021-02-26) ======================== diff --git a/selfdrive/assets/training/step0.jpg b/selfdrive/assets/training/step0.jpg deleted file mode 100644 index 51146f989a..0000000000 --- a/selfdrive/assets/training/step0.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8c6c04843346495360f87d7378f6b92d1284f26876e4c61772391c4239eabb9a -size 187644 diff --git a/selfdrive/assets/training/step0.png b/selfdrive/assets/training/step0.png new file mode 100644 index 0000000000..badeff6c56 Binary files /dev/null and b/selfdrive/assets/training/step0.png differ diff --git a/selfdrive/assets/training/step1.jpg b/selfdrive/assets/training/step1.jpg deleted file mode 100644 index 23c5e3644f..0000000000 --- a/selfdrive/assets/training/step1.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e7ad4506e6e81e7b374676767be0037b1d27a5a6ba7e2354a639fe72510621c7 -size 251834 diff --git a/selfdrive/assets/training/step1.png b/selfdrive/assets/training/step1.png new file mode 100644 index 0000000000..9fa6cf6831 Binary files /dev/null and b/selfdrive/assets/training/step1.png differ diff --git a/selfdrive/assets/training/step10.jpg b/selfdrive/assets/training/step10.jpg deleted file mode 100644 index 55581babdc..0000000000 --- a/selfdrive/assets/training/step10.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:25b8ed39ca149b5083c61765951cef34ebbd94ed70d6111250f1f21f89c92170 -size 263592 diff --git a/selfdrive/assets/training/step10.png b/selfdrive/assets/training/step10.png new file mode 100644 index 0000000000..10d216c8f4 Binary files /dev/null and b/selfdrive/assets/training/step10.png differ diff --git a/selfdrive/assets/training/step11.jpg b/selfdrive/assets/training/step11.jpg deleted file mode 100644 index 10392b8307..0000000000 --- a/selfdrive/assets/training/step11.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:01932662ce154ae0456aa5adf42e604df3342dad03651c7dfe596a982bc10de2 -size 220853 diff --git a/selfdrive/assets/training/step11.png b/selfdrive/assets/training/step11.png new file mode 100644 index 0000000000..71d98864f9 Binary files /dev/null and b/selfdrive/assets/training/step11.png differ diff --git a/selfdrive/assets/training/step12.jpg b/selfdrive/assets/training/step12.jpg deleted file mode 100644 index 60bc9a1e43..0000000000 --- a/selfdrive/assets/training/step12.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:de067b0da7f676428a82d445a29d386f135081c53fd6203437bc7abeef941301 -size 297138 diff --git a/selfdrive/assets/training/step12.png b/selfdrive/assets/training/step12.png new file mode 100644 index 0000000000..627f235ca2 Binary files /dev/null and b/selfdrive/assets/training/step12.png differ diff --git a/selfdrive/assets/training/step13.jpg b/selfdrive/assets/training/step13.jpg deleted file mode 100644 index 78835586ff..0000000000 --- a/selfdrive/assets/training/step13.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3a89702a4b25a5dd8431689cb06125780c30642613ac11d88dd245e1e8924cd7 -size 376601 diff --git a/selfdrive/assets/training/step13.png b/selfdrive/assets/training/step13.png new file mode 100644 index 0000000000..2430c6c80a Binary files /dev/null and b/selfdrive/assets/training/step13.png differ diff --git a/selfdrive/assets/training/step14.jpg b/selfdrive/assets/training/step14.jpg deleted file mode 100644 index e9c0d4ab0d..0000000000 --- a/selfdrive/assets/training/step14.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c9f2b6fa133b102f2008a60dda0b344826ecfa57127ba43c7551d14c1b213d3b -size 234676 diff --git a/selfdrive/assets/training/step14.png b/selfdrive/assets/training/step14.png new file mode 100644 index 0000000000..835d6e24ff Binary files /dev/null and b/selfdrive/assets/training/step14.png differ diff --git a/selfdrive/assets/training/step15.png b/selfdrive/assets/training/step15.png new file mode 100644 index 0000000000..c65b0e2af2 Binary files /dev/null and b/selfdrive/assets/training/step15.png differ diff --git a/selfdrive/assets/training/step16.png b/selfdrive/assets/training/step16.png new file mode 100644 index 0000000000..bff559846d Binary files /dev/null and b/selfdrive/assets/training/step16.png differ diff --git a/selfdrive/assets/training/step17.png b/selfdrive/assets/training/step17.png new file mode 100644 index 0000000000..81d214d0a3 Binary files /dev/null and b/selfdrive/assets/training/step17.png differ diff --git a/selfdrive/assets/training/step2.jpg b/selfdrive/assets/training/step2.jpg deleted file mode 100644 index b5c07ffa18..0000000000 --- a/selfdrive/assets/training/step2.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bd1b7ea05bdadba70f1aa12af9e044224ff751a9feb7336b0868dda99876c4ae -size 199105 diff --git a/selfdrive/assets/training/step2.png b/selfdrive/assets/training/step2.png new file mode 100644 index 0000000000..ab1498bcc1 Binary files /dev/null and b/selfdrive/assets/training/step2.png differ diff --git a/selfdrive/assets/training/step3.jpg b/selfdrive/assets/training/step3.jpg deleted file mode 100644 index 09ea3c7bb4..0000000000 --- a/selfdrive/assets/training/step3.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4ef49a4dde1309ca0e44de41ded5bf70a5e3dbf0cd503c50f03769c93c07e998 -size 259261 diff --git a/selfdrive/assets/training/step3.png b/selfdrive/assets/training/step3.png new file mode 100644 index 0000000000..d19e388edc Binary files /dev/null and b/selfdrive/assets/training/step3.png differ diff --git a/selfdrive/assets/training/step4.jpg b/selfdrive/assets/training/step4.jpg deleted file mode 100644 index d4d2e2ccc1..0000000000 --- a/selfdrive/assets/training/step4.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:10cc7c1a0515dcef8ae840d8d18cdfb6b60cbede409d25cfc8375c190763d7bc -size 269618 diff --git a/selfdrive/assets/training/step4.png b/selfdrive/assets/training/step4.png new file mode 100644 index 0000000000..874b19390f Binary files /dev/null and b/selfdrive/assets/training/step4.png differ diff --git a/selfdrive/assets/training/step5.jpg b/selfdrive/assets/training/step5.jpg deleted file mode 100644 index 02ef94f1e1..0000000000 --- a/selfdrive/assets/training/step5.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:58d340534194a7ba03466ce0f1eefaf2431d50ad6651702cb438b22d87b276bd -size 178004 diff --git a/selfdrive/assets/training/step5.png b/selfdrive/assets/training/step5.png new file mode 100644 index 0000000000..9ee3388c34 Binary files /dev/null and b/selfdrive/assets/training/step5.png differ diff --git a/selfdrive/assets/training/step6.jpg b/selfdrive/assets/training/step6.jpg deleted file mode 100644 index 603450e6ae..0000000000 --- a/selfdrive/assets/training/step6.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0d67cbc355c1f22e0ce20ff952a02df9b238774ebaf3076acfcc0f10944779aa -size 257768 diff --git a/selfdrive/assets/training/step6.png b/selfdrive/assets/training/step6.png new file mode 100644 index 0000000000..14463ea04b Binary files /dev/null and b/selfdrive/assets/training/step6.png differ diff --git a/selfdrive/assets/training/step7.jpg b/selfdrive/assets/training/step7.jpg deleted file mode 100644 index 99a16f5e2e..0000000000 --- a/selfdrive/assets/training/step7.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:21de74ca3ca3723c8d9e8e8671f07fede2a444c4ad1aeeb53dd91d25175a0d70 -size 294373 diff --git a/selfdrive/assets/training/step7.png b/selfdrive/assets/training/step7.png new file mode 100644 index 0000000000..6823332143 Binary files /dev/null and b/selfdrive/assets/training/step7.png differ diff --git a/selfdrive/assets/training/step8.jpg b/selfdrive/assets/training/step8.jpg deleted file mode 100644 index 8b530dfba3..0000000000 --- a/selfdrive/assets/training/step8.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:441de6705aba7218327cb49866bf00927d2d8b6b724e91c9006b20a88f32c71a -size 216384 diff --git a/selfdrive/assets/training/step8.png b/selfdrive/assets/training/step8.png new file mode 100644 index 0000000000..1a5bb1367d Binary files /dev/null and b/selfdrive/assets/training/step8.png differ diff --git a/selfdrive/assets/training/step9.jpg b/selfdrive/assets/training/step9.jpg deleted file mode 100644 index 8caa68ad61..0000000000 --- a/selfdrive/assets/training/step9.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8a7bfa7d4f48753409dd125d6a48b6b2d7e42a62b4b6fb1f2a7f5f11b212665a -size 200923 diff --git a/selfdrive/assets/training/step9.png b/selfdrive/assets/training/step9.png new file mode 100644 index 0000000000..f9b53cf7ad Binary files /dev/null and b/selfdrive/assets/training/step9.png differ diff --git a/selfdrive/car/volkswagen/interface.py b/selfdrive/car/volkswagen/interface.py index f33eba532b..ba94a96bb6 100644 --- a/selfdrive/car/volkswagen/interface.py +++ b/selfdrive/car/volkswagen/interface.py @@ -97,6 +97,11 @@ class CarInterface(CarInterfaceBase): ret.mass = 1192 + STD_CARGO_KG ret.wheelbase = 2.65 + elif candidate == CAR.SKODA_SUPERB_MK3: + # Averages of all 3V/NP Scala variants + ret.mass = 1505 + STD_CARGO_KG + ret.wheelbase = 2.84 + ret.centerToFront = ret.wheelbase * 0.45 ret.enableCamera = True # Stock camera detection doesn't apply to VW diff --git a/selfdrive/car/volkswagen/values.py b/selfdrive/car/volkswagen/values.py index f9ffd0143a..d036bb8d23 100644 --- a/selfdrive/car/volkswagen/values.py +++ b/selfdrive/car/volkswagen/values.py @@ -63,6 +63,7 @@ class CAR: SEAT_ATECA_MK1 = "SEAT ATECA 1ST GEN" # Chassis 5F, Mk1 SEAT Ateca and CUPRA Ateca SKODA_KODIAQ_MK1 = "SKODA KODIAQ 1ST GEN" # Chassis NS, Mk1 Skoda Kodiaq SKODA_SCALA_MK1 = "SKODA SCALA 1ST GEN" # Chassis NW, Mk1 Skoda Scala and Skoda Kamiq + SKODA_SUPERB_MK3 = "SKODA SUPERB 3RD GEN" # Chassis 3V/NP, Mk3 Skoda Superb and variants FINGERPRINTS = { CAR.GOLF: [{ @@ -89,9 +90,12 @@ FINGERPRINTS = { CAR.SKODA_SCALA_MK1: [{ 64: 8, 134: 8, 159: 8, 173: 8, 178: 8, 253: 8, 257: 8, 262: 8, 278: 8, 279: 8, 283: 8, 286: 8, 288: 8, 289: 8, 290: 8, 294: 8, 299: 8, 302: 8, 346: 8, 418: 8, 427: 8, 506: 8, 568: 8, 569: 8, 572: 8, 573: 8, 679: 8, 681: 8, 684: 8, 695: 8, 779: 8, 780: 8, 783: 8, 787: 8, 788: 8, 789: 8, 792: 8, 795: 8, 804: 8, 806: 8, 807: 8, 808: 8, 809: 8, 826: 8, 827: 8, 828: 8, 870: 8, 879: 8, 884: 8, 888: 8, 891: 8, 901: 8, 913: 8, 917: 8, 919: 8, 949: 8, 958: 8, 960: 4, 981: 8, 987: 8, 988: 8, 991: 8, 997: 8, 1000: 8, 1019: 8, 1122: 8, 1123: 8, 1124: 8, 1153: 8, 1156: 8, 1157: 8, 1158: 8, 1162: 8, 1175: 8, 1312: 8, 1343: 8, 1385: 8, 1413: 8, 1440: 5, 1514: 8, 1515: 8, 1520: 8, 1600: 8, 1601: 8, 1603: 8, 1605: 8, 1624: 8, 1626: 8, 1629: 8, 1631: 8, 1635: 8, 1646: 8, 1648: 8, 1712: 6, 1714: 8, 1716: 8, 1717: 8, 1719: 8, 1720: 8, 1721: 8, 1792: 8, 1872: 8, 1879: 8, 1976: 8, 1977: 8, 1982: 8, 1985: 8 }], + CAR.SKODA_SUPERB_MK3: [{ + 64: 8, 134: 8, 159: 8, 178: 8, 253: 8, 257: 8, 260: 8, 262: 8, 278: 8, 279: 8, 283: 8, 286: 8, 288: 8, 289: 8, 290: 8, 294: 8, 295: 8, 299: 8, 302: 8, 346: 8, 418: 8, 427: 8, 679: 8, 681: 8, 695: 8, 779: 8, 780: 8, 783: 8, 791: 8, 792: 8, 795: 8, 799: 8, 804: 8, 806: 8, 807: 8, 808: 8, 809: 8, 838: 8, 839: 8, 840: 8, 841: 8, 842: 8, 843: 8, 844: 8, 845: 8, 870: 8, 896: 8, 897: 8, 898: 8, 901: 8, 917: 8, 919: 8, 949: 8, 958: 8, 960: 4, 981: 8, 987: 8, 988: 8, 991: 8, 997: 8, 1000: 8, 1019: 8, 1153: 8, 1162: 8, 1175: 8, 1312: 8, 1385: 8, 1413: 8, 1440: 5, 1514: 8, 1515: 8, 1520: 8, 1600: 8, 1601: 8, 1603: 8, 1624: 8, 1626: 8, 1629: 8, 1631: 8, 1646: 8, 1648: 8, 1712: 6, 1714: 8, 1716: 8, 1717: 8, 1719: 8, 1720: 8, 1792: 8, 1872: 8, 1879: 8, 1976: 8, 1977: 8, 1985: 8, 2017: 8 + }], } -IGNORED_FINGERPRINTS = [CAR.JETTA_MK7, CAR.PASSAT_MK8, CAR.TIGUAN_MK2, CAR.SEAT_ATECA_MK1, CAR.SKODA_KODIAQ_MK1, CAR.SKODA_SCALA_MK1] +IGNORED_FINGERPRINTS = [CAR.JETTA_MK7, CAR.PASSAT_MK8, CAR.TIGUAN_MK2, CAR.SEAT_ATECA_MK1, CAR.SKODA_KODIAQ_MK1, CAR.SKODA_SCALA_MK1, CAR.SKODA_SUPERB_MK3] FW_VERSIONS = { CAR.GOLF: { @@ -257,6 +261,21 @@ FW_VERSIONS = { b'\xf1\x872Q0907572R \xf1\x890372', ], }, + CAR.SKODA_SUPERB_MK3: { + (Ecu.engine, 0x7e0, None): [ + b'\xf1\x8704L906026KB\xf1\x894071', + ], + # Only onboarded Superb so far is a manual (Ecu.transmission, 0x7e1, None): [], + (Ecu.srs, 0x715, None): [ + b'\xf1\x875Q0959655BH\xf1\x890336\xf1\x82\02331310031313100313131013141319331413100', + ], + (Ecu.eps, 0x712, None): [ + b'\xf1\x875Q0910143B \xf1\x892201\xf1\x82\00563UZ060700', + ], + (Ecu.fwdRadar, 0x757, None): [ + b'\xf1\x873Q0907572C \xf1\x890195', + ], + }, } DBC = { @@ -268,4 +287,5 @@ DBC = { CAR.SEAT_ATECA_MK1: dbc_dict('vw_mqb_2010', None), CAR.SKODA_KODIAQ_MK1: dbc_dict('vw_mqb_2010', None), CAR.SKODA_SCALA_MK1: dbc_dict('vw_mqb_2010', None), + CAR.SKODA_SUPERB_MK3: dbc_dict('vw_mqb_2010', None), } diff --git a/selfdrive/test/test_car_models.py b/selfdrive/test/test_car_models.py index 1692c301a9..4bcc783921 100755 --- a/selfdrive/test/test_car_models.py +++ b/selfdrive/test/test_car_models.py @@ -469,6 +469,10 @@ routes = { 'carFingerprint': VOLKSWAGEN.SKODA_SCALA_MK1, 'enableCamera': True, }, + "b2e9858e29db492b|2021-03-26--16-58-42": { + 'carFingerprint': VOLKSWAGEN.SKODA_SUPERB_MK3, + 'enableCamera': True, + }, "3c8f0c502e119c1c|2020-06-30--12-58-02": { 'carFingerprint': SUBARU.ASCENT, 'enableCamera': True, diff --git a/selfdrive/ui/qt/offroad/onboarding.cc b/selfdrive/ui/qt/offroad/onboarding.cc index 3b6b32c608..7fcae65aeb 100644 --- a/selfdrive/ui/qt/offroad/onboarding.cc +++ b/selfdrive/ui/qt/offroad/onboarding.cc @@ -12,30 +12,28 @@ void TrainingGuide::mouseReleaseEvent(QMouseEvent *e) { - int leftOffset = (geometry().width()-1620)/2; - int mousex = e->x()-leftOffset; - int mousey = e->y(); + //qDebug() << e->x() << ", " << e->y(); // Check for restart - if (currentIndex == (boundingBox.size() - 1) && 1050 <= mousex && mousex <= 1500 && - 773 <= mousey && mousey <= 954) { + if (currentIndex == (boundingBox.size() - 1) && 200 <= e->x() && e->x() <= 920 && + 760 <= e->y() && e->y() <= 960) { currentIndex = 0; - } else if (boundingBox[currentIndex][0] <= mousex && mousex <= boundingBox[currentIndex][1] && - boundingBox[currentIndex][2] <= mousey && mousey <= boundingBox[currentIndex][3]) { + } else if (boundingBox[currentIndex][0] <= e->x() && e->x() <= boundingBox[currentIndex][1] && + boundingBox[currentIndex][2] <= e->y() && e->y() <= boundingBox[currentIndex][3]) { currentIndex += 1; } if (currentIndex >= boundingBox.size()) { emit completedTraining(); } else { - image.load("../assets/training/step" + QString::number(currentIndex) + ".jpg"); + image.load("../assets/training/step" + QString::number(currentIndex) + ".png"); update(); } } void TrainingGuide::showEvent(QShowEvent *event) { currentIndex = 0; - image.load("../assets/training/step0.jpg"); + image.load("../assets/training/step0.png"); } void TrainingGuide::paintEvent(QPaintEvent *event) { diff --git a/selfdrive/ui/qt/offroad/onboarding.hpp b/selfdrive/ui/qt/offroad/onboarding.hpp index 9ff0b1111b..eb067478cf 100644 --- a/selfdrive/ui/qt/offroad/onboarding.hpp +++ b/selfdrive/ui/qt/offroad/onboarding.hpp @@ -26,8 +26,26 @@ private: // Bounding boxes for the a given training guide step // (minx, maxx, miny, maxy) - QVector> boundingBox {{250, 930, 750, 900}, {280, 1280, 650, 950}, {330, 1130, 590, 900}, {910, 1580, 500, 1000}, {1180, 1300, 630, 720}, {290, 1050, 590, 960}, - {1090, 1240, 550, 660}, {1050, 1580, 250, 900}, {320, 1130, 670, 1020}, {1010, 1580, 410, 750}, {1040, 1500, 230, 1030}, {300, 1190, 590, 920}, {1050, 1310, 170, 870}, {950, 1530, 460, 770}, {190, 970, 750, 970}}; + QVector> boundingBox { + {650, 1375, 700, 900}, + {1600, 1920, 0, 1080}, + {1600, 1920, 0, 1080}, + {1240, 1750, 480, 1080}, + {1570, 1780, 620, 750}, + {1600, 1920, 0, 1080}, + {1630, 1740, 620, 780}, + {1200, 1920, 0, 1080}, + {1455, 1850, 400, 660}, + {1460, 1800, 195, 520}, + {1600, 1920, 0, 1080}, + {1350, 1920, 65, 1080}, + {1600, 1920, 0, 1080}, + {1570, 1900, 130, 1000}, + {1350, 1770, 500, 700}, + {1600, 1920, 0, 1080}, + {1600, 1920, 0, 1080}, + {1000, 1800, 760, 954}, + }; signals: void completedTraining();