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:
- 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.
- 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):
- 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.
- 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.
- Moduł
IMUInterpolatori 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.
- Zabezpieczenie Wyłącznika Awaryjnego CRSF (Gotcha 24):
- Po wciśnięciu klawisza SPACJA lub przycisku DISARM pętla nadawcza natychmiast zeruje bufor
channels_normdo 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.
- Po wciśnięciu klawisza SPACJA lub przycisku DISARM pętla nadawcza natychmiast zeruje bufor