Oprogramowanie kontrolerów lotu, takie jak BetaFlight, charakteryzuje podobny nazewniczy bełkot, jak wiele innych rynkowych produktów. GoPro ma HyperSmooth, obecnie w wersji 2.0, a za chwilę pewnie będzie Ultra-Hyper-Steady i Max-Tripod-Mega-Shot. Mój smartfon z 3 aparatami ma Triple-AI, ponieważ jedna sztuczna inteligencja to za mało - muszą być 3. Strach pomyśleć, na co mogą wspólnie wpaść! No a BetaFlight ma m.in. AirMode i AntiGravity. Dlaczego takie nazwy? Ponieważ są bardziej chwytliwe niż Maintain High PID Controller Authority On Low Throttle (w skrócie: MHPIDCAOLW) oraz Prevent Nose Dipping On Throttle Punches By Boosting I-Gain (w skrócie: PNDOTPBBIG). AirMode i AntiGravity nie oddają może idei, ale są bardziej chwytliwe i łatwiejsze do wymówienia. Zapraszam do zapoznania się z tym, co one robią.
Trudno opisywać coś, co najlepiej pokazać na filmie w trakcie lotu, ale w sumie warto spróbować wyjaśnić to zagadnienie, żeby potem zobaczyć, jak faktycznie przełoży się na lot.
Zacznijmy od tego, że za lot koptera tylko pośrednio odpowiadamy my, jako sterujący nim. Kontrola przy pomocy aparatury i manipulatorów jest jedynie naszą grzeczną prośbą, która jest kierowana do kontrolera PID. Jego zasada działania jest relatywnie prosta. Patrzy on na to, z jaką prędkością kątową kopter się w danej chwili obraca, oraz z jaką obracać się powinien. Jeśli nasz sprzęt wisi w powietrzu bez ruchu, to żyroskop pokazuje same zera i rotacji nie ma. Prędkość z jaką kopter ma się w danej chwili obracać wymuszona jest przez rates, które już kiedyś konfigurowaliśmy.
Jeśli spojrzycie na tą krzywą z BetaFlight to pokazuje ona dokładnie z jaką prędkością ma się kopter obracać, przy danym wychyleniu manipulatora. Jeśli manipulator jest wycentrowany - rotacji nie powinno być. Zauważcie, że nie mówimy tutaj o ruchu w przestrzeni, tylko samym obrocie.
I teraz, pętla PID odczytuje dane z żyroskopu. Dodatkowo, otrzymuje też bieżące wychylenie manipulatorów, aby poznać naszą intencję odnośnie tego, jak kopter ma się poruszać. Oba te parametry pozwalają wyliczyć błąd, czyli odchylenie wartości oczekiwanej od obecnej. Użycie tego słowa jest celowe, ponieważ na takim parametrze funkcjonuje pętla PID. Patrzy ona w sposób ciągły, jak kopter obraca się w przestrzeni, jak powinien się obracać, a w wyniku stwierdza, co zrobić, aby wartość oczekiwana była taka, jak rzeczywista. Sama pętla PID to tak naprawdę funkcja matematyczna, która korzysta z bieżących i zeszłych pomiarów, aby stwierdzić, czy musi reagować (przyspieszyć, bądź spowolnić obrót) i jeśli tak - jak mocno. Ustawianie współczynników P, I, D, to właśnie określenie, jak zdecydowanie powinien reagować kontroler.
To jeszcze jednak nie wyjaśnia, czym jest Airmode. Otóż, siła oddziaływania ustawionych przez nas wartości w kontrolerze PID zależy od paru czynników, takich jak bieżące ustawienie przepustnicy (throttle), czy bieżące napięcie baterii. A więc jednak będzie się działo!
Airmode
W anglojęzycznych opisach kontroler PID ma coś, co nazywa się _authorit_y, czyli coś, co w języku ojczystym nazwalibyśmy kontrolą, wpływem.
Podczas lotu, cały czas musimy pracować przepustnicą (czyli lewym manipulatorem - w Mode 2 przynajmniej), aby utrzymać się w powietrzu. Jednocześnie jest ona jedynym kanałem, który tak na dobrą sprawę po prostu rozpędza i hamuje wszystkie silniki na raz. Z uwagi jednak na to, że każde śmigło i silnik mogą pracować nieco inaczej, nad stabilizacją koptera w locie cały czas czuwa żyroskop, który dostarcza dane o ruchu obrotowym koptera oraz kontroler PID, który na podstawie tych danych wykonuje korekty. Owa korekta to nic innego jak rozpędzanie i hamowanie danego silnika w taki sposób, aby kopter wciąż utrzymywał stałe pochylenie względem ziemi. Jeśli więc po dynamicznym dodaniu “gazu”, kopter przechylałby się lekko w prawo, żyroskop natychmiast wykryje ten ruch, a kontroler PID doprowadzi do nieznacznego zwiększenia obrotów silników po prawej stronie, aby kopter dalej wznosił się w tej samej pozycji.
Jest tylko jedno “ale”. Podczas lotu kontroler PID może dość swobodnie zmieniać prędkość pracy silników bez naszej ingerencji. Jest to wymagane tym bardziej, im ostrzej, dynamiczniej latamy. Zauważmy jednak, że przy bardzo niskim otwarciu przepustnicy nie chcemy, aby kopter próbował za wszelką cenę się stabilizować. Na przykład przy starcie. Byłoby mocno niebezpieczne, gdyby kopter mimo minimalnego wychylenia lewego manipulatora nagle rozpędził któryś z silników do maksymalnej prędkości - nie tego się spodziewamy! I dochodzimy tutaj do sedna. O ile w przypadku, gdy kopter leży na ziemi - sprawa jest dość oczywista. Ciekawe rzeczy zaczynają się jednak dziać, gdy jesteśmy w powietrzu. Ci, którzy już trochę latali bardzo dobrze wiedzą, że kopter odwrócony “do góry nogami” musi mieć minimalny ciąg, ponieważ w tej pozycji oprócz grawitacji, która ciągnie nas w dół, dodatkowo robią to śmigła i silniki, które wciąż się obracają. Oczywiście efekt ten zmniejszamy właśnie poprzez maksymalne opuszczenie lewego manipulatora. A więc wykonujemy manewr w powietrzu i celowo odcinamy gaz. W tej sytuacji kontroler PID pracuje w bardzo wąskim zakresie i nie może rozpędzać zanadto silników, ponieważ jak już mówiliśmy wcześniej, oczekujemy ich niskich i spokojnych obrotów. Trudno jednak rozróżnić, czy właśnie lecimy nad drzewem, czy kopter grzecznie leży na ziemi. Jeśli natomiast kontroler PID ma ograniczony zakres pracy, to może się okazać, że nie jest w stanie wystarczająco dynamicznie zapracować silnikami, aby utrzymać kopter w stabilnej pozycji. W rezultacie wykonując manewr w powietrzu i redukując gaz, kopter bezwładnie zaczyna nam się obracać i jest niesterowny. Sytuację wyjaśnia poniższa ilustracja.
Co możemy w związku z tym zrobić? Możemy włączyć opcję, która spowoduje, że nawet przy nisko ustawionej przepustnicy, damy kontrolerowi PID pełną kontrolę nad silnikami, aby mógł je rozpędzać i hamować dynamiczniej, niż to robił. Jest to funkcja powiązana ściśle z kontrolerem PID i dotyczy wyłącznie minimalnych obrotów silnika. AirMode nie daje kopterowi żadnej nadkopterzej mocy, nie powoduje, że sprzęt lata szybciej itd. Miejmy to na uwadze.
Oczywiście natychmiast entuzjaści latania rzucą się, żeby permanentnie włączyć u siebie AirMode i latać niczym profesjonaliści z Youtube. Ja jednak zawsze mam ten tryb pod przełącznikiem uzbrajania i radzę ci zrobić to samo. Tryb ten ma też swoje ciemne strony, z których musimy sobie zdawać sprawę.
Po pierwsze, AirMode działa tak samo przy lądowaniu i starcie. Szczególnie w przypadku tego pierwszego, mając włączony AirMode, kopter będzie się chętniej odbijał od ziemi i gwałtowniej reagował na wszelkie uderzenia o nią. Oznacza to, że chcąc łagodnie lądować, lepiej AirMode wyłączyć, albo wyćwiczyć się w rozbrajaniu koptera zaraz nad ziemią - wtedy problem w zasadzie nie istnieje.
Drugi problem to efekt wzmocnienia wibracji i oscylacji koptera. Jeżeli mamy źle ustawione filtry, eksperymentujemy z PID albo bardzo zmęczone śmigła, to mogą się pojawić drgania podczas lotu. Przy włączonym AirMode, kopter będzie dużo silniej na nie reagował nawet przy minimalnie ustawionej przepustnicy. W rezultacie może dojść do groźnej sytuacji, w której wy dajecie gaz w dół, a kopter dalej się wznosi! Takie rzeczy się zdarzały i choć nowe BetaFlight i inne oprogramowania ciągle ulepszają i poprawiają logikę lotu, to czasem i to może zawieść. Gdyby się okazało, że kopter leci Wam w górę bez kontroli, a nie macie jak wyłączyć AirMode, to oczywiście trzeba go jak najszybciej rozbroić!
Uzbrojeni w tą wiedzę, podsumujmy.
Jakie są konsekwencje włączenia AirMode?
- Lepsza kontrola i stabilność koptera wszędzie tam, gdzie mamy minimalne throttle. Np. przy Split-S, albo Inverted Yaw Spin, gdy lecimy do góry nogami.
- Tendencja do odbijania się od ziemi podczas lądowania.
- Ryzyko wpadnięcia w samonakręcającą się spiralę oscylacji i w rezultacie niekontrolowane nabieranie wysokości
Ponieważ pogroziłem i nastraszyłem, warto zapytać - no dobrze, to więc włączać, czy nie? Oczywiście, że tak! Jak najbardziej, ponieważ dodatkowa kontrola w powietrzu jest potrzebna. Należy tylko pamiętać o tym, jakie efekty może dawać AirMode i moim zdaniem warto mieć możliwość jego wyłączenia w trakcie lotu. Oczywiście doświadczeni piloci poradzą sobie, nawet jeśli coś nieprzewidzianego zacznie się dziać, ale szczególnie na początku lepiej mieć możliwość kontrolowania tej funkcji.
Anti Gravity
Konia z rzędem temu, kto zgadłby co może spowodować ustawienie tej opcji na wartość 5.0 zalecaną przez Joshuę Bardwella. Chodzi oczywiście o wygenerowanie pola magnetycznego, przez elektromagnesy w silnikach, które ma odwrotny biegun niż przyciąganie ziemskie (zależne od półkuli na której się znajdujemy) i w rezultacie ograniczenie zużycia baterii w trakcie lotu. Proste!
Tyle tylko, że to bzdura i żart - dobry na 1-wszego kwietnia, jeśli macie znajomych, którzy nie czują się za mocni z fizyki.
Anti Gravity to nazwa funkcji, której celem jest chwilowe podbicie parametru I w kontrolerze PID, przy gwałtownym dodawaniu gazu. No dobrze, tylko po co to robić? No właśnie!
Zacznijmy od tego, że każdy z parametrów kontrolera PID pełni inną funkcję. Akurat “I” zajmuje się tym, aby pilnować, by kopter przeciwstawiał się zewnętrznym siłom, które na niego działają, a które nie wynikają ze sterowania. Jest to na przykład wiatr. Jest to też nierównomierne rozłożenie masy, przez co jeden silnik musi pracować mocniej, drugi słabiej, aby utrzymać stałe wznoszenie. Przy okazji pisania o AirMode próbowałem wyjaśnić, że pionowe wznoszenie w górę to nie jest jednolita praca wszystkich silników na tych samych obrotach. Na kopter wciąż działają różne siły, które powodują, że tak naprawdę dokonuje on drobnych korekt na podstawie wskazań żyroskopu, a nam wydaje się, że płynnie unosi się on ku górze. Parametr “I” ma to do siebie, że operuje na pewnym zestawie wcześniejszych pomiarów z tego czujnika, a nie wartości bieżącej, tak jak
“P” i na ich podstawie decyduje, jak zareagować. Problem w tym, że o ile przy spokojnym locie skutecznie dba on o utrzymanie stałego pochylenia, o tyle przy gwałtownym dodaniu gazu, jest duża szansa, że spóźni się z reakcją.
W zasadzie wystarczyłoby więc zwiększyć jego wartość, aby reagował dynamiczniej. No niestety ma to swoje konsekwencje. “Przekręcenie” wartości I prowadzi do oscylacji koptera, czyli bujania w locie.
Twórcy oprogramowania do kontrolerów lotu zrozumieli, że utrzymywanie stałych wartości wszystkich parametrów nie sprawdza się w praktyce i w rezultacie doszli do wniosku, że zależnie od tego, co dzieje się z kopterem i czego od niego wymagamy - wartości powinny się dopasowywać. Jednym z tych “dopasowań”, jest właśnie podbijanie wartości “I” podczas gwałtownego wznoszenia.
Pętla PID przy poprawnym ustawieniu może nie nadążać przy bardzo gwałtownym dodaniu gazu, co kończy się tym, że nos koptera, albo jedno z ramion lekko opadnie i w rezultacie zamiast pionowego wznoszenia, zauważymy, że kopter się przechyla (a właściwie przysiada), mimo iż my każemy mu lecieć prosto w górę. Anti Gravity poprzez zwiększenie parametru “I” w przypadku gwałtownego dodania gazu ma spowodować, iż kopter utrzyma poziom i nie zmieni pochylenia i wychylenia podczas “pompowania gazem”. I tyle.
Jeśli w trakcie lotu obserwujemy, że po dodaniu gazu nos koptera lekko opada, albo widzimy, że nieco przysiada on na którąś ze stron, to znak, że trzeba włączyć lub podbić parametr Anti Gravity. Jak wspomniałem na początku, Joshua Bardwell poleca wartość 5.0 jako wyjściową, która w jego testach wielokrotnie się sprawdziła.
Jakie są konsekwencje włączenia AntiGravity?
W zasadzie jeśli kopterem nie telepało w znaczący sposób, to jedynym efektem będzie to, że powienien on się trzymać stabilniej, gdy nagle szarpniemy lewym manipulatorem dodając gwałtownie gazu. Jak już wspomniałem, JB zaleca zacząć od 5.0 i sprawdzić, co się dzieje. Jeśli kopter dalej “przysiada” na którąś ze stron, można wartość zwiększać i patrzeć, czy to pomaga.
Podsumowanie
Wiem, że artykuł jest pozbawiony ilustracji i dość “suchy”, ale na prezentację mam nadzieję przyjdzie pora. W tej chwili na zewnątrz zacina śnieg, wiatr urywa głowę, a rząd wzywa do #zostanwdomu, więc prócz spacerów - nie wychodzę chwilowo latać, a praca z domu też zjada mi sporą część dnia. Pozostaje więc uwierzyć mi na słowo i znaleźć potwierdzenie na Youtube, a ja w swoim czasie nagram odpowiedni materiał.
Udanych lotów i dbajcie o siebie! Zdrowia - Wam, bliskim i oczywiście Waszym ramkom i silnikom, żeby było czym latać!