DOCS/Kompendium Wiedzy
|

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 RCConfig zdefiniowany w core/models/config.py.
  • Automatyczna Trwałość Danych (Autosave): Zmiana dowolnego przełącznika, suwaka lub pola liczbowego natychmiast wyzwala zdarzenie _on_settings_changed i asynchronicznie zapisuje zaktualizowany stan do pliku rc_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ślnie 12347), 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ślnie 200 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ślnie 500 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_limit w µs/ms): Ogranicznik prędkości narastania sygnału sterującego serwem skrętu (domyślnie 15.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.2V dla 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.8V dla 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 w battery_throttle_limit_us (domyślnie 1750 µ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ślnie 0.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ślnie 2.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ślnie 1500 µ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 steer i throttle.
  • 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 .kml z 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.