Rozdział 5: Przegląd Wszystkich Zakładek Stacji GCS (Kompletny Przewodnik)
Stacja RCSIM GCS posiada budowę modułową podzieloną na dedykowane zakładki funkcyjne:
🔌 5.1 Zakładka Połączenie (Connection Tab)
- Zarządzanie Portami Szeregowymi: Skanowanie magistrali USB i automatyczne rozpoznawanie konwerterów USB-UART (FTDI, CP2102, CH340, RP2350 CDC).
- Konfiguracja Sieciowa UDP/TCP: Definiowanie portów sterujących (12345) i telemetrycznych (12347).
- Statystyki Połączenia: Licznik nadanych/odebranych ramek, wskaźnik utraty pakietów (Packet Loss) oraz jitter bufora.
⚙️ 5.2 Zakładka Konfiguracja (Settings / General Tab)
Zakładka Konfiguracja (General Tab) to centralny panel zarządzania parametrami stacji GCS, protokołami komunikacyjnymi, zaawansowanymi algorytmami bezpieczeństwa oraz silnikiem audio. Została zaprojektowana w oparciu o trzystopniowy podział zaawansowania: Podstawowe, Zaawansowane oraz Deweloper.
🧩 5.2.1 Architektura Danych i Model Pydantic RCConfig
Wszystkie parametry konfiguracyjne w systemie RCSIM podlegają ścisłemu reżimowi architektonicznemu:
- Pojedyncze Źródło Prawdy (Single Source of Truth): Każda wartość w UI jest bezpośrednio mapowana na typowany model danych Pydantic
RCConfigzdefiniowany wcore/models/config.py. - Automatyczna Trwałość Danych (Autosave): Zmiana dowolnego przełącznika, suwaka lub pola liczbowego natychmiast wyzwala zdarzenie
_on_settings_changedi asynchronicznie zapisuje zaktualizowany stan do plikurc_config.json. - Odporność na Błędy (Safe Defaults Fallback): W przypadku uszkodzenia pliku konfiguracyjnego lub niezgodności typów po aktualizacji, walidator Pydantic automatycznie przywraca bezpieczne wartości domyślne, zapobiegając awariom stacji naziemnej.
🟢 5.2.2 Poziom 1: Karta Podstawowe (Basic Settings)
Karta ta gromadzi najważniejsze opcje codziennego użytku dla kierowcy i operatora FPV:
1. Grupa Aplikacja (Application Settings):
- Motyw Interfejsu (
theme):Dark– Domyślny ciemny motyw o wysokim kontraście, zoptymalizowany pod kątem pracy w zaciemnionych pomieszczeniach i redukcji odblasków.Light– Jasny motyw o wysokiej jasności do pracy na zewnątrz w pełnym słońcu.System– Automatyczne dopasowanie do ustawień systemowych Windows / Linux.
- Automatyczne Łączenie (
auto_connect): Po zaznaczeniu stacja GCS natychmiast po uruchomieniu próbuje nawiązać połączenie z ostatnio używanym portem szeregowym USB lub adresem IP pojazdu. - Jednostki Miar (
units):Metric (m, km/h)– Standard metryczny (prędkość w km/h, dystans w metrach).Metric (m, m/s)– Standard inżynieryjny/robotyczny (prędkość w m/s, telemetria SLAM).Imperial– Standard imperialny (prędkość w mph, odległość w stopach).
2. Grupa Audio i Powiadomienia Głosowe (Audio & TTS Engine):
- Master Toggle (
audio.enabled): Główny wyłącznik silnika syntezy mowy oraz efektów dźwiękowych w całej aplikacji. - Konfigurowalne Alerty Zdarzeniowe:
Status uzbrojenia (ARM/DISARM)– Komunikaty lektora potwierdzające stan gotowości napędu.Postępy misji i okrążenia– Czytanie czasów okrążeń (Lap Times) oraz potwierdzenia osiągnięcia kolejnych waypointów.Ostrzeżenia termiczne (CPU Temp)– Alarmy głosowe o przegrzewaniu się procesora Raspberry Pi 5 lub regulatora ESC.Alerty Geofence (Bezpieczeństwo)– Dźwiękowe ostrzeżenia o zbliżaniu się do krawędzi wirtualnego toru oraz alarmy naruszenia granicy.Status i jakość połączenia– Powiadomienia o spadku wskaźnika LQ poniżej 50% lub utracie pakietów telemetrycznych.
- Regulacja Głośności i Mikser:
Głośność Mowy (Voice Volume)– Płynny suwak 0–100% głośności komunikatów lektora.Głośność SFX (SFX Volume)– Płynny suwak 0–100% dla piknięć telemetrycznych i syren ostrzegawczych.Typ Alertów (Alert Type)– Wybór trybu odtwarzania:Both(Głos + SFX),Voice(Tylko mowa),SFX(Tylko dźwięki syntetyczne).
- Syntetyczny Dźwięk Silnika (
engine_sound_enabled): Wbudowany syntezator generujący realistyczny dźwięk silnika spalinowego (V8) lub elektrycznego (EV) na podstawie aktualnego wychylenia przepustnicy i telemetrii prędkości.
🟡 5.2.3 Poziom 2: Karta Zaawansowane (Advanced Settings)
Dedykowana dla inżynierów i zaawansowanych użytkowników optymalizujących parametry transmisji i bezpieczeństwa:
1. Sieć i Komunikacja (Network):
- Port Nasłuchu GCS (
pc_udp_port): Lokalny port UDP (domyślnie12347), na który pokładowe Raspberry Pi lub moduł ESP32 przesyła pakiety telemetryczne i stan czujników IMU.
2. Progi Adaptacji Przepustowości (Bitrate Logic):
- Limit Pingu Awaryjnego (
emergency_ping): Próg opóźnienia w milisekundach (domyślnie200 ms, zakres 10–1000 ms). Przekroczenie tej wartości powoduje natychmiastowe obniżenie jakości strumienia wideo WebRTC w celu ochrony przepustowości dla kanałów sterujących.
3. Bezpieczeństwo i Ochrona Sprzętu (Safety Systems):
- Timeout Watchdoga (
watchdog_timeout_ms): Maksymalny dopuszczalny czas braku ramek telemetrycznych (domyślnie500 ms, zakres 100–5000 ms). Po upływie tego czasu pojazd automatycznie wchodzi w stan awaryjnego rozbrojenia (Failsafe Zero-Throttle). - Limit Slew Rate (
slew_rate_limitw µs/ms): Ogranicznik prędkości narastania sygnału sterującego serwem skrętu (domyślnie15.0 µs/ms). Chroni delikatne metalowe przekładnie serwomechanizmów przed udarami mechanicznymi przy gwałtownych ruchach kierownicą. - Napięcie Ostrzegawcze Baterii (
warning_battery_v): Próg napięcia pakietu LiPo (np.7.2Vdla pakietu 2S), wyzwalający żółty komunikat OSD oraz powiadomienie głosowe lektora. - Napięcie Krytyczne Baterii (
critical_battery_v): Dolny próg bezpieczeństwa (np.6.8Vdla 2S / 3.4V na celę), poniżej którego cele LiPo ulegają trwałej degradacji. - Reakcja na Krytyczną Baterię (
battery_failsafe_reaction):limit_power– Ograniczenie maksymalnej przepustnicy do wartości zdefiniowanej wbattery_throttle_limit_us(domyślnie1750 µs), umożliwiające bezpieczny zjazd do boksów.stop– Natychmiastowe zatrzymanie pojazdu na torze.rth– Automatyczne uruchomienie procedury powrotu do bazy (Return To Home).
- Powiadomienia o Stanie Baterii (
battery_notifications_enabled): Włączenie okresowych komunikatów głosowych o aktualnym napięciu i stanie naładowania pakietu.
4. Adaptacyjny Tempomat Radarowy (Adaptive Cruise Control – ACC):
- Włącznik ACC (
acc_enabled): Aktywacja systemu automatycznego utrzymywania dystansu za poprzedzającym modelem na podstawie odczytów z przedniego radaru laserowego LiDAR / ToF. - Minimalny Dystans ACC (
acc_min_dist_m): Dystans bezpieczeństwa (domyślnie0.5 m, zakres 0.1–5.0 m), przy którym system całkowicie odcina przepustnicę i aktywuje hamulce. - Maksymalny Zasięg Śledzenia ACC (
acc_max_dist_m): Zasięg detekcji pojazdu prowadzącego (domyślnie2.0 m, zakres 0.2–15.0 m).
🔴 5.2.4 Poziom 3: Karta Deweloper (Developer Settings)
Sekcja przeznaczona do niskopoziomowej diagnostyki, kalibracji elektroniki oraz testów symulacyjnych:
1. Parametry Systemowe (System Diagnostics):
- Poziom Logowania (
application.log_level):DEBUG– Pełny zrzut wszystkich ramek, zdarzeń pętli sterowania i komunikatów magistrali.INFO– Standardowy tryb pracy operacyjnej (rejestracja połączeń, zmian trybów, zdarzeń misji).WARNING– Rejestracja wyłącznie ostrzeżeń o błędach komunikacji i spadkach jakości łącza.ERROR– Zapis wyłącznie krytycznych wyjątków i awarii.
2. Kalibracja Sprzętowa PWM (Hardware PWM):
- Impuls Neutralny (
hardware.neutral_pulse): Bazowa szerokość impulsu PWM odpowiadająca zerowej pozycji serwa i neutralnemu biegowi regulatora ESC (domyślnie1500 µs, zakres 500–2500 µs).
3. Fizyka Symulacji (Simulation Physics):
- Maksymalne Przyspieszenie (
sim_physics.max_acceleration): Współczynnik bezwładności i dynamiki wzdłużnej pojazdu (w $m/s^2$) wykorzystywany przez wbudowany symulator w pętli zamkniętej (SITL).
🎛️ 5.3 Zakładka Definicja Kanałów (Channel Definition Tab)
- Mapowanie 16 Kanałów RC: Przypisywanie osi fizycznego kontrolera do kanałów CH1-CH16.
- Punkt Neutralny i Rewersy: Ustawianie pozycji neutralnej (1500µs), dolnego limitu (1000µs) i górnego limitu (2000µs) z możliwością odwrócenia kierunku pracy serwa (Invert).
- Mikser Skrętu i Gaz/Hamulec: Zaawansowana logika miksowania osi dzielonej (Split Axis) dla oddzielnych pedałów gazu i hamulca.
🎯 5.4 Zakładka Martwe Strefy i Krzywe Expo (Deadzone & Expo Tabs)
- Kreator Auto-Detekcji Osi: Błyskawiczne wykrywanie poruszanych osi kierownicy i pedałów z obniżonym progiem czułości (
0.5%/>20 jednostek). - Martwa Strefa Środkowa (Center Deadzone): Eliminacja drżenia kół wokół pozycji zerowej.
- Krzywe Wykładnicze (Expo Curves): Nieliniowa progresja skrętu – wysoka precyzja przy delikatnych korektach na prostej i pełny skręt przy maksymalnym wychyleniu koła.
🎡 5.5 Zakładka Kierownica i Force Feedback (Steering Wheel FFB Tab)
- Integracja Direct Drive: Natywna obsługa kierownic Moza Racing, Fanatec, SimuCube, Logitech G29/G920 oraz Thrustmaster.
- Fizyka FFB z Telemetrii IMU:
- Efekt Przeciążeń Bocznych (Lateral G): Siła oporu kierownicy w zakręcie proporcjonalna do przyspieszenia poprzecznego.
- Efekt Utraty Przyczepności (Understeer / Oversteer): Zmiękczenie oporu kierownicy w momencie uślizgu kół przednich.
- Faktura Nawierzchni i Wibracje (Road Texture): Odtwarzanie nierówności terenu i tarcia opon z wysokoczęstotliwościowych drgań osi Z.
📐 5.6 Zakładka Strojenie PID i Filtrów (PID & Filter Tuning Tabs)
- Regulatory PID: Strojenie nastaw $K_p$, $K_i$, $K_d$ dla regulatora kąta skrętu, asystenta pasa ruchu oraz tempomatu.
- Cyfrowe Filtry Sensorów:
- Filtr Komplementarny & Madgwick / EKF: Fuzja danych akcelerometru i żyroskopu dla idealnej stabilizacji sztucznego horyzontu.
- Filtr Dolnoprzepustowy Butterwortha: Odcinanie zakłóceń mechanicznych pochodzących od silnika napędowego.
📹 5.7 Zakładka Wideo i Kamery (Video Tab)
- Wybór i Kalibracja Grabberów: Wybór indeksu urządzenia wideo, zmiana rozdzielczości i wymuszenie formatu MJPEG 60 FPS.
- Korekcja Zniekształceń Optycznych (Lens Undistortion): Kompensacja efektu rybiego oka (Fish-eye) dla obiektywów szerokokątnych FPV.
🗺️ 5.8 Zakładki SLAM i Mapowanie 2D (SLAM & Mapping Tabs)
- Wizualizacja Mapy Zajętości 2D (Occupancy Grid): Wyświetlanie ścian, przeszkód i wolnej przestrzeni skanowanej przez LiDAR 2D w czasie rzeczywistym.
- Odometria i Pętla Zamknięcia (Loop Closure): Korekta dryfu pozycji pojazdu przy ponownym wjechaniu w znany obszar toru.
- Eksport Siatek: Zapis wygenerowanej mapy do formatu PNG / JSON na potrzeby nawigacji autonomicznej.
🧠 5.9 Zakładka AI, Trener i Klonowanie Behawioralne (AI Hub & Donkey Car Tabs)
- Zarządzanie Datasetami (Tubs Dataset Recorder): Zapis klatek wideo powiązanych z sygnałami
steerithrottle. - Wgrywanie Modeli AI (Hailo-8 .hef): Wybór skompilowanych modeli sieci neuronowych i uruchamianie inferencji na akceleratorze pokładowym NPU (26 TOPS).
- Podgląd Wizji Komputerowej: Rysowanie wykrytych linii toru, przeszkód i wektora sugerowanego skrętu AI.
📈 5.10 Zakładki Telemetria, Wykresy i Inspektor Danych (Plotter & Data Inspector Tabs)
- Dynamiczne Wykresy Czasowe (PyQtGraph): Wykresy parametrów telemetrycznych na żywo (prędkość, napięcie, kąty przechyłów, prąd).
- Czarna Skrzynka (Blackbox Logger): Asynchroniczny, bezlaggowy zapis telemetrii do plików CSV z zabezpieczeniem przed blokowaniem dysku.
- Eksport do Google Earth 3D KML: Zapis przebytej trasy do pliku trójwymiarowego
.kmlz przestrzennymi ścianami wysokościowymi.
📋 5.11 Zakładki Lista Przedstartowa i Testy Automatyczne (Preflight Check & Auto Test Tabs)
- Zautomatyzowany Test Przedstartowy (Preflight Wizard): Sekwencyjne sprawdzenie obecności urządzeń I2C (0x40 PCA9685, 0x68 IMU, 0x42 INA219), napięcia baterii (>3.7V/ogniwo) i sygnału GPS.
- Test Wychyleń Serw (PWM Sweep Test): Automatyczny ruch serwomechanizmów od skrajnych pozycji w celu wykrycia zacięć mechanicznych.
- Weryfikacja Failsafe: Test odcięcia zasilania silnika przy symulowanej utracie sygnału.
🏎️ 5.12 Zakładka Profil Pojazdu i Skrzynia Biegów (Vehicle Profile Tab)
- Profile Modeli: Konfiguracja parametrów fizycznych dla różnych skal (1:10 Crawler, 1:14 Ciężarówka, 1:28 Mini-Z).
- Wirtualna Skrzynia Biegów: Wybór trybu automatycznego lub sekwencyjnego ze zmianą biegów łopatkami przy kierownicy oraz płynną obsługą biegu wstecznego.
🌐 5.13 Zakładki Platformy Ruchu i Zdalne Zarządzanie (Motion Config & Remote Management Tabs)
- Mostek SimHub & Thanos Motion Rigs: Nadawanie ramek telemetrycznych UDP dla siłowników platform ruchomych 2DOF / 3DOF / 6DOF.
- Zdalny Menadżer Węzłów RPi: Podgląd obciążenia procesora, temperatury rdzenia oraz restartowanie usług systemd na Raspberry Pi 5 prosto z GUI.
🏁 5.14 Zakładka Wyścigi & Lobby Multiplayer (Race Lobby & Spectator Tower Tab)
- Wybór Środowiska Wyścigu: Przełącznik pomiędzy otwartym terenem GPS a torem zamkniętym z optycznym pomiarem QR.
- Konfiguracja Sesji: Wybór formatu (Trening / Hotlap, Wyścig na okrążenia, Wyścig na czas) oraz dobór mieszanki opon (Soft / Medium / Hard).
- Zintegrowany Generator Kodów QR: Bezpośrednie uruchamianie kreatora bramek toru i druku arkuszy A4.
- Tablica Wyników dla Widowni (
📺 Tablica dla Widowni): Uruchamianie pełnoekranowego okna transmisyjnego (F11) dla telebimów z synchronizacją MQTT.