DOCS/Kompendium Wiedzy
|

Rozdział 7: Telemetria, MAVLink, CRSF i Integracja Tier 3 (Flight Controllers / ELRS)

Ten rozdział omawia protokoły transmisji telemetrycznej, bezwzględne zabezpieczenia danych oraz integrację ze sprzętem Tier 3 (Kontrolery Lotu, RadioMaster Nomad ELRS, Mission Planner).


📊 1. Potok Telemetryczny 50Hz i Zabezpieczenie NaN Guard

Telemetria wysyłana z RPi 5 / Kontrolera Lotu zawiera odczyty przyspieszeń, prędkości, kątów roll/pitch/yaw oraz napięć.

[!IMPORTANT] Telemetry NaN Guard Gotcha: Surowy strumień danych telemetrycznych nigdy nie może być rzutowany bezpośrednio na typ int lub przekazywany do rysowania w PySide6 bez uprzedniej weryfikacji funkcji math.isfinite(). Wartość NaN rzucona przy braku odczytu czujnika wywoła wyjątek TypeError i trwale zamrozi interfejs GUI.


🛸 2. Integracja Tier 3: Kontrolery Lotu (ArduPilot / Mission Planner)

Dla zaawansowanych platform Tier 3 system RCSIM wspiera bezpośrednią integrację z kontrolerami lotu (Flight Controllers, np. Matek, Pixhawk, Speedbee) uruchamiającymi oprogramowanie ArduPilot / Betaflight:

  1. Wsparcie dla CRSF Direct & MAVLink 2.0: Bezpośrednia komunikacja z dwupasmowymi nadajnikami RadioMaster Nomad (Gemini Crossband 1W ELRS), modułami mLRS oraz kontrolerami lotu (ArduPilot/Betaflight).
    • CRSF Direct Mode: Binarny przesył 16 kanałów (11-bit), Gemini Heartbeat 10Hz oraz asynchroniczny Emergency Flush.
    • Wbudowany Konfigurator ExpressLRS (MSP over CRSF): Dedykowane okno dialogowe w GUI (elrs_configurator_dialog.py) umożliwiające bezpośredni odczyt i programowanie modułów nadawczych ELRS przez port USB без otwierania strony WebUI. Obsługuje parametry: Packet Rate, Telem Ratio, Switch Mode, Antenna Diversity, Gemini Link Mode, Model Match, TX Power, Dynamic Power, Fan Threshold, RF Band. Wszystkie zapisy autoryzowane są adresem LUA 0xEF (ADDR_ELRS_LUA) w formacie Big-Endian (>H, >f) z kolejkowaniem 1 ramki na cykl pętli 250 Hz.
    • Standard Wyłącznika Bezpieczeństwa AUX1 (CH5) & Neutral Snap (Gotcha 24): W ekosystemie ExpressLRS kanał 5 (AUX1) jest sztywnym standardem uzbrojenia modelu (1000 µs = DISARMED / STOP, 2000 µs = ARMED). Wciśnięcie SPACJI lub przycisku DISARM natychmiast przestawia kanał 5 na 1000 µs, zeruje bufor channels_norm do pozycji neutralnej 1500 µs (0.0) i wymusza awaryjny pakiet STOP UART, natychmiast odcinając zasilanie silnika w regulatorze ESC.
    • MAVLink RF 2.0 Mode: Transmisja ustrukturyzowana RC_CHANNELS_OVERRIDE ograniczona do 20Hz, dwukierunkowy odczyt telemetrii (ATTITUDE, SYS_STATUS, GPS_RAW_INT, RADIO_STATUS) oraz automatyczne wgrywanie misji nawigacyjnych (MISSION_ITEM_INT).
  2. Współpraca z Mission Planner (MAVLink Forwarding & Synchronizacja):
    • MAVLink Forwarding (UDP 127.0.0.1:14550): Stacja RCSIM GCS podłączona do portu szeregowego nadajnika Nomad przesyła strumień MAVLink na port UDP 14550, co pozwala uruchomić aplikację Mission Planner na tym samym komputerze PC z jednoczesnym podglądem map 3D i sztucznego horyzontu.
    • Kalibracja i Wgrywanie Oprogramowania: Pierwotna kalibracja akcelerometrów, kompasu oraz zakresów PWM regulatora ESC wykonywana jest w Mission Plannerze / FC Flasherze.
    • Synchronizacja Plików Misji: Trasy i punkty nawigacyjne (.waypoints / .plan) utworzone w Mission Plannerze są w 100% zgodne z maszyną stanów wgrywania misji w RCSIM GCS.
  3. Natywne IMU i Ochrona ESC w Odbiorniku RadioMaster ER5C V2 (Custom Firmware):
    • Surowe IMU 0x13: Aktualny mod ER5C V2 przesyła czas próbki, żyroskop, akcelerometr i temperaturę oddzielnie od orientacji 0x1E; wymagany jest poprawny odczyt I2C.
    • Przypisanie pinów GPS: Główny Serial Protocol musi mieć wartość GPS. CH3 to Serial RX; opcjonalny CH2 Serial TX zastępuje jego funkcję PWM.
    • Dynamiczny Auto-Baudrate GPS & NMEA RMC: Odbiornik automatycznie cyklicznie próbuje prędkości 9600 i 115200 bps, zatrzaskując się trwale na poprawnej sumie kontrolnej modułu GPS (np. Beitian BN-180, NEO-6M), oraz wyciąga prędkość i kurs bezpośrednio z uniwersalnej ramki $xxRMC.
    • Dekodowanie GCS: Stacja naziemna GCS przelicza wartości LSB na jednostki fizyczne ($g$, $deg/s$, $\mu T$) i przekazuje je bezpośrednio do modułu Force Feedback (FFB) oraz wskaźników horyzontu OSD.
  4. FC Flasher & Corewing Tools: Dedykowane narzędzia do wgrywania oprogramowania układowego ArduPilot/Betaflight bezpośrednio z poziomu panelu narzędziowego.

Mission Planner Setup RadioMaster Nomad Setup