Wiedza i doświadczenie projektowe wizytówką absolwenta kierunku automatyka i robotyka na Wydziale Automatyki, Elektroniki i Informatyki Politechniki Śląskiej POKL.04.01.02-00-020/10 Program Operacyjny Kapitał Ludzki współfinansowany przez Unię Europejską ze środków Europejskiego Funduszu Społecznego Gliwice, 10.10.2013 SKN Robotyki Encoder Wydział Automatyki, Elektroniki i Informatyki Politechnika Śląska dr hab. inż. Marek Pawełczyk, prof. nzw. w Politechnice Śląskiej Koordynator Projektu POKL.04.01.02-00-020/10 Sprawozdanie z działalności sekcji pracującej nad projektem Automatyczna mobilna wieżyczka strzelnicza Projekt przeprowadzany jest w ramach działalności Studenckiego Koła Naukowego Robotyki Encoder, opiekunem naukowym projektu jest dr inż. Damian Bereska. Członkowie projektu : Piotr Mierzwa Michał Żuk Mateusz Dziewior Kierownikiem projektu jest Dawid Wylenżek. Dawid Wylenżek Daniel Dreszer Paweł Kaleta Podpis opiekuna 1
Spis treści Podstawowe informacje o projekcie... 3 1. Cel projektu... 3 2. Kamienie milowe:... 3 3. Harmonogram zadań... 3 Opis działalności sekcji projektowej.... 4 1. Projekt konstrukcji mechanicznej.... 4 1.1 Część główna.... 4 1.2 Rozwiązanie podstawowych problemów mechanicznych... 5 1.3 Wykonanie rzeczywiste.... 6 2. Kontrola i sterowanie quadrokoptera.... 8 2.1 Testowanie gotowych bibliotek do sterowania quadrocopterem AR Drone w LabVIEW... 8 2.2 Biblioteki do odbierania i analizy wizji w LabView.... 12 2.3 Aplikacja Windows... 13 3. Peryferia elektroniczne.... 14 3.1 Monitor akumulatorów Li-Pol.... 14 3.2 Końcówka mocy do sterowania silników... 17 4. System wizyjny.... 19 4.1 Wstęp... 19 4.2 Marker... 19 4.3 Rysunek poglądowy... 20 4.4 Schemat blokowy aplikacji... 21 4.5 Problemy i rozwiązania... 21 5. Podsumowanie stanu projektu.... 22 2
Podstawowe informacje o projekcie 1. Cel projektu Celem projektu było zbudowanie platformy jezdnej wyposażonej w wieżyczkę strzelniczą, wraz z systemem wizyjnego znajdowania celu. 2. Kamienie milowe: Zakup elementów potrzebnych do realizacji projektu; Budowa szkieletu konstrukcji; Zamontowanie jednostki napędowej oraz przełożenia napędu; Stworzenie bazy dla działka oraz systemu sterowania; Zamontowanie wieżyczki na platformie; Scalenie systemu sterowania; Implementacja komunikacji bezprzewodowej; Wykonanie panelu operatorskiego; 3. Harmonogram zadań Zakup elementów potrzebnych do realizacji projektu 01.05.2013; Budowa szkieletu konstrukcji; 15.05.2013; Budowa wieżyczki; 01.06.2013; Ukończenie podstawy jezdnej; 20.06.2013; Złożenie elementów w całość; 10.07.2013; Stworzenie systemu sterowania pojazdem; 01.08.2013; Stworzenie panelu operatora; 10.08.2013; Scalenie i kalibracja wszystkich systemów; 01.09.2013; 3
Opis działalności sekcji projektowej 1. Projekt konstrukcji mechanicznej 1.1 Część główna Mechaniczna złożoność projektu pozwalała na jego realizację na kilka różnych sposobów. Aby wybrać najlepsze rozwiązania, większość części zamodelowaliśmy w 3D, co w znacznym stopniu pomogło przy późniejszym fizycznym wykonaniu elementów konstrukcji. Rys 1. Podstawowy projekt budowy robota. Aby przedstawiona koncepcja był fizycznie realizowalna musieliśmy się zmierzyć z kilkoma problemami: Ułożyskowanie elementów napędowych; Mocowanie silników; Obrót ramienia; 4
1.2 Rozwiązanie podstawowych problemów mechanicznych Zapewnienie dużej swobody ruchu robota oraz niskie opory ruchu poszczególnych elementów sprzyjają uniwersalność platformy, a także redukują zużycie energii, co przy zasilaniu akumulatorowym jest istotnym aspektem. 1.2.1 Projekt ułożyskowania napędu Rys 2. Projekt mocowania łożysk. Przedstawione rozwiązanie jest bardzo uniwersalne, ponieważ nie zależy od rozmiarów geometrycznych łożysk, jest łatwe do wielokrotnego wykonania, a także nie zawiera skomplikowanych elementów. 1.2.2 Projekt mocowania silników Rys 3. Projekt mocowania silników. 5
Jest to jeden z najtrudniejszych do wykonania elementów, z powodu wielu otworów, które muszą być odpowiednio zorientowane względem siebie. Znaczną pomocą podczas wykonywania elementu był rysunek w skali 1:1, który umożliwiał przeniesienie wymiarów bezpośrednio na materiał. 1.2.3 Projekt systemu obrotu ramienia Rys 3. Projekt systemu obrotu ramienia. Zastosowanie dwóch silników oraz zębatek o różnej ilości zębów pozwoliło na uzyskanie większej mocy i precyzji sterowania. Jeden z silników, którego oś przechodzi przez dużą zębatkę, służy do obracania gąsienicy, natomiast drugi silnik z małą zębatką obraca całym ramieniem. Stosunek zębatek 1:3 pozwala na łatwe obliczanie obrotu ramienia, a także zmniejsza moc potrzebną do wykonania obrotu. 1.3 Wykonanie rzeczywiste W rzeczywistym obiekcie zastosowaliśmy kilka samodzielnie wykonanych części, między innymi mocowania do przedłużenia osi silników. Gąsienice robota wykonane są z pasków klinowych samochodu osobowego, ponieważ są one łatwo dostępne w różnych rozmiarach. Naciąg gąsienicy zrealizowany jest za pomocą koła z otworem na oś oddalonym od osi obrotu koła. Rozwiązanie to jest bardzo wygodne i łatwe w zastosowaniu. 6
Rys 4. Rzeczywista podstawa jezdna. Rys 5. Rzeczywiste mocowanie silników wraz z łożyskami i zębatkami. 7
2. Kontrola i sterowanie quadrocoptera 2.1 Testowanie gotowych bibliotek do sterowania quadrocopterem AR Drone w LabVIEW 2.1.1 Problem z wysyłaniem koordynatów przechylania quadrocoptera Poprawnie działające opcje do startowania, zmiany wysokości, obrotu względem własnej osi oraz krążenie i lądowanie awaryjne. Nie działające opcje: sterowanie przódtył oraz prawo-lewo, odbiór wizji. 2.1.2 Znalezienie przyczyny problemów W nowych wersjach ARDrone czyli m.in. w zakupionym modelu, zmianie uległy komendy sterujące, wysyłane poprzez połączenie bezprzewodowe. Biblioteki dostępne w Internecie poprawnie obsługują pierwszą wersje modelu i wczesne wersje drugiej wersji, ale też nie jest to obsługa pełna, brak obsługi i analizy wizji. 2.1.3 Rozwiązanie problemów dotyczących sterowania Do zakupionego zestawu dołączana jest darmowa aplikacja na tablety (Android) do sterowania quadrocopterem, przy użyciu której jesteśmy wstanie sterować quadrocopterem, z udostępnionymi wszystkimi opcjami sterowania. Dokonaliśmy testowego lotu przy wykorzystaniu tej aplikacji. Podczas lotu na telefonie załączony był program, który zapisywał całą komunikację TCP oraz UDP. Po zakończonym locie analizowaliśmy wszystkie wykonane połączenia telefonu wykonane podczas sesji testowej, w celu ustalenia portów komunikacyjnych z zakupionym quadrocopterem. Po analizie otrzymaliśmy również pełen zestaw danych do analizy sposobu wysyłania komend jakie sterują quadrocopterem. Rys 6. Wyświetlenie danych UDP przy użyciu programu Wireshark. 8
Brakujące elementy w bibliotekach inicjalizujące lot w nowych wersjach ARDrone 9
Wybrane wymagane komendy: AT*CONFIG_IDS=1,"3ca6fb98","50184485","96e3654b" AT*CONFIG=2,"custom:session_id","-all" AT*PMODE=3,2 AT*MISC=4,2,20,2000,3000 AT*PCMD_MAG=5,0,0,0,0,0,0,0 AT*REF=6,290717696 AT*PCMD_MAG=7,0,0,0,0,0,0,0 AT*REF=8,290717696 AT*CTRL=9,5,0 AT*PCMD_MAG=10,0,0,0,0,0,0,0 10
AT*REF=11,290717696 AT*CTRL=12,5,0 AT*PCMD_MAG=13,0,0,0,0,0,0,0 AT*REF=14,290717696 AT*CTRL=15,4,0 AT*CONFIG_IDS=63,"3ca6fb98","50184485","96e3654b" AT*CONFIG=64,"custom:session_id","3ca6fb98" AT*CONFIG_IDS=81,"3ca6fb98","50184485","96e3654b" AT*CONFIG=82,"custom:application_id","96e3654b" AT*CONFIG_IDS=109,"3ca6fb98","50184485","96e3654b" AT*CONFIG=110,"custom:profile_id","50184485" AT*CONFIG_IDS=139,"3ca6fb98","50184485","96e3654b" AT*CONFIG=140,"custom:session_desc","Session 3ca6fb98" Przykładowe komedy za pomocą których można kontrolować lot ARDrone AT*PCMD=numer_komendy,tryb_krążenia,przechył_przód_tył,przechył_prawo_lewo,cią _silników,obrót,żyroskop_1,żyroskop_2 AT*REF=numer_komendy,tryb_lotu(290718208-lot, 290717696-lądowanie) 11
2.1.4 Dokonanie modyfikacji gotowych bibliotek Fragment programu z poprawionymi komendami (warunek: czas pomiędzy kolejnymi komendami 100ms) 2.2 Biblioteki do odbierania i analizy wizji w LabVIEW Gotowe biblioteki do obsługi wizji również nie współpracują z nową wersją zakupionego modelu. Analiza danych zebranych podczas lotu testowego wykazała, że zmienił się format przesyłu wideo. Wraz ze zmianą modelu ArDrone 1 na wersję 2, zmienił się sposób przesyłania obrazu, wersje 1 przesyłają obraz w formacie MJPEG po UDP, a z kolei wersje 2.0 przesyłają wideo w formacie MPEG po TCP. Odbiór i analiza streamingu wideo H264 w LabVIEW nie są do tej pory opracowane. Obecnie dalej pracujemy nad analizą takiego obrazu, będzie to z pewnością przydatne w wielu innych projektach w przyszłości, ponieważ streaming wideo w formacie h264 pojawia się coraz częściej na rynku nowości technicznych do przesyłania obrazów o wysokiej rozdzielczości. Wyświetlanie obrazu z quadrocoptera jest w pełni obsłużone za pomocą zewnętrznego programu ffplay. Obraz otwierany jest w dodatkowym oknie aplikacji do sterowania napisanej przez nas i opisanej poniżej. 12
2.3 Aplikacja Windows Rys 7. Pierwsza wersja interfejsu sterującego. Rys 8. Druga wersja interfejsu sterującego. 13
3. Peryferia elektroniczne 3.1 Monitor akumulatorów Li-Pol Rozładowanie akumulatorów litowo-polimerowych poniżej 3.3-3.4 V na cele skutkuje ich szybkim uszkodzeniem bądź znaczną utratą pojemności. Aby móc bezpiecznie ich używać, należy monitorować napięcie. W tym celu zaprojektowaliśmy układ, który w sposób automatyczny będzie mierzyć napięcie i na podstawie uzyskanego wyniku będzie sterował obwodem zasilania. INICJALIZACJA PRZEKAŹNIK=OFF LED ZIELONA=OFF LED CZERWONA=ON ZA NISKIE NAPIĘCIE BATERII OK PRZEKAŹNIK=ON LED ZIELONA=ON LED CZERWONA=OFF LED ŻÓŁTA=OFF OFF STAN PRZYCISKU ON LED ŻÓŁTA=ON Rys 9. Algorytm działania modułu zabezpieczającego akumulator. Aby zainicjalizować pracę układu należy przytrzymać przełącznik monostabilny. W tym czasie mikrokontroler Atmega8 zmierzy napięcie. Jeśli będzie miało ono odpowiednią wartość, wtedy zostanie włączony przekaźnik, który podtrzyma zasilanie układu mierzącego oraz zasili podłączone na wyjściu elementy. Ponadto zielona dioda wskaże nam, że napięcie jest odpowiednie. Gdy napięcie spadnie poniżej krytycznego układ się wyłączy prąd z akumulatora nie będzie dalej pobierany. Kolejne próby inicjalizacji układu wskażą (za pomocą czerwonej diody), że napięcie jest zbyt niskie, a przekaźnik pozostanie wyłączony zarówno układ mierzący jaki i podłączone na wyjściu układu elementy nie będą zasilane. Dioda żółta sygnalizuje stan przełącznika. Problemem okazało się zapewnienie uniwersalności układu. Wymagane było, aby układ mógł funkcjonować poprawnie z akumulatorami o różnej ilości cel, a w związku z tym różnymi napięciami. Zastosowano rozwiązanie w postaci dzielnika napięcia, w którym wartość rezystancji zmieniana jest przez położenie zworki. Im więcej cel ma akumulator tym większa rezystancja. Użytkownik przed podłączeniem układu, musi ustawić go do pracy z danym akumulatorem poprzez wpięcie zworki w odpowiednie miejsce. Zasadę działania ilustruje poniższy rysunek. 14
Rys 10. Zasada dostosowania układu do akumulatora. Rys 11. Schemat płytki PCB 15
Rys 12. Schemat ideowy układu do monitorowania napięcia. 16
3.2 Końcówka mocy do sterowania silników Sterowanie silnikiem prądu stałego łatwo jest zrealizować wykorzystując mostek H oraz sygnał PWM. Wymagane było zaprojektowanie układu zawierającego końcówkę mocy, dodatkowym wymogiem była separacja galwaniczna sterownika. Rys 13. Schemat blokowy sterowania silnikiem. Zaprojektowany przez nas układ pozwala na łatwe sterowanie dwoma silnikami. Zastosowaliśmy podwójny mostek H w układzie scalonym L298n wraz z niezbędnymi peryferiami. Sygnały są odseparowane galwanicznie przez transoptory LTV847 w celu zabezpieczenia sterownika przed ewentualnymi zwarciami po stronie silników. Sygnałów jest sześć, czyli po trzy na jeden silnik dwubitowe sterowanie mostkiem H oraz sterowanie mocą za pomocą sygnału PWM. Rys 14. Schemat ideowy końcówki mocy. 17
Rys 15. Schemat płytki PCB końcówki mocy. Rys 16. Prototyp końcówki mocy. 18
4. System wizyjny 4.1 Wstęp Celem prac sekcji zajmującej się przetwarzaniem informacji wizyjnej było zapewnienie możliwości ustalenia położenia quadrocoptera względem platformy mobilnej na podstawie danych z kamery, co umożliwiłoby kooperację obu pojazdów. Informacje płynące z przetworzonego obrazu powinny zawierać odległość quadrocoptera oraz jego orientację względem platformy. Oczywiście przetwarzanie informacji wizyjnej nie jest jedynym sposobem ustalenia położenia można tego dokonać np. za pomocą technologii GPS. Wybrany sposób wydaje się jednak najwłaściwszym w kontekście realizowanego projektu, gdyż istotna jest tu precyzja w pomiarze położenia quadrocoptera. 4.2 Marker Ustalanie pozycji quadrocoptera oparte jest o wykrywanie zaprojektowanego przez nasz zespół markera, który jest zaprezentowany poniżej. Rys 17. Wygląd zaprojektowanego markera. 19
Cechami markera są: Wysoki kontrast dzięki zastosowaniu czarnych figur na białym tle. Dzięki temu wymagania stawiane jakości obrazu oraz skomplikowanie algorytmu są minimalne Zastosowanie prostych figur geometrycznych zapewnia uproszczenie algorytmu wykrywania markera Brak symetrii środkowej umożliwia ustalenie orientacji markera, a więc i ustalenie orientacji quadrocoptera Punkty charakterystyczne markera (środki kół oraz dwa narożniki prostokąta) ułożone są w kwadrat łatwość obliczenia pozycji i orientacji markera 4.3 Rysunek poglądowy Rys 18. Rysunek poglądowy systemu wykrywania markera. 20
4.4 Schemat blokowy aplikacji Pozyskanie obrazu z kamery Wyszukanie figur (dwa koła oraz prostokąt) Sprawdzenie poprawności zlokalizowania markera Wyznaczenie punktów charakterystycznych Obliczenie położenia i orientacji markera Rys 19. Schemat blokowy aplikacji. 4.5 Problemy i rozwiązania Najważniejszym problemem, który musiał zostać w maksymalnym stopniu zniwelowany był fakt, że algorytm może wykryć podobne figury geometryczne znajdujące się w otoczeniu markera, a więc także na obrazie pobranym z kamery. By zmniejszyć ryzyko wykrycia niewłaściwych figur znajdujących się na obrazie, a tym samym zwiększyć skuteczność poprawnego wykrywania markera, zawężono obszar poszukiwań na obrazie stosując ROI (Region of Interest). W pozycji początkowej marker znajduje się w ustalonym miejscu, a następnie na każdej kolejnej klatce z kamery marker jest wyszukiwany w pobliżu ostatniego jego wystąpienia. 21
5. Podsumowanie stanu projektu Projekt nie został zrealizowany w założonym stopniu, sytuacja ta wynikała z zaistnienia wielu nieprzewidzianych problemów. Zmieniony system transmisji obrazu w zastosowanej kamerze wymógł na nas duży nakład pracy, aby dostosować odbierane dane do naszych potrzeb. Zakup najnowszego quadrocoptera był dobrą decyzją ze względu na jego parametry, lecz nikt nie spodziewał się tak znacznych problemów z implementacją stertowania. Nowe oprogramowanie quadrocoptera wymogło na nas mozolne i czasochłonne śledzenie transmisji, aby odnaleźć odpowiedni sposób sterowania. Dodatkowym problemem było przekazywanie wizji z pokładu quadrocoptera; w starszej wersji urządzenia w łatwy sposób można było odebrać i przetworzyć obraz, natomiast w naszym przypadku wymagało to zastosowania specjalnych bibliotek i dodatkowego oprogramowania. Chęć precyzyjnego i dobrze wyglądającego wykonania mechanicznego sprawiły, że wykonanie mechaniki poświęciliśmy znacznie więcej czasu niż przewidywaliśmy. Wysokie zaangażowanie członków projektu w jego realizacje sprawiło iż mimo wynikłych problemów wszystkie części projektu zmierzają do pełnej sprawności. Duża chęć ukończenia projektu w stopniu pozwalającym ocenić jego możliwości sprawia, że będzie on ciągle rozwijany i wyposażany o dodatkowe elementy. 22