Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Inteligentny, autonomiczny dron z Raspberry Pi i Arduino

ghost666 31 May 2017 08:15 25158 26
Computer Controls
  • Inteligentny, autonomiczny dron z Raspberry Pi i Arduino
    Autor omawianego projektu jest ogromnym fanem robotów latających: wszelkiego rodzaju dronów, helikopterów etc. Kolejnym jego projektem miał być quadrocopter, jednakże nie byle jaki. Prezentowana poniżej konstrukcja to projekt inteligentnego quadrocoptera wyposażonego w kamerę, do rozpoznawania obrazów. Dzięki temu dron ten jest w stanie autonomicznie podążać za czerwoną piłeczką lub ludzką twarzą.
    System drona oparty jest o Raspberry Pi Zero z Pi Camera. Dodatkowo wykorzystano moduł MultiWii. Jest to kontroler lotu do autonomicznego drona, który pozwala na dużą elastyczność, ponieważ oparty jest o Arduino. Więcej na jego temat poniżej.

    Co ten dron potrafi? Czemu jest taki szczególny?

    Najprościej mówiąc – dlatego że jest inteligentny i autonomiczny. Z pewnością dużo inteligentniejszy niż dowolny inny dron dostępny w sklepach. Ten dron nigdy nie uderzy w drzewo czy ścianę. Posiada wbudowane funkcje takie jak automatyczne podążanie za czerwoną piłeczką czy ludzką twarzą (a nie są to jeszcze jego maksymalne możliwości!).

    Autor projektu napisał w Pythonie prosty program rozpoznający kształty. Dzięki temu, można wydawać mu rozkazy typu „leć do przodu”, „leć do tyułu” czy „skreć” jedynie pokazując mu przedmioty o danym kształcie. Niewiele innych maszyn to potrafi. Autor spędził nad projektem pięć miesięcy, zaczynając od zera (i wykorzystując oczywiście pewne gotowe rozwiązania, ale to i tak dobry wynik – przyp.red.).

    Czego nauczę się z tego artykułu?

    Po przeczytaniu niniejszego tekstu powinieneś być w stanie samodzielnie zbudować podobny, inteligentny quadrocopter rozpoznający twarze i czerwone piłeczki. W treści artykułu przejdziemy przez podstawy budowania dronów, jak i bardziej zaawansowane tematy z tym związane. Zajmiemy się także szczegółami oprogramowania rozpoznającego obrazy. W ramach projektu autor skonstruował dwie podobne maszyny, jedną wyposażoną w cztery, a drugą w sześć silników. W ramach niniejszego projektu omówimy jednakże prostszą konstrukcję, stabilniejszego quadrocoptera.

    Plany na przyszłość

    W przyszłości chciałbym stworzyć drony, które mogłyby realizować ważne zadania w sposób zupełnie autonomiczny. Takie pojazdy mogłyby samodzielnie wyszukiwać zaginione osoby np. w górach, albo też lokalizować zwierzęta czy nawet namierzać przestępców w grupie ludzi. Sterowane byłyby autonomiczne i nawigowałyby z wykorzystaniem GPSa.

    [Na stronie projektu autor udostępnia więcej filmików i GIFów, na których widać działanie drona – silnik Elektrody nie obsługuje za dobrze GIFów, więc ich tutaj nie umieściłem - przyp.red.]

    Zanim zajmiemy się jednak samą konstrukcją obejrzyjmy film, podsumowujący tło projektu jak i pewne informacje dotyczące motywacji, poprzednich projektów itp.

    Krok 1: Videoprezentacj





    To krótka wersja filmu, poświęconego projektowi. Pełna wersja prezentowana była w Brukseli na specjalnej demonstracji – za jakiś czas powinien on także być dostępny on-line.

    Krok 2: Pełen projekt
    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    W poniższym projekcie zbudujemy pojedynczego, inteligentnego drona. Zaznaczenie tego nie jest bez znaczenia, bo autor pracuje także nad rojem dronów, które będą wykazywać stosowne zachowania, jak np. rój pszczół. Prezentowany on będzie na targach MILSET Expo Sciences International.

    Na zdjęciu powyżej widzimy drona w wersji 1.0. Była ona w stanie jedynie omijać przeszkody i nic więcej. Od tego czasu rozwinięta została kolejna, druga wersja drona, który nie tylko potrafi rozpoznawać przeszkody, ale także rozpoznawać na obrazach twarze itp.

    Krok 3: Inspiracja i tło powstania konstrukcji
    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    Osiem miesięcy temu autor projektu doznał otwartego złamania kości ramiennej podczas wypadku rowerowego. Wypadek miał miejsce w lesie, więc w momencie gdy nie był on w stanie się podnieść po wypadku zdany był na innych – dopiero przechodząca przypadkiem tamtędy para mogła udzielić mu pomocy i wezwać lekarzy.

    Całe zajście było dosyć straszne, jak i miało poważne implikacje zdrowotne – autor stracił sporo krwi, a lekarze musieli usunąć mu część mięśnia z ramienia. Częściowo jest to wina długiego oczekiwania na pomoc. Wtedy te narodził się pomysł autonomicznych latających robotów, które mogłyby pomagać ludziom szybko i sprawnie. Nie popadajmy oczywiście w skrajności, aczkolwiek tego rodzaju sytuacja doskonale podkreśla zalety inteligentnych i autonomicznych systemów – taki dron doskonale poradziłby sobie w tej sytuacji.

    Miasto w którym mieszka autor otoczone jest górami. W górach zdarza się wiele wypadków. W górach tych żyje też wiele zwierząt: niedźwiedzie, wilki, orły czy myszołowy. To te ostatnie były największą inspiracją dla autora. Żyją one w niewielkich grupkach i wykorzystując swoje doskonałe zmysły jak i unikalną technikę lotu, doskonale radzą sobie w tych warunkach.

    Autonomiczne drony także mogłyby działać podobnie. Można wyposażyć je w doskonałe zmysły, zwłaszcza wzrok, a także nauczyć działać w grupie i wspólnie rozwiązywać problemy – tak jak myszołowy.

    Te wszystkie kwestie sprawiły, że autor postanowił skonstruować inteligentnego drona, która mógłby np. przeczesywać góry w poszukiwaniu osób, które uległy wypadkom. Tak samo mógłby przeczesywać rejony po katastrofach czy klęskach żywiołowych. Jest wiele potencjalnych zastosowań dla tego typu systemów, gdzie mogłyby ratować ludzkie życie.

    Krok 4: Szczegóły techniczne projektów

    Autor skonstruował już dwa drony – z Arduino i z Raspberry Pi Zero wyposażone w kamerę. Jeden to hexacopter, drugi quadrocopter. Mają różne możliwości – jak ludzie. Jeden jest lepszy fizycznie, drugi lepiej liczy. Oba wyposażone są kamery FullHD i możliwość transmitowania obrazu do operatora w czasie rzeczywistym. Oba są także wyposażone w GPS.

    Drony dostępne komercyjnie mają podobne wyposażenie i podobne możliwości. W najlepiej wyposażonych dronach na rynku także dostępne są takie opcje jak tryby „follow me” czy automatyczne powroty do miejsca startu i autonomiczne lądowanie. Jednakże… to za mało. Autor zapragnął skonstruować pojazd, który ma większe możliwości niż te. Drona, który potrafi coś więcej niż tylko latać sterowanym przez operatora i nagrywać filmiki 4K.

    Opisane drony są w pewnym sensie inteligentne. Obie maszyny komunikują się ze sobą i centralnym serwerem, przesyłając dane pochodzące ze wszystkich wbudowanych w pojazdy sensorów. Wykorzystując te sensory drony, zupełnie jak zwierzęta, są w stanie podchodzić do różnych problemów i próbować je rozwiązać.

    Zasięg komunikacji pomiędzy dronami wynosi aż 1,8 kilometra. Wbudowane w oprogramowanie dronów algorytmy pozwalają na naukę – za każdym lotem pojazdy zachowują się coraz lepiej: coraz lepiej rozpoznają i reagują na teren jaki ich otacza etc. Wraz z zwiększającą się bazą danych, jaką zgromadziły drony, ich działania stają się coraz lepsze.

    Drony wyposażone są w następujący sprzęt i oprogramowanie:

    a) Raspberry Pi Zero – komputer pokładowy
    b) Raspberry Pi Camera – do detekcji terenu, roślin, obiektów i twarzy (w zasadzie wszystko zależy id programu).
    c) Kontroler Lotu APM – oparty na Arduino kontroler lotu, odpowiadający za balansowanie quadrocopterem, analizę sygnałów z GPSa i kontrolę silników (to już gotowy i istniejący moduł z własnym oprogramowaniem)
    d) Mechanizm drona – istniejąca już rama hexacoptera z silnikami, uchwytem na kamerę, baterią o pojemności 10300 mAh i wbudowanym modułem GPS.
    e) Sensor światła do detekcji słońca
    f) Barometr do pomiaru ciśnienia i obliczania względnej wysokości
    g) Ultradźwiękowy czujnik odległości do pomiaru odległości od twardych przedmiotów w pomieszczeniu jak i na dworze
    h) Moduł komunikacji szeregowej o zasięgu 1,8 km – pozwala na komunikację z dronem jak i z serwerem
    i) Kamerę 4K 24 fps / 2K 30 fps – do nagrywania przebiegu lotu
    j). Transmiter wideo 5,8 GHz – przekazuje obraz z kamery do operatora, co umożliwia obserwowanie widoku z kamery w czasie rzeczywistym podczas lotu (zasięg do 2000 m).

    Krok 5: Początek montażu projektu

    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    Wiele powiedzieliśmy już na temat inspiracji i motywacji do stworzenia tego rodzaju quadrocoptera. Zacznijmy teraz zatem jego montaż. W pierwszej kolejności zebrać musimy potrzebne elementy, jednakże zanim zakupimy jakiekolwiek fizyczne elementy dobrze jest nabyć trochę wiedzy na temat software i hardware, jakie będziemy montować i instalować w pojeździe.

    Dobrze jest mieć podstawowe doświadczenie w programowaniu, zwłaszcza w Pythonie i/lub C++. Dalej, przyda nam się pewne doświadczenie w zakresie kontrolerów lotu dla takich pojazdów. Wszystkie programy autora, jakie zamieszczone są w projekcie, napisane są w C++ na Arduino lub w Pythonie, jednakże niniejszy artykuł to nie miejsce na naukę tych języków, więc zagadnieniom podstawowym i tłumaczeniu co jak działa nie poświęcimi tutaj zbyt wiele miejsca.

    Jeśli chodzi o umiejętności związane z elektroniką, to podstawowa wiedza o tym jak działają typowe elementy i umiejętność lutowania to wszystko czego nam trzeba. W systemie wykorzystujemy moduł kontroli lotu MultiWii – zasadniczo jest to Arduino Mini Pro z dodatkowymi sensorami.

    Uwaga Nie jest to projekt dla każdego, szczególnie jeśli nie miał wcześniej do czynienia z elektroniką i programowaniem, aczkolwiek może to być pierwszy dron jaki budujesz – w artykule znajdą się wszystkie potrzebne do jego budowy informacje.

    Główne cechy inteligentnego drona:

    * Rozpoznawanie twarzy
    * Rozpoznawanie czerwonej piłeczki
    * Śledzenie tych dwóch kształtów
    * Automatyczne kierowanie lotem poprzez moduł Raspberry Pi
    * Logowanie danych lotu poprzez Raspberry Pi Zero z WiFi
    * Unikanie zderzenia z ludźmi
    * Unikanie drzew (pomiar + obliczanie ich wielkości)
    * Inne, podstawowe funkcje dronów: nawigacja po GPS, przesyłanie strumienia wideo na żywo, utrzymywanie wysokości, pozycji etc
    * Automatyczny powrót do bazy/miejsca startu
    * Telemetria wysyłana poprzez Bluetooth

    To całkiem kompleksowy system, ale na pewno z poniższym artykułem uda nam się go zrealizować.

    Krok 6: Porady dla początkujących

    W tym dziale można by napisać wiele, jednakże zamiast publikować tutaj ogromna bazę wiedzy lepiej jest wskazać na jej źródła. Jeśli przebrniecie przez to tutoriale z pewnością będziecie wiedzieć w jaki sposób zabrać się do montowania drona. Zasadniczo są trzy rzeczy, jakie musimy ‘ogarnąć’: jak zaprogramować Raspberry Pi w Pythonie, jak zbudować drona oraz jak korzystać z modułu MultiWii FC. W prezentowanym projekcie wykorzystane zostały dokładnie te same techniki, co w zaprezentowanych poniżej tutorialach:

    Jak zbudować drona:




    Jak korzystać z Raspberry Pi Zero W wraz z OpenCV do rozpoznawania twarzy:




    A także tutaj oraz tutaj.

    Jak korzystać z modułu Multiwii Crius SE 2.5:




    Filmy te obejrzeć można równie dobrze przed jak i po zrealizowaniu tego projektu, aczkolwiek dużo przyjemniej się go realizuje, gdy się wie co się robi – kopiowanie kodu bez jego zrozumienia to żadna frajda, ani też niczego się w ten sposób nie nauczymy.

    Krok 7: Zbierzmy potrzebne materiały

    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    Do zmontowania opisywanego drona potrzebować będziemy szereg podzespołów jak i odpowiednie oprogramowanie. Jeśli chodzi o kontroler lotu wybrany został MultiWii, z uwagi na to, że można programować go w środowisku Arduino, a dodatkowo posiada szereg opcji, jakich nie ma np. Naza, APM czy Pixhawk.

    Potrzebować będziemy:

    * Rama quadrocoptera w zestawie z silnikami, śmigłami etc.
    * Moduł kontroli lotu MultiWii SE 2.5 z GPSem, wyświetlaczem OLED, sonarem i interfejsem Bluetooth
    * Baterię 3S1P o napięciu 11,1 V i pojemności 3000 mAh.
    * Kamerę wideo – GoPro, SJCAM lub dowolną inną, która pozwala na nagrywaniu filmu w jakości 4K
    * Raspberry Pi Zero
    * RasPi Cam – kamerę dedykowaną do Raspberry Pi
    * Nadajnik i odbiornik systemu kontroli radiowej
    * Nadajnik i odbiornik obrazu

    Wszystkie te elementy sprzedawane są jako kit, więc ich kompatybilność nie powinna być problemem. Trudnością może być jednak nabycie Raspberry Pi Zero z uwagi na ogromne zainteresowanie tym modułem.

    Dodatkowo, jeśli dysponujemy większym lub mniejszym budżetem niż pokazany powyżej zmienić możemy kamerę, jaką montujemy w systemie, na inną.

    Dalej, potrzebne nam będzie odpowiednie oprogramowanie do stworzenia softu dla drona:
    * Arduino IDE do pobrania z www.arduino.cc
    * Oprogramowanie dla MultiWii do pobrania z https://code.google.com/archive/p/multiwii/
    * Raspbian OS do pobrania z www.raspberry.org
    * Aplikacja na telefono EZ-GUI do pobrania z http://ez-gui.com/

    Po pobraniu możemy zabierać się za montaż układu. Najpierw musimy jednakże zgromadzić stosowne narzędzia.

    Krok 8: Narzędzia

    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    Potrzebny nam będzie całkiem nieźle wyposażony warsztat. Do zmontowania tego drona potrzebujemy:
    * Śrubokręt
    * Multimetr
    * Taśma klejąca
    * Spinki do kabli
    * Nożyczki
    * Obcinaczki do kabli
    * Przyrząd do zdejmowania izolacji z kabli
    * Linijka
    * Śrubki
    * Lutownica
    * Komputer z potrzebnym na oprogramowaniem do zaprogramowania wszystkich modułów.

    Krok 9: Kod programu i schemat połączeń

    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino
    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    Pobieramy spakowany plik – tutaj – znajdziemy w nim otwarte i darmowe oprogramowanie stworzone przez autora projektu. W paczce znajdziemy algorytmy podążania za czerwoną piłeczką, twarzą a także wstępnie skalibrowane oprogramowanie dla modułu MultiWii. Można skorzystać z zawartego w paczce konfiguratora dla tego modułu, ale rekomenduje się aplikację EZ GUI na telefon.

    Wypakowane z paczki pliki potrzebne będą nam w dalszych krokach.

    Zaprezentowane powyżej płytki z opisami pinów pokazują nam gdzie co zostanie podłączone do poszczególnych modułów. Układ jest bardzo prosty, wystarczy wykorzystać dedykowane kable do goldpinów, aby połączyć ze sobą systemy w całość. W pierwszej kolejności musimy dołączyć pin UART RX (odbiór) modułu MultiWii do pinu 15 Raspberry Pi Zero. Możemy teraz podłączyć zasilanie do tych dwóch modułów. Pozostałe elementy, jakie podłączać będziemy do systemu, są po prostu różnymi sensorami itp. Typu plug&play, więc ich podłączanie nie wymaga bardziej skomplikowanych operacji (i większość z nich zaprezentowana jest na poradnikowych filmach powyżej).

    Krok 10: Montaż MultiWii na platformie quadrocoptera

    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    Na zdjęciach widzimy już zmontowaną ramę pojazdu. Wraz z kitem dostarczana jest instrukcja montażu. Czterema metalowymi śrubkami przykręcamy moduł MultiWii na środku platfiormy na podwyższeniu. Następnie podłączamy moduł ESC – elektroniczny kontroler prędkości, sterujący silnikami drona i spinami jego kable spinkami w eleganckie wiązki. Upewnijmy się, że dobrze podłączyliśmy wszystkie kable do kontrolera silników – inaczej nasz quadrocopter nie wystartuje.

    Krok 11: Dołączanie GPS i płytki nawigacyjnej

    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    Te dwa moduły, służące do odnajdywania się drona w świecie rzeczywistym, dostarczane są już skalibrowane, więc wystarczy tylko podłączyć moduł GPS do niewielkiej płytki nawigacyjnej z interfejsem I2C, a następnie całość wpiąć w port I2C modułu MultiWii. Gotowe! GPS od tego momentu już działa.

    Krok 12: Bluetooth

    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    Moduł MultiWii dostarczany jest wraz z modułe, Bluetooth. Wystarczy podłączyć go do portu UART w module MultiWii i umieścić na pokładzie quadrocoptera.

    Uwaga Jeśli korzystamy z Raspberry Pi musimy odłączyć pin RX od modułu Bluetooth, jaki podpięty jest do MultiWii.

    Krok 13: Odbiornik RC

    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    Odbiornik sterowania radiowego dronem zamontowany został w tylnej części i podłączony do modułu MultiWii. Podłączamy piny opisane jako: Throttle, Roll, Pitch, Yaw oraz Aux1 do odpowiednich pinów w kontrolerze lotu.

    Krok 14: Mocowanie elementów

    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    Po zamontowaniu modułów i spięciu wiązek kabli spinkami możemy przymocować kontroler do ramy quadrocoptera. Zasadniczo można go na tym etapie przetestować

    Krok 15: Pierwsze uruchomienie i szybki test

    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    Po podłączeniu zasilania do płytki moduł GPS powinien dosyć szybko się zsynchronizować. Uruchomiony powinien być także Bluetooth.

    Krok 16: Dodatkowy wyświetlacz OLED

    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    W zestawie znajdziemy także OLEDowy ekran Crius, który przydaje się niezmiernie do wyświetlania podstawowych informacji o dronie. Na ekranie prezentowane są różne informacje: tryb pracy, stan baterii, żyroskopów etc. W zmodyfikowanej wersji autor dodał jeszcze swoje imię do ekranu, ale można zmienić to w kodzie.

    Instalacja ekranu jest bardzo prosta – zajmuje on drugi z portów I2C w MultiWii. Podłączamy go tam i montujemy ekran w wygodnym dla nas miejscu. Zmienianie wyświetlanych danych realizuje się z pomocą kombinacji drążków na sterowniku radiowym.

    Krok 17: Miernik napięcia baterii

    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino
    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    Potrzebne nam będą dwa oporniki – 51 kΩ i 33 kΩ. Robimy z nich dzielnik napięcia baterii, którego wyjście podłączamy do pinu A3 modułu MultiWii. Na ekranie OLED powinien pojawić się wynik pomiaru.

    Krok 18: Buzzer alarmu o niskim stanie baterii

    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    W systemie zamontować możemy prosty buzzer. Podłączamy go do pinu ósmego modułu MultiWii. Będzie on wydawał ostrzegawcze dźwięki, gdy napięcie baterii osiągnię 10,7 V lub 9,9 V. Wartości te można zmodyfikować w programie.

    Krok 19: Montaż górnej płytki

    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    Do zamontowania górnej płytki w układzie potrzebować będziemy 16 śrubek M2.5, jakie dołączone są do zestawu. Z ich pomocą montujemy górny pokład drona do jego ramy.

    Krok 20: Nadajnik wideo


    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    W dronie umieszczono nadajnik wideo pracujący przy częstotliwości 5,8 GHz. Nadajnik ten ma około 2 km zasięgu. Przymocujmy go mocno opaskami zaciskowymi do górnego pokładu tak, aby nie odpadł nawet przy dużej prędkości lotu.

    Krok 21: Porządek w kablach

    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    Utrzymywanie porządku w kablach pojazdu jest niezwykle istotne z uwagi na dużą ilość małych elementów i modułów montowanych na ramie quadrocoptera. Musimy także pamiętać, że potrzebujemy w układzie jeszcze trochę miejsca na Rapsberry Pi i baterię. Do spinania kabli, aby uniknąć powstawania z nich poplątanego ‘makaronu’, idealnie nadają się opaski zaciskowe.

    Krok 22: Kamera FPV
    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    Jako że dla autora konstrukcji uzyskanie czystego i wysokiej jakości obrazu było priorytetem zamontował na pokładzie drona kamerę SJCAM 5000x Elite. Oczywiście można zamontować też inną, podobną kamerę, która mieścić się będzie w naszym budżecie.

    Krok 23: Raspberry Pi Zero W

    Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino Inteligentny, autonomiczny dron z Raspberry Pi i Arduino


    Najpierw podłączamy kamerę do modułu Raspbverry Pi, a następnie montujemy całość z przodu drona, tak aby kamera mogła obserwować dron pojazdu. Podłączenie RPi do MultiWii jest bardzo proste – potrzebne są nam tylko trzy kable:

    * GND do masy
    * 5 V do zasilania MultiWii (5 V)
    * TX na RPi do RX w naszym module (odłączmy Bluetooth).

    I gotowe! O wiele więcej problemów związanych było z stworzeniem oprogramowania do tego zestawu.

    Krok 24: Oprogramowanie MultiWii

    Z pobranego wcześniej spakowanego pliku wykorzystajmy program MultiWii 2.3 –navi7b i załadujmy go do MultiWii poprzez Arduino IDE (autor robił to przez wersję 1.8.1). W menu IDE wybieramy Arduino Pro Mini, 5 V i 16 MHz. Po załadowaniu programu dron powinien się samoczynnie skalibrować i przestać mrugać diodami LED.

    Oprogramowanie jakie właśnie wgraliśmy, jest poszerzoną wersją normalnego firmware. Dodano szereg dodatkowych funkcji, takich jak nawigowanie pomiędzy punktami poprzez GPS, obsługę OLED, komunikację z Raspberry Pi etc.

    Krok 25: Domowe testy drona

    Nigdy nie testujcie dronów w małych pomieszczeniach – to po prostu niebezpieczne. Autor nie mógł się powstrzymać i pierwsze próby przeprowadził we własnym pokoju. Na szczęście wszystko zadziałało.

    Krok 26: Połączenie do Raspberry Pi po SSH

    Do połączenia się z Raspberry Pi potrzebne jest nam połączenie poprzez SSH po WiFi. Jeśli mamy połączenie z Internetem, to moduł będzie w stanie dodatkowo zebrać dane dotyczące pogody – temperaturę, wiatr etc. Na tej podstawie dron sam wie, czy na dworze są bezpieczne warunki do lotu. Ta część kodu jest jednakże mocno prototypowa, więc czasami nie działa idealnie.

    Autor do programowani na RPi wykorzystał zdalny pulpit i podłączył się do komputera z poziomu PC. Kod, zanim uznano za finalny, był wielokrotnie testowany i poprawiany. Gotowy program pozwala na nawigowanie dronem z pomocą przedmiotów. Raspberry Pi wysyła po prostu komunikaty do MultiWii po porcie szeregowym, resztą zajmuje się kontroler ruchu. To jakie wysyła kody zależne jest od tego co widzi kamera podłączona do ‘Maliny’.

    Jak zainstalować dołączony program

    To bardzo proste. Z spakowanej paczki z programami kopiujemy pliki w Pythonie na Raspberry Pi. Następnie łączymy się z komputerem poprzez SSH lub RDP i w terminalu wpisujemy:

    Code: bash
    Log in, to see the code


    Od teraz skrypt działa i pozwala na rozpoznawanie obrazów.

    Krok 27: Testy

    Nigdy nie latajmy w pomieszczeniu. Zwłaszcza, jeżeli w pomieszczeniu znajduje się człowiek. Autor na szczęście nie miał problemów z uruchomieniem drona i stabilnym lotem, ale jeśli by miał, to mogłoby się to bardzo nieprzyjemnie zakończyć.

    Krok 28: Pilotowanie drona – wskazówki i BHP

    Jeśli korzystamy z trybów podążania za czerwoną piłką lub za twarzą, to upewnijmy się, że w polu widzenia Raspberry Pi znajduje się tylko jeden wyraźny, czerwony przedmiot lub jedna twarz. Jeśli będzie ich więcej system działać może niestabilnie.

    Źródło: http://www.instructables.com/id/Ultimate-Intelligent-Fully-Automatic-Drone-Robot-w/

    Cool? Ranking DIY
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
    About Author
    ghost666
    Translator, editor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    ghost666 wrote 11695 posts with rating 9883, helped 157 times. Live in city Warszawa. Been with us since 2003 year.
  • Computer Controls
  • #2
    timo66
    Level 23  
    Dlaczego brak info o czasie trwania pojedynczego lotu? Czyżby te wszystkie zalety były by przyćmione 10 czy 20minutowym czasem lotu?
  • #3
    Anonymous
    Level 1  
  • #4
    KJ
    Level 31  
    No niestety standardowy quadkopter na ramie 450 to około 15 do 20min lotu na baterii 5200mAh. Czy to mało ? zależy do czego chcemy naszego drona wykorzystać. Jeżeli do filmowania najbliższej okolicy to nie widzę problemu w takim czasie lotu - większy problem będziemy mieli z zasięgiem sterowania i linku FPV video niż z czasem lotu. Zwłaszcza na tanich chińskich komponentach. Do dalszych lotów rozważył bym kupno czegoś klasy phantom/mavic/inny DIJ. Drony wyścigowe to raptem kilka minut lotu.
  • Computer Controls
  • #5
    gemiel
    Level 25  
    W czasach łatwego dostępu do materiałów konstrukcyjnych, zamiast rurek z włókna węglowego autor zastosował toporne stalowe tulejki sześciokątne.
    Poza tym jako człowiek, który woli jazdę na rowerze od np. hałaśliwego quada, powinien zastanowić się nad skutkami wypuszczenia roju dronów do lasu. One nie latają bezgłośnie.
    Raczej jest to kolejny rozdmuchany artykuł, który opisuje konstrukcję drona z podglądem online. Nie widzę w tym żadnej nowości.
  • #6
    rsv6
    Level 12  
    Raczej wątpię by to coś dorównało Phantom 4 Pro.
    Perfekcyjna Stabilność na wietrze.
    czujniki ultradźwiękowe do pomiaru wysokości oraz przeszkód,
    kamery do pozycjonowania
    Nowoczesne akumulatory lipohv są znacznie mniejsze lżejsze a wydajniejsze.
    Cyfrowa transmisja danych w obu kierunkach.
    Obraz HD
    Wszystkie parametry na żywo.
    Nigdy home made im nie dorówna. A jednak sprzedawany w sklepach..
  • #7
    KJ
    Level 31  
    Czy home made nie dorówna phantomowi4pro ? ;) taki dron kosztuje praktycznie 7,5kzł nowy. Ja mojego poskładałem za niecałe 1000zł i nie dość że mam, frajdę z latania to jeszcze z budowy, doskonalenia ustawień i "gonienia" phantomów osiągami - tu jestem na początku drogi ale i tak jestem bardzo zadowolony z rezultatów ;). Oczywiście w żadnym wypadku nie jest to opcja dla kogoś kto chce wyjąć z pudełka i latać nie zastanawiając się nad tym jak to wszystko działa. Dla takich ludzi są rozwiązania RTF typu phantom. Z jednej strony dobrze bo każdy może sobie kupić drona i robić zdjęcia z powietrza które są z natury rewelacyjne z drugiej każdy to też osoby nieodpowiedzialne czy wręcz głupie które postanawiają sobie np. pofilmować dronem samoloty pasażerskie startujące z lotniska :/. Efektem jest ciągłe zaostrzanie przepisów które godzą głownie w tych którzy chcieliby sobie polatać z głową nie koniecznie wydając kilka dodatkowych tysięcy na świadectwo kwalifikacji UAVO a taki za przeproszeniem idiota i tak będzie miał gdzieś prawo i nic mu pewnie nie zrobią do puki nie spowoduje wypadku. Co do gonienia osiągów konstrukcji fabrycznych konstrukcjami amatorskimi, obraz HD na żywo już powoli jest w dronach amatorskich osiągalny ale puki co to za droga zabawa. Parametry na żywo hmmm tu bym polemizował czy czasem w amatorskich konstrukcjach nie ma lepszych i więcej możliwości wyświetlania parametrów w OSD niż w phantomach ;). Nie wiem jak tam z elastycznością konfiguracji tego co ma być wyświetlane bo nie miałem okazji się bawić natomiast amatorskie rozwiązania takie jak chociażby bardzo popularny MinimOSD pozwalają na bardzo wiele i niemal całkowitą dowolność konfiguracji. Kwestia czujników - kontroler pixhawk obsługuje ogrom najróżniejszych sensorów. Czy transmisja cyfrowa w obu kierunkach jest zaletą ... pogorszenie parametrów sygnału poniżej pewnego progu powoduje natychmiastową całkowitą utratę wizji ... przy analogu najpierw zacznie śnieżyć i szumieć jak stary TV CRT ;) To znak że czas wracać w stronę domu :D to w kwestii obrazu, aparatury RC nawet te tanie od dość dawna są cyfrowe i przesyłają dane w obu kierunkach. Tak więc moim zdaniem można sobie w dzisiejszych czasach postawić za cel zbudowanie drona dorównującego phantomowi 4pro i ten cel osiągnąć tylko że nie ma to za bardzo uzasadnienia finansowego bo wyjdzie nas to drożej a do tego będzie także kosztowało sporo pracy, no i potrzebna jest spora wiedza z zakresu elektroniki i sterowania a jak chcemy twożyć własny kontroler lotu to jeszcze programowania. Co mi się osobiście w phantomach mało podoba to kontroler lotu - ja latam na ardupilocie w tej chwili i nie wykluczam przesiadki na pixhawka w przyszłości - to ile ten APM zapisuje parametrów w logu który można sobie odczytać z drona po locie to jakiś obłęd. Da się sprawdzić niemal wszystko - od podstaw typu pozycja gps, wysokość, czas lotu po takie rzeczy jak wartości wejściowe i wyjściowe PIDów w funkcji czasu lotu czy poziom wibracji we wszystkich osiach ... Z tego co wiem kontroler stosowany w phantomach nie loguje niczego...
  • #8
    astabian
    Level 5  
    Tak btw. koszt tych elementów:

    * Rama quadrocoptera w zestawie z silnikami, śmigłami etc.
    * Moduł kontroli lotu MultiWii SE 2.5 z GPSem, wyświetlaczem OLED, sonarem i interfejsem Bluetooth
    * Baterię 3S1P o napięciu 11,1 V i pojemności 3000 mAh.
    * Kamerę wideo – GoPro, SJCAM lub dowolną inną, która pozwala na nagrywaniu filmu w jakości 4K
    * Raspberry Pi Zero
    * RasPi Cam – kamerę dedykowaną do Raspberry Pi
    * Nadajnik i odbiornik systemu kontroli radiowej
    * Nadajnik i odbiornik obrazu

    wg aukcji / sklepów, które podaje źródło to około 1600 zł licząc bez wysyłek, etc. Nie ma tu uwzględnionych innych materiałów czy przyrządów.
  • #9
    Anonymous
    Anonymous  
  • #10
    rsv6
    Level 12  
    Co do dornów to najważniejsze to stabilność i prostota sterowania. Ja zacząłem przygodę z naza v2 i powiem szczerze jedynie w miarę fajnie się latało naze32 a tak to żaden z producentów im nie dorównał. Sam kiedyś ładowałem w to kupę kasy. Nawet na 8 silnikach rama z karbonu, a i tak to nie latało tak dobrze jak phantom 3 pro. Cel mija się z powołaniem. Jak wyda się worek kasy na takie wynalazki to wtedy się zrozumie co jest tańsze i lepsze.
  • #11
    lechoo
    Level 39  
    Przeczytałem artykuł i nadal nie rozumiem po co to rozpoznawanie twarzy w dronie? Aby ten dron mógł za nami podążać musielibyśmy mieć twarz z tyłu głowy.

    DJI Phantom, Inspire to fajne sprzęty, ale mają tendencje do uciekania bez powodu.
  • #12
    rsv6
    Level 12  
    lechoo wrote:
    Przeczytałem artykuł i nadal nie rozumiem po co to rozpoznawanie twarzy w dronie? Aby ten dron mógł za nami podążać musielibyśmy mieć twarz z tyłu głowy.

    DJI Phantom, Inspire to fajne sprzęty, ale mają tendencje do uciekania bez powodu.


    Uciekanie to jest wina źle skalibrowanego kompasu.. Gdy się to robi w domu w pomieszczeniu, koło dużych metalowych przedmiotów jak np grzejnik.. Później zaczynasz latać po polu i zastanawiasz się dlaczego dron ucieka na funkcji GPS. Pozycjonowanie w DJI z GPS jest bardzo dokładne. Jednak gdy kompas jest źle skierowany dron próbuje skorygować pozycję lecąc w innym kierunku. Tu cała filozofia.. Najlepiej robić kakibracje przed każdym startem i zmianie miejsca startu.
  • #13
    lechoo
    Level 39  
    rsv6 wrote:
    Uciekanie to jest wina źle skalibrowanego kompasu..

    Wiele osób tak uważa, niestety błędnie - prawdziwą przyczyną ucieczki dronów DJI jest utrata sygnału przez odbiornik GPS. Oprogramowanie sterujące nie potrafi obsłużyć błędu związanego z niedziałającym GPS-em, producent nie przewidział takiej sytuacji i komputer pokładowy przestaje reagować na polecenia z nadajnika. W prymitywnym ardupilocie (APM) można ustawić automatyczne przełączenie trybu lotu na Althold w przypadku wystąpienia błędu GPS-a i możliwe jest kontynuowanie lotu, a we wspaniałych DJI nie można nawet odczytać logów aby sprawdzić co się stało...
    Warto zauważyć, że w większych dronach stosuje się zdublowane odbiorniki GPS, a nawet potrójne - dla zminimalizowania ryzyka wystąpienia tego błędu.
  • #14
    Freddy
    Level 43  
    lechoo wrote:
    Warto zauważyć, że w większych dronach stosuje się zdublowane odbiorniki GPS, a nawet potrójne - dla zminimalizowania ryzyka wystąpienia tego błędu.
    W poważnych dronach, oprócz GPS, jest IMU i magnetometry jeszcze :)
  • #15
    KJ
    Level 31  
    IMU to jest w każdym wielowirnikowcu i ośmielę się stwierdzić że dostępność tanich IMU MEMS to jedna z głównych przyczyn boomu popularności wszelkiego rodzaju dronów. Co do uciekających DJI, w sieci można znaleźć dużo filmów z takich ucieczek między innymi Inspire-ów... za dużo ... w sprzęcie za tyle pieniędzy taki przypadek nie powinien wystąpić nigdy.
  • #16
    Freddy
    Level 43  
    Ja nie mówię tu o tanich kostkach IMU, ale o poważnych układach IMU z magnetometrem.
    W końcu każdy samolot komunikacyjny ma IMU.
  • #17
    lechoo
    Level 39  
    W dronach magnetometr (kompas) jest najczęściej zintegrowany z odbiornikiem GPS, dzięki temu jest oddalony od wysokoprądowych obwodów mogących łatwo zakłócić jego pracę. Natomiast układ IMU (akcelerometr/żyroskop) jest niewrażliwy na pole magnetyczne, więc jest montowany w kontrolerze lotu.

    Oprócz dostępności tanich układów IMU, do popularności wielowirnikowców niewątpliwie przyczyniły się też lekkie ogniwa litowo-polimerowe.

    Freddy wrote:
    Ja nie mówię tu o tanich kostkach IMU, ale o poważnych układach IMU z magnetometrem.

    Podaj proszę jakiś konkretny przykład...
  • #18
    DmZ
    Level 18  
    Projekt fajny. Tylko budując drona, zdejmujemy masę gdzie tylko się da - każde 10 gram mniej to większa szansa na powrót do bazy.
    No i jedna rzecz. Tak zrobiony dron nadaje się do lotu w hali czy nad gęstym trawnikiem. Nie mówię tu o osiągach czy możliwościach (bo te są akurat ok), ale o "budzie". Nawet uformowanej z butelki pet ew lekkiej tkaniny + epoxy.

    Lądowania i starty śmiglakami na lądowisku gdzie jest piach / pył / kurz powodują że:

    a) dron wygląda po jednym dniu jakby go wyjęto ze śmietnika / oczywiście nie mówię jak po "kretach" (wtedy to normalka), ale jest konkretnie usyfiony. Rozbieranie "kanapek", i rozpinanie dociętych (WAGA) na wymiar kabli, wtyczek, złączy osłabia je (łamie). Każdy modelarz o tym wie.
    b) ponieważ cała elektronika i wszystkie moduliki oblepione są ziemią / piachem z trawą czy innym błotem - za niedługo odezwie się wilgoć która się gromadzi w tym syfie na płytkach. i TRZEBA to czyścić, bo latanie z mokrą elektroniką (wieczory) jest gotowym przepisem na mniejszą albo większą katastrofę. (Ciekawe jaka może być zmiana parametrów nadawania video przy mokrym nadajniku, zwłaszcza w mikrofalach)

    To tak jeśli idzie o bezpieczne latanie.

    Co do mądrości jednego z kolegów na temat super hiper duper "kupnych" zabawek zwłaszcza ze stajni DJI, którym nie dorównują domowe śmiglaki, to polecam zapoznać się z całą serią przypadków jak te właśnie x600 czy x800 z zawieszonym zenmusem za 10K spadało albo do wody albo na ziemie.
    Multikopterowi też się zdarzało na HOME/failsafe, lecieć do niemiec, zamiast do pilota (użytkownicy MK wiedzą chyba o co chodzi)
  • #19
    szy_mat
    Level 15  
    Mnie zastanawia raczej skąd zdecydowanie większa popularność dronów-quadrocopterów od dronów-samolotów - przecież ta druga konstrukcja ma prawie same zalety względem tej pierwszej (przede wszystkim mniejsze zużycie energii, tak jak pomiędzy każdym wiropłatem vs stałopłatem, stabilność), chyba tylko poza rozmiarami (rozpiętość skrzydeł) i brakiem możliwości zawisu, no i prędkość minimalna, ale to raczej nie jest problem. Wszystko pewnie zależy od tego, do czego takiego drona używamy...
  • #20
    DmZ
    Level 18  
    Płatowce mają bardzo dużą wadę: pas do startu i lądowania.
    Nie ma opcji na kręcenie "cyrklowanych" ujęć. A policz ile zajmie nalot płatowcem.
    Amatornia wychodzi na podwórko i dronem trenuje. Potrenuj na podwórku starty i lądowania płatowcem.
    Obróć płatowca w miejscu o 180st. Polataj płatowcem 3m nad ziemią.

    To są zupełnie różne typy maszyn. Zupełnie inne przeznaczenia.
    To jak pytać czemu ludzie na co dzień nie chcą jeździć ciągnikami siodłowymi po śródmieściu :)
  • #21
    szy_mat
    Level 15  
    Cóż, ja tam wolę płatowce, zarówno te załogowe jak i te bez :), ale racja - zależy też jakie masz podwórko, kilkanaście metrów trawy często wystarcza do startu.
  • #22
    DmZ
    Level 18  
    Ja też wole płatowce, bo jestem modelarzem bardziej niż gadżeciarzem. Nic złego nie ma ani w jednym ani w drugim, żeby było jasne. Tylko ja zaczynałem od składania szybowców 10 lat temu. Coptery też budowałem no ale jak pisałem - to zupełnie inna zabawa jest.
  • #23
    lechoo
    Level 39  
    A i tak najfajniejsze są modele helikopterów :-)



  • #24
    kamal1993
    Level 1  
    Siemanko , potrzebuje drona autonomicznego.
    Dokładnie chodzi o to , że posiadam 15Ha w 1 kawałku Borówki Amerykańskiej.
    Muszę/muszą ludzie wstawać od 6 rano włączać armatki hukowe.
    I pomyślałem sobie , co jeśli był by jakiś autonomiczny dron którego przebrał bym za ptaka drapieżnego , podłączył głośniki i puszczał w odległość ok 750metrów do przodu , do tyłu i by parkował w bazie po locie?
    Nie potrzebuje w nim jakiś dużych bajerów,żadnych kamerek go pro lub innych cudów
    Jedynie autonomika + głosnik.
    Jest coś takiego? i ile może kosztować?
    Pozdrawiam serdecznie
  • #26
    luk2030
    Level 14  
    Ciekawe czy można by zbudować na podstawie Raspberry drona podwodnego zasilanego oraz kierowanego poprzez kabel?
  • #27
    ghost666
    Translator, editor
    luk2030 wrote:
    Ciekawe czy można by zbudować na podstawie Raspberry drona podwodnego zasilanego oraz kierowanego poprzez kabel?


    Polecam Projekt OpenROV

    https://github.com/OpenROV/