GT Sport Telemetry - system analizy jazdy i telemetrii na żywo
GT Sport Telemetry to niezależny system odbierający dane jazdy z Gran Turismo Sport na PS4. Dekoduje telemetrię UDP, prezentuje ją na żywo, zapisuje sesje i analizuje okrążenia. Umożliwia porównanie z najlepszym przejazdem, replay na mapie toru oraz analizę hamowania, opon, uślizgu i paliwa. Projekt nie jest powiązany z Polyphony Digital ani Sony.

Problem do rozwiązania
Gran Turismo Sport przesyła szczegółową telemetrię przez lokalny strumień UDP, ale interfejs nie ma oficjalnej, kompletnej dokumentacji. Pakiety są zaszyfrowane, a protokół nie gwarantuje dostarczenia ani kolejności danych. Surowe wartości nie dają też kierowcy użytecznej informacji o jakości przejazdu. Wyzwaniem było zbudowanie całego procesu: od komunikacji z konsolą, przez odszyfrowanie, walidację i defensywne parsowanie ramek, po prezentację danych na żywo i zapis sesji. System musiał wykrywać duplikaty i braki pakietów, oddzielać dane potwierdzone od pól eksperymentalnych oraz przypisywać przejazdy do właściwych torów. Kolejnym zadaniem było przekształcenie telemetrii w praktyczne narzędzie analityczne: podział sesji na okrążenia, wybór poprawnego best lapu, porównanie gazu, hamulca i prędkości, replay na mapie, kontrola temperatur opon, uślizgu kół i zużycia paliwa.
Od nieudokumentowanego pakietu do wiarygodnej próbki
Komunikacja rozpoczyna się od wysyłania przez komputer komunikatu heartbeat do konsoli. Gran Turismo Sport odpowiada strumieniem zaszyfrowanych pakietów UDP. Każda ramka jest odszyfrowywana algorytmem Salsa20, a następnie sprawdzana pod względem rozmiaru i oczekiwanej sygnatury.
Parser został zaprojektowany defensywnie. Niepoprawne ramki są odrzucane, a pola zależne od niepotwierdzonej interpretacji protokołu mogą zostać oznaczone jako eksperymentalne. Aplikacja kontroluje również identyfikatory pakietów, wykrywa duplikaty i szacuje liczbę brakujących próbek.
Z podstawowych wartości wyliczane są dodatkowe metryki, między innymi przyspieszenie, kierunek ruchu oraz szacowany kąt znoszenia pojazdu.
Architektura czasu rzeczywistego
Backend w Pythonie odbiera dane UDP w osobnym procesie roboczym i publikuje najnowsze próbki na wewnętrznej magistrali telemetrycznej. FastAPI udostępnia dane przez REST API i WebSocket.
Frontend został zbudowany w React i TypeScript. Dane są interpolowane względem monotonicznego czasu odbioru, a warstwa mapy jest renderowana z użyciem requestAnimationFrame. Interfejs pokazuje diagnostykę częstotliwości wejściowej, WebSocketu i renderowania, dzięki czemu można odróżnić problem transmisji od spadku płynności samego interfejsu.
Widok kierowcy
Główny ekran został zaprojektowany wokół mapy toru. Zawiera kompaktowy HUD z prędkością, biegiem, obrotami i numerem okrążenia, wizualizację gazu i hamulca, temperatury opon, informacje o paliwie oraz porównanie z okrążeniem referencyjnym.
Elementy interfejsu można przesuwać, skalować i ukrywać. Układ oraz ustawienia są zapisywane lokalnie, aby kierowca mógł dopasować dashboard do rozdzielczości ekranu i własnego sposobu pracy.
Mapy, kalibracja i segmenty toru
System umożliwia dodawanie kolejnych torów na podstawie obrazów PNG. Po ręcznej kalibracji pozycja samochodu z gry jest przeliczana na współrzędne obrazu.
Dla każdego toru można niezależnie przechowywać linię startu i mety, sekcje, apeksy oraz punkty hamowania. Dane sesji, map, kalibracji i referencji są powiązane z identyfikatorem toru, co ogranicza ryzyko błędnego zestawienia przejazdów.
Analiza przejazdu
Każda sesja może zostać zapisana w SQLite i później otwarta bez aktywnego strumienia z konsoli. System identyfikuje ukończone okrążenia, oblicza ich czas i dystans oraz wybiera najszybszy poprawny przejazd.
Wybrane okrążenie można odtworzyć na mapie, zatrzymać, przewijać i uruchomić z różną prędkością. Marker pojazdu pozostaje zsynchronizowany z wykresami prędkości, gazu i hamulca.
Brake Point Optimizer
Brake Point Optimizer analizuje każde ukończone okrążenie i wykrywa rzeczywiste początki hamowania. Zdarzenia z kolejnych przejazdów są grupowane według miejsca na torze, oczyszczane z odstających i wyraźnie wolnych okrążeń, a następnie oceniane na podstawie prędkości w najwolniejszym punkcie zakrętu oraz dystansu do stabilnego powrotu na gaz.
System wyznacza ważony punkt hamowania, wygładza jego pozycję między okrążeniami i zwiększa poziom pewności wraz z liczbą spójnych prób. Po zebraniu wymaganej liczby przejazdów tworzy marker na mapie toru i aktualizuje jego położenie wraz z napływem nowych danych. Kierowca może punkt dodatkowo przesunąć, nazwać lub usunąć.
Informacja zwrotna dla kierowcy
Na podstawie przejazdu referencyjnego oraz ręcznie zdefiniowanych punktów toru aplikacja może analizować moment rozpoczęcia hamowania, przejazd przez apeks, powrót na gaz i stratę prędkości na wyjściu.
System nie deklaruje automatycznie, że konkretna zmiana poprawi czas okrążenia. Pokazuje różnice względem wybranej referencji i pozostawia ich interpretację kierowcy. Jest to istotne, ponieważ sama telemetria nie uwzględnia wszystkich czynników, takich jak ustawienia samochodu, stan opon czy warunki konkretnej sesji.
Potwierdzone rezultaty
- Telemetria w czasie rzeczywistym
- Dane z PS4 trafiają przez UDP i WebSocket do interaktywnego dashboardu.
- Rejestrowanie sesji i okrążeń
- Sesje są zapisywane w SQLite i przypisywane do właściwego toru.
- Porównanie z najlepszym okrążeniem
- System pokazuje różnice czasu, prędkości, gazu i hamulca.
- Wizualizacja przejazdu na mapie
- Ślad jazdy i pozycja auta są nanoszone na skalibrowaną mapę toru.
- Adaptacyjny Brake Point Optimizer
- Uczy punkty hamowania z kolejnych okrążeń i aktualizuje je na mapie.
- Diagnostyka opon i uślizgu
- System analizuje temperatury, blokowanie kół, wheelspin i anomalie.
- Analiza strategii paliwowej
- Obliczane są spalanie na okrążenie, zasięg i margines do mety.
- Odtwarzanie zapisanych przejazdów
- Replay łączy ruch auta na mapie ze zsynchronizowanymi wykresami.



