IronSky

poniedziałek, 23 września 2013

Krok w bok 2: testy Ardupilota APM 2.5+ - część 2

Nasze testy Ardupilota APM 2.5+ robiliśmy w trzech podejściach:
  • dzień 1: test stabilizacji modelu w trybie sterowania manualnego, krążenie oraz test RTL - Return To Lounch (czyli powrót do miejsca startu, "powrót do domu")
  • dzień 2: samodzielna prosta trasa na 4 waypointy w trybie autopilota
  • dzień 3: jeszcze prostsza samodzielna trasa na 2-3 waypointy + samodzielne lądowanie modelu - wszystko w trybie autopilota
Początkową trudność na jaką można trafić to umieszczenie Ardupilota w Easy Starze 2 - do tego celu zdemontowaliśmy cały osprzęt FPV, standardową kabinkę zamieniliśmy na płaski kawałek pianki z wierzchu w całości pokryty rzepem velcro. Na nim spoczął Ardupilot, odbiornik oraz nieco z przodu GPS, który kupiliśmy w zestawie z Ardu. Pod tym w kadłubie znalazły się upchane nieco na siłę wszystkie kable, regulator oraz bateria. Jak widać na zdjęciu kadłub jest wypchany całkowicie elektroniką, ale jakoś udało się to domknąć (na opaski z rzepami i gumkę):



Częściowym kluczem do sukcesu jest tutaj długość kabli łączących Ardu z odbiornikiem. Początkowo zrobiliśmy samodzielnie kilka kabelków o długości ok. 20cm z myślą o ukryciu ich w kadłubie Easy Stara 2. Okazało się, że będzie trudno go tam upchać więc stwierdziłem, że do testów spokojnie może być na wierzchu z przyczepionym zaraz obok odbiornikiem. To sprawiło, że kable musieliśmy mieć jak najkrótsze. Okazało się, że nie musimy jednak skracać już zrobionych, bo w sklepie modelarskim dostaliśmy kable o wtyczkach takich jak do serw (UWAGA: z obu stron ma być wtyczka, nie gniazdo, czyli to kable z obiema końcówkami żeńskimi) i o długości 3cm. Wprawdzie tanie nie są, ok. 3zł jeden (podczas gdy przy odrobinie chęci i nieco większej ilości wolnego czasu można kupić osobno kabel na metry i końcówki i z kosztami produkcji zmieścić się w 10zł), to jednak długie kable zostawiliśmy do testów na innym modelu, a te 3cm sprawdziły się wyśmienicie. Na zdjęciu widoczne są jeszcze dwa 20-centymetrowe kable, teraz zostały zastąpione 3-centymetrowymi. Pytanie, które nasuwa się samo: ile takich kabelków potrzebujemy do podpięcia Ardupilota? Zasadniczo to tyle, ile używamy kanałów do sterowania + 1 do przełączania trybu Ardupilota z poziomy aparatury. Zatem my mamy 6: ster wysokości, ster kierunku, lotka lewa, lotka prawa, regulator + 1 do przełącznika trybu Ardupilota.

Generalnie samo podpięcie wszystkiego jest proste: z jednej strony do Ardu (zamiast do odbiornika) wchodzą kable z wszystkich używanych na modelu serw plus kabelek z regulatura, a z drugiej strony w tej samej kolejności wychodzą te krótkie 3cm kabelki i wchodzą do tych samych kanałów do odbiornika. Zatem Ardupilot jest wpinany pomiędzy wszystkie serwa i regulator a odbiornik. Z samego Ardupilota wychodzą jeszcze dwa kable - na końcu jednego jest GPS, który powinien być przymocowany do modelu w widocznym niezasłoniętym niczym miejscu. Drugi to kabel zasilający, zo którego wpina się naszą główną baterię ponieważ prąd jest rozdzielany przez Ardu na wszystkie elektroniczne częsci - nie potrzebne jest tu już inne dodatkowe zasilanie.

Jeszcze jedna bardzo istotna rzecz przed montażem samego Ardu na model: powinien być zamontowany idealnie płasko oraz określoną stroną wprzód (strzałka na obudowie określa kierunek) - Ardu ma na swoim pokładzie układy do mierzenia wychyleń modelu w każdą stronę, zatem inne niż zalecane zamontowanie Ardupilota na modelu nie jest możliwe.

TESTY - DZIEŃ 1

