DOCS/Kompendium Wiedzy
|

Rozdział 6: Telemetria FFB (Force Feedback) i Bezpieczniki Sterowania

Ten rozdział wyjaśnia zasadę działania fizycznego sprzężenia zwrotnego Force Feedback (FFB) na kierownicy oraz systemy wspomagania kierowcy.


🎡 1. Architektura Force Feedback (FFB z Czujnika IMU)

W systemie RCSIM sygnał Force Feedback generowany jest w czasie rzeczywistym z odczytów fizycznego czujnika IMU (żyroskopu i akcelerometru MPU6050/ICM-42688-P) zamontowanego na podwoziu pojazdu RC:

  1. Wibracje i Nierówności Nawierzchni: Wysokoczęstotliwościowe składowe przyspieszenia pionowego ($Z$-axis) są przekazywane na silnik FFB kierownicy, oddając fakturę asfaltu i najechanie na krawężniki.
  2. Utrata Przyczepności (Podsterowność / Nadsterowność): Spadek przeciążenia poprzecznego ($Y$-axis) przy skręcie powoduje natychmiastowe "zmięknięcie" kierownicy, informując kierowcę o uślizgu przedniej osi.

[!NOTE] Ograniczenia Sprzętowe FFB: Sprzężenie zwrotne FFB w RCSIM symuluje zawieszenie, wibracje i uślizg na podstawie bezwładności podwozia (IMU). System NIE odtwarza fizycznego oporu drążka kierowniczego (gdyż wymagałoby to czujników tensometrycznych Load Cell na zwrotnicach).


🛑 2. Systemy Bezpieczeństwa (Failsafe & Emergency Stop)

  • Wyłącznik SPACJA: Bezpośredni priorytet w pętli zdarzeń Qt. Naciśnięcie spacji natychmiast wysyła pakiet rozłączenia awaryjnego i zeruje kanał przepustnicy.
  • Watchdog Sygnału (300 ms): Oprogramowanie pokładowe RPi 5 / RP2350 odlicza czas od ostatniej prawidłowej ramki sterującej UDP/CDC. Brak ramki przez 300 ms skutkuje automatycznym wprowadzeniem wyjść PWM w stan neutralny.

⚡ 3. Zero-Lag Motion Cueing, SimHub & Adaptacyjny Interpolator IMU

Wprowadzona w wersji v1.3.29 architektura przetwarzania telemetrii rozwiązuje problem opóźnień fazowych przy niskich częstotliwościach odświeżania danych radiowych (np. 12 Hz / 20 Hz z modułów ExpressLRS):

  1. Dynamiczny Krok Czasowy ($dt$ Monotoniczny):
    • Wcześniejsze implementacje zakładały sztywny krok próbkowania $dt = 0.02\text{ s}$ (50 Hz). Przy wolniejszej telemetrii powodowało to zaniżanie kąta obrotu żyroskopu i wymuszało powolną korektę grawitacyjną akcelerometru, generując aż do 800 ms opóźnienia fazowego.
    • Wszystkie filtry orientacji stacji GCS (EKFFilter, ComplementaryFilter, MadgwickFilter, MahonyFilter) przyjmują teraz dynamiczny czas kroku $dt$ mierzony bezpośrednio z zegara monotonicznego pomiędzy kolejnymi ramkami.
  2. Korekcja Grawitacyjna Kwaternionów:
    • W filtrze komplementarnym zastąpiono destrukcyjne interpolowanie delty kwaternionu (delta-slerp) ważonym wektorem rotacji błędu $(1 - \alpha)$, zachowując pełną dynamikę kątów przechyłu nadwozia bez sztucznego tłumienia.
  3. Moduł IMUInterpolator i Dead Reckoning:
    • Podwójny tor przetwarzania: buforowany algorytm SLERP dla wskaźników OSD/HUD (zapewniający stabilne i płynne 60 FPS) oraz ekstrapolacja Dead Reckoning o zerowej latencji dla platform ruchomych SimHub (2DOF / 3DOF / 6DOF) i silnika Force Feedback.
    • W przypadku braku pakietów ekstrapolacja wygaszana jest wykładniczo (Decay), a twardy watchdog failsafe zabezpiecza fotele ruchome przed gwałtownymi szarpnięciami.
  4. Zabezpieczenie Wyłącznika Awaryjnego CRSF (Gotcha 24):
    • Po wciśnięciu klawisza SPACJA lub przycisku DISARM pętla nadawcza natychmiast zeruje bufor channels_norm do 1500 µs oraz wymusza stan -1.0 (1000 µs) na kanale AUX1 (CH5), co w standardzie ExpressLRS powoduje sprzętowe odcięcie zasilania regulatora ESC.