Praca dyplomowa inżynierska: Projekt systemu wizyjnego robota
Transkrypt
Praca dyplomowa inżynierska: Projekt systemu wizyjnego robota
Politechnika Poznańska Wydział Informatyki i Zarządzania Katedra Inżynierii Komputerowej Praca dyplomowa inżynierska: Projekt systemu wizyjnego robota mobilnego Autorzy: Marcin Nowaczyk Jakub Psyk Grzegorz Pużyński Promotor: dr inż. Sławomir Stępień Poznań, 2007 r. Spis treści 1 Wstęp 2 2 Cel i zakres pracy 4 3 Przegląd aktualnych systemów wizyjnych oraz metod sterowania robotem mobilnym 3.1 Zastosowanie systemów wizyjnych . . . . . . . . . . . . . . . . . . 3.1.1 Zastosowanie w przemyśle produkcyjnym . . . . . . . . . . 3.1.2 Zastosowanie w siłach zbrojnych . . . . . . . . . . . . . . . 3.1.3 Zastosowanie z udziałem kognitywistyki . . . . . . . . . . . 3.2 Rozpoznawanie i akwizycja obrazów . . . . . . . . . . . . . . . . . 3.3 Aktualne konstrukcje robotów mobilnych . . . . . . . . . . . . . . 3.3.1 Miniaturowy Robot Inspekcyjny VIRTUS R2 . . . . . . . 3.3.2 Inne rozwiązania . . . . . . . . . . . . . . . . . . . . . . . 6 6 6 11 11 12 17 17 19 4 Budowa systemu wizyjnego 4.1 Modem radiowy firmy ARIES 4.2 Sterowanie Mobotem . . . . . 4.3 Kamera . . . . . . . . . . . . 4.4 Sterowanie kamerą . . . . . . . . . . 25 27 31 33 35 5 Oprogramowanie do sterowania Mobotem i akwizycji obrazu 5.1 Sterowanie robotem mobilnym przy użyciu modemu radiowego . . 5.2 Odczyt obrazu z kamery . . . . . . . . . . . . . . . . . . . . . . . 5.3 Zapis obrazu z kamery na dysku twardym . . . . . . . . . . . . . 40 41 42 44 6 Analiza systemu wizyjnego 6.1 Testy odległościowe . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Częstotliwość generowanego sygnału zegarowego . . . . . . . . . . 46 46 48 7 Podsumowanie 49 Bibliografia 51 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rozdział 1 Wstęp Każdy właścicel fabryki, dyżurny zmiany, każdy kto jest odpowiedzialny za nadzór nad pewnymi maszynami, ludźmi, bądź procesami produkcyjnymi, chciałby móc doglądać pracę kiedy tylko sobie zażyczy. Jednakże obserwacja dowolnego obszaru w dowolnym momencie nie zawsze jest możliwa. Do niedawna nad wszystkim sprawował pieczę człowiek, a rejestracja poprawności działania wszystkich stanowisk pracy wiązała się z dużymi kosztami w zatrudnieniu osobowym. Dodatkowo, w przypadku poważnej awarii, w grę wchodziło zagrożenie ludzkiego zdrowia. Ponadto nikt nie jest nieomylny, a błędy człowieka czasami bywały katastrofalne w skutkach. Zastosowanie kamer do wizualizacji obszarów pracy pozwoliło rozwiązać większość powyższych problemów. Kiedy mówimy o systemie wizyjnym lub inteligentnym systemie wizyjnym, to zazwyczaj mamy na myśli kamerę, zamontowaną na jakimś wysięgniku, ramieniu lub platformie, która może obserwować procesy produkcyjne, kontrolować dany obszar, rejestrować pewne zjawiska. Ale jak jest zbudowany taki system i jak działa? Inteligentny system wizyjny składa się przede wszystkim z czujnika wizyjnego (kamery) oraz jednostki przetwarzającej i analizującej obraz (komputer, mikrokontroler, specjalizowany układ). System ten obserwuje wybrany fragment otoczenia i na podstawie zebranego obrazu generuje sygnał na wyjście. Sygnałem tym może być np.: sygnalizacja o położeniu elementów przedstawionych na obrazie, identyfikacja tych elementów oraz ich specyfikacja, odczyt informacji znajdującej się w obrębie sceny wizyjnej. Odczytany sygnał (obraz) wyjściowy jest następnie wykorzystywany do podejmowania decyzji przez system nadrzędny lub operatora [16, 17]. Pozostaje do rozwiązania jeszcze jeden problem, a mianowicie jakim medium przesyłać dane zebrane z kamery. Do niedawna uważano, że najrozsądniejszym, najbezpieczniejszym, zapewniającym najmniej błędów i stosunkowo najtańszym rozwiązaniem było zastosowanie połączenia przewodowego [10]. Jednakże rozwiązanie to ma podstawową wadę – ograniczone możliwości mobilne. Gdy system wizyjny jest montowany na elementach nieruchomych, to nie ma problemu, ale 3 gdy chcemy obserwować przedmiot poruszający się, kabel jest nie lada kłopotem. Z pomocą przychodzą nam techniki komunikacji bezprzewodowej. Mimo, iż połączenie tego typu zwiększa ryzyko wystąpienia błędów w transmisji, to i tak możliwość dowolnego rozmieszczenia urządzeń obserwujących, brak zbędnego okablowania oraz w wielu przypadkach niższy koszt instalacji, przemawia za korzystaniem z tego typu rozwiązań. Najbardziej popularnymi obecnie metodami komunikacji bezprzewodowej są: transmisja radiowa, bluetooth, podczerwień, wi-fi [10, 9]. Wśród nich najlepszym rozwiązaniem jest transmisja radiowa. Tylko od wi-fi ma ona trochę gorszy zasięg, ale poza tym jej zastosowanie jest dużo łatwiejsze, bardziej rozpowszechnione, a koszt modernizacji i zakupu jest stosunkowo niewielki. Dlatego też w niniejszej pracy wykorzystano tego typu medium do transmisji danych. Rozdział 2 Cel i zakres pracy Podstawowym celem pracy była budowa systemu wizyjnego robota mobilnego, czyli wyposażenie robota w kamerę umożliwiającą obserwację otoczenia, w jakim robot miałby się poruszać. Następnie należało zaprojektować system bezprzewodowego sterowania robotem oraz samą kamerą. Ostatnim krokiem było napisanie aplikacji pozwalającej na wysyłanie odpowiednich komend do robota i akwizycję obrazu z kamery do plików wideo oraz pojedynczych zrzutów ekranowych. Szczegółowy zakres pracy obejmował: • wybór sposobu bezprzewodowego przesyłania instrukcji do robota • wybór odpowiedniego modemu spośród urządzeń oferowanych na rynku • dobór i zakup odpowiedniego silnika i sterownika do poruszania kamerą • zaprojektowanie uniwersalnego generatora sygnału zegarowego potrzebnego do sterowania silnikiem krokowym • dobranie i zakup kamery o odpowiednich parametrach • zaprogramowanie zakupionego modemu bezprzewodowego w celu dostosowania go do sterowania robotem mobilnym • zaprogramowanie robota mobilnego do interpretacji rozkazów przysyłanych do niego za pomocą modemu radiowego • napisanie programu do mikrokontrolera AVR odpowiedzialnego za sterowanie kamerą umieszczoną na robocie • stworzenie aplikacji do sterowania robotem i odbioru oraz akwizycji obrazu z kamery internetowej 5 Podział pracy Realizację pracy podzielono na siedem rozdziałów Rozdział 3 zawiera przegląd aktualnych rozwiązań i zastosowań systemów wizyjnych. Zastosowań jest wiele, ale skupiono się na przykładach w przemyśle produkcyjnym oraz siłach zbrojnych. Z rozdziału tego dowiedzieć się można również o podstawowych operacjach na obrazach stosowanych podczas jego rozpoznawania i akwizycji. Na koniec przedstawiono przegląd aktualnym pomysłów i rozwiązań budowy robotów mobilnych. Rozdział 4 przedstawia informacje o wszystkich elementach wchodzących w skład systemu wizyjnego. Zawarto w nim opis działania zarówno modemów radiowych jak i kamery oraz bezprzewodowe sterowanie Mobotem i obrotnicą kamery. Poza tym zostały opisane programy wgrane do mikrokontrolerów AVR używane w opisywanym systemie. Rozdział 5 opisuje sposób programowej realizacji przesyłania danych między modemem podłączonym do komputera, a modułem umieszczonym na robocie. Można w nim również znaleźć informacje na temat sposobu odbierania i wyświetlania danych z odbiornika kamery bezprzewodowej. Wymienione są w nim specjalne moduły oraz metody programistyczne wykorzystane w stworzonej aplikacji. Rozdział 6 zawiera wyniki testów przeprowadzonych w laboratorium. Został opisany wpływ odległości na jakość obrazu z kamery oraz zasięg funkcjonowania bezprzewodowego modemu radiowego. Dodatkowo została podana faktyczna, zmierzona częstotliwość generowanego sygnału zegarowego przez układ ATtiny2313. W podsumowaniu można znaleźć krótki komenentarz na temat poprawności zrealizowanych założeń projektowych a także końcowa ocena wykonanej pracy. Rozdział 3 Przegląd aktualnych systemów wizyjnych oraz metod sterowania robotem mobilnym 3.1 Zastosowanie systemów wizyjnych Na rynku istnieje wiele zastosowań dla inteligentnych systemów wizyjnych, jednak najczęściej wykorzystywane są w przemyśle produkcyjnym oraz siłach zbrojnych. 3.1.1 Zastosowanie w przemyśle produkcyjnym We współczesnych przedsiębiorstwach produkcyjnych bardzo duży nacisk nakładany jest na jakość wytwarzanych produktów, przy jednoczesnym zwiększeniu ilości wytwarzanych dóbr. Zautomatyzowane systemy kontroli wizyjnej pozwalają na szybką i niezawodną inspekcję w procesach produkcyjnych. Cyfrowe przetwarzanie obrazów, stosowane jako zintegrowany element systemu obsługi produkcji przemysłowej, poprzez kontrolę każdego z elementów, pozwala na utrzymanie wysokiej jakości w całym procesie produkcji [16]. W procesach kontroli jakości arbitrem często jest człowiek. Jego doświadczenie i zdolności percepcyjne pozwalają na określenie poprawności sprawdzanych elementów. Jednak zdolności postrzegania człowieka są ograniczone i nie jest on w stanie nadążyć z oceną szybko przemieszczających się elementów. Ręczny pomiar poprawności ocenianych przedmiotów jest niedokładny, pobieżny i powolny, a zmęczenie i znużenie wykonywaniem powtarzalnych czynności mają wpływ na zawodność kontroli i obniżenie efektywności całego jej procesu. 3.1 Zastosowanie systemów wizyjnych 7 Dlaczego warto stosować wizyjne systemy kontroli: • umożliwiają pełną kontrolę procesu produkcji, • pozwalają tworzyć dokumentację wyników kontroli, • kontrolują obiekty w ruchu, • są szybkie i bardziej niezawodne od człowieka. Podstawą systemów wizyjnych są kamery cyfrowe CCD oraz oprogramowanie realizujące algorytmy przetwarzania obrazów. W procesach kontroli znajdują zastosowanie techniki porównywania obrazów, odczytywania kodów kreskowych czy automatycznego rozpoznawania kształtów i znaków alfanumerycznych (OCR) [11]. Rysunek 3.1: Przykładowe znaki/kody do rozpoznania. (Źródło: [7]) Po przeprowadzeniu analizy systemy podejmują decyzję o poprawności wykonania badanego obiektu, przesyłając informację o tym do np.: wykonawczych systemów automatyki, eliminujących braki. Kontrola może odbywać się z ogromną prędkością, bez jakichkolwiek przerw. Stosując metody optycznej kontroli każdego wytwarzanego elementu łatwiej utrzymać cały proces produkcyjny w reżimie wysokich wymagań jakościowych. Przykładowe dziedziny zastosowań Kontrola jakości. Automatyczne systemy wizyjne są wykorzystywane w wielu dziedzinach przemysłu (motoryzacja, opakowania, farmacja, kosmetyki, elektronika, tworzywa sztuczne) do kontroli jakości produkowanych elementów. Szczególnie przydatne są w produkcji wielkoseryjnej, taśmowej [16]. Dzięki szybkości działania i niezawodności pozwalają na maksymalne wykorzystanie możliwości przerobowych nowoczesnych urządzeń produkcyjnych. 3.1 Zastosowanie systemów wizyjnych 8 Rysunek 3.2: Przykładowe realizacje kontroli jakości (Źródło: [7]) Identyfikacja. Znakowanie, identyfikacja i śledzenie elementów na wszystkich etapach produkcji pozwala na monitorowanie i kontrolę całego procesu przemysłowego. Wydajny system śledzenia stwarza możliwości optymalizacji procesu wytwarzania. Inteligentne systemy wizyjne, dzięki możliwościom rozpoznawania kształtów, kodów jedno- i dwuwymiarowych oraz znaków alfanumerycznych, potrafią bezbłędnie identyfikować elementy w trudnych warunkach przemysłowych i zbierać informacje o produkcji. Procesy przemysłowe – sterowanie i wizualizacja. Analityczne systemy wizyjne dają ogromne możliwości kontroli procesów przemysłowych. Przekazując krytyczne informacje o procesie produkcyjnym odpowiednim jednostkom automatyki – sterownikom i komputerom, kierują procesem produkcji, eliminując na bieżąco błędy i wadliwe elementy. Informacje, rejestrowane przez systemy wizyjne, trafiają do systemów wizualizacji procesów przemysłowych, które to systemy są ważnym elementem zarządzania produkcją [15]. Rygorystyczne wymagania jakościowe wymuszają bezpośrednią kontrolę wielu procesów. Bez zastosowania najnowocześniejszych rozwiązań i urządzeń pomiarowych oraz szybkiej akwizycji danych już na etapie produkcji skuteczny nadzór jest niemożliwy. Systemy automatycznej kontroli wizyjnej w procesach produkcyjnych. Do systemów automatycznej kontroli wizyjnej w procesach produkcyjnych należą: • kontrola poprawności montażu, • wymiarowanie obiektów, • zliczanie, śledzenie i sortowanie, • ocena jakości powierzchni po obróbce, • ocena jakości materiałów transparentnych, np. szkła, • wykrywanie wad kształtu, • rozpoznawanie oznaczeń, np. OCR, • pozycjonowanie obiektów dla robotów przemysłowych, • pozyskiwanie danych ilościowych dla analiz. 3.1 Zastosowanie systemów wizyjnych 9 Wybrane aplikacje Kontrola produktów butelkowanych. Kontrola ma na celu wykrycie nieprawidłowego napełnienia i ocenę sposobu zamknięcia butelki kapslem. Zadanie diagnostyczne wykonywane jest w trakcie produkcji o wydajności 600 butelek na minutę i wymaga wydania werdyktu 10 razy w ciągu sekundy. Zatem czas niezbędny dla wykonania zadania wynosi 100 ms. Kontrola poprawności pakowania. System kontroli weryfikuje sposób zamknięcia opakowania - wszystkie klapy pudełka powinny być prawidłowo doklejone i zamknięte. Rozpoznanie niewłaściwego zamknięcia dokonywane jest na podstawie badania jasności obrazu w zdefiniowanym obszarze. Narzędzia analizy są dobrane w taki sposób, aby, poza wykryciem błędu zamknięcia, można było zidentyfikować odchyloną klapę. Kamera przekazuje informacje, pozwalające na wprowadzenie poprawek w dalszej części procesu technologicznego. Badanie powierzchni izolatorów. Na gwincie izolatorów mogą wystąpić ubytki materiału lub zniekształcenia gwintu, eliminujące produkt. Jakość gwintu oceniana jest przez narzędzia pomiarowe do pomiaru odległości pomiędzy rowkami gwintu. Ubytki identyfikowane są przez narzędzia do badania intensywności odbitego światła - powierzchnie z ubytkami rozpraszają światło, co umożliwia określenie i eliminację wadliwego produktu. Kontrola wykonania komputerowych płyt głównych Sprawdzanie prawidłowego montażu komputerowych płyt głównych. Na płytach kontrolowane mogą być wszystkie elementy. Na podstawie informacji o braku któregokolwiek elementu płyta kierowana jest do „poprawki”. Na tym samym obrazie dokonywane jest również sprawdzanie poprawności oznaczeń naniesionych na elementy płyty. Diagnostyka gwintów. Na obudowie skrzyni biegów kontrolowane są gwinty w otworach do mocowania. System ma za zadanie rozpoznać, czy w otworach wykonane są gwinty, nie kontrolując ich stanu. Zadanie wykonuje jedna kamera obserwując korpus skrzyni biegów oświetlony kilkoma źródłami światła. Oceniana jest intensywność światła w otworach. Powierzchnia wewnętrzna otworu bez gwintu przy takim oświetleniu nie odbija światła i widoczna jest jako ciemny obszar. Ocena natężenia światła odbitego przez powierzchnię gwintowaną jest podstawą do oceny prawidłowego wykonania korpusu. Ocena jakości wykonania gwintów. W elemencie montowanym w systemach hamulcowych kontrolowana jest jakość gwintów. Warunkiem poprawnego wykonania gwintu jest wykonanie co najmniej czterech jego stopni. Element 3.1 Zastosowanie systemów wizyjnych 10 jest obracany przed kamerą w taki sposób, aby możliwe było kontrolowanie każdego z otworów. Stopnie gwintu zliczane są przez narzędzie pomiarowe, umożliwiające liczenie przejść pomiędzy jasnymi i ciemnymi elementami gwintu. Kontrola dokładności wykonania elementów. Przy produkcji piast do kół samochodów ciężarowych mogą występować błędy związane z wykonaniem nieprawidłowego odlewu oraz z błędnym wykonaniem otworów piasty. Diagnostyka prowadzona jest na linii produkcyjnej. Piasty oświetlane są w taki sposób, aby otwory widoczne były w postaci ciemnych plam. Za pomocą odpowiednich narzędzi ciemne plamy są identyfikowane i odczytywane są ich pozycje, odpowiadające pozycjom otworów na kole piasty. Narzędzia pomiarowe obliczają następnie odległości otworów względem osi piasty. Elementy wykonane wadliwie usuwane są z linii produkcyjnej. Robotyka Współpraca systemu wizyjnego z robotem przemysłowym. Diagnostyka polega na zbadaniu kilkunastu parametrów silnika produkowanego na tej linii. Robot ustawia kamerę nad kolejnymi elementami silnika. Kamera na podstawie przygotowanego programu diagnostycznego przeprowadza inspekcję kolejnych elementów. Po wykonaniu zadania przesyła ona informację do robota o gotowości do wykonania następnego zadania. Informacje i wyniki pomiarów oraz wyniki kontroli kolejnych elementów przesyłane są do bazy danych w celu tworzenia historii produktu. Wykorzystując zaawansowane algorytmy, system przetwarzania obrazu jest w stanie mierzyć wielkość i prędkość, zliczać oraz rozpoznawać obserwowane obiekty szybciej, dokładniej i znacznie skuteczniej niż człowiek. Pozwala to na tworzenie aplikacji automatycznie kontrolujących procesy bez konieczności ingerencji w obserwowane zjawiska [16]. Ograniczanie kosztów wytwarzania Zastosowanie automatycznych systemów wizyjnych pozwala zwiększyć możliwości produkcyjne nawet w najlepiej zorganizowanych przedsiębiorstwach. Rozmieszczone na linii produkcyjnej punkty kontroli jakości umożliwiają eliminację wad w trakcie procesu produkcji, dając gwarancję wysokiej jakości produktów końcowych. Dzięki temu można obniżyć jednostkowe koszty wytwarzania, zwiększając tym samym konkurencyjność firmy na rynku. Nakłady na systemy wizyjne na ogół zwracają się po niedługim czasie ich eksploatacji. 3.1 Zastosowanie systemów wizyjnych 3.1.2 11 Zastosowanie w siłach zbrojnych Amerykańska wykorzystuje różne roboty wojskowe m.in. w Iraku, Afganistanie i Izraelu. Zadania jakie wykonują mają charakter defensywny. Przykładowo robot Talon firmy Foster-Miller i PackBot z konkurencyjnej firmy iRobot specjalizują się w rozbrajaniu min. Te mobilne roboty kontrolowane przez operatora znajdującego się w opancerzonym pojeździe potrafią poruszać się z dużymi prędkościami i wykorzystywać manipulatory i chwytaki do umieszczania małych ładunków wybuchowych w pobliżu min - ładunki te później są odpalane, przez co mina zostaje rozbrojona [1]. Obecne wersje tych robotów są rozwijane tak, aby mogły wspierać żołnierzy w przemieszczaniu się i ostrzeliwaniu wroga. iRobot zbudował prototyp wyposażony w broń palną. Robot Sword firmy Foster-Miller tym różni się od PackBota, że zamiast manipulatora posiada urządzenie z zamocowanym karabinem maszynowym. Urządzenie to jest przeznaczone do walk na obszarach miejskich i ochrony granic danego terytorium i jest całkowicie kontrolowane przez żołnierza. Nie mniej jednak bardziej skomplikowane maszyny mogą wkrótce trafić na deski kreślarskie inżynierów. Raport opublikowany przez przynależące do Pentagonu biuro Office of Naval Research (ONR) mówi o tym, że w przyszłości będzie zapotrzebowanie na roboty, które w pewnych sytuacjach będą samodzielnie podejmowały decyzje. Raport mówi o konstrukcjach robotów mobilnych, które są w stanie odróżnić swoich żołnierzy od nieprzyjaciół i powiadomić swojego operatora w razie wykrycia zagrożenia. Urządzenia takie działałyby na bazie specjalistycznego oprogramowania wykorzystującego system sztucznej inteligencji analizujący dane pobierane przez „system monitorowania ludzkiego stresu”, systemy rozpoznawania głosu i gestów człowieka. Na podstawie tych informacji oprogramowanie określiłoby stopień zagrożenia w odniesieniu do konkretnego człowieka. 3.1.3 Zastosowanie z udziałem kognitywistyki Eksperymenty z udziałem prawdziwych i symulowanych robotów sugerują, że związek pomiędzy ruchem fizycznym a sygnałami płynącymi do systemów sensorycznych może okazać się bardzo istotny przy opracowywaniu bardziej inteligentnych maszyn [1]. Testy z udziałem dwóch prawdziwych i jednego zasymulowanego robota pokazują, że informacje zwrotne przekazywane pomiędzy systemem czujnikowym a ruchem robota decydują o jakości nawigacji maszyny w otoczeniu. Lepsze zrozumienie tego typu relacji może pomóc naukowcom zbudować sztuczne mechanizmy przypominające żywe stworzenia. Typowym dla naukowców specjalizujących się w sztucznej inteligencji jest rozdzielanie zachowania fizycznego od informacji płynących do systemu sensorycznego. 3.2 Rozpoznawanie i akwizycja obrazów 12 Do przeprowadzenia testów wykorzystano czteronożnego robota kroczącego, humanoidalny tułów i zasymulowany robot kołowy. Wszystkie trzy roboty zostały wyposażone w komputerowy system wizyjny zaprogramowany do „skupiania się” na obiektach o czerwonym kolorze, rozłożonych losowo wśród innych obiektów o innych kolorach. Robot kroczący i kołowy automatycznie zmierzają do czerwonych bloków zatrzymując się w ich sąsiedztwie, podczas gdy humanoid chwyta te bloki, przybliżając je do swojego sztucznego „narządu wzroku” i przekrzywiając głowę w celu lepszego widoku. Aby zmierzyć związek pomiędzy ruchem a wizją, badacze zarejestrowali informacje ze przegubów i pola widzenia robotów. Zastosowali techniki matematyczne, aby zobaczyć jak wiele związków przyczynowych zawiązało się pomiędzy sygnałami wejściowymi do systemu czujnikowego a aktywnością napędów [14]. Potwierdziło to, że da się zaobserwować związki przyczynowe dwóch wspomnianych rodzajów, tzn. informacja płynie od systemu czujnikowego do systemu napędowego, ale także z systemu napędowego do systemu czujnikowego. Jest to ważna demonstracja eksperymentalna aspektu modelu wbudowanego poznawania. Czyni to z niego zjawisko bardziej praktyczne, a mniej teoretyczne, tak jak to miało miejsce do tej. 3.2 Rozpoznawanie i akwizycja obrazów Przetwarzanie obrazów i rozpoznawanie obrazów są względnie zamkniętymi obszarami zastosowania komputerów, które wspólnie definiują pole komputerowej wizji. Jest pewna analogia pomiędzy systemem komputerowej wizji i systemem wzrokowym człowieka. Komputerowe przetwarzanie obrazu jest analogiem procesu, który ma miejsce w ludzkim oku i nerwie optycznym. Rozpoznawanie obrazu reprezentuje w większym stopniu percepcję wizualną, która ma miejsce w ludzkim mózgu. Zadania komputerowej wizji przekraczają zadania rozpoznawania obrazów. Tylko niewielka ich część może być opisana przez klasyczny układ rozpoznawania, kiedy zadany jest skończony alfabet klasyfikacji, wystarczająco prosty model opisu klasyfikowanego obiektu (obrazu) i znaleziono regułę decyzyjną, odnoszącą obraz do jednej z wcześniej zadanych klas [12]. Rozpoznawanie obrazu to przetwarzanie obrazu przez maszynę za pomocą urządzeń zewnętrznych (np. skaner) w opis cyfrowy tegoż obrazu w celu dalszego przetwarzania. Przykładem takiego działania jest OCR czy też OMR [11]. W rozpoznawaniu obrazów możemy wyróżnić dwie podstawowe specyfikacje: kryteria oceny efektywności metod i algorytmów oraz realizację tych algorytmów. Podstawowymi kryteriami oceny efektywności algorytmów rozpoznawania są szybkość działania i dokładność rozpoznania. Jeżeli chodzi o realizację algorytmiczną to bierzemy pod uwagę głównie realizacje na programowe na komputerach klasy PC (np.: C/C++) oraz realizacje sprzętowe, czyli wykorzystanie wyspecjalizowanych 3.2 Rozpoznawanie i akwizycja obrazów 13 układów takich jak procesory sygnałowe, matryce FPGA itp. Rysunek 3.3: Etapy procesu obróbki obrazu W procesie rozpoznania obrazu możemy wyróżnić następujące etapy: • Scena wizyjna - obraz poddawany rozpoznaniu, • Akwizycja - pobranie i wstępne przygotowanie obrazów do rozpoznania • Filtracja - usuwanie z obrazu pewnych jego fragmentów (szumu, obiektów), • Segmentacja - przekształcenie obrazu w inny zawierający wyraźnie wyodrębnione obiekty znajdujące się na obrazie oryginalnym, • Analiza - wyznaczenie pewnych cech obiektów (opis obiektów przy pomocy liczb), klasyfikacja, • Dane wyjściowe - wynik; prawidłowy lub nieprawidłowy obiekt, klasa do której przynależy itd. Podczas obróbki obrazu wykonujemy operacje dzięki którym obraz staje się bardziej czytelny. Mogą to być operacje punktowe na jednym obrazie z zastosowaniem tablicy korekcji oraz operacje punktowe na dwóch obrazach. Metody punktowe to takie, w których wartość punktu obrazu wyjściowego zależy od wartości punktu obrazu wejściowego o tych samych współrzędnych. W metodzie tej nie uwzględniamy sąsiedztwa (inaczej niż w filtrach splotowych i operacjach morfologicznych. Natomiast tablica korekcji (LUT, look-up-table), to tablica umożliwiająca zmianę odcieni szarości obrazu wejściowego zgodnie z wartościami zapamiętanymi w tej tablicy. Tablica ta jest indeksowana kolejnymi dopuszczalnymi odcieniami szarości, a wartość jej i-tego elementu określa jaką wartość przyjmą punkty obrazu wyjściowego, których odcień szarości na obrazie wejściowym wynosi i. tablica korekcji przechowuje zadaną krzywą tonalną, która jest jej praktyczną realizacją i umożliwia modyfikację obrazu zgodnie z tą krzywą [11]. Operacje wykorzystujące tablice korekcji LUT: • Negacja - wyznaczany jest negatyw obrazu. Przykład został pokazany na rysunku numer 3.4 • Operacje arytmetyczne: dodawanie - rozjaśnienie obrazu, problem z przepełnieniem (obcięcie, modulo). Przykład został pokazany na rysunku numer 3.5 3.2 Rozpoznawanie i akwizycja obrazów 14 Rysunek 3.4: Efekt działania operacji negacji (Źródło: [7]) Rysunek 3.5: Efekt działania operacji dodawania (Źródło: [7]) Rysunek 3.6: Efekt działania operacji odejmowania (Źródło: [7]) odejmowanie - przyciemnienie obrazu, problem z przepełnieniem (obcięcie, modulo).Przykład został pokazany na rysunku numer 3.6 mnożenie - rozjaśnienie obrazu, problem z przepełnieniem (obcięcie, modulo).Przykład został pokazany na rysunku numer 3.7 dzielenie - przyciemnienie obrazu, brak efektu przepełnienia. Przykład został pokazany na rysunku numer 3.8 • Rozciąganie histogramu - ma na celu zagospodarowanie całego spektrum dostępnym odcieni szarości. Przykład został pokazany na rysunku numer 3.9 • Wyrównywanie histogramu - ma na celu taką modyfikację obrazu, by roz- 3.2 Rozpoznawanie i akwizycja obrazów 15 Rysunek 3.7: Efekt działania operacji mnożenia (Źródło: [7]) Rysunek 3.8: Efekt działania operacji dzielenia (Źródło: [7]) Rysunek 3.9: Efekt działania operacji rozciągania histogramu (Źródło: [7]) kład liczby punktów na piksel względem odcieni szarości był równomierny, tj. by na każdy odcień szarości przypadała możliwie taka sama liczba punktów równa całkowitej liczbie punktów podzielonej przez liczbę odcieni szarości. Przykład został pokazany na rysunku numer 3.10 • Redukcja odcieni szarości - kwantyzacja, redukcja np. do 2 poziomów szarości. Przykład został pokazany na rysunku numer 3.11 3.3 Aktualne konstrukcje robotów mobilnych 16 Rysunek 3.10: Efekt działania operacji wyrównania histogramu (Źródło: [7]) Rysunek 3.11: Efekt działania operacji redukcji odcieni szarości (Źródło: [7]) • Korekcja gamma - uwypuklenie jednych szarości kosztem innych, poprawia kontrast ciemnych obszarów kosztem jasnych lub odwrotnie. Przykład został pokazany na rysunku numer 3.12 • Solaryzacja - częściowego lub całkowitego odwrócenia obrazu negatywowego na pozytywowy, • Pseudokolorowanie - konwersja obrazu w skali odcieni szarości z jednowymiarowej przestrzeni barw do przestrzeni barw, przypisanie określonym odcieniom szarości odpowiednich kolorów, zgodnie z naturą obrazu [8]. 3.3 Aktualne konstrukcje robotów mobilnych 17 Rysunek 3.12: Efekt działania operacji korekcji gamma (Źródło: [7]) Rysunek 3.13: Robot Virtsus R2 (Źródło: [6]) 3.3 3.3.1 Aktualne konstrukcje robotów mobilnych Miniaturowy Robot Inspekcyjny VIRTUS R2 Robot (pokazany na rysunku 3.13) oparty jest na podwoziu gąsienicowym. Moduły napędowy i moduł sterujący zostały zintegrowane w jednym elemencie. Kadłub został wzmocniony i dodatkowo uszczelniony. Umożliwi to pokonywanie przeszkód wodnych o głębokości 30-40 mm oraz pracę w środowisku zapylonym. W przedniej części kadłuba zainstalowano dwa refleksyjne czujniki optoelektroniczne, dzięki którym możliwe jest wykrycie przeszkód znajdujących się 150 mm 3.3 Aktualne konstrukcje robotów mobilnych 18 przed robotem. Zainstalowano dodatkowo z boku kadłuba między kołami zaczepy umożliwiające instalacje osłon kół lub innego wyposażenia. Do napędu użyto dwóch silników prądu stałego o napięciu 12 V. Przekładnie o przełożeniu 200:1 pozwalają na osiągnięcie maksymalnego momentu obrotowego wynoszącego 1 Nm. Dwukrotny wzrost momentu obrotowego odbył się kosztem prędkości. Doświadczenie pokazuje, że dla tego typu urządzeń prędkość nie jest bardzo ważnym czynnikiem w przeciwieństwie do możliwości radzenia sobie z przeszkodami terenowymi. Ważna jest również dopuszczalna masa dodatkowego wyposażenia jakie można zainstalować na robocie. Z silnikami zintegrowane są hallotronowe przetworniki obrotowo impulsowe. Dają one trzy impulsy na obrót wałka silnika co biorąc pod uwagę przełożenie daje 600 impulsów na obrót koła. Dla tego typu robotów jest zadowalająca dokładność pomiaru. Koła odznaczają się niewielką masą i są przystosowane do pracy w wodzie. Robot został wyposażony w moduł wykonawczy. Manipulator wykonany jest z profili aluminiowych. Składa się z dwóch członów i mini-chwytaka. Do jego napędu zastosowano dwa modelarskie serwomechanizmy HS-300 i jeden HS-80. Zastosowane mechanizmy odznaczają się zwartą budową, małymi wymiarami, niską masą i dużym momentem obrotowym. Na ramieniu manipulatora zainstalowano kamerę CCD. Umożliwia ona obserwację podczas poruszania się robota jak i wykonywania czynności manipulacyjnych [13]. Układ sterowania Głównym elementem układu sterowania jest jednostka centralna. Jednostka centralna oraz pozostałe elementy układu sterowania zasilane są z układu zasilania. Układ ten pozwala na zasilanie sterownika w bardzo szerokim zakresie napięć zasilania (8..48VDC). Układy sterowania silników pozwalają na realizację pracy nawrotnej. Układy te pracują w klasycznym układzie mostkowym i są sterowane przez jednostkę centralną metodą modulacji szerokości impulsu. Prędkość obrotową silników mierzona jest przez zliczanie w jednostkowych odcinkach czasu impulsów z fotooptycznych przetworników obrotowo-impulsowych zainstalowanych na wałkach silników napędowych. Dzięki temu w układzie sterowania napędu silników możliwe jest zrealizowanie układów automatycznej regulacji prędkości, różnicy prędkości i przemieszczenia kątowego. Jednostkę centralną tworzy pojedynczy układ mikrokontrolera jednomodułowego typu MSP430F149 firmy Texas Instruments. Jądrem mikrokontrolera jest szesnastobitowa jednostka arytmetyczno-logiczna o architekturze ortogonalnej ze zredukowaną listą rozkazów (RISC). Mikrokontroler posiada wewnętrzną reprogramowalną pamięć programu typu flash o pojemności 60 KB oraz 2KB pamięci o swobodnym dostępie typu RAM. Mikrokontroler zasilany jest ze źródła o napięciu 3,3V pobierając moc rzędu 5mW przy częstotliwości oscylatora kwarcowego równej 4,9152MHz. Układ sterowania napędów zaopatrzono w trzy opcjonalne interfejsy trans- 3.3 Aktualne konstrukcje robotów mobilnych 19 misji szeregowej: RS485, CAN 2.0B, RS232C. Dwa pierwsze przeznaczone są do zastosowań przemysłowych, ostatni do badań laboratoryjnych. Interfejs umożliwia dwukierunkową naprzemienną transmisję szeregową danych z prędkościami transmisji w zakresie 1 200..76 800Bd. Interfejs umożliwia sprzężenie jednostki sterowania napędami z zewnętrzną jednostką nadrzędną typu master drogą radiową (radiomodem) lub przez bezpośrednie połączenie kablowe. W warstwie aplikacyjnej zaimplementowano ogólnie znany i zweryfikowany w warunkach przemysłowych protokół komunikacyjny MODBUS-RTU zapewniający dostatecznie wysoki poziom bezpieczeństwa transmitowanych danych. Dla minimalizacji zużycia energii w kanale RS232 zastosowano energooszczędny układ z funkcją auto-shutdown, zaś w kanale RS485 układ sterownika magistrali o poborze prądu wynoszącym zaledwie 0,3mA. 3.3.2 Inne rozwiązania Istnieje wiele innych rozwiązań konstrukcyjnych mobilnych robotów kołowych, które znalazły zastosowanie w dziedzinie nauki i techniki [2]. Podstawowym kryterium klasyfikacji robotów kołowych jest ilość kół napędzanych i kierowanych. Tak więc 2-kołowy mobilny robot posiada dwa koła napędzane, pozostałe koła są tylko samonastawne. Przykładami takich robotów są między innymi Pioneer 2DX, firmy Activemedia, przedstawiony na rysunku 3.14a oraz robot Powerbot zilustrowany na rysunku 3.14b. wykonany w Katedrze Robotyki i Dynamiki Maszyn AGH. (a) Robot Pioneer 2DX (b) Robot Powerbot Rysunek 3.14: Roboty firmy Activemedia (Źródło: [11]) Innym przykładem mobilnego robota kołowego może być 3-kołowy mobilny robot (dwa koła napędzane, trzecie koło kierowane) B-14r firmy Activemedia zilustrowany na rysunku 3.15a. przeznaczony do pracy w halach produkcyjnych lub do tworzenia map. Przykładem mobilnego robota 4-kołowego jest Pioneer 2AT firmy Activemedia (cztery koła napędzane) zilustrowany na rysunku 3.15b. Ze względu na swoją 3.3 Aktualne konstrukcje robotów mobilnych (a) Robot B-14r 20 (b) Robot Pioneer 2AT Rysunek 3.15: Roboty firmy Activemedia (Źródło: [11]) konstrukcję nadaje się do prac terenowych. Podstawowym przeznaczeniem tego mobilnego robota jest zastosowanie go jako sondy zbierającej różnorodne dane, takie jak np. dane pogodowe lub informacje o ukształtowaniu terenu itp. Innym przykładem mobilnego robota 4-kołowego jest robot WIMIREK (rysunek 3.16a) skonstruowany w Katedrze Robotyki i Dynamiki Maszyn AGH, którego zadaniem jest walka Sumo z innymi robotami zgodnie z ustanowionymi zasadami zawodów dla tego typu urządzeń. Kolejnym przykładem mobilnego robota 6-kołowego jest również wykonany w Katedrze Robotyki i Dynamiki Maszyn AGH robot IMIREK 3.16a przeznaczony do udziału w walkach Sumo robotów. (a) Roboty: WIMIREK (z lewej) i IMIREK (z prawej) (b) Robot gąsienicowy BROKK BM 110 Rysunek 3.16: Roboty Katedry Robotyki i Dynamiki Maszyn AGH (Źródło: [11]) Innym przykładem mobilnego robota jest BROKK BM 110 (Lulea University of Technology), zilustrowany na rysunku 3.16b, jest to robot wyposażony w gąsienice, jego przeznaczeniem jest praca przy usuwaniu powierzchni drogowych. Robot ten jest w fazie projektów, jednak jest on bardzo interesującym rozwiązaniem. 3.3 Aktualne konstrukcje robotów mobilnych 21 Antyterrorystyczny robot inspekcyjno-interwencyjny (EOD/IEDD) INSPECTOR w swojej klasie wyróżnia się dużą siłą udźwigu i uciągu oraz zdolnością jazdy po trudnym terenie, a także pokonywania wysokich przeszkód [1]. Przedstawiony on został na rysunku 3.17 Rysunek 3.17: Antyterrorystyczny robot INSPECTOR (Źródło: [12]) Typowe zastosowania: • Inspekcja, przenoszenie i neutralizacja ładunków niebezpiecznych. • Wspomaganie operacji antyterrorystycznych. • Praca w warunkach szkodliwych lub niebezpiecznych dla człowieka. • Ochrona i inspekcja obiektów. • Współpraca z robotem EXPERT lub innym robotem. Unikatowe cechy robota INSPECTOR: • Robot może holować lub przepychać pojazdy samochodowe o masie do 1500 kg pozostawione na dowolnym biegu. • Gąsienica przednia (o zmiennym, zdalnie sterowanym nachyleniu) zwiększa możliwości trakcyjne, stabilizację wzdłużną oraz umożliwia płynne poruszanie się po schodach i znacznych nierównościach terenu. 3.3 Aktualne konstrukcje robotów mobilnych 22 • Manipulator robota posiada duży udźwig, który wynosi na wyciągniętych ramionach 30 kg, a na złożonych 60 kg. • Obrót podstawy manipulatora wynosi aż 400°. • Zachowanie stałej orientacji w przestrzeni poszczególnych części manipulatora podczas ruchu pozostałych ułatwia precyzyjne operowanie niebezpiecznymi ładunkami. • System kontroli robota umożliwia jednoczesne sterowanie wszystkimi jego napędami. • Program automatycznego składania manipulatora do pozycji transportowej przyspiesza i ułatwia przygotowanie robota do transportu. Robot jest standardowo wyposażony w cztery kamery kolorowe, zintegrowane w obudowach z podwójnymi reflektorami halogenowymi umożliwiającymi pracę przy niedostatecznym oświetleniu lub w całkowitej ciemności. Dwie kamery jezdne: jedna umieszczona jest z przodu platformy mobilnej na siłowniku nastawy kąta ruchomej gąsienicy przedniej. Dzięki temu pole widzenia operatora zmienia się wraz z podnoszeniem lub opuszczaniem gąsienicy przedniej. Druga skierowana do tyłu umieszczona jest na obrotowej podstawie manipulatora. Pole widzenia operatora zmienia się wraz z obrotem podstawy manipulatora. Kamera manipulacyjna umieszczona jest na chwytaku. Kąt widzenia kamer 90°. Kamera główna umieszczona jest na górnym ramieniu manipulatora. Jest ona zainstalowana na głowicy obrotowej, pozwalającej na obrót kamery w płaszczyźnie poziomej oraz pionowej. Kamera jest wyposażona w obiektyw o zmiennej ogniskowej z możliwością automatycznej regulacji przesłony oraz manualnej, zdalnej regulacji ostrości oraz ogniskowej (zoom). W zależności od warunków oświetleniowych. Antyterrorystyczny robot neutralizująco-wspomagający (EOD/IEDD) EXPERT jako pierwszy na świecie wykonuje wszystkie zadania w środkach transportu: samolotach, autobusach, wagonach kolejowych, okrętach oraz małych i ciasnych pomieszczeniach [1]. Może nie tylko do nich wjechać, lecz również wszędzie sięgnąć i podjąć ładunek z położnych wysoko lub trudno dostępnych zakamarków. Robot EXPERT Unikatowe cechy robota EXPERT: • Konstrukcja przedstawiona na rysunku 3.18 godzi ze sobą dwa sprzeczne wymogi: mała baza mobilna umożliwia manewrowanie w ciasnych pomieszczeniach, a jednocześnie manipulator ma duży zasięg i udźwig. • Gąsienice przednie (o zmiennym, zdalnie sterowanym nachyleniu) zapewniają stabilność konstrukcji przy pokonywaniu wysokich przeszkód oraz schodów. 3.3 Aktualne konstrukcje robotów mobilnych 23 Rysunek 3.18: Antyterrorystyczny robot EXPERT (Źródło: [11]) • Rozkładane stabilizatory boczne umożliwiają solidne zablokowanie położenia bazy mobilnej, co pozwala na bezpieczne podnoszenie dużych ciężarów oraz bardzo precyzyjne operowanie manipulatorem nawet przy jego pełnym bocznym wysięgu. Stabilizatory mogą zostać zdemontowane, co zmniejsza o 8 cm szerokość bazy mobilnej. • Zasięg manipulatora wraz z chwytakiem wynosi prawie 3 m. Dzięki wyjątkowo długiemu wysuwowi górnego ramienia możliwa jest inspekcja przestrzeni zarówno na wysokości półek na bagaże np. w samolocie jak i pod fotelami pasażerów. • EXPERT jest wyposażony w 6 kamer. Cztery kolorowe kamery rozmieszczone są: na chwytaku, z tyłu i z przodu robota oraz na manipulatorze (kamera główna z możliwością obrotu o 360° i 90° góra-dół). Ponadto dwie kolorowe kamery boczne umieszczone są po bokach przednich gąsienic, co pozwala na inspekcję np. przestrzeni pod fotelami. • System kontroli robota umożliwia jednoczesne sterowanie wszystkimi jego napędami. • System autodiagnostyczny wykrywa na bieżąco wszelkie usterki i wyświetla komunikaty tekstowe o nich na pomocniczym monitorze LCD. • Większość kabli robota oraz manipulatora przebiega wewnątrz konstrukcji, co zmniejsza ryzyko ich uszkodzenia. Robot posiada 6 kamer rejestrujących. Główna, kolorowa, na ruchomej zdalnie sterowanej głowicy, zdalna regulacja powiększenia. Dwie boczne przednie, kolorowe, szerokokątne służące do inspekcji przestrzeni po bokach bazy mobilnej. 3.3 Aktualne konstrukcje robotów mobilnych 24 Jezdna tylna, kolorowa, szerokokątna, jezdna przednia, kolorowa, szerokokątna oraz kamera chwytaka, kolorowa, szerokokątna. Wszystkie kamery z własnymi oświetlaczami halogenowymi (2 x 20W) lub z oświetlaczami diodowymi. Rozdział 4 Budowa systemu wizyjnego Pierwszym krokiem ku realizacji projektu było wybranie odpowiedniej technologii komunikacji z Mobotem i pozostałymi elementami, które służą do sterowania kamerą umieszczoną na robocie. Aby uzyskać jak największą swobodę poruszania robotem, oczywistym wyborem była łączność bezprzewodowa. Dostępnych systemów tego typu można znaleźć bardzo wiele na rynku, jednak aby koszty nie przerosły budżetu, należało znaleźć optymalne rozwiązanie. Nowoczesne technologie typu Wi-Fi czy Bluetooth [10] nadawałyby się zdecydowanie najlepiej do tego celu, jednakże po zbadaniu rynku okazało się, że w chwili dokonywania wyboru nie było na rynku polskim dostępnych modułów, które można by wykorzystać w pracy. Sprowadzenie zza granicy byłoby nie dość, że ryzykowne, ze względu na możliwy długi czas realizacji zamówienia i ewentualnych napraw, to koszt takich układów był znacznie wyższy od tych, wykorzystujących starsze technologie komunikacji radiowej. Z tych względów zdecydowano się na zakup dwóch urządzeń komunikujących się w paśmie radiowym 433MHz w firmie ARIES, mającej swoją siedzibę w Warszawie. Modem radiowy w wersji mini, zasilany stałym napięciem 5V, został zamontowany na płycie Mobota. Drugi modem, w wersji standard, zasilany napięciem sieciowym 230V, został podłączony do komputera, z którym komunikacja następuje za pośrednictwem interfejsu szeregowego RS-232. Na płytce modemu w wersji mini został zamontowany mikrokontroler ATmega8515, którego oprogramowanie moożna rozbudować o dodatkowe funkcje, dzięki udostępnionym kodom źródłowym programu, napisanego przez pana Ryszarda Szymaniaka z firmy ARIES. W ten sposób rozkazy wysyłane z komputera przez port COM trafiają do mikrokontrolera, który to interpretuje je i wysyła odpowiednie sygnały sterujące do Mobota i systemu sterowania kamerą. Szersze informacje na temat tych modemów oraz komunikacji między nimi znajdują się w rozdziale 4.1. Mając narzędzie do komunikacji bezprzewodowej, można było rozpocząć pracę nad sterowaniem Mobotem z komputera. W tym celu zmodyfikowano oprogramowanie robota tak, aby w zależności od sygnałów podawanych na porty mikrokontrolera sterującego silnikami Mobota, robot wykonywał określone czynności 26 takie, jak: • jazda w przód • jazda w tył • obrót w prawo • zwiększenie prędkości • zmniejszenie prędkości • stop Następnym krokiem było zaprojektowanie samego systemu wizyjnego - wybór odpowiedniej kamery, silnika obracającego nim oraz sterownika. Spośród wielu dostępnych kamer, należało poszukać takiego rozwiązania, które spełniałoby wyznaczone założenia, czyli: • małe rozmiary • zasilanie napięciem stałym maksymalnie wynoszącym 24V (co wynika z zastosowanego akumulatora w Mobocie) oraz w miarę niski pobór prądu • przesył obrazu w sposób bezprzewodowy • jak najniższa cena Po przejrzeniu dostępnych rozwiązań można powiedzieć, że rynek pod tym względem nie jest bogaty. Zdecydowanie łatwiej (ale i drożej) można kupić oddzielnie kamerę, nadajnik oraz odbiornik w paśmie telewizyjnym, niż kamerę ze zintegrowanym nadajnikiem. To rozwiązanie dodatkowo wymagałoby zastosowania tunera telewizyjnego w komputerze do odbioru sygnału wizyjnego. Ostatecznie wybór padł na zestaw firmy GRANDTEC - Grand RF, zawierający kamerę ze zintegrowanym nadajnikiem oraz odbiornik podłączany do komputera przez port USB, co jest bardziej uniwersalnym rozwiązaniem. O kamerze i odbiorniku można przeczytać szerzej w rozdziale 4.3 Ostatni element konstrukcyjny systemu wizyjnego robota to obrotnica do kamery. Zdecydowano się wykorzystać jeden z najprostszych silników krokowych, a mianowicie unipolarny silnik krokowy firmy WObit - 39BYG402U [3, 6] oraz sterownik tejże firmy - SUC63BK [4, 7]. Bezpośrednio na osi silnika została zamontowana kamera. Użycie takiego zestawu umożliwia dokładne i bezproblemowe sterowanie obrotu kamerą. Aby rozbudować funkcjonalność obrotnicy o zmienną szybkość obrotu, zbudowano dodatkowy układ generujący sygnał zegarowy do sterownika. Z powodu wykorzystania wszystkich timerów zarówno mikrokontrolera na Mobocie jak i w modemie bezprzewodowym, zdecydowano się użyć jednego z najprostszych 4.1 Modem radiowy firmy ARIES 27 Rysunek 4.1: Ogólny schemat komunikacji między poszczególnymi częsciami systemu mikrokontrolerów firmy Atmel, a mianowicie ATtiny2313. Napisany samodzielnie program umożliwia wybór kierunku obrotu silnika oraz jednej z siedmiu zaprogramowanych prędkości obrotu. Wybór poszczególnych funkcji odbywa się poprzez wysłanie rozkazu do modemu bezprzewodowego, który to przekazuje je dalej do mikrokontrolera. Szerzej cały system obrotu kamerą został opisany w rozdziale 4.4. 4.1 Modem radiowy firmy ARIES Zamówione modemy przeznaczone są do dwustronnej transmisji danych cyfrowych drogą radiową. Do modemów można dołączyć dowolny nadajnik/odbiornik danych wyposażony w uproszczony interfejs RS232 (linie TXD oraz RXD). Ich podstawowe parametry: /citepoz17 • transmisja radiowa half dupleks. • szybkość transmisji radiowej 19,2 kBaud • praca w paśmie 434,026MHz. • interfejs typu RS232 z możliwością ustawienia jednej z 7 szybkości transmisji: 4,8kB, 9,6kB, 14,4kB, 19,2kB, 38,4kB, 57,6kB i 115,2kB. 4.1 Modem radiowy firmy ARIES 28 • dwa formaty transmisji danych: prosty (każda odebrana transmisja radiowa jest wysyłana interfejsem RS232) i adresowany (odebrana transmisja jest identyfikowana poprzez adres nadawcy, jeżeli nadawcą jest modem-partner o znanym adresie, transmisja zostanie wysyłana interfejsem RS232, w przeciwnym wypadku jest ignorowana) • bufor transmisji do 255 bajtów. • moc nadajnika 10dBm. Rysunek 4.2: Modem radiowy w wersji mini Rysunek 4.3: Modem radiowy w wersji standard Dodatkowo na modemie został zamontowany przycisk (SW1) oraz dwie diody sygnalizacyjne LED - L1 oraz L2. Dioda L1 (czerwona) sygnalizuje, że modem wysyła dane, natomiast dioda L2 (zielona) oznacza, że modem odbiera dane. Przycisk posiada dwa zastosowania: 1. Gdy jest wciśnięty w momencie włączenia zasilania, modem wchodzi w tryb serwisowy. Możliwa jest wówczas współpraca z programem ARMSET i ustawienie parametrów modemu: • wybór szybkości interfejsu szeregowego RS232 • wybór formatu transmisji danych • ustawienie adresu własnego modemu • ustawienie adresu modemu-partnera, z którym będzie możliwa wymiana danych w formacie adresowanym Gdy modem znajduje się w tym trybie, obie diody sygnalizacyjne są zapalone. Wyjście z trybu serwisowego następuje po wyłączeniu zasilania układu. 4.1 Modem radiowy firmy ARIES 29 2. Poza trybem serwisowym przycisk realizuje transmisję testową, co sygnalizowane jest zapaleniem się diod L1 i L2 lub migotaniem diody L1. Jeżeli w tym czasie w zasięgu odbioru znajduje się drugi modem, odpowiada on podobną transmisją testową (L1 i L2 obydwu modemów świecą się), jeżeli drugi modem nie jest włączony lub odpowiedź jest błędna (na skutek np. zbyt dużej odległości pomiędzy modemami), migoce dioda L1. Modemy przesyłają dane drogą radiową w ramkach o maksymalnej długości do 255 bajtów. Kolejna transmisja z modemu nadawczego rozpoczyna się gdy: • urządzenie zewnętrzne prześle do modemu za pośrednictwem interfejsu RS232 255 bajty danych • przerwa po ostatnim przesłanym bajcie trwa dłużej niż czas potrzebny na przesłanie 2 znaków (przy wybranej szybkości transmisji interfejsu RS232) Po rozpoczęciu przesyłania danych drogą radiową interfejs RS232 pozostaje nieaktywny do czasu wysłania całej ramki. Po rozpoczęciu przesyłania danych drogą radiową interfejs RS232 pozostaje nieaktywny do czasu wysłania całej ramki. Moduł radiowy, przedstawiony na rysunku 4.4, (chip CC1000 firmy CHIPCON) połączono z mikrokontrolerem AVR ATmega8515, który jest odpowiedzialny za przygotowanie danych do transmisji, wysyłanie ich do modułu radiowego, odbiór danych i buforowanie. Rysunek 4.4: Moduł CC1000PP 4.1 Modem radiowy firmy ARIES 30 Rysunek 4.5: Połączenie pinów portów Mobota i modemu mini Ponieważ mikrokontroler ten posiada wiele niewykorzystanych pinów portów, postanowiliśmy wykorzystać je do wysyłania rozkazów sterujących do Mobota. W tym celu połączone są piny PC0..4 mikrokontrolera modemu mini z pinami PC3..7 mikrokontrolera Mobota, co przedstawia rysunek 4.5. Oryginalny program autorstwa Ryszarda Szymaniaka z firmy ARIES został uzupełniony o funkcję, która na podstawie odebranych danych znajdujących się w buforze, powoduje wyprowadzenie stanu logicznej jedynki bądź zera na wyjściach portów mikrokontrolera. Listę komend i reakcji mikrokontrolera ATmega8515 przedstawia tabela 4.1 Program Mobota został tak napisany, że każda zmiana stanu logicznego na pinie PC4 powoduje zwiększenie prędkości, a zmiana stanu na pinie PC3 powoduje zmniejszenie prędkości. Powyższe funkcje zostały opisane szerzej w rozdziale 4.2. Poza sterowaniem samym Mobotem, mikrokontroler ATmega8515 steruje także mikrokontrolerem ATtiny2313 odpowiedzialnym za podawanie sygnału zegarowego do sterownika silnika krokowego. Tu zostały wykorzystane piny PB5..7 mikrokontrolera ATmega8515 i PD0,1,4,6 mikrokontrolera ATtiny2313. Schemat połączeń przedstawia rysunek 4.6 Wszystkie funkcje realizowane przez mikrokontroler ATtiny2313 zostały opisane w rozdziale 4.4 Modem bezprzewodowy w wersji standard jest używany tylko i wyłącznie do wysyłania komend tekstowych (znaków) w niezmienionej postaci do modemu w wersji mini. Komunikacja z komputerem odbywa się z prędkością 9600bit/s a modemy komunikują się bez adresowania, tzn. nie jest sprawdzane, czy dane 4.2 Sterowanie Mobotem Komenda (znaki) ’S’ ’A’ ’B’ ’C’ ’D’ ’E’ ’F’ ’M’ ’N’ 31 PC0..3 PC3 PC4 000 001 010 X X 011 100 1 X 0 X 1 X 0 Funkcja stop w przód w tył obrót w lewo obrót w prawo zwiększenie prędkości zmniejszenie prędkości Tabela 4.1: Tabela stanów wyjść mikrokontrolera ATmega8515 Rysunek 4.6: Połączenie pinów portów Mobota i generatora pochodzą z modemu-partnera. Jest to związane z błędem w programie konfiguracyjnym ARMSET, dostarczonym przez firmę ARIES, uniemożliwiającym zapis adresu w pamięci modemu. 4.2 Sterowanie Mobotem Jak wspomniano w rozdziale 4.1, sterowanie Mobotem polega na wysłaniu przez port szeregowy odpowiednich komend sterujących do modemu radiowego w wersji standard, który to dalej przekazuje je modemowi na pokładzie mobota i do mikrokontrolera sterującego robotem. Dostarczony przez firmę WObit [4] kod programu mikrokontrolera w języku C umożliwił taką modyfikację, aby robot wykonywał odpowiednie czynności w zależności od sygnałów na portach PC3..7. 4.2 Sterowanie Mobotem Komenda (znak) PA0..2 PA3 ’x’ 000 ’r’ 001 ’t’ 010 ’y’ 011 X ’u’ 100 ’i’ 101 ’o’ 110 ’p’ 111 ’j’ 1 X ’k’ 0 32 Funkcja stop prędkość 1 prędkość 2 prędkość 3 prędkość 4 prędkość 5 prędkość 6 prędkość 7 kierunek w lewo kierunek w prawo Tabela 4.2: Tabela stanów wyjść mikrokontrolera ATmega8515 Rysunek 4.7: Mobot z zamontowanymi wszystkimi modułami Prędkość obrotu każdego z dwóch silników jest regulowana zmiennymi: global left speed oraz global right speed z ograniczeniem w postaci stałych GLOBAL MAX SPEED=1023 i GLOBAL MIN SPEED=175. Po włączeniu Mobota silniki są zatrzymane. Po wybraniu opcji jazdy robota w programie Mobot Rider, prędkość jest ustawiana na wartość 300. Każda zmiana stanu (0 → 1, 1 → 0) na pinie PC4 mikrokontrolera ATmega8515 powoduje zwiększenie prędkości o wartość 100. Każda zmiana stanu na pinie PC3 natomiast, powoduje zmniejszenie prędkości o wartość 100. 4.3 Kamera 33 Kierunek obrotu silników jest zależny od tego, czy wartość prędkości jest dodatnia, czy też ujemna. I tak jazda w przód to ustawienie obu wartości na dodatnie, w tyłu obu na ujemne, z kolei obrót w lewo bądź w prawo wymaga podania jednej wartości dodatniej, a drugiej ujemnej. 4.3 Kamera Do niniejszej pracy zdecydowano się wykorzystać kamerę Grand RF CMOS USB firmy Grandtec. Kamery tego typu zużywają mniej prądu niż urządzenia CCD, przez co lepiej nadają się do urządzeń przenośnych. Wybrany przez nas model oferuje bezprzewodową łączność na odległość do 100m, 4 kanały transmisji i odbioru sygnałów, które mogą być zastosowane w przyszłości w innych projektach wykorzystujących systemy wizyjne, a także przesył obrazu o stosunkowo wysokiej rozdzielczości 330 linii jak również dźwięku. Dobre parametry kamery pozwalają na rozbudowę systemu wizyjnego np. o wykrywanie ruchów na obrazie lub reakcję na odpowiednie dźwięki. Dzięki interfejsowi USB moduł odbiorczy można szybko podłączyć do każdego komputera, co niewątpliwie świadczy o jego wysokiej mobilności. Rysunek 4.8: Zestaw Grand RF CMOS USB firmy Grandtec Odbiornik posiada szereg wejść i wyjść audio/video umożliwiających podłączenie do niego takich urządzeń jak telewizor, kamera, głośniki lub odtwarzacz DVD. Dzięki temu, możliwe jest oglądanie oraz nagrywanie obrazu z kamery na kilku urządzeniach jednocześnie (rysunek 4.9) Standardowo w opakowaniu do zestawu (rysunek 4.8) dołączany jest uchwyt, na którym mocowana jest kamera. Dzięki niemu możliwe jest swobodne skierowanie kamery na obserwację dowolnego obszaru i jednocześnie stabilne jej umocowanie uniemożliwiające niekontrolowane zmiany kątów położenia. Uchwyt ten jest 4.3 Kamera 34 Rysunek 4.9: Schemat możliwych połączeń urządzeń peryferyjnych do odbiornika (Źródło: [5]) jednak przystosowany tylko do montowania kamery na gładkich płaszczyznach, poprzez nóżkę o podstawie koła, którą można przykręcić do podłoża za pomocą trzech śrub. Jednakże takie rozwiązanie uniemożliwa zamontowanie uchwytu na osi silnika. Dlatego też, w tym celu zaprojektowano od nowa i skonstruowano nowy uchwyt trzymający kamerę, którego schemat przedstawia rysunek 4.10. Rysunek 4.10: Uchwyt do kamery Podstawowym elementem, który umożliwia sztywne trzymanie na osi silnika jest twarda guma. Ciasno naciśnięty na wałek osi silnika uchwyt daje stabilne trzymanie, a dodatkowym atutem tego rozwiązania jest to, że wszelkie nierówności w pracy silnika krokowego (drgania, szarpnięcia) są absorbowane przez gumę. 4.4 Sterowanie kamerą 35 Dzięki temu odbierany obraz podczas obracania kamery będzie bardziej płynny. Kamera z uchwytem została przedstawiona na rysunku 4.11. Rysunek 4.11: Kamera z uchwytem mocującym 4.4 Sterowanie kamerą Do sterowania kamerą wykorzystano hybrydowy silnik krokowy unipolarny 39BYG402U firmy WObit [4, 3, 6], przedstawiony na rysunku 4.12. Jego podstawowe parametry pracy: • obrót 1,8° na jeden krok • napięcie 12V • prąd 0,5A • trzymający moment 0,29Nm Silniki hybrydowe są najnowocześniejszym typem silników krokowych [3]. Silnik hybrydowy jest bardziej kosztownym niż silnik z magnesem trwałym cechuje się za to lepszymi parametrami, jeśli chodzi o rozdzielczość i szybkość. Zasada 4.4 Sterowanie kamerą 36 Rysunek 4.12: Silnik 39BYG402U działania silnika opiera się na tym, że magnes trwały umieszczony na wirniku lub na stojanie wytwarza jednako biegunowy strumień magnetyczny, który zamyka się w obwodzie magnetycznym: stojan -szczelina powietrzna - wirnik. Po zasileniu uzwojenia stojana impulsem sterującym, wzbudzony strumień magnetyczny pod jednym biegunem stojana dodaje się do strumienia magnesów trwałych, pod drugim zaś odejmuje się. Wirnik zostaje wprowadzony w ruch tak, by osie zębów stojana i wirnika bieguna o strumieniu wzmacniającym pole magnetyczne pokryły się. Typowe kąty silnika hybrydowego mieszczą się w zakresie 3,6 - 0,9 tj. 100 400 kroków na obrót. Silnik hybrydowy łączy w sobie zalety silnika ze zmienną reluktancją i silnika z magnesem stałym. Rotor silnika ma wiele zębów i posiada osiowo namagnesowane magnesy umieszczone koncentrycznie wokół osi. Zęby rotora zapewniają lepszą drogę przepływowi magnetycznemu co polepsza charakterystyki momentu spoczynkowego i dynamicznego w porównaniu z silnikami z magnesem stałym i reluktancyjnym. Zdecydowano się na wybór silnika krokowego ze względu na jego zalety, takie jak: • proporcjonalność kąta obrotu silnika do ilości impulsów wejściowych • precyzyjne pozycjonowanie i powtarzalność ruchu • możliwość bardzo szybkiego rozbiegu, hamowania i zmiany kierunku • możliwość osiągnięcia bardzo niskich prędkości z obciążeniem umocowanym bezpośrednio na osi 4.4 Sterowanie kamerą 37 • szeroki zakres prędkości obrotowych Do sterowania silnikiem wykorzystano sterownik SUC63BK firmy WObit [4, 7] (rysunek 4.13). Podawanie sygnału zegarowego na wejście CLK powoduje obrót silnika - jeden okres to jeden krok, czyli obrót o 1,8°. Natomiast w zależności od podawanego na wejście sygnału DIR (’0’ lub ’1’ logiczne) - silnik obraca się w lewą bądź prawą stronę. Dodatkowo wyprowadzone ze sterownika wyjścia 5V daje możliwość do zasilania modemu radiowego oraz generatora sygnału zegarowego. Rysunek 4.13: Sterownik SUC63BK Generator sygnału zegarowego (rysunek 4.14)został zbudowany na bazie układu ATtiny2313, a program do niego napisany w Assemblerze. Jego zadaniem jest podawanie na wejście sterownika silnika sygnału CLK z jedną z zaprogramowanych częstotliwości. Rysunek 4.14: Generator sygnału zegarowego Wybór częstotliwości odbywa się za pomocą pinów PD3,4,6, co przedstawia tabela 4.3 4.4 Sterowanie kamerą Stan pinów PD3,4,6 000 001 010 011 100 101 110 111 38 Częstotliwość [Hz] stałe 0 40 50 60 70 80 90 100 Funkcja stop prędkość1 prędkość2 prędkość3 prędkość4 prędkość5 prędkość6 prędkość7 Tabela 4.3: Wartości częstotliwości na wyjściu w zależności od stanów logicznych wejść Wyjście kierunku z mikrokontrolera ATtiny2313 znajduje się pod pinem PB3, a clocka pod pinem PB4. W celu uzyskania stałej częstotliwości wykorzystano 16bitowy timer1, który generuje przerwanie za każdym razem, gdy się przepełni. Wpisując odpowiednią wartość do rejestru TCNT1 można zmieniać częstotliwość generowanych przerwań. W momencie przerwania następuje zmiana stanu wyjściowego na przeciwny. W wyniku przeprowadzonych testów okazało się, że obliczone wartości wpisywane do rejestru timera nie dają w wyniku dokładnie takich częstotliwości, jakie podaje tabela. Dokładniej uzyskiwane częstotliwości zostały opisane w rozdziale 6.2 Rysunek 4.15: Wyprowadzony interfejs ISP Dodatkowo, z uwagi na dochodzący do kamery kabel zasilania, postanowiono ograniczyć ruch kamery do zakresu 180° (po 90° w każdą stronę od pozycji zerowej). Zostało to osiągnięte przez podanie sygnału kierunku obrotu kamery najpierw do układu ATtiny2313 i później doprowadzenie go w niezmienionej postaci do sterownika. Dzięki temu rozwiązaniu jesteśmy w stanie zliczać generowane impulsy i zapisywać je w oddzielnym rejestrze. Pozycja środkowa (kamera usytuowana na wprost kierunku jazdy) odpowiada wartości 100. Każdy impuls zegarowy powoduje zwiększenie bądź zmniejszenie tej wartości o 1. Gdy war- 4.4 Sterowanie kamerą 39 tość w rejestrze dojdzie do 0 bądź 200 - nie jest możliwy dalszy obrót kamery w stronę, w którą się obracała. Aby umożliwić ręczne ustawianie pozycji środkowej zmontowany został dodatkowo przycisk (SW1) podłączony pod przerwanie mikrokontrolera. Jego naciśnięcie powoduje zapis w rejestrze wartości 100. Przycisk SW2 powoduje reset mikrokontrolera. Aby umożliwić łatwe programowanie układu, zostało obok wyprowadzone złącze ISP opisane na rysunku 4.15. Na oddzielnej płytce (rysunek 4.16) zostały umieszczone elementy pomocne przy podłączaniu silnika, sterownika, modemu i generatora. Poza tym, na płytce znajduje się jeszcze stabilizator napięcia 6V (7806), z którego jest dostarczane napięcie do kamery (rysunek 4.17). Rysunek 4.16: Płytka rozdzielająca napięcia i sygnały do silnika, sterownika, modemu i generatora Rysunek 4.17: Stabilizator napięcia 6V Rozdział 5 Oprogramowanie do sterowania Mobotem i akwizycji obrazu Do sterowania robotem oraz odczytu i zapisu na dysku twardym obrazu z kamery stworzone zostało autorskie oprogramowanie, gdyż aplikacje dostarczone do obsługi kamery oraz modemu firmy ARIES nie posiadały wymaganej funkcjonalności. Program „Motor Raider” został napisany w języku C# przy pomocy programu Visual Studio 2005. Wykorzystano w nim bibliotekę Direct Show .NET, która w znacznym stopniu ułatwia odczyt obrazu z kamery i jego archiwizacje. Poszczególne moduły programu zostały opisane w kolejnych podrozdziałach. Rysunek 5.1: Główny panel programu 5.1 Sterowanie robotem mobilnym przy użyciu modemu radiowego 5.1 41 Sterowanie robotem mobilnym przy użyciu modemu radiowego W pierwszej kolejności należy wybrać port szeregowy w komputerze, do którego podłączony jest moduł wysyłający, a następnie kliknąć przycisk „Połącz”. Jeżeli port ten będzie zajęty, tzn. inny program już z niego korzysta, na pasku stanu pojawi się odpowiedni komunikat, przedstawiony na rysunku 5.2: Rysunek 5.2: Błąd: brak dostępu Program posiada również zabezpieczenie przed otwarciem portu używanego już przez „Robot Raider’a”, zobrazowane na rysunku 5.3: Rysunek 5.3: Błąd: port otwarty Pasek stanu informuje użytkownika także o poprawnym wykonaniu procedury otwarcia oraz zamknięcia odpowiednich portów. Jeżeli połączenie z modułem wysyłającym zostało ustanowione, można zacząć sterować robotem. W tym celu należy użyć przycisków „Do przodu”, „Do tyłu”, „Lewo”, „Prawo” oraz „Stop”. Po przyciśnięciu któregoś z tych przycisków robot wykonuje żądaną operację, aż do wysłania innej komendy. Ponieważ sam Mobot skonstruowany jest tak, że nagła zmiana kierunku jazdy na przeciwny często kończy się nieprawidłową pracą silników, dlatego w programie zaimplementowano procedury mające na celu wyeliminowanie tego zjawiska. Przy komendach odpowiedzialnych za zmianę kierunku ruchu najpierw wysyłana jest komenda „Stop”, a następnie inicjowany jest ruch w wybranym kierunku. Przykładowy kod programu odpowiedzialny za ruch do przodu został pokazany na rysunku 5.4. Rysunek 5.4: Funkcja odpowiedzialna za ruch Mobota do przodu Powższa funkcja stosuje również opóźnienie wysłania komendy ruchu po komendzie „Stop”. Zostało to zastosowane z uwagi na niedużą prędkość przesyłania 5.2 Odczyt obrazu z kamery 42 danych przed modem oraz w celu zapewnienia Robotowi odpowiedniego czasu na zatrzymanie się. Zwiększanie i zmniejszanie prędkości ruchu realizowane jest za pomocą odpowiednio przycisków „Szybciej” i „Wolniej”, których realizacja programowa jest taka sama, jak funkcji ruchu. Sposób obracania kamerą jest podobny do sterowania robotem. W pierwszej kolejności należy ustawić prędkość obrotu używając suwaka. Po uruchomieniu programu prędkość ustawiona jest na 0. Jeżeli chcemy ją zmienić, wystarczy przeciągnąć myszką strzałkę ustawiając ją na odpowiednim poziomie. Jeżeli ustawimy już odpowiednią prędkość, to możemy sterować obrotem kamery naciskając i przytrzymując przyciski „Lewo” lub „Prawo”. Kamera obraca się do momentu osiągnięcia maksymalnego kąta wychylenia. 5.2 Odczyt obrazu z kamery W celu odczytu obrazu z odbiornika podłączonego do portu USB wykorzystano technologię DirectShow umożliwiającą obsługę strumieni wideo i audio na platformach Microsoft Windows. Pozwala ona między innymi odtwarzanie plików medialnych, pobieranie obrazu i dźwięku z urządzeń zewnętrznych takich jak kamery cyfrowe i karty telewizyjne, kodowanie/dekodowanie strumienia oraz dostęp do poszczególnych klatek ideo i ich przetwarzanie. DirectShow obsługuje większość popularnych plików medialnych (m.in. AVI, WAV, ASF, MIDI) oraz formatów kompresji (MPEG-1, MPEG-4, MP3). W pierwszej kolejności należy wybrać urządzenie, z którego będziemy przechwytywać sygnał wideo/audio spośród tych, które zainstalowane są na komputerze użytkownika komputerze. Dokonuje się tego z poziomu menu „Urządzenia”, co zostało zaprezentowane na rysunku 5.5: Rysunek 5.5: Menu wyboru urządzenia wideo Po wykonaniu tej operacji można uruchomić podgląd obrazu z kamery naciskając przycisk „Podgląd”. Jeżeli urządzenie zostało poprawnie podłączone, na formatce powinno wyświetlić się okno umożliwiające podgląd strumienia wideo, widoczne na rysunku 5.6. Istnieje również możliwość wywołania okien pozwalających na zmianę parametrów obrazu otrzymywanego z wybranego urządzenia. Operacje te inicjujemy uruchamiając z menu „Ustawienia” odpowiednie okna dialogowe (rysunek 5.7). Dla przykładu okno Video Capture Device umożliwia zmianę formatu wyświetlanego obrazu na SECAM lub NTSC (rysunek 5.8). 5.2 Odczyt obrazu z kamery Rysunek 5.6: Podgląd obrazu z kamery Rysunek 5.7: Opcje wideo Rysunek 5.8: Dialog opcji wideo 43 5.3 Zapis obrazu z kamery na dysku twardym 44 Przydatna jest również zakładka odpowiedzialna za parametry obrazu (jasność, kontrast, odcień i nasycenie), zaprezentowana na rysunku 5.9. Rysunek 5.9: Dostosowanie opcji obrazu Jest to bardzo wygodne narzędzie, z którego prosto i szybko można korzystać w trakcie akwizycji obrazu. Jego główną zaletą jest to, że ustawienia zmieniane są z poziomu sterownika urządzenia, dlatego ich rezultat jest momentalnie widoczny na obrazie z kamery. Wpływ poszczególnych parametrów na obraz ilustruje rysunek 5.10 Dodatkowo ustawienia są na stałe zapisywane w plikach konfiguracyjnych, więc nie ma potrzeby kalibracji obrazu przy każdym uruchomieniu kamery. 5.3 Zapis obrazu z kamery na dysku twardym Strumień wideo odczytywany z kamery USB możemy zapisać w postaci pojedynczych zdjęć lub pliku z filmem w formacie *.avi. W celu zachowania na dysku aktualnie wyświetlanej klatki obrazu naciskamy przycisk „Zrzuć”. Wynikiem tej operacji będzie zapisanie na dysku zdjęć w formacie *.jpg o takiej samej rozdzielczości , jak obraz otrzymywany z kamery. Aby łatwiej archiwizować zapisywane pliki, ich nazwa składa się z daty oraz godziny utworzenia danego zrzutu ekranowego. Plik z filmem *.avi tworzymy z kolei naciskając przycisk „Nagrywaj”. Po tej operacji do pliku zostaną zapisywane kolejne klatki wideo. Należy pamiętać, ze jest to plik nieskompresowany, dlatego nie należy stosować zbyt długich nagrań, gdyż może to wyczerpać dostępną wolną przestrzeń dyskową. Jeżeli chcemy skończyć nagrywanie filmu naciskamy przycisk „Stop”. Zachowany plik możemy wtedy odczytać np. przy użyciu odtwarzacza Windows Media Player. 5.3 Zapis obrazu z kamery na dysku twardym 45 (a) Obraz oryginalny (b) Obraz czarno-biały (c) Obraz ze zwiększoną jasnością i kontrastem (d) Obraz ze zwiększonym kontrastem i nasyceniem Rysunek 5.10: Wpływ parametrów obrazu System nazewnictwa filmów jest taki sam, jak w przypadku zrzutów ekranowych. Użytkownik ma jednak możliwość wyboru, do którego katalogu program ma zapisywać plik, wybierając odpowiednie ścieżki w opcjach „Ścieżka zapisu zdjęć” i „Ścieżka zapisu wideo” w menu „Ustawienia”. Program do sterowania robotem oraz akwizycji obrazu został napisany obiektowo. Umożliwia to wykorzystanie jego poszczególnych modułów w innych projektach, jak również ułatwia jego rozbudowę o dodatkowe komponenty, np. algorytmy rozpoznawania kształtów. Warto również zauważyć, iż w stworzonej aplikacji zaimplementowano mechanizmy zabezpieczające przez błędami mogącymi pojawić się w trakcie jego użytkowania, czego nie posiadały programy dostarczone zarówno Mobotem, jak i modemem ARIES. Rozdział 6 Analiza systemu wizyjnego Testy przeprowadzono w pomieszczeniu zamkniętym. Ze względu na złe warunki pogodowe niemożliwe było przeprowadzenie testów w przestrzeni otwartej. Analiza obejmowała: • Badanie zasięgu sygnału modemu radiowego • Badanie zasięgu sygnału nadajnika kamery • Sprawdzanie jakości obrazu kamery w zależności od odległości od nadajnika 6.1 Testy odległościowe Analiza została przeprowadzona w Domu Studenckim Nr 1. Nadajnik modemu radiowego w wersji standard i odbiornik sygnału kamery znajdowały się w pomieszczeniu laboratoryjnym nr 3 na parterze, natomiast Mobot został umieszczony kolejno na: • parterze • I piętrze • II piętrze Pomimo, iż oba urządzenia wykorzystują fale radiowe do transmisji danych, ich zasięg różni się. Testy wykazały, że kamera wysyła obraz na mniejszą odległość niż modem radiowy, co jest związane z pracą tych urządzeń na różnych częstotliwościach - kamera działa w paśmie 2,4 GHz, natomiast modem 434,026 Mhz. Na parterze modemy radiowe komunikowały się bez zakłóceń na całej powierzchni badanego obszaru, natomiast sygnał z kamery tracił jakość w miarę 6.1 Testy odległościowe (a) Widok z kamery 47 (b) Ten sam widok 0.5m dalej Rysunek 6.1: Zakłócenia obrazu z kamery na parterze oddalania się od źródła sygnału. Gdy między robotem a komputerem znajdowały się dwie ściany, obraz z kamery zanikał zupełnie. Przedstawia to rysunek 6.1 Na I piętrze nad laboratorium nr 3 obraz z kamery był dobrej jakości, natomiast w miarę oddalania się od laboratorium zakłócenia zwiększały się 6.2a aż w odległości ok. 25m obraz zanikł zupełnie 6.2b. Modem radiowy natomiast na całym I piętrze działał bez zarzutów. (a) Widok z kamery (b) Ten sam widok 0.5m dalej Rysunek 6.2: Zakłócenia obrazu z kamery na I piętrze Na II piętrze nad laboratorium nr 3 modem radiowy odbierał poprawnie rozkazy z komputera, natomiast po oddaleniu się o ok. 5m na korytarzu - sygnał został utracony i nie dało się już sterować robotem. Obrazu z kamery nie było na całym II piętrze. 6.2 Częstotliwość generowanego sygnału zegarowego 6.2 48 Częstotliwość generowanego sygnału zegarowego Zgodnie z opisem w rozdziale 4.4, z powodu użycia wewnętrznego oscylatora w mikrokontrolerze ATtiny2313, obliczona częstotliwość nie odpowiada dokładnie rzeczywistości. Jest to wynikiem użycia wewnętrznego oscylatora zintegrowanego z układem, którego dokładność wg producenta wynosi ±10%. Prawdziwe, zmierzone wartości przedstawia tabela 6.1. Na jej podstawie można obliczyć, że częstotliwość taktowania mikrokontrolera nie wynosi dokładnie 1Mhz, a 1,015MHz. Błąd więc zawiera się w granicy deklarowanej przez producenta i wynosi w tym przypadku 1,015%. Należy nadmienić, iż błąd ten nie ma żadnego wpływu na pracę układu sterowania kamerą. Częstotliwość Częstotliwość teoretyczna rzeczywista 100 101.5 90 91.3 80 81.2 70 70.9 60 60.8 50 50.7 40 40.6 Tabela 6.1: Częstotliwość teoretyczna a rzeczywista Rozdział 7 Podsumowanie Głównym założeniem w pracy była budowa systemu wizyjnego robota mobilnego. Cel ten został osiągnięty poprzez wyposażenie robota w kamerę umożliwiającą obserwację otoczenia w jakim robot miałby się poruszać, przez zbudowanie systemu bezprzewodowej transmisji danych oraz przez realizacje programową akwizycji obrazu zebranego przy pomocy kamery. Szczegółowy zakres pracy obejmował: • wybór sposobu bezprzewodowego przesyłania instrukcji do robota • wybór odpowiedniego modemu spośród urządzeń oferowanych na rynku • dobór i zakup odpowiedniego silnika i sterownika do poruszania kamerą • zaprojektowanie uniwersalnego generatora sygnału zegarowego potrzebnego do sterowania silnikiem krokowym • dobranie i zakup kamery o odpowiednich parametrach • zaprogramowanie zakupionego modemu bezprzewodowego w celu dostosowania go do sterowania robotem mobilnym • zaprogramowanie robota mobilnego do interpretacji rozkazów przysyłanych do niego za pomocą modemu radiowego • napisanie programu do mikrokontrolera AVR odpowiedzialnego za sterowanie kamerą umieszczoną na robocie • stworzenie aplikacji do sterowania robotem i odbioru oraz akwizycji obrazu z kamery internetowej W celu weryfikacji poprawności wykonania projektu przeprowadzono kilka testów. Analiza realizacji systemu wizyjnego opisanego w rozdziale szóstym, jest 50 dowodem na to iż stanowisko zostało zbudowane poprawnie i spełnia wszystkie założenia projektowe. W trakcie realizacji projektu napotkano na kilka różnych problemów: 1. Modemy zakupione w firmie Aries, początkowo były niedostosowane do naszych potrzeb. W ostateczności po poprawieniu kodu programowego można było w pełni wykorzystać ich możliwości. 2. Kolejnym problemem był sposób mocowania kamery do silnika. Po wielu rozważaniach wywnioskowano, że najlepiej będzie umieścić kamerę bezpośrednio na osi silnika. Wykonany samodzielnie uchwyt trzymający posiada gumę, która dodatkowo amortyzuje niedokładności pracy krokowej silnika. 3. Następną przeszkodą, którą dość szybko pokonano, było wysterowanie silnika tak, aby ograniczyć zakres obrotu i wyznaczyć pozycję „zerową”. Rozwiązanie ograniczenia obrotu osi silnika rozwiązano przez wpisanie do mikrokontrolera poleceń zliczających ilość impulsów podawanych na silnik i ograniczenie ich wartości skrajnych. Pozycję zerowania położenia rozwiązuje przycisk zamontowany na płytce, który zeruje liczbę zliczanych wcześniej impulsów. Po rozwiązaniu wszystkich problemów stwierdzono, że sprawnie działający układ może pełnić rolę stanowiska laboratoryjnego. Dodatkowo zbudowany system daje możliwośći rozbudowy: • Możliwe jest dodanie jednej płaszczyzny obrotu kamery. • Można zamontować sensory odległości i położenia, aby robot jeździł po wyznaczonym torze i nie zderzał się z przeszkodami. • Dodatkową opcją jest podłączenie małych reflektorów do rozświetlania obszaru widzenia przy słabej widoczności. Bibliografia [1] Strona internetowa http://www.asimo.pl. [2] Strona internetowa http://www.robotyka.com. [3] Strona internetowa http://www.silniki.pl. [4] Strona internetowa http://www.wobit.com.pl. [5] Dokumentacja modemu miface, 2006. [6] Specyfikacja silnika 39BYG402U, 2006. [7] Specyfikacja sterownika SUC63BK, 2006. [8] M. Ciecholewski. Algorytm pseudokolorowania obrazów medycznych. Elektrotechnika i Elektronika, 2005. [9] P. Cieśla. Instalacja automatyki w polsce. Biuletyn automatyki nr 3/2002, 2002. [10] T. Kindberg G. Coulouris, J. Dollimore. Systemy rozproszone. Podstawy i projektowanie. WNT, 1997. [11] M. Iwanowski. Inteligentne maszyny i systemy. PhD thesis, Politechnika Warszawska, 2006. [12] J. Szala L. Wojnar, K.J. Kurzydłowski. Praktyka analizy obrazu. PTS, Kraków, 2002. [13] P. Podgórski M. Bartyś, R. Chojecki. Robotyka mobilna. PhD thesis, Politechnika Warszawska, 2001. [14] W. Żylski M. J. Giergiel, Z. Hendzel. Modelowanie i sterowanie mobilnych robotów. Wydawnictwo Naukowe PWN, 2002. [15] H. Tylick M. T. Hoske. Systemy wizyjne maszyn. Control Engineering Polska, 2006. BIBLIOGRAFIA 52 [16] C. Pochrubniak. Automatyczne systemy wizyjne. Control Engineering Polska, 2005. [17] K. Wiatr. Akceleracja obliczeń w systemach wizyjnych. WNT, 2003.