Jak widać na załączonych zdjęciach powyżej do testów Ardupilota nieodłącznym elementem wyposażenia modelarza na polu lotów staje się... komputer wyposażony w Mission Planner dedykowany do Ardupilota, który można ściągnąć tutaj. Mission Planner to aplikacja, która umożliwia łączenie się z Ardu i pełną jego konfigurację. Co do samego laptopa na polu lotów: wprawdzie można wszystko zaprogramować i wgrać z komputera do Ardu w domu, ale nie daje to żadnej możliwości korekty wychyleń, zmiany trybów, programowania przełącznika itp. itd. więc laptop przynajmniej do testów JEST KONIECZNY!

Przed lotem z Ardupilotem gdy urządzenie jest podłączane do zasilania należy przeprowadzić kalibrację tak, by Ardu zorientował się w kierunkach i wychyleniach modelu i zarejestrował maksymalne przechylenia (o 90 stopni w każdym kierunku). Możliwa jest też uproszczona kalibracja gdy ustawimy model na płasko i tylko w tej pozycji konfigurujemy Ardupilota.

Drugi etap to przyporządkowanie zaprogramowanych do testu trybów pod przełącznik na aparaturze. Można dany tryb włączyć od razy, ale nie daje to możliwości pełnego testowania - my chcieliśmy najpierw wznieść się modelem manualnie na bezpieczną wysokość, a potem z poziomu aparatury testować kolejne tryby.

Pierwszego dnia robiliśmy m.in. testy najprostszego wg nas trybu czyli stabilizacji w normalnym locie. Testy odbywały się na fabrycznych (defaultowych) ustawieniach wychyleń sterów, nie zmienialiśmy ich w żaden sposób. Po wzniesieniu się w trybie manualnego sterowania na wysokość ok. 50m przełączyliśmy się z aparatury na tryb stabilizacji. W tym trybie samolot można samodzielnie pilotować bez żadnych przeszkód. Jednak po pyszczeniu sterów, model sam poziomuje lot zarówno poprzez wychylenia lotek jak i przez wychylenia stery wysokości, nie zmieniając jednak w żaden sposób obrotów silnika - te zostają na takim poziomie jaki sami mamy a danym momencie na aparaturze. Zatem nieważne czy nurkujemy modelem dziobem w dół czy robimy zakręt pod ostrym kątem - po puszczeniu sterów Ardupilot w ułamku sekundy wyprowadza model do lotu poziomego co jest nieocenione w sytuacjach np. utraty orientacji lub przy nieplanowanym wykonaniu nurkowania itp. Testy wypadły bardzo dobrze i to bez zmiany ustawień fabrycznych. Jednym słowem - stabilizacja na Ardupilocie działa znakomicie choć wymaga pewnego przyzwyczajenia się, bo w pierwszej chwili mamy uczucie jakby model siłował się z nami chcąc koniecznie wyprostować wypoziomować lot. To jednak tylko złudzenie, do którego można przywyknąć.

Drugie testy, które przeprowadzaliśmy tego dnia to krążenie po okręgu. Tutaj testowaliśmy dwie opcje: krążenie po okręgu o określonym promieniu oraz krążenie wokół ustalonego punktu. Z pozoru dwa bardzo zbliżone tryby działają jednak z wielką różnicą w praktyce:
  • tryb CIRCLE - krążenie po okręgu o określonym promieniu - w momencie włączenia trybu krążenia podczas lotu Ardupilota NIE OBIERA środka okręgu po którym ma krążyć, a jedynie rozpoczyna krążenie z odpowiednim nachyleniem i zatacza "okręgi" o danym promieniu i średnicy. Ardupilot nie korzysta tutaj z danych GPS i nie uwzględnia wiatru zatem krąży tylko teoretycznie, w rezultacie jednak w krążeniu przesuwa się z wiatrem w jego kierunku zmieniając zatem położenie w przestrzeni. Arduplane używa steru wysokości oraz mocy silnika do utrzymania wysokości, przy której wszedł w ten tryb. Ten tryb krążenia jest również stosowany podczas FAILSAFE - trybu włączanego przy utracie sygnału odbiornika z nadajnikiem. Model przez 20 sekund krąży w trybie CIRCLE a następnie przełącza się na RTL. Jeszcze jedna różnica w porównaniu do LOITER - w trybie CIRCLE okręgi są duże a zakręty płaskie dzięki czemu krążenie może być utrzymywane mimo całkowitego braku sygnału z GPS i danych o prędkości i przyspieszeniu.
  •  
  • tryb LOITER - krążenie wokół określonego punktu - w momencie włączenia trybu krążenia podczas lotu Ardupilot OBIERA środek okręgu na podstawie danych z GPS, środek jest wybierany dokładnie w punkcie, w którym model znajduje się w momencie włączenia trybu tego krążenia. Zaleta tego trybu jest oczywista - model (a raczej Ardupilot) bierze w tedy poprawki na wiatr i znoszenie modelu i stara się utrzymać dokładne krążenie wokół punktu co wychodzi mu bardzo dobrze. Podobnie jak w trybie CIRCLE Ardupilot utrzymuje wysokość, na której wszedł w tryb LOITER.
