diff --git a/selfdrive/car/ford/tests/ford_fuzzy_fingerprint.ipynb b/selfdrive/car/ford/tests/ford_fuzzy_fingerprint.ipynb index 4ef7a752da..ca2025f098 100644 --- a/selfdrive/car/ford/tests/ford_fuzzy_fingerprint.ipynb +++ b/selfdrive/car/ford/tests/ford_fuzzy_fingerprint.ipynb @@ -30,7 +30,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "9ddb0675cd4a4f46a23b608252324ed4", + "model_id": "b0f15fd6447f48748524dbd26507cccf", "version_major": 2, "version_minor": 0 }, @@ -63,107 +63,30 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", - " source: fw\n", - " fuzzy: True\n", - " car_fw:\n", - " abs b'PZ6C-2D053-ED'\n", - " engine b'PZ6A-14C204-JE'\n", - " eps b'NZ6C-14D003-AL'\n", - " fwdCamera b'NZ6T-14F397-AC'\n", - "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", - " source: fw\n", - " fuzzy: True\n", - " car_fw:\n", - " abs b'PZ6C-2D053-ED'\n", - " engine b'PZ6A-14C204-JE'\n", - " eps b'NZ6C-14D003-AL'\n", - " fwdCamera b'NZ6T-14F397-AC'\n", + "Ignoring mismatch for vin: 3FTTW8E3XPRXXXXXX platform: FORD MAVERICK 1ST GEN, no radar\n", "Skipping vin: 00000000000XXXXXX platform: FORD F-150 14TH GEN, no car fw\n", + "Ignoring mismatch for vin: 3FTTW8E3XPRXXXXXX platform: FORD MAVERICK 1ST GEN, no radar\n", + "Ignoring mismatch for vin: 3FTTW8E3XPRXXXXXX platform: FORD MAVERICK 1ST GEN, no radar\n", + "Ignoring mismatch for vin: 3FTTW8E3XPRXXXXXX platform: FORD MAVERICK 1ST GEN, no radar\n", + "Ignoring mismatch for vin: 3FTTW8E3XPRXXXXXX platform: FORD MAVERICK 1ST GEN, no radar\n", + "Ignoring mismatch for vin: 3FTTW8E3XPRXXXXXX platform: FORD MAVERICK 1ST GEN, no radar\n", + "Ignoring mismatch for vin: 3FTTW8E3XPRXXXXXX platform: FORD MAVERICK 1ST GEN, no radar\n", "Skipping vin: 00000000000XXXXXX platform: FORD F-150 14TH GEN, no car fw\n", - "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", - " source: fw\n", - " fuzzy: True\n", - " car_fw:\n", - " abs b'PZ6C-2D053-ED'\n", - " engine b'PZ6A-14C204-JE'\n", - " eps b'NZ6C-14D003-AL'\n", - " fwdCamera b'NZ6T-14F397-AC'\n", - "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", - " source: fw\n", - " fuzzy: True\n", - " car_fw:\n", - " abs b'PZ6C-2D053-ED'\n", - " engine b'PZ6A-14C204-JE'\n", - " eps b'NZ6C-14D003-AL'\n", - " fwdCamera b'NZ6T-14F397-AC'\n", - "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", - " source: fw\n", - " fuzzy: True\n", - " car_fw:\n", - " abs b'PZ6C-2D053-ED'\n", - " engine b'PZ6A-14C204-JE'\n", - " eps b'NZ6C-14D003-AL'\n", - " fwdCamera b'NZ6T-14F397-AC'\n", + "Ignoring mismatch for vin: 3FTTW8E3XPRXXXXXX platform: FORD MAVERICK 1ST GEN, no radar\n", + "Ignoring mismatch for vin: 3FTTW8E3XPRXXXXXX platform: FORD MAVERICK 1ST GEN, no radar\n", "Skipping vin: 00000000000XXXXXX platform: FORD F-150 14TH GEN, no car fw\n", - "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", - " source: fw\n", - " fuzzy: True\n", - " car_fw:\n", - " abs b'PZ6C-2D053-ED'\n", - " engine b'PZ6A-14C204-JE'\n", - " eps b'NZ6C-14D003-AL'\n", - " fwdCamera b'NZ6T-14F397-AC'\n", - "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", - " source: fw\n", - " fuzzy: True\n", - " car_fw:\n", - " abs b'PZ6C-2D053-ED'\n", - " engine b'PZ6A-14C204-JE'\n", - " eps b'NZ6C-14D003-AL'\n", - " fwdCamera b'NZ6T-14F397-AC'\n", - "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", - " source: fw\n", - " fuzzy: True\n", - " car_fw:\n", - " abs b'PZ6C-2D053-ED'\n", - " engine b'PZ6A-14C204-JE'\n", - " eps b'NZ6C-14D003-AL'\n", - " fwdCamera b'NZ6T-14F397-AC'\n", "Skipping vin: 00000000000XXXXXX platform: FORD F-150 14TH GEN, no car fw\n", "Skipping vin: 00000000000XXXXXX platform: FORD F-150 14TH GEN, no car fw\n", - "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", - " source: fw\n", - " fuzzy: True\n", - " car_fw:\n", - " abs b'PZ6C-2D053-ED'\n", - " engine b'PZ6A-14C204-JE'\n", - " eps b'NZ6C-14D003-AL'\n", - " fwdCamera b'NZ6T-14F397-AC'\n", - "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", - " source: fw\n", - " fuzzy: True\n", - " car_fw:\n", - " abs b'PZ6C-2D053-ED'\n", - " engine b'PZ6A-14C204-JE'\n", - " eps b'NZ6C-14D003-AL'\n", - " fwdCamera b'NZ6T-14F397-AC'\n", - "vin: 3FTTW8E3XPRXXXXXX expected: FORD MAVERICK 1ST GEN fuzzy: mock correct: False\n", - " source: fw\n", - " fuzzy: True\n", - " car_fw:\n", - " abs b'PZ6C-2D053-ED'\n", - " engine b'PZ6A-14C204-JE'\n", - " eps b'NZ6C-14D003-AL'\n", - " fwdCamera b'NZ6T-14F397-AC'\n", - "Success rate: 95.70%\n" + "Ignoring mismatch for vin: 3FTTW8E3XPRXXXXXX platform: FORD MAVERICK 1ST GEN, no radar\n", + "Ignoring mismatch for vin: 3FTTW8E3XPRXXXXXX platform: FORD MAVERICK 1ST GEN, no radar\n", + "Success rate: 100.00%\n" ] }, { @@ -204,97 +127,85 @@ " \n", " 1\n", " fw\n", - " FORD ESCAPE 4TH GEN\n", - " FORD ESCAPE 4TH GEN\n", + " FORD FOCUS 4TH GEN\n", + " FORD FOCUS 4TH GEN\n", " True\n", " \n", " \n", - " 5\n", - " fixed\n", - " FORD EXPLORER 6TH GEN\n", - " FORD EXPLORER 6TH GEN\n", + " 2\n", + " fw\n", + " FORD MAVERICK 1ST GEN\n", + " FORD MAVERICK 1ST GEN\n", " True\n", " \n", " \n", - " 8\n", + " 3\n", " fw\n", " FORD EXPLORER 6TH GEN\n", " FORD EXPLORER 6TH GEN\n", " True\n", " \n", " \n", - " 11\n", - " fw\n", + " 4\n", + " fixed\n", " FORD MAVERICK 1ST GEN\n", " FORD MAVERICK 1ST GEN\n", " True\n", " \n", " \n", - " 12\n", - " fw\n", - " FORD MAVERICK 1ST GEN\n", - " mock\n", - " False\n", - " \n", - " \n", - " 17\n", + " 8\n", " fw\n", - " FORD FOCUS 4TH GEN\n", - " FORD FOCUS 4TH GEN\n", + " FORD ESCAPE 4TH GEN\n", + " FORD ESCAPE 4TH GEN\n", " True\n", " \n", " \n", - " 103\n", - " fixed\n", - " FORD MAVERICK 1ST GEN\n", + " 18\n", + " fw\n", " FORD MAVERICK 1ST GEN\n", + " mock\n", " True\n", " \n", " \n", - " 119\n", + " 27\n", " fw\n", " FORD F-150 LIGHTNING 1ST GEN\n", " FORD F-150 LIGHTNING 1ST GEN\n", " True\n", " \n", " \n", - " 149\n", + " 70\n", " fw\n", " FORD MUSTANG MACH-E 1ST GEN\n", " FORD MUSTANG MACH-E 1ST GEN\n", " True\n", " \n", + " \n", + " 71\n", + " fixed\n", + " FORD EXPLORER 6TH GEN\n", + " FORD EXPLORER 6TH GEN\n", + " True\n", + " \n", " \n", "\n", "" ], "text/plain": [ - " source expected fuzzy \\\n", - "0 fw FORD BRONCO SPORT 1ST GEN FORD BRONCO SPORT 1ST GEN \n", - "1 fw FORD ESCAPE 4TH GEN FORD ESCAPE 4TH GEN \n", - "5 fixed FORD EXPLORER 6TH GEN FORD EXPLORER 6TH GEN \n", - "8 fw FORD EXPLORER 6TH GEN FORD EXPLORER 6TH GEN \n", - "11 fw FORD MAVERICK 1ST GEN FORD MAVERICK 1ST GEN \n", - "12 fw FORD MAVERICK 1ST GEN mock \n", - "17 fw FORD FOCUS 4TH GEN FORD FOCUS 4TH GEN \n", - "103 fixed FORD MAVERICK 1ST GEN FORD MAVERICK 1ST GEN \n", - "119 fw FORD F-150 LIGHTNING 1ST GEN FORD F-150 LIGHTNING 1ST GEN \n", - "149 fw FORD MUSTANG MACH-E 1ST GEN FORD MUSTANG MACH-E 1ST GEN \n", - "\n", - " correct \n", - "0 True \n", - "1 True \n", - "5 True \n", - "8 True \n", - "11 True \n", - "12 False \n", - "17 True \n", - "103 True \n", - "119 True \n", - "149 True " + " source expected fuzzy correct\n", + "0 fw FORD BRONCO SPORT 1ST GEN FORD BRONCO SPORT 1ST GEN True\n", + "1 fw FORD FOCUS 4TH GEN FORD FOCUS 4TH GEN True\n", + "2 fw FORD MAVERICK 1ST GEN FORD MAVERICK 1ST GEN True\n", + "3 fw FORD EXPLORER 6TH GEN FORD EXPLORER 6TH GEN True\n", + "4 fixed FORD MAVERICK 1ST GEN FORD MAVERICK 1ST GEN True\n", + "8 fw FORD ESCAPE 4TH GEN FORD ESCAPE 4TH GEN True\n", + "18 fw FORD MAVERICK 1ST GEN mock True\n", + "27 fw FORD F-150 LIGHTNING 1ST GEN FORD F-150 LIGHTNING 1ST GEN True\n", + "70 fw FORD MUSTANG MACH-E 1ST GEN FORD MUSTANG MACH-E 1ST GEN True\n", + "71 fixed FORD EXPLORER 6TH GEN FORD EXPLORER 6TH GEN True" ] }, - "execution_count": 3, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -323,6 +234,18 @@ " fuzzy_fingerprint = list(fuzzy_fingerprint)[0]\n", "\n", " correct = fuzzy_fingerprint == expected_platform\n", + "\n", + " if not correct and fuzzy_fingerprint == \"mock\":\n", + " found_radar = False\n", + " for fw in car_fw:\n", + " if fw.ecu == 0x764:\n", + " found_radar = True\n", + " break\n", + " # If the radar is missing, it should not match\n", + " if not found_radar:\n", + " print(f\"Ignoring mismatch for vin: {vin} platform: {expected_platform}, no radar\")\n", + " correct = True\n", + "\n", " rows.append((source, expected_platform, fuzzy_fingerprint, correct))\n", " if not correct:\n", " print(f\"vin: {vin} expected: {expected_platform: <30} fuzzy: {fuzzy_fingerprint: <30} correct: {correct}\")\n",