Rozdział 4: GCS – Interfejs, Pierwsze Uruchomienie i Zaawansowana Konfiguracja
Witaj w Ground Control Station (GCS) – centrum dowodzenia systemu RCSIM! Jeśli na widok dziesiątek suwaków, wykresów i skrótów masz ochotę zamknąć program – odetchnij głęboko.
Pierwsza część tego rozdziału to "Przyjazna Encyklopedia", w której tłumaczymy interfejs prostym, ludzkim językiem. Druga połowa (Sekcja Inżynieryjna) to narzędzia dla zaawansowanych twórców: od strojenia filtrów Kalmana po zaawansowaną telemetrię i integrację z autopilotem “AI”.
💻 1. Uruchamianie Aplikacji
Ground Control Station został w pełni zoptymalizowany, by działać "z pudełka":
Wersja Produkcyjna (EXE): Nie musisz instalować Pythona na swoim Windowsie. Aplikację uruchamiasz bezpośrednio z pliku RCSIM.exe (znajdziesz go w folderze RCSIM-GCS-Production/).
Dla programistów: Jeśli zmieniasz kod GCS, w głównym katalogu projektu znajdziesz skrypt build_gcs.bat, który automatycznie weryfikuje środowisko i kompiluje nową wersję "w jednym kliknięciu".
Wskazówka redakcyjna: Po pomyślnym uruchomieniu skryptu, gotowa paczka produkcyjna wygeneruje się w katalogu dist/RCSIM-GCS-Production/.
🏎️ 2. Przewodnik po Interfejsie (Główne Zakładki)
Główne okno w aktualnym kodzie tworzy zakładki: Kokpit, Konfiguracja, Diagnostyka, AI, Nawigacja, Zarządzanie RPi, Multiplayer Lobby oraz DonkeyCar. Kolejność i nazwy wynikają bezpośrednio z gui/main_window.py.
🎮 Zakładka: KOKPIT (Twoje centrum operacyjne)
Spędzisz tu 90% czasu. To Twoja "przednia szyba" pokazująca obraz na żywo, telemetrię i mapę.
Selektor połączenia w Kokpicie zawiera:
MAVLink RF (Nomad / XR4),RPi WebRTC (Wideo + Dane),RPi UDP (Telemetria Sieciowa),CRSF Direct (Standard ELRS),Arduino (Port Trenera),ESP32 (WiFi Lite Mode),Symulator (DonkeyCar)iTryb Testowy (Mock).Tryb jazdy (Pilot) w Kokpicie:
Manualny: Ty prowadzisz.
AI Assist: tryb
AI Assist (User Gaz), w którym algorytm wspiera sterowanie, a operator nadal zachowuje kontrolę nad gazem.Full AI: tryb
Full AI (Autopilot); dostępność zależy od poprawnej konfiguracji SLAM/AI, telemetrii i uzbrojenia pojazdu.Wskaźnik CTE (Cross Track Error): Pokazuje w centymetrach, jak bardzo zjechałeś z idealnej linii wyścigowej (zielony = poniżej 30 cm, czerwony = powyżej, jesteś na poboczu).
Monitory Kanałów: Animowane słupki (CH1-CH16) pokazujące na żywo sygnały wysyłane z Twojego pada.
Dodatek (Narzędzia Mapy): Po prawej stronie wbudowaliśmy dużą mapę satelitarną wyposażoną w dwa zaawansowane narzędzia:
Kreator Misji: Pozwala w prosty sposób wyklikać trasę z punktów GPS (Waypointów).
Ustaw Granice (Geofence): edytor wielokąta bezpieczeństwa na mapie. W aktualnym GCS geofence zasila status OSD, powiadomienia i logikę ostrzeżeń; twarde zatrzymanie realizuj przez DISARM/RTH/failsafe zgodnie z konfiguracją pojazdu.
⚙️ Zakładka: KONFIGURACJA (Garaż)
Tu dopasujesz auto pod swoje palce i umiejętności – ustawisz martwe strefy, krzywe Expo i profile aparatury. (Szczegóły w Sekcji 3).
🧭 Zakładka: NAWIGACJA (SLAM i piloci: LiDAR, silnik SLAM, PWF, FTG, PP, AI Assist, Full AI)
To mózg systemów jazdy autonomicznej. Dzieli się na modularne panele, w których precyzyjnie konfigurujesz parametry systemów takich jak: LiDAR, silnik Monaco SLAM, Wall Following (PWF), Gap Follower (FTG), Pure Pursuit (PP), a także zachowanie asystenta jazdy (AI Assist) i trybu w pełni autonomicznego.
🚑 Zakładka: DIAGNOSTYKA (Twój warsztat mechanika)
Agreguje narzędzia monitorujące zdrowie pojazdu w czasie rzeczywistym:
Radar LiDAR & Mapa SLAM: Zobaczysz tu wirtualne "oczy" auta – radar 2D budujący na żywo czarno-białą mapę otoczenia (podobnie jak robią to nowoczesne odkurzacze automatyczne).
Data Inspector: Wyświetla absolutnie wszystkie dane (napięcia, temperatury, pozycję) w formie interaktywnego drzewa JSON.
Plotter: Rysuje wykresy telemetryczne na żywo. Idealny do sprawdzenia wibracji czujnika ruchu (IMU).
Autotesty: Moduł pozwalający wykonać diagnostykę sprawności silnika i serw przed jazdą.
🧠 Zakładka: AI (Sztuczna Inteligencja)
Wieloetapowa „Szkoła Nauki Jazdy” prowadzi operatora krok po kroku przez kompletny cykl uczenia maszynowego w stacji GCS: 01 Zbieranie danych -> 02 Zarządzanie (czyszczenie sesji z błędami) -> 03 Trening -> 04 Export (przygotowanie modelu ONNX pod zewnętrzną kompilację w chmurze lub CLI narzędzia AI Forge) -> 05 Wdrożenie -> 06 Wizja (podgląd włączników CV).
📶 Zakładka: ZARZĄDZANIE RPi
Pozwala bezprzewodowo kontrolować mikrokomputer Raspberry Pi 5 na pokładzie auta: uruchamiać skrypty, sprawdzać temperaturę SoC, obciążenie procesora oraz restartować oprogramowanie pokładowe bez odłączania zasilania.
🏁 Zakładki: DONKEYCAR & MULTIPLAYER LOBBY
DonkeyCar: Tryb SITL pozwalający połączyć program z symulatorem komputerowym i uczyć auto w wirtualnym świecie "DonkeyCar".
Multiplayer Lobby (RaceNet): Dedykowana zakładka sieciowa umożliwiająca rywalizację i wyścigi z innymi użytkownikami ekosystemu RCSIM.
🚦 3. Konfiguracja i Ustawienia Pada (Dla Początkujących)
Zanim ruszysz, musisz ustawić kluczowe parametry w zakładce KONFIGURACJA.
A. Najważniejsze Parametry Bezpieczeństwa i Telemetrii
| Co widzisz na ekranie? | W prostych słowach... | Zalecane na start | Gdzie to znaleźć? |
|---|---|---|---|
| Timeout Watchdoga | Zabezpieczenie na wypadek zerwania zasięgu. Odcina gaz po braku ramek. | 500 ms (pół sekundy) | Konfiguracja -> Ogólne -> Zaawansowane -> Bezpieczeństwo |
| Profil Pojazdu | Napięcie baterii (np. 7.4V) i średnica opony (np. 100.0 mm) do kalkulacji V-max. | Wpisz zmierzone wartości | Konfiguracja -> Profil Pojazdu |
| Limit Slew Rate | Cyfrowy amortyzator serwa. Zapobiega gwałtownym skrętom niszczącym przekładnie. | 15.0 (zmiana µs/ms) | Konfiguracja -> Ogólne -> Zaawansowane -> Bezpieczeństwo |
B. Martwe Strefy (Dead Zones) i Expo
Masz stary lub zużyty kontroler, którego drążki nie wracają idealnie na środek (wartość 1500 µs), a spusty nie dochodzą do samego końca? Auto może samoistnie "pełzać" lub nie osiągać maksymalnej prędkości. System GCS pozwala zdefiniować wiele stref martwych na jednym kanale!
Wejdź w zakładkę MARTWE STREFY.
Kalibracja Środka: Jeśli nie dotykasz drążka, a niebieski pasek (aktualny odczyt) drga np. w okolicach 1506 µs:
Wpisz w pole Min: 1480
Wpisz w pole Max: 1520
Wpisz w pole Cel: 1500 (idealny środek) i kliknij [ + ].
Kalibracja Skrajności (Bardzo Ważne!): Jeśli Twój spust gazu dochodzi tylko do 1960 µs i lekko drga, uniemożliwiając jazdę na 100%, dodaj kolejną strefę:
Min: 1950 / Max: 2000 / Cel: 2000 (pełny gaz).
Analogicznie zrób dla dolnej granicy: Min: 1000 / Max: 1050 / Cel: 1000.
Wizualizator podświetli te zakresy na czerwono. Czerwona strefa "wchłonie" luz Twojego sprzętu, wymuszając precyzyjne odczyty w zdefiniowanych punktach.
Krzywe Expo i Filtrowanie Sygnału:
Ustawienie współczynnika Expo na poziomie np. 1.5 sprawia, że drążek jest mniej czuły wokół środka (ułatwia jazdę z wysokimi prędkościami na wprost), zachowując pełną agresywność przy skrajnych ruchach (do ciasnych nawrotów).
Zaimplementowany dwustopniowy układ wygładzania (Low-Pass oraz High-Pass Filter) w tej samej zakładce pozwoli Ci nie tylko odfiltrować szumy i drgania tanich potencjometrów, ale też precyzyjnie wymodelować dynamikę i odpowiedź na gwałtowne ruchy kontrolera.
C. Mapowanie Sterowania
Kliknij Przypisz przy interesującej Cię funkcji i wciśnij klawisz na padzie.
KRYTYCZNE: Ustaw funkcję "Uzbrój / Rozbrój (ARM)" na łatwo dostępny przycisk (np. START).
Porada: Ustaw osie dla Gazu i Hamulca jako "Oś Dzielona" (Split Axis) i przypisz je do tylnych spustów (LT/RT) dla precyzji rodem z symulatorów wyścigowych.
🏁 4. Twój Pierwszy Start (Quick Win)
ZASADA BEZPIECZEŃSTWA #1: Zanim uzbroisz silnik, zawsze postaw auto na podstawce, by koła wisiały w powietrzu!
Włącz auto: Podepnij akumulator (baterię) do pojazdu.
Połącz się: Wpisz IP swojego auta, wybierz WEBRTC i kliknij POŁĄCZ. Włącz "Okno FPV".
Uzbrój silnik: Upewnij się, że drążek gazu jest puszczony. Kliknij przycisk ARM (zmieni kolor z szarego na czerwony).
Test "Na sucho": Naciśnij delikatnie gaz na padzie. Koła powinny ruszyć. Sprawdź kierownicę (jeśli koła skręcają w złą stronę, włącz opcję "Invert/Odwróć" w konfiguracji kanałów).
Awaryjny Stop: Będąc "w gazie", wciśnij SPACJĘ na klawiaturze. Silnik powinien zgasnąć natychmiast.
Gotowe! Połóż auto na ziemi i ciesz się jazdą!
🧠 Sekcja Inżynieryjna: GCS Mastery
Ground Control Station to system czasu rzeczywistego (RT) zarządzający stabilnością platform przemysłowych. Ten rozdział wprowadzi Cię w profesjonalną konfigurację zaawansowaną.
1. Zautomatyzowana Lista Kontrolna (Preflight Check)
Zanim wyślesz drona na autonomiczną misję, GCS automatycznie wykona inżynieryjny test. W zakładce Diagnostyka znajdziesz aktywny panel Preflight Check, który w czasie rzeczywistym (10 Hz) ocenia zdrowie kluczowych systemów, używając prostej kolorystyki (Zielony = OK, Żółty = Ostrzeżenie, Czerwony = Błąd):
Połączenie Radiowe (Link Status): Weryfikuje aktywny strumień danych (WebRTC/UDP/MAVLink).
Bateria: System ostrzega, gdy napięcie (V) spadnie poniżej krytycznego progu bezpieczeństwa zdefiniowanego w konfiguracji.
GPS Fix: Monitoruje jakość sygnału RTK (system wymaga śledzenia odpowiedniej liczby satelitów do autonomii).
IMU (Health): Odpytuje sensory o przyspieszenie ziemskie na osi Z, wyłapując groźne wibracje podwozia w spoczynku.
LiDAR Scanning: Sprawdza, czy czujnik laserowy obraca się i poprawnie zwraca gęstą chmurę punktów otoczenia.
Safety State: Monitoruje głównego watchdoga i architekturę sprzętową (uzbrojenie układu wejść/wyjść PCA9685).
2. Dynamiczne OSD i Architektura Wtyczek (Hot-Loading)
Architektura aplikacji GCS jest zgodna z restrykcjami licencji open-source (m.in. biblioteki PySide6 znajdują się jawnie w folderze _internal/, co pozwala na ich swobodną wymianę). Jednak to, co czyni system RCSIM wyjątkowym, to w pełni dynamiczny Edytor OSD (On-Screen Display) bazujący na głębokiej introspekcji Pythona.
Nie ma tu udawanej funkcjonalności. Wskaźniki nakładane na ekran wideo to niezależne wtyczki ładowane w locie (hot-loading).
🛠️ Jak to działa "pod maską"? (Deep Dive)
Gdy stacja GCS startuje i buduje interfejs, wywołuje klasę OSDWidgetRegistry, która uruchamia zautomatyzowaną procedurę:
Lokalizacja wtyczek: Program namierza katalog workshop/widgets/ (w skompilowanej wersji .exe ścieżka to _internal/gui/osd/workshop/widgets/). Następnie wstrzykuje tę ścieżkę do sys.path.
Dynamiczny import: Za pomocą modułu importlib program ładuje wszystkie odnalezione pliki .py bezpośrednio do pamięci RAM, jako aktywne moduły Pythona.
Introspekcja kodu: To kluczowy etap. Program skanuje zawartość zaimportowanego kodu i szuka zdefiniowanych klas dziedziczących po naszym bazowym OSDWidget.
Rejestracja: Gdy tylko taka klasa zostanie znaleziona, system automatycznie dodaje ją do menu Edytora OSD w stacji roboczej.
🎨 Stwórz własny wskaźnik w 5 minut
Chcesz dodać wskaźnik przeciążeń (G-Force) albo obrotów silnika na podglądzie wideo? Nie musisz rekompilować całej stacji! Wystarczy napisać prosty kod korzystający z QPainter i wrzucić go do katalogu z wtyczkami:
from gui.osd.widgets.base_widget import OSDWidget
from PySide6.QtGui import QPainter, QColor
from PySide6.QtCore import QRectF
class MyGForceWidget(OSDWidget):
def init(self):
super().init()
self.name = "Custom: G-Force Widget" # Nazwa w edytorze OSD
self.width = 100
self.height = 50
def draw(self, painter: QPainter, data: dict):
1. Odbieramy telemetrię na żywo! (GCS wstrzykuje tu pełny stan pojazdu)
imu = data.get("imu", {})
ax = imu.get("ax", 0.0) / 9.81 # Przyspieszenie osi X w G
2. Rysujemy wskaźnik na wideo WebRTC
painter.setBrush(QColor(0, 0, 0, 150))
painter.drawRoundedRect(0, 0, self.width, self.height, 5, 5)
painter.setPen(QColor(0, 255, 0))
painter.drawText(QRectF(5, 5, 90, 40), f"X: {ax:.2f} G")
System automatycznie wczyta ten plik, zintegruje go z pętlą wideo, pozwoli Ci na interaktywne przeciąganie wskaźnika w GUI myszką i co klatkę przekaże mu najświeższe dane (data) prosto z platformy sprzętowej Raspberry Pi 5.
3. Strojenie Algorytmów Autonomii (Nawigacja)
W zakładce Nawigacja znajdziesz parametry bezpośrednio wpływające na ścieżkowanie (Pathfinding).
sequenceDiagram
participant L as LiDAR (Pojazd/Symulator)
participant R as RPi 5 (Mostek WebRTC/UDP)
participant S as SlamService (PC / GCS)
participant C as SlamController / Solver (PC)
participant G as GCS GUI Config
participant M as PCA9685 Mikser (RPi)
L->>R: Surowa chmura punktów
R->>S: Transmisja WebRTC/UDP (Telemetria)
G->>S: Aktualizacja parametrów (lookahead, kp, kd, itp.)
S->>S: Voxel Filter & ICP Scan Matching
S->>C: Pozycja auta (x, y, yaw) + Zaktualizowana Costmapa
C->>C: Obliczenie celu (Pure Pursuit / PWF) i błędu
C->>R: Komenda sterowania (Steering & Throttle)
R->>M: Generowanie PWM dla serwa i ESC (PCA9685)
PWF (Wall Following) / FTG (Gap Follower): Ustaw progi widzenia LiDAR-a i agresywność skrętu dla szybkiej, reaktywnej jazdy po halach (omijanie fizycznych ścian). Parametry takie jak Czas Wyprzedzenia, Kąt Próbkowania czy wzmocnienia PID pomagają utrzymać auto precyzyjnie na środku korytarza.
Pure Pursuit (Dystans Lookahead i Wężykowanie): Wyznacza dynamicznie, jak daleko "przed siebie" patrzy auto śledzące linię wyścigową.
Objaw: Auto "wężykuje" (oscyluje) na prostej.
Rozwiązanie: Skoryguj bazowy dystans Min. Lookahead (lookahead_min) oraz to, jak wydłuża się on wraz z prędkością (Lookahead Gain / lookahead_gain). Aby zredukować nerwowe ruchy kierownicą, zmniejsz mnożnik skrętu (Max Steer Limit / race_steering_gain) lub zwiększ tłumienie błędu poprzecznego (CTE Damping (Kd) / mapping_kd).
Progresywne Hamowanie (curve_brake): Działa na dwa różne sposoby w zależności od aktywnego algorytmu:
W trybie PWF (Reaktywnym): System hamuje reaktywnie na bazie aktualnego wychylenia kół (curve_brake_threshold). Jeśli zakręt wymusza mocny skręt, auto silnie redukuje gaz.
W trybie Pure Pursuit (Apex Hunter): System stosuje hamowanie predykcyjne. Analizuje krzywiznę linii wyścigowej z wyprzedzeniem i automatycznie dohamowuje na prostej, tuż przed wejściem w wierzchołek zakrętu (Apex), bezbłędnie eliminując podsterowność. Czułość tego systemu regulujesz parametrem Czułość na zakręty (curvature_sensitivity).
4. Strojenie Filtrów Orientacji (EKF & Madgwick)
W zakładce Wybór i Strojenie Filtra (Filter Tuning) zarządzasz "błędnikiem" robota, decydując o sposobie fuzji danych z akcelerometru, żyroskopu oraz magnetometru.
Filtr Kalmana (EKF) – Najbardziej zaawansowany filtr fuzji:
Szum Procesu (Model): Określa niepewność modelu fizycznego. Im niższa wartość, tym ruch na OSD jest płynniejszy, ale przy zbyt niskich wartościach powstaje "lag" (opóźnienie) orientacji względem rzeczywistego pojazdu.
Szum Akcelerometru (Accel Noise): Określa stopień zaszumienia wskazań przyspieszenia. Jeśli podwozie mocno wibruje (generując szum na akcelerometrze), zwiększ tę wartość. Zmusi to filtr do ufania bardziej żyroskopom niż akcelerometrowi.
Szum Magnetometru (Mag Noise): Określa niepewność wskazań kompasu w środowisku pełnym zakłóceń elektromagnetycznych.
Filtr Madgwicka – Wydajny i popularny algorytm:
Wzmocnienie (Beta): Parametr siły konwergencji horyzontu (balans między stabilnością a szybkością reakcji – domyślnie 0.1). Wyższa wartość szybciej koryguje dryf na podstawie grawitacji, ale jest bardziej podatna na wibracje.
🧭 Interaktywny Kreator Kalibracji 3D
Zamiast ręcznie wpisywać offsety, w zakładce strojenia znajdziesz zielony przycisk "Uruchom Interaktywny Kreator Kalibracji 3D". To zaawansowane narzędzie, które w 5 krokach idealnie zestroi Twoje sensory:
Kalibracja Żyroskopu: Postaw pojazd nieruchomo. System zbierze 300 próbek i automatycznie wyeliminuje stały błąd przesunięcia (dryf kątowy).
Kalibracja Akcelerometru (6-pozycyjna): Ułóż fizyczny pojazd w 6 pozycjach (płasko, na nosie, na ogonie, na bokach, na dachu), naśladując podpowiedzi animowanego modelu 3D na ekranie. System sam wykryje stabilność i automatycznie zatwierdzi każdą pozycję, wyliczając idealne wektory grawitacji (1G).
Taniec z Kompasem (Magnetometr): Weź pojazd do ręki i obracaj nim, rysując w powietrzu "ósemki". Na ekranie wygeneruje się w czasie rzeczywistym kolorowa chmura punktów 3D. Algorytm na jej podstawie usunie zakłócenia od metalowych części (Hard/Soft Iron).
Zerowanie Horyzontu (Zero Orientation): Połóż pojazd płasko, skierowany dokładnie na wprost. Kliknij "Ustaw Orientację ZERO (AAAA)". System zapisze ten kąt jako yaw_offset, kompensując krzywy montaż płytki w podwoziu i gwarantując, że 0° to idealnie kierunek jazdy.
Zapis i Hot-Reload: Po kliknięciu "Zapisz", nowe wartości trafiają do rc_config.json i są natychmiastowo aplikowane do pracującego filtra bez potrzeby restartowania aplikacji GCS!
5. Force Feedback i Symulacja (Moza / Thanos)
RCSIM pozwala na transformację Twojego stanowiska simracingowego w kokpit operatora pojazdu RC, mapując telemetrię fizycznego pojazdu bezpośrednio na sprzęt symulatorowy w czasie rzeczywistym.
1. Platforma Ruchu Thanos (Motion Config)
W zakładce Motion Config zarządzasz parametrami platformy ruchowej AMC-AASD Thanos (fotela ruchomego). Algorytm Motion Cueing filtruje i przekształca przeciążenia z akcelerometru modelu RC na ruchy siłowników:
Sway Gain (Boczne): Odpowiada za przechylanie fotela w zakrętach. Przekłada przyspieszenie boczne pojazdu na wirtualny kąt Roll platformy.
Surge Gain (Wzdłużne): Odpowiada za pochylanie fotela przy przyspieszaniu i nurkowanie przy ostrym hamowaniu (kąt Pitch).
Heave Gain (Pionowe): Przenosi pionowe drgania (np. najechanie na tarkę lub wyskok na hopie) bezpośrednio na pionowy ruch siłowników.
Road Texture: Pozwala na przeniesienie mikrowibracji struktury nawierzchni wykrywanych przez akcelerometr prosto na konstrukcję fotela.
2. Mostek Telemetrii SimHub & Moza FFB
System FFB i telemetrii zewnętrznej w stacji GCS działa dwutorowo:
Emulacja Forza UDP (SimHub & Pit House): Włączenie opcji „Włącz SimHub” aktywuje transmisję pakietów UDP w standardzie protokołu Forza Motorsport Sled (domyślny port 20777). Sprawia to, że oprogramowanie sterujące stacją FFB (np. Moza Pit House czy SimHub) identyfikuje pojazd RC jako wirtualny bolid w grze. Przeciążenia boczne (Lateral G), prędkość obrotowa kół oraz uślizg osi tylnej na piasku są natychmiastowo mapowane na opór i wibracje na Twojej kierownicy.
Natywne Moza SDK (Moza Hardware Control): GCS posiada wbudowaną bezpośrednią integrację z kontrolerami Moza Racing (za pomocą MOZA_API_C.dll). Umożliwia to bezpośrednie programowanie kąta obrotu bazy oraz natywną obsługę fizycznej skrzyni biegów Moza H-Shifter (biegi 1-7, wsteczny oraz neutralny), pozwalając na realistyczne, manualne sterowanie modelem RC.
3. Fizyczny Silnik FFB (FFBPhysicsEngine)
Dla kierownic kompatybilnych z SDL Haptic / DirectInput oraz baz Moza, GCS posiada wbudowany silnik obliczeniowy FFB (FFBPhysicsEngine), który przekłada surowe dane inercyjne (IMU) z fizycznego pojazdu bezpośrednio na siły odczuwalne na kierownicy operatora.
Wzory i mechanizmy obliczeniowe:
- Moment Samoprostujący (Self-Aligning Torque - SAT):
Wyliczany jest na podstawie przyspieszenia bocznego (
ay) i prędkości kątowej odchylenia (gz- yaw rate): $$F_{\text{constant}} = a_y \cdot \text{ay_gain} + g_z \cdot \text{gz_gain}$$ Dzięki temu operator natychmiast czuje siłę odśrodkową w zakrętach oraz kierunek uślizgu, co ułatwia intuicyjne kontrowanie kierownicą przy nadsterowności. - Nierówności Terenu (Bump Rattle):
Surowy odczyt osi pionowej akcelerometru (
az) przechodzi przez filtr górnoprzepustowy (High-Pass Filter) w celu odfiltrowania grawitacji 1G: $$a_{z,\text{lpf}} = (1 - \alpha) \cdot a_{z,\text{lpf}} + \alpha \cdot a_z$$ $$\text{bump_intensity} = |a_z - a_{z,\text{lpf}}|$$ Gdy intensywność przekroczy próg 1.5 m/s², silnik FFB generuje naprzemienne szarpnięcia w lewo i prawo (efekt wibracji/grzechotania na kierownicy): $$F_{\text{constant}} \mathrel{+}= \text{bump_intensity} \cdot \text{az_gain} \cdot \text{bump_state}$$ Gdzie $\text{bump_state}$ zmienia znak ($\pm 1$) przy każdym wyboju. - Dynamiczny Tłumik (Dynamic Damper):
Tłumienie bazowe (
damper) jest dynamicznie obniżane o 10 jednostek, gdy siła poprzeczna przekracza próg 70%. Powoduje to odczuwalne "rozluźnienie" i spadek oporu kierownicy w momencie zerwania przyczepności (uślizgu przedniej osi), informując operatora o podsterowności.
6. Konfiguracja Radiowa Dalekiego Zasięgu (MAVLink RF)
Opcja stworzona z myślą o profesjonalnych wdrożeniach dalekiego zasięgu, wykorzystujących linki radiowe oparte na oprogramowaniu mLRS (np. nadajnik RadioMaster Nomad z modułem odbiorczym XR4).
Aby aktywować to połączenie:
W zakładce Connection (Połączenia) w polu Mode wybierz MAVLINK_RF (w Kokpicie widoczne jako MAVLink RF (Nomad / XR4)).
W sekcji „Nadajnik RF (MAVLink) - Tier 3” skonfiguruj następujące parametry:
Port: Wybierz port szeregowy COM przypisany do Twojego nadajnika USB/Serial.
Baud: Wybierz z listy prędkość 57600 (zgodnie ze standardem transmisji dalekiego zasięgu mLRS).
SysID: Wprowadź identyfikator swojego pojazdu (domyślnie 10, po odebraniu pierwszego pakietu GCS automatycznie zsynchronizuje się z rzeczywistym SysID autopilota).
Dlaczego MAVLink RF?
W odróżnieniu od klasycznego protokołu CRSF (Crossfire), MAVLink RF przesyła telemetrię i komendy sterujące (RC_CHANNELS_OVERRIDE) w sposób w pełni ustrukturyzowany, zapewniając integralność danych (sumy kontrolne CRC). GCS wymusza nowoczesny standard MAVLink 2.0, co umożliwia bezproblemową i niezawodną wymianę danych telemetrycznych oraz sterowanie pojazdem nawet na dystansach kilkunastu kilometrów.
Wskazówka Deweloperska: Aplikacja posiada wbudowane inteligentne filtrowanie adresów radiowych. Automatycznie ignoruje ona pakiety kontrolne samego modułu nadawczego mLRS, skupiając się wyłącznie na danych płynących z pojazdu, co zapobiega zakłóceniom i zapewnia natychmiastowe parowanie po włączeniu zasilania modelu.
7. AI Hub & Eksperymentalna Asysta Głosowa (Roadmap AI Autopilot)
Zakładka AI Hub stanowi centrum dowodzenia sztuczną inteligencją pojazdu, integrując menedżer sesji treningowych, logowanie danych telemetrycznych (Tubs) oraz konsolę bezpośredniej komunikacji z systemami autonomicznymi drona.
- Konsola Komunikacji AI: Umożliwia wysyłanie bezpośrednich komend sterujących i diagnostycznych (np. START_LOGGING, ARM_PERCEPTION) bezpośrednio do głównego serwisu na Raspberry Pi w celu wyzwalania zachowań behawioralnych.
System Syntezy Mowy (TTS) & Komunikaty Głosowe
Aby ułatwić operatorowi zachowanie pełnej koncentracji na obrazie FPV, RCSIM posiada w pełni zaimplementowany, stabilny system komunikatów głosowych:
Natywne Audio Windows (SAPI5): Aplikacja wykorzystuje systemową syntezę mowy Microsoft SAPI5. Dzięki architekturze dynamicznej izolacji (silnik mowy jest inicjalizowany i usuwany z pamięci osobno dla każdego zdania), system audio gwarantuje 100% stabilności i nie blokuje interfejsu graficznego.
Autodetekcja Języka (PL/EN): Lektor automatycznie dopasowuje się do języka wybranego w ustawieniach GCS, dynamicznie wyszukując odpowiedni pakiet językowy zainstalowany w Twoim systemie Windows.
Alerty Telemetryczne: System na bieżąco informuje głosowo o kluczowych stanach pojazdu, wypowiadając komunikaty takie jak: „Armed” (Uzbrojony), „Link Established” (Połączenie nawiązane) czy „Failsafe Triggered” (Aktywacja procedury bezpieczeństwa).