Trzeci test był tego dnia najbardziej "ekscytujący" - RTL, czyli powrót do miejsca startu. Punkt, który Ardupilot obiera za dom - miejsce startu obierany jest przy konfiguracji modelu do lotu, gdy jest on jeszcze na ziemi. Gdy GPS złapie odpowiednio dużą ilość satelit (ok. 10) wtedy ustalamy punkt początkowy, który w trybie RTL Ardupilot będzie traktował jako "dom" - miejsce, do którego wróci. Od razu zaznaczę - powrót do domu w trybie RTL nie wiąże się lądowaniem w tym punkcie. Domyślnie powrót polega na dotarciu nad punkt startu ustalony przy konfiguracji i krążenie nad nim na określonej wysokości. Tutaj znów nie przestawialiśmy ustawień fabrycznych - domyślnie jest 100m i tak zostało. Testy tego trybu wypadły bardzo pozytywnie! Z 2-3 lotów wykonywanych co raz śmielej na granicę naszych możliwości sterowania i obserwacji gołym okiem w każdym przypadku Easy Star 2 zawrócił, dotarł na miejsce startu i krążył po okręgach biorąc poprawkę na wiatr i znoszenie.

Fragment zielony to lot w trybie manualnym, fioletowy - po włączeniu trybu RTL.


Dzień pierwszy był zatem bardzo udany pod względem naszych testów!

TESTY - DZIEŃ 2

W drugi dzień testów - z racji tego, że udało się w poprzednich testach oblatać Ardupilota w trybach stabilizacji, krążenia i RTL - chcieliśmy pójść krok dalej i zaplanowaliśmy dla modelu trasę po 4 waypointach. Podczas lotu stało się jednak coś dla nas nieoczekiwanego i do tej pory niezrozumiałego, co niestety skończyło się pierwszym kretem w autopilocie. Żeby długo nie pisać, dla przestrogi pokazujemy nagranie z pokładowej kamery:


Skutek kraksy to złamany statecznik poziomy i ster wysokości i na szczęście tylko tyle. O mały włos nie zgubiliśmy GPS'a, który się odczepił przy uderzeniu i leżał w błocie. Poza tym cały model po uderzeniu wisiał dziobem do dołu ok. 20cm nad przepływającą pod nim rzeczką. Co gorsza jednak do tej pory nie wiemy co było przyczyną tej katastrofy. Ardupilot zapisuje wszystkie logi z lotu jednak ich to co jest w nich zapisane nie zgadza się nawet z tym co jest nagrane na filmie powyżej:

  • logi pokazują, że model zaliczył wszystkie 4 waypointy (co ciekawe jednego nie zaliczył tylko minął w określonej odległości?) - z filmu to jednak nie wynika
  • po zaliczeniu WP4 (w skrócie: waypoint 4) model powinien krążyć nad nim lub wrócić nad punkt startu - film pokazuje jakby wrócił do WP3
  • podczas zawrócenia do WP3 nie wiedzieliśmy czemu Ardupilot to zrobił i w pewnym momencie dezorientacji włączyliśmy RTL - w logach jednak nie ma o tym mowy, jest jednak zapisane, że Ardu włączał i wyłączał tryb FailSafe z nieznanych przez nas przyczyn
  • nie wiemy czemy Ardupilot po włączeniu RTL (tudzież FailSafe) tak mocno poszedł w ostry prawy zakręt a następnie rozpoczął strome zniżanie w zakręcie
  • logi ścieżki lotu pokazują jednak tryb RTL (!), ale nie pokazują rzeczywistej ścieżki lotu widocznej chociażby na filmie
Pytania się mnożą a my nie znaleźliśmy na nie odpowiedzi. Pozostało nam skleić ułamane statecznik i ster i podejść do kolejnych testów...

TESTY - DZIEŃ 3


Dzień trzeci testów był chyba bardziej stresujący niż dzień pierwszy, bo nie odkryliśmy powodów kraksy z poprzedniego testu, a chcieliśmy iść dalej. Stwierdziliśmy jednak, że zaczniemy testy niejako od początku - znów testując stabilizację (tym razem w trybie Fly-By-Wire, FBWA/B), krążenie i RTL. Przy okazji przedzierając się przez setki możliwych ustawień podczas każdego trybu lotów chcieliśmy zmienić m.in. promień skrętów w krążeniu, wysokość krążenia w trybie RTL, zwiększone wychylenia sterów w trybie stabilizacji i... w skrócie - wszystko udało nam się sprawdzić i to nie dłużej niż w pół godziny. Oczywiście byliśmy bardziej zorganizowaniu niż przy pierwszych lotach, wszystko było już podpięte i działaliśmy jak w zegarku: podpięcie Ardu do laptopa, zmiana jednej wybranej wartości w Mission Plannerze, wgranie zmiany, lot testowy. W zasadzie mieliśmy już wracać do domu, bo cel został wykonany - przetestowaliśmy od zera wszystko od początku i działało idealnie. Ale było za wcześniej żeby wracać, a pogoda dopisywała. Postanowiliśmy powtórzyć lot na trasę po waypointach...

Tym razem jednak żeby wykluczyć wszystkie błędy zaczęliśmy od dwóch waypointów, po których ręcznie przełączaliśmy w tryb RTL. Zatem nasz przełącznik na aparaturze sterujący trybami lotu miał zaprogramowane tryby: manualny (Ardu nie wpływa w żaden sposób na lot), trasa AUTO (realizuje trasę po waypointach) i RTL. Dwa waypointy zostały oddalone od siebie o kilkaset metrów ponieważ Ardupilot zalicza je nawet jeśli nie przeleci dokładnie przez ich punkt centralny - wystarczy mu przelecenie w pobliżu ok. 30m od WP, żeby ten został uznany za zaliczony. Zatem jeśli WP są oddalone od siebie o ok. 60-m to zdecydowanie za mało, żeby zauważyć czy Ardupilot kieruje się po trasie i zalicza wyraźnie poszczególne WP.

Lot po trasie testowaliśmy na zasadzie: wypuszczenie samolotu w trybie manualnym i wzniesienie się ręcznie na bezpieczną wysokość, następnie włączenie trybu realizacji trasy (AUTO) i czekanie na efekt. W ten sposób zrobiliśmy 2-3 testy, zmieniając przy lokalizację WP, zmieniając wysokości krążenia nad poszczególnym punktami i sprawdzając jak zachowuje się po każdej zmianie nasz "dron". Ostatecznie gdy również te testy wypadły pozytywnie stwierdziliśmy, że spróbujemy lądowania... w trybie AUTO.

Założenie było takie: samolot leci do przedostatniego WP oddalonego w linii prostej od punktu lądowania o 250 - 300m, natomiast punkt lądowania to ostatni WP, którego wysokość została określona na 1m nad ziemią. Tak znacznie odległy przedostatni WP miał nam zapewnić długą i prostą ścieżkę podchodzenia do lądowania dzięki czemu mogliśmy się przyglądać przez kilkadziesiąt sekund modelowi i kontrolować jego poczynania na podejściu. W ten sposób wykonaliśmy ok. 3 kolejnych testów, zaczynając od wysokości przedostatniego WP = 80m i zmniejszając go o 15-20m przy każdym locie testowym. W ten sposób doszliśmy do optymalnej proporcji: prostej do lądowania do wysokości przedostatniego WP = 300m : 30m. Przy takich ustawieniach ostatniego WayPointa nasz model z Ardupilotem na pokładzie wylądował dokładnie w określonym punkcie dwa razy z rzędu :-D !!!

Zarys samych waypointów
Ścieżka lotu z lądowaniem
Jeszcze inna trasa lotu z lądowaniem

Czemu taka długa prosta do lądowania i tak nisko ostatni WP? To na razie tylko testy i zapewne da się to skrócić i sprawić, że model będzie lądował z większej wysokości i z krótszej prostej. Póki co jednak zauważyliśmy, że po minięciu przedostatniego WP model ustawia się prosto na punkt lądowania i wylicza sobie potrzebny gaz/prędkość do dolecenia i wylądowania w punkcie przy czym nie schodzi poniżej określonych wartości np. poniżej określonego gazu, utrzymuje go na minimalnych obrotach. Wygląda to jednak tak jakby w ogóle nie manewrował sterem wysokości - całą odległość wytraca w szybowaniu na minimalnym gazie. Stąd tak długa ścieżka schodzenia, która ma kształt dokładnej prostej. Z jednej strony jest to bardzo przydatne - samolot nie robi agresywnego nurkowania w stronę ziemi, żeby wytracić wysokość. Z drugiej zaś strony - jeśli nie wytraci naturalnie wysokości w określony przez siebie sposób to przeleci punkt lądowania i wyląduje tam, gdzie po prostu doleci na minimalnym silniku.

Moment, w którym autopilot przelatywał punkt lądowania

Przelot punktu lądowania, na zielono tryb manualny, w którym kontynuowaliśmy lądowanie z nawrotem

Na powyższych grafikach został zaznaczony moment przelecenia miejsca lądowania z powodu zbyt wysokiego przedostatniego waypointa i zbyt płaskiego schodzenia do lądowania. Ale jak już wcześniej napisałem: dla nas odległość 300m i wysokość 30m przedostatniego WP dała dwa lądowania dokładnie w punkcie, który określiliśmy jako punkt końcowy. Byliśmy pod wielkim wrażeniem! Filmu wprawdzie nie udało się nagrać, ale mamy przynajmniej logi potwierdzające sukces, który jest dla nas podwójny, bo loty odbywały się już po zmroku. Ardupilot generuje bardzo fajne logi dla Google Earth czego przykładem są powyższe grafiki, ale to nie wszystko - cały lot można również obejrzeć w trybie FPV! Oto jeden z nich - zakończony lądowaniem w automacie, samo przyziemienie dla bezpieczeństwa było w manualu.


Na razie tyle - wkrótce jeśli pogoda pozwoli będą nowe wieści z oblatywania Ardupilota, jeśli nie - wracam do tematu FPV i rozmieszczenia anten oraz elektroniki na modelu.

Pozdrawiamy!

8 komentarzy:

  1. Świetna relacja z całego projektu. Fajnie się czyta i ogląda. Jedno pytanie - jakiś tutorial po autopilocie? Chyba że jest to po prostu niewyobrażalnie proste. Mógłbym prosić o jakiś kontakt ? Pozdrawiam

    OdpowiedzUsuń
    Odpowiedzi
    1. Krótki tutorial z pierwszej konfiguracji Ardupilota i Mission Plannera pojawi się na dniach, choć jest ich trochę w sieci i jest to stosunkowo proste ;) Co do kontaktu - proszę, użyć formularza kontaktowego po prawej stronie, podać maila to odpowiem na pytanie, jeśli będę potrafił. Pozdrawiam!

      Usuń
  2. Cześć, chce zacząć swoją przygodę z modelarstwem nie ukrywam że jestem w tym zielony. Zebrałem kilka materiałów, teraz zaczynam to wszystko składać po woli. http://www.ematador.pl/Przewod-Silikonowy-10AWG-Czerwony To jeden z dylematów jaki mam - czy jest to odpowiedni przewód? Wytrzyma?

    OdpowiedzUsuń
    Odpowiedzi
    1. To ma być przewód do zasilania (silnika)? 5,30mm^2 i 140A ;) To przewód jakieś 2-3 razy za "duży". Jeśli przyjąć, że Twój silnik ma mieć pobór maksymalny np. 40A to kabel wystarczy o takim właśnie prądzie maksymalnych lub np. 10A większym. Ten, który wybrałeś jest po pierwsze niepotrzebne gruby, więc i sztywny i ciężki, wybierz coś o maks. średnicy 3mm i 50A.

      Usuń
  3. Jestem bardzo ciekawy dalszych postępów w tym projekcie.

    OdpowiedzUsuń
  4. Bardzo fajny wpis. Podoba mi się

    OdpowiedzUsuń

Popularne posty

Nasze zdjęcia dronów:

Created with flickr badge.