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