Porada

Tryb awaryjny w Betaflight: co robi dron po utracie łączności i jak to przetestować

Prędzej czy później stracisz łączność z dronem. Polecisz trochę za daleko, między tobą a dronem stanie budynek albo po kraksie pęknie przewód odbiornika. Od tej chwili o wszystkim decyduje kontroler lotu, a on zrobi tylko to, co wcześniej mu kazałeś. Poniżej omawiam etap po etapie, jak Betaflight reaguje na utratę sygnału, porównuję trzy procedury etapu 2 i pokazuję test bez śmigieł, który trzeba zrobić, zanim zaufasz tym ustawieniom.

Czasy i wartości domyślne pochodzą z wiki Betaflight i dotyczą wersji 4.5. Tam, gdzie wersja 4.4 się różni, podaję też jej wartości. Jeśli masz nowsze oprogramowanie, sprawdź wartości domyślne we własnym Configuratorze.

Odbiornik ma zamilknąć

Zabezpieczenie po utracie sygnału może obsługiwać odbiornik albo kontroler lotu. Jeśli robi to odbiornik, po utracie łączności wysyła zaprogramowane wartości drążków. Kontroler lotu widzi coś, co wygląda na zwykłe dane, więc tryb awaryjny Betaflighta w ogóle się nie włącza, a w OSD nic się nie pojawia. Jeśli robi to kontroler lotu, odbiornik przestaje wysyłać cokolwiek i Betaflight reaguje sam. Dokumentacja Betaflighta odradza zabezpieczenie po stronie odbiornika i zaleca ustawić odbiornik tak, żeby po utracie sygnału nie wysyłał żadnych danych.

Drugie rozwiązanie ma jeszcze jedną zaletę. Betaflight pilnuje, czy dane w ogóle przychodzą, więc ten sam mechanizm zadziała także wtedy, gdy przewód odbiornika się zerwie albo odbiornik się zawiesi.

Przy odbiorniku ExpressLRS podłączonym do portu szeregowego (CRSF) w odbiorniku nie ma czego ustawiać: po utracie łącza przestaje on przekazywać dane kanałów, a resztą zajmuje się Betaflight. Jeśli używasz odbiornika ExpressLRS z wyjściem SBUS, w skrypcie Lua znajdziesz opcję zachowania wyjścia SBUS po utracie sygnału („SBUS Failsafe”). Ustawienie „No Pulses” wstrzymuje wszystkie ramki, czyli robi dokładnie to, czego oczekuje Betaflight. Ustawienie „Last Pos” wysyła dalej ostatnie pozycje kanałów z ustawioną flagą utraty sygnału.

Skoro i tak zaglądasz do konfiguracji aparatury, sprawdź jeszcze jedną zasadę ExpressLRS: uzbrajanie ma być na kanale AUX1, przy czym stan niski (około 1000 µs) oznacza rozbrojenie, a wysoki (około 2000 µs) uzbrojenie. ExpressLRS wysyła AUX1 w każdym pakiecie. Przełącznik na innym kanale może dotrzeć dopiero po kilku pakietach, a ExpressLRS nie gwarantuje, że odbiornik ten pakiet w ogóle dostanie.

Co się dzieje po kolei, co do milisekundy

Przy domyślnych ustawieniach Betaflight liczy czas od ostatniego poprawnego pakietu:

Czas od ostatniego poprawnego pakietu Co robi kontroler lotu Co widać w OSD
0-100 ms Trzyma ostatnie wartości drążków Nic
100 ms Uznaje, że sygnał zniknął, i blokuje uzbrajanie RXLOSS
300 ms Etap 1: wartości zastępcze (drążki na środku, gaz na minimum, przełączniki bez zmian) RXLOSS, bez osobnego wskaźnika etapu 1
1,5 s Etap 2: wybrana procedura (domyślnie zrzut, czyli rozbrojenie) !FS! w polu trybu lotu

Długość etapu 1 ustawia parametr failsafe_delay, w Configuratorze opisany jako „Guard time for stage 2 activation”. Domyślnie to 1,5 s w wersji 4.5 i 1,0 s w 4.4, a minimum wynosi 200 ms. Jeśli przed etapem 2 dotrą poprawne dane, sterowanie wraca od razu. Kiedy łącze raz jest, a raz go nie ma, dron reaguje na drążki skokowo i z przerwami.

Na gaz w etapie 1 trzeba uważać. Domyślnie wynosi zero, więc dron zaczyna spadać już 300 ms po utracie łączności, na długo przed etapem 2. Przy procedurze zrzutu nie ma to znaczenia, bo dron i tak zaraz spadnie. Przy powrocie GPS zerowy gaz może zakończyć lot, zanim powrót w ogóle się zacznie (więcej o tym niżej).

Z etapu 2 wychodzi się w kilku krokach. Sygnał musi być dobry przez czas failsafe_recovery_delay: 500 ms w wersji 4.5, 100 ms w kompilacjach z opcją RACE_PRO i 1,0 s w 4.4. Potem przestawiasz przełącznik uzbrajania na rozbrojenie i uzbrajasz ponownie. Do tego czasu OSD pokazuje NOT_DISARMED (przed wersją 4.5 był to komunikat BAD_RX). Od wersji 4.3 nie trzeba już odłączać zasilania, więc jeśli dron wyląduje gdzieś, gdzie nie dojdziesz, ale zdołasz podejść na tyle blisko, żeby odzyskać łączność, możesz go ponownie uzbroić i stamtąd wylecieć.

Dwie rzeczy regularnie zaskakują pilotów. Etap 2 nie może się zacząć przez pierwsze 5 sekund po uruchomieniu kontrolera lotu. Jest też ukryty przypadek natychmiastowego rozbrojenia: jeśli gaz był nisko przez co najmniej 10 sekund przed etapem 2, Betaflight po prostu rozbraja drona zamiast uruchamiać procedurę etapu 2 (wyjątkiem jest powrót GPS). Chroni cię to, gdy po lądowaniu wyłączasz aparaturę, a akumulator nadal jest podłączony, ale w teście na stole potrafi dać mylący wynik.

Zrzut, lądowanie czy powrót GPS

Zrzut („Drop”) na początku etapu 2 rozbraja drona i zatrzymuje silniki. To ustawienie domyślne, a wiki Betaflight poleca je głównie pilotom wyścigowym i osobom latającym rekreacyjnie w parkach. Do latania akrobacyjnego i treningu na otwartym terenie, gdzie pod dronem nikogo nie ma, to także najbardziej przewidywalny wybór: dron spada blisko miejsca, w którym stracił łączność, więc łatwiej go znaleźć. Nie skracaj jednak etapu 1 do minimum. Wiki podaje 200 ms jako praktyczne minimum, a przy krótszym czasie każdy chwilowy zanik sygnału może niepotrzebnie włączyć tryb awaryjny.

Lądowanie („Land”) utrzymuje stały gaz (failsafe_throttle) przez ustalony czas (failsafe_off_delay), a potem rozbraja drona. Wiki tego nie zaleca, poza testowaniem przełącznika trybu awaryjnego i szukaniem wartości gazu do zawisu na potrzeby powrotu GPS. Podczas opadania regulator PID działa, ale nikt nie steruje, więc dron dryfuje z wiatrem, może spaść na ludzi z kręcącymi się silnikami, a jeśli śmigła zablokują się przy lądowaniu, silniki mogą się spalić. Jeśli mimo to chcesz z tego korzystać, ustaw failsafe_throttle tak, żeby dron opadał z prędkością około 1 m/s, a failsafe_off_delay na tyle długo, żeby zdążył zejść na ziemię z wysokości, na której zwykle latasz. Dokumentacja Configuratora dodaje, że bez funkcji utrzymywania wysokości („Altitude Hold”) w oprogramowaniu zbyt wysoki gaz sprawi, że dron zacznie się wznosić zamiast opadać, a zbyt niski skończy się twardym upadkiem. Z wbudowanym utrzymywaniem wysokości zejście jest kontrolowane, a dron rozbraja się po wylądowaniu.

Powrót GPS („GPS Rescue”) przekazuje sterowanie modułowi nawigacji, który sprowadza drona do punktu startowego i ląduje. Potrzebny jest sprawny moduł GPS, wystarczająca liczba satelitów i zapisany punkt startowy, a o tym, czy procedura drona uratuje, czy rozbije, decyduje kilka ustawień:

  • Ustaw gaz w etapie 1 mniej więcej na zawis. Wiki uznaje to za konieczne: przy domyślnym zerowym gazie dron może się rozbić już w etapie 1, zanim powrót zdąży się zacząć.
  • Nie włączaj opcji uzbrajania bez ustalonej pozycji („Allow arming without fix”). Jeśli uzbroisz drona bez punktu startowego i zacznie się powrót, dron natychmiast się rozbroi i spadnie.
  • Nie wyłączaj kontroli poprawności („Sanity checks”). Jeśli kontrola wykryje problem, dron rozbroi się, zamiast odlecieć.
  • Pilnuj minimalnej odległości od punktu startowego. Powrót uruchomiony bliżej sprawi, że dron najpierw odleci, być może daleko i w przypadkowym kierunku, a dopiero potem zawróci.

Żeby odzyskać sterowanie podczas powrotu, sygnał musi się utrzymać przez czas failsafe_recovery_delay, a potem trzeba wychylić drążki o ponad 30° od środka (failsafe_stick_threshold). Jeśli drążki zostaną na środku, powrót trwa dalej. Nawet jeśli wszystko dobrze ustawisz, nie traktuj powrotu GPS jako gwarancji, że dron wróci.

Testuj bez śmigieł

Przed testem otwórz w Configuratorze zakładkę odbiornika („Receiver”) i sprawdź, jak aparatura reaguje na wybraną metodę. Wiki Betaflight zaleca wyłączenie modułu nadawczego w aparaturze, bo większość aparatur od razu przestaje wtedy wysyłać dane. Wyłączenie całej aparatury może wymagać kilku naciśnięć przycisku, a niektóre aparatury nie chcą się włączyć, dopóki wszystkie przełączniki, łącznie z uzbrajaniem, nie są w pozycji wyłączonej.

Test zrzutu, śmigła zdjęte:

  1. Ustaw etap 2 na zrzut.
  2. Uzbrój drona i na chwilę dodaj gazu. Dzięki temu nie trafisz na 10-sekundowy przypadek natychmiastowego rozbrojenia.
  3. Ruszaj gazem w górę i w dół, a w tym czasie wyłącz moduł nadawczy.
  4. Sprawdź, czy pojawia się RXLOSS i czy po około 1,5 s silniki stają, a dron się rozbraja.
  5. Włącz moduł ponownie i sprawdź, czy drona nie da się uzbroić, dopóki nie przestawisz przełącznika na rozbrojenie.

Żeby dokładnie przyjrzeć się etapowi 1, ustaw tymczasowo jego czas na 10 s (failsafe_delay = 100, bo parametr liczy się w krokach po 0,1 s) i ustaw w etapie 1 gaz do zawisu. Bez śmigieł powinieneś usłyszeć, że silniki przez 300 ms trzymają obroty, potem schodzą do wartości z etapu 1 i pracują tak, aż dron się rozbroi. Powtórz test, ale przywróć łączność w trakcie etapu 1: silniki powinny od razu zareagować na drążki. Na koniec przywróć poprzedni czas (domyślnie 15, czyli 1,5 s).

Lądowanie i powrót GPS trzeba sprawdzić także w terenie. Przełącznik trybu awaryjnego („FAILSAFE”), przypisany w zakładce trybów („Modes”), pozwala włączyć i wyłączyć ten tryb na żądanie. Jego działanie ustala parametr failsafe_switch_mode: STAGE1 symuluje prawdziwą utratę sygnału, STAGE2 od razu uruchamia procedurę etapu 2, a KILL natychmiast rozbraja drona. Do testów nie używaj KILL, bo jedno zakłócenie na tym kanale wystarczy, żeby dron spadł. Lądowanie testuj na wysokości około metra nad wysoką trawą albo innym miękkim podłożem, z dala od ludzi i budynków, i zacznij od niskiej wartości gazu. Jeśli w teście uruchomionym przełącznikiem dron podczas lądowania albo powrotu zaczyna odpływać, nie rozbrajaj go w panice. Przestaw przełącznik z powrotem, a sterowanie wróci od razu. Nie czekaj z tym dłużej niż około 15 sekund, bo dron może się rozbroić i spaść.

Powtarzaj test na stole po każdej aktualizacji oprogramowania, każdej wymianie odbiornika i każdej większej zmianie konfiguracji.

Zauważ ostrzeżenia, zanim włączy się tryb awaryjny

Tryb awaryjny wkracza dopiero wtedy, gdy łącza już nie ma. Zwykle wcześniej pojawiają się sygnały ostrzegawcze, o ile OSD je pokazuje. ExpressLRS zaleca, żeby w zakładce odbiornika ustawić zarówno kanał RSSI („RSSI Channel”), jak i pomiar „RSSI_ADC” na wyłączone („Disabled”), a w zakładce OSD dodać elementy jakości łącza („Link Quality”) i „RSSI dBm” (a nie „RSSI Value”). Alarmy ustaw tak:

  • set osd_link_quality_alarm = 60 to wartość, od której ExpressLRS proponuje zacząć.
  • osd_rssi_dbm_alarm ustaw 5-10 dB powyżej granicy czułości dla używanej częstotliwości pakietów. Przy 250 Hz granica wynosi -108 dBm, więc alarm ustawiasz między -103 a -98 dBm.

Krótki komunikat RXLOSS też jest ostrzeżeniem: wiki Betaflight opisuje go jako wczesny sygnał poważnej utraty pakietów. Gdy w locie spada jakość łącza, zawróć w swoją stronę, nabierz wysokości, jeśli między tobą a dronem są przeszkody, i nie wlatuj za drzewa ani budynki. I ostatnia zasada ExpressLRS: nie zmieniaj częstotliwości pakietów ani innych parametrów w skrypcie Lua, kiedy dron jest uzbrojony. Zmiana częstotliwości pakietów wymusza rozłączenie, a inne zmiany na części sprzętu mogą rozsynchronizować łącze. W obu przypadkach kończy się to włączeniem trybu awaryjnego.