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.

Podobne dokumenty