Tryby stabilizacji w OpenPilot
: piątek 09 paź 2015, 21:22
W wolnej chwili opisałem podstawowe tryby stabilizacji zaimplementowane w OpenPilot. Na oficjalnym wiki projektu i innych witrynkach coś jest ale stwierdziłem że może to będzie bardziej przystępne i po polskiemu. Może rozpoczynającym przygodę z OpenPilot coś to pomoże a bardziej doświadczeni jakieś Tips and Trics dopiszą.
TRYB RATE
Tryb Rate działa tak, że dąży do osiągnięcia zadanej prędkości obrotowej wokół danej osi (ustalona prędkość kątowa). Wykorzystuje w tym celu zainstalowany w modelu żyroskop. Działa na wszystkich osiach X, Y, Z (Roll, Pitch, Yaw). Pożądana wartość prędkości kątowej jest ustalana poprzez pozycję wychylenia drążka w aparaturze RC. Kiedy drążek sterowania odpowiedzialny za daną oś (np. Roll) jest w pozycji neutralnej, OpenPilot będzie tak ustalać prędkość silników aby na tej osi prędkość kątowa wynosiła zero - 0 (multikopter przestanie się obracać w danej osi i będzie trzymać ustalony wcześniej kąt). Im wychylenie drążków sterowania będzie większe tym prędkość kątową z jaką multikopter będzie wykonywał obrót w danej osi (dynamika obrotu) będzie większa. Jeśli multikopter będzie lecieć z określonym kątem przechylenia w danej osi (np. pochylenie w przód czy przechylenie na lewą lub prawą stronę) to powrót do pozycji poziomej wymaga manualnego skorygowania lotu przez takie wychylenie drążka odpowiedzialnego za daną oś obrotu aż multikopter powróci do pozycji poziomej do ziemi. Ważny przy tym jest oczywiście kierunek ruchu drążka oraz zakres i czas trwania jego wychylenia. Warto mieć ustawione dodatnie EXPO aby przy małych wychyleniach poziom obrotu był stosunkowo mały. Tryb ten jest adekwatny do metody pilotażu modeli samolotów czy śmigłowców RC, gdzie mocne wychylenie drążka na aparaturze powoduje silne wychylenie powierzchni sterowych a w konsekwencji dużą dynamikę zmiany lotu.
Osobiście uważam, że nawet osoby rozpoczynające przygodę z modelami latającymi RC ale z ambicjami aby latać FPV lub LOS dynamicznie czy wręcz akrobatycznie / sportowo powinny jak najszybciej trenować właśnie w tym trybie. Nabycie przyzwyczajeń z trybu Attitute stanowi później istotny problem. Pewnym pośrednim trybem pomiędzy Rate a Attitude jest Ratitude (o tym trybie poniżej).
Ważne: w trybie Rate nie ma automatycznego poziomowania i ustawienie drążków w pozycji neutrum nie spowoduje automatycznego ustawienia modelu w pozycji poziomej do ziemi!
TRYB ATTITUDE
Tryb Attitude stabilizuje multikoptera w żądanej pozycji względem poziomu ziemi. Stabilizacja wykorzystuje zainstalowane w modelu dwa czujniki: żyroskop i akcelerometr. Działa tylko dla osi X i Y.
Stabilizacja działa tak, że pozycja (kąt) dla każdej z osi jest ustalana adekwatnie do poziomu wychylenia drążka w aparaturze RC (wprost proporcjonalnie lub zgodnie z parametrami D/R ustawionymi w aparaturze lub OpenPilot). Wychylenie w aparaturze RC drążka sterowania o zadany kąt (i utrzymanie go w danej pozycji) bezpośrednio zdeterminuje kąt ustawienia / lotu multikoptera względem poziomu ziemi. Ustawienie drążków sterowania w pozycji neutrum stabilizować będzie multikopter do lotu poziomego. Ta cecha jest najbardziej charakterystyczna dla tego trybu i opisowo można go przedstawiać jako tryb automatycznego poziomowania (w rozwiązaniach Baseflight czy Cleanflight podobny tryb stabilizacji wręcz nazywa się Horizon).
Dzięki takiemu rozwiązaniu, w awaryjnej sytuacji wystarczy puścić drążki sterowania i model ustawi się automatycznie do lotu w poziomie co może uchronić nas przed niebezpiecznym uderzeniem w ziemię (tryb polecany dla początkujących pilotów). Należy mieć jednak na uwadze, że powrót multikoptera do pozycji poziomej nie zatrzyma od razu lecącego modelu – przy dużej prędkości i masie modelu wytrącenie energii kinetycznej w trakcie „wyhamowywania” może spowodować duże przemieszczenie modelu. Ponadto tryb ten nie eliminuje efektu dryfowania, spowodowanego np. wiatrem. Nie gwarantuje też utrzymania stałej wysokości. W OpenPilot jest zaimplementowany tryb Altitiude Hold ale on jest dotępny tylko gdy masz wersję kontrolera OpenPilot Revolution (w Revo jest zdecydowanie wydajniejszy chip STM32F4) - nie mam, nie testowałem.
TRYB AXIS LOCK
Jest to w zasadzie tryb podobny do Rate, z tą różnicą, że OpenPilot próbuje utrzymywać ustaloną pozycję nawet gdy model z różnych powodów jej nie utrzymuje np. w wyniku siły wiatru.
Tryb ten jest bardzo dobry do zastosowania kontroli kierunku czyli osi Z (Yaw). W sytuacji, gdy drążki sterowania są w neutrum a model zmienia (ucieka) z ustalonej pozycji (kąta), OpenPilot próbuje ustaloną wcześniej pozycję automatycznie utrzymać. OpenPilot analizuje czy model nie zmienił pozycji w danej osi w sposób niepożądany (wartości graniczne określone są przez parametry: Max Axis Lock oraz Max Axis Lock Rate) i próbuje to skorygować. Ogólnie można przedstawić to tak, że OpenPilot w trybie Axis Lock na bieżąco odczytuje pozycję modelu, a gdy drążki sterowania są w neutrum stara się tą odczytaną i zapamiętaną pozycję utrzymać. Powiem tak, dla kierunku to naprawdę fajny wybór stabilizacji.
Domyślne ustawienie parametru Max Axis Lock wynosi 15 stopni. Wartość ta oznacza, że OpenPilot będzie automatycznie korygować zmianę kąta modelu o ile nie będzie ona większa niż 15 stopni. W warunkach silnego i zmiennego wiatru można tą wartość zwiększyć w pozostałych warunkach jest wystarczająca.
TRYB WEAKLEVELING
Tryb WeakLeveling to w zasadzie tryb Rate , w którym następuje powolne stabilizowanie modelu w poziomie (tak jak w trybie Attitude). W trybie WeakLeveling, gdy położenie modelu nie będzie zmieniane przez pilota, OpenPilot będzie wymuszać wolne powracanie do położenia poziomego. Tryb ten można też nazwać trybem Rate ze wspomaganiem.
Tryb ten nie jest zalecany dla osi kierunku Z (Yaw) ponieważ OpenPilot będzie po wykonaniu obrotu o dany kąt (skręcie o x stopni) ponownie wracać do pierwotnego ustawienia (czyli model będzie zawsze chciał lecieć w jednym ustalonym na początku kierunku).
TRYB RATITUDE
Tryb Ratitude jest podobny to zaimplementowanego w Baseflight czy CleanFlight trybu Horizon. Działa tak, że w przypadku małych wychyleń drążków pracuje jak tryb Attitude a dla dużych wychyleń zachowuje się jak tryb Rate. Wartość wychylenia drążka, która decyduje kiedy jesteśmy w trybie Attitude a kiedy w Rate domyślnie ustawiona jest na 80% (można ją zmienić na zakładce Stabilization - Expert - Ratitude parametr ModeTransition)
TRYB CRUISE CONTROL
Tryb stosowany dla kontroli siły ciągu. Bardzo przydany gdy latasz akrobacje - w trakcie wykonania beczki lub pętli, gdy model jest w pozycji odwróconej sam zatrzymuje obroty silnika chroniąc model przed ciągiem w kierunki ziemi. Jeśli ktoś lata na śmigłach 3D to OpenPilot w tym trybie możne uruchomić odwrócony ciąg – niestety jeszcze nie testowałem.
TRYB ACRO+
Tryb stabilizacji Acro+ działa tak, że w przypadku małych wychyleń drążków pracuje jak tryb Rate, a dla dużych wychyleń działa jak manual (nic nie stabilizuje i przepuszcza sygnał źródłowy do regulatorów). Parametr „Factor” decyduje o sile tłumienia wartości odczytywanych z żyroskopu. Jak ustawimy parametr „Factor = 100” to stabilizacja Rate bazującą na prędkości kątowej kontrolowanej przez żyroskop zostanie wyeliminowana i pozostanie czysty tryb manual. Acro+ wymaga dobrego zgrania parametrów „Factor” oraz „Rate mode response”.
TRYB RATE
Tryb Rate działa tak, że dąży do osiągnięcia zadanej prędkości obrotowej wokół danej osi (ustalona prędkość kątowa). Wykorzystuje w tym celu zainstalowany w modelu żyroskop. Działa na wszystkich osiach X, Y, Z (Roll, Pitch, Yaw). Pożądana wartość prędkości kątowej jest ustalana poprzez pozycję wychylenia drążka w aparaturze RC. Kiedy drążek sterowania odpowiedzialny za daną oś (np. Roll) jest w pozycji neutralnej, OpenPilot będzie tak ustalać prędkość silników aby na tej osi prędkość kątowa wynosiła zero - 0 (multikopter przestanie się obracać w danej osi i będzie trzymać ustalony wcześniej kąt). Im wychylenie drążków sterowania będzie większe tym prędkość kątową z jaką multikopter będzie wykonywał obrót w danej osi (dynamika obrotu) będzie większa. Jeśli multikopter będzie lecieć z określonym kątem przechylenia w danej osi (np. pochylenie w przód czy przechylenie na lewą lub prawą stronę) to powrót do pozycji poziomej wymaga manualnego skorygowania lotu przez takie wychylenie drążka odpowiedzialnego za daną oś obrotu aż multikopter powróci do pozycji poziomej do ziemi. Ważny przy tym jest oczywiście kierunek ruchu drążka oraz zakres i czas trwania jego wychylenia. Warto mieć ustawione dodatnie EXPO aby przy małych wychyleniach poziom obrotu był stosunkowo mały. Tryb ten jest adekwatny do metody pilotażu modeli samolotów czy śmigłowców RC, gdzie mocne wychylenie drążka na aparaturze powoduje silne wychylenie powierzchni sterowych a w konsekwencji dużą dynamikę zmiany lotu.
Osobiście uważam, że nawet osoby rozpoczynające przygodę z modelami latającymi RC ale z ambicjami aby latać FPV lub LOS dynamicznie czy wręcz akrobatycznie / sportowo powinny jak najszybciej trenować właśnie w tym trybie. Nabycie przyzwyczajeń z trybu Attitute stanowi później istotny problem. Pewnym pośrednim trybem pomiędzy Rate a Attitude jest Ratitude (o tym trybie poniżej).
Ważne: w trybie Rate nie ma automatycznego poziomowania i ustawienie drążków w pozycji neutrum nie spowoduje automatycznego ustawienia modelu w pozycji poziomej do ziemi!
TRYB ATTITUDE
Tryb Attitude stabilizuje multikoptera w żądanej pozycji względem poziomu ziemi. Stabilizacja wykorzystuje zainstalowane w modelu dwa czujniki: żyroskop i akcelerometr. Działa tylko dla osi X i Y.
Stabilizacja działa tak, że pozycja (kąt) dla każdej z osi jest ustalana adekwatnie do poziomu wychylenia drążka w aparaturze RC (wprost proporcjonalnie lub zgodnie z parametrami D/R ustawionymi w aparaturze lub OpenPilot). Wychylenie w aparaturze RC drążka sterowania o zadany kąt (i utrzymanie go w danej pozycji) bezpośrednio zdeterminuje kąt ustawienia / lotu multikoptera względem poziomu ziemi. Ustawienie drążków sterowania w pozycji neutrum stabilizować będzie multikopter do lotu poziomego. Ta cecha jest najbardziej charakterystyczna dla tego trybu i opisowo można go przedstawiać jako tryb automatycznego poziomowania (w rozwiązaniach Baseflight czy Cleanflight podobny tryb stabilizacji wręcz nazywa się Horizon).
Dzięki takiemu rozwiązaniu, w awaryjnej sytuacji wystarczy puścić drążki sterowania i model ustawi się automatycznie do lotu w poziomie co może uchronić nas przed niebezpiecznym uderzeniem w ziemię (tryb polecany dla początkujących pilotów). Należy mieć jednak na uwadze, że powrót multikoptera do pozycji poziomej nie zatrzyma od razu lecącego modelu – przy dużej prędkości i masie modelu wytrącenie energii kinetycznej w trakcie „wyhamowywania” może spowodować duże przemieszczenie modelu. Ponadto tryb ten nie eliminuje efektu dryfowania, spowodowanego np. wiatrem. Nie gwarantuje też utrzymania stałej wysokości. W OpenPilot jest zaimplementowany tryb Altitiude Hold ale on jest dotępny tylko gdy masz wersję kontrolera OpenPilot Revolution (w Revo jest zdecydowanie wydajniejszy chip STM32F4) - nie mam, nie testowałem.
TRYB AXIS LOCK
Jest to w zasadzie tryb podobny do Rate, z tą różnicą, że OpenPilot próbuje utrzymywać ustaloną pozycję nawet gdy model z różnych powodów jej nie utrzymuje np. w wyniku siły wiatru.
Tryb ten jest bardzo dobry do zastosowania kontroli kierunku czyli osi Z (Yaw). W sytuacji, gdy drążki sterowania są w neutrum a model zmienia (ucieka) z ustalonej pozycji (kąta), OpenPilot próbuje ustaloną wcześniej pozycję automatycznie utrzymać. OpenPilot analizuje czy model nie zmienił pozycji w danej osi w sposób niepożądany (wartości graniczne określone są przez parametry: Max Axis Lock oraz Max Axis Lock Rate) i próbuje to skorygować. Ogólnie można przedstawić to tak, że OpenPilot w trybie Axis Lock na bieżąco odczytuje pozycję modelu, a gdy drążki sterowania są w neutrum stara się tą odczytaną i zapamiętaną pozycję utrzymać. Powiem tak, dla kierunku to naprawdę fajny wybór stabilizacji.
Domyślne ustawienie parametru Max Axis Lock wynosi 15 stopni. Wartość ta oznacza, że OpenPilot będzie automatycznie korygować zmianę kąta modelu o ile nie będzie ona większa niż 15 stopni. W warunkach silnego i zmiennego wiatru można tą wartość zwiększyć w pozostałych warunkach jest wystarczająca.
TRYB WEAKLEVELING
Tryb WeakLeveling to w zasadzie tryb Rate , w którym następuje powolne stabilizowanie modelu w poziomie (tak jak w trybie Attitude). W trybie WeakLeveling, gdy położenie modelu nie będzie zmieniane przez pilota, OpenPilot będzie wymuszać wolne powracanie do położenia poziomego. Tryb ten można też nazwać trybem Rate ze wspomaganiem.
Tryb ten nie jest zalecany dla osi kierunku Z (Yaw) ponieważ OpenPilot będzie po wykonaniu obrotu o dany kąt (skręcie o x stopni) ponownie wracać do pierwotnego ustawienia (czyli model będzie zawsze chciał lecieć w jednym ustalonym na początku kierunku).
TRYB RATITUDE
Tryb Ratitude jest podobny to zaimplementowanego w Baseflight czy CleanFlight trybu Horizon. Działa tak, że w przypadku małych wychyleń drążków pracuje jak tryb Attitude a dla dużych wychyleń zachowuje się jak tryb Rate. Wartość wychylenia drążka, która decyduje kiedy jesteśmy w trybie Attitude a kiedy w Rate domyślnie ustawiona jest na 80% (można ją zmienić na zakładce Stabilization - Expert - Ratitude parametr ModeTransition)
TRYB CRUISE CONTROL
Tryb stosowany dla kontroli siły ciągu. Bardzo przydany gdy latasz akrobacje - w trakcie wykonania beczki lub pętli, gdy model jest w pozycji odwróconej sam zatrzymuje obroty silnika chroniąc model przed ciągiem w kierunki ziemi. Jeśli ktoś lata na śmigłach 3D to OpenPilot w tym trybie możne uruchomić odwrócony ciąg – niestety jeszcze nie testowałem.
TRYB ACRO+
Tryb stabilizacji Acro+ działa tak, że w przypadku małych wychyleń drążków pracuje jak tryb Rate, a dla dużych wychyleń działa jak manual (nic nie stabilizuje i przepuszcza sygnał źródłowy do regulatorów). Parametr „Factor” decyduje o sile tłumienia wartości odczytywanych z żyroskopu. Jak ustawimy parametr „Factor = 100” to stabilizacja Rate bazującą na prędkości kątowej kontrolowanej przez żyroskop zostanie wyeliminowana i pozostanie czysty tryb manual. Acro+ wymaga dobrego zgrania parametrów „Factor” oraz „Rate mode response”.