MODELOWANIE INŻYNIERSKIE 2017 nr 65 ISSN 1896-771X ZASTOSOWANIE METOD PRZETWARZANIA I ANALIZY OBRAZU W PROCESIE KALIBRACJI OPROGRAMOWANIA STERUJĄCEGO PRZEGUBAMI ROBOTA KROCZĄCEGO Instytut Informatyki Teoretycznej i Stosowanej, Politechnika Częstochowska katarzyna.gospodarek@icis.pcz.pl Streszczenie W artykule przybliżono przebieg procesu implementacji systemu sterującego dla prostej, dwunożnej konstrukcji kroczącej. Szczególny nacisk położono na problemy pojawiające się podczas integracji oprogramowania odpowiadającego za proces generowania chodu z rzeczywistym modelem robota. Zaproponowano wykorzystanie dodatkowych, kalibracyjnych elementów programowych, pozwalających m.in. na śledzenie położenia kluczowych punktów konstrukcji podczas ruchu. Zostały one wykorzystane do korekcji wpływu niekorzystnych czynników takich jak niedokładność wykonania konstrukcji czy też skomplikowana geometria kończyn. Główna funkcjonalność dodatkowego oprogramowania kalibracyjnego została oparta na metodach i algorytmach związanych z zagadnieniami z dziedziny analizy i przetwarzania obrazów. Słowa kluczowe: przetwarzanie i analiza obrazu, śledzenie obiektów, analiza ruchu członów, robot kroczący THE USE OF THE IMAGE PROCESSING AND ANALYSIS METHODS FOR CALIBRATION PROCESS OF SOFTWARE WHICH CONTROL THE JOINTS OF WALKING ROBOT Summary This paper discusses the process of the implementation of the control system for simple, bipedal moving. Particular attention has been placed on the issues that arise during the integration of software responsible for gait generation process with the real model of the robot. It has been suggested to use additional, calibration software elements, include elements allowing to track the position of the key points of the structure during its movement. These have been used to correct the impact of adverse factors such as uncertainty in robot construction or the complicated geometry of the limbs. The main functionality of the additional, calibration software was based on methods and algorithms related to image processing and analysis. Keywords: image processing and analysis, object tracking, motion analysis for robot links, walking robot 1. WSTĘP W artykule przybliżono proces implementacji systemu sterującego ruchem maszyny kroczącej i zastosowaniu, w celu usprawnienia jego działania, metod związanych z przetwarzaniem i analizą obrazu. Przede wszystkim skupiono się na problemach pojawiających się podczas integracji oprogramowania odpowiadającego za proces realizacji chodu z rzeczywistym modelem robota. Na przykładzie prostej dwunożnej maszyny przedstawiono, jaki wpływ na ten proces mogą mieć rozwiązania konstrukcyjne zastosowane podczas jej budowy. Zwrócono 29
ZASTOSOWANIE METOD PRZETWARZANIA I ANALIZY OBRAZU W PROCESIE ( ) także uwagę na fakt, że wybrana konstrukcja, z różnych względów, nie zawsze może być wykonana na poziomie, który pozwoliłby zapewnić odpowiednie charakterystyki układu. W takim wypadku zapewnienie poprawnego przeniesienia ruchu przez układ kinematyczny, zgodnego z zakładanym równaniem ruchu można osiągnąć, wprowadzając odpowiednie elementy programowe, kalibrujące dany układ. W celu eliminacji wpływu niedoskonałości układu mechanicznego, do których należą m.in.: niewystarczająca dokładność wykonania poszczególnych elementów, zaburzona symetria pedipulatorów, czy też sposób powiązania układów napędowych ze stopniami swobody mogący wpływać na niedokładność współpracy powiązanych członów, zaproponowano metodę kalibracji współpracującej z programem odpowiadającym za sterowanie ruchem robota. Oprogramowanie odpowiadające za realizację procesu kalibracyjnego zostało zaimplementowane przy użyciu biblioteki wizyjnej OpenCV. Jego głównym celem jest wykorzystanie szeregu metod z dziedziny przetwarzania i analizy obrazu do identyfikacji położenia analizowanych członów robota oraz przekazaniu danych informacji do systemu sterującego (rys.8). Poruszaną w niniejszym opracowaniu tematykę cechuje interdyscyplinarny charakter, ponieważ łączy ono wiedzę z wielu zakresów, m.in. mechaniki, automatyki i informatyki. 2. PODSTAWY PROCESU GENEROWANIA WZORCA CHODU Na proces generowania wzorca chodu maszyny kroczącej wpływa znaczna ilość czynników, m.in.: cel działania maszyny, typ ze względu na rodzaj stabilności jej ruchów, liczba zastosowanych pedipulatorów, wybrany rodzaj chodu, czy też dokładność wykonania poszczególnych elementów. Głównym zadaniem oprogramowania sterującego jest umożliwienie odpowiedniego przemieszczania się danej maszyny z uwzględnieniem określonej konfiguracji tych czynników. Algorytmy odpowiedzialne za wyznaczanie wartości zmiennych przegubowych robota podczas ruchu opierają się przede wszystkim na analizie kinematyki danego układu oraz wyznaczaniu odpowiedniej konfiguracji poszczególnych członów w jej łańcuchach kinematycznych. Rys. 1. Schemat dwuczłonowego manipulatora typu podwójne wahadło Do podstawowych elementów w procesie generowania trajektorii ruchu każdej maszyny kroczącej należą operacje związane z implementacją wyznaczania odwrotnego zadania kinematyki. W większości przypadków rozwiązanie tego zagadnienia nie jest skomplikowane, szczególnie gdy związane jest z generowaniem trajektorii końcówki pedipulatora w przestrzeni dwuwymiarowej. Na tego rodzaju uproszczenie pozwala zastosowanie w obliczeniach podejścia geometrycznego, które umożliwia dekompozycję geometrii przestrzennej analizowanego układu [11]. Rys. 1 obrazuje istotę podejścia geometrycznego w odniesieniu do zagadnienia odwrotnego zadania kinematyki. Schemat opisujący geometrię prostego układu (pedipulatora zbudowanego z dwóch członów i dwóch przegubów obrotowych) umożliwia wyznaczenie zmiennych przegubowych na podstawie zależności trygonometrycznych: =+ (1) = +arcsin!" (2) # = $%! & ' & # ' (3) Powyższe wzory powstały na podstawie twierdzenia cosinusów, które pozwala na określenie związku pomiędzy wybranym kątem rozpatrywanego trójkąta i długościami wszystkich jego boków oraz dwuargumentowej funkcji arcus tangens. Zastosowane zależności pozwalają na uzyskanie pełnego zbioru rozwiązań odwrotnego zadania kinematycznego dla analizowanego przypadku. Trudności pojawiające się podczas implementacji systemu sterującego ruchem robotów kroczących rzadko są związane z obliczeniami odwrotnego zadania kinematyki. W wielu przypadkach natomiast wynikają z samej budowy maszyny. W szczególności dotyczy to rozbieżności pomiędzy wartościami wyznaczanymi dla zmiennych przegubowych i wartościami uzyskiwanymi przez sterowane obiekty w rzeczywistości. 3. WPŁYW KINEMATYCZNEJ STRUKTURY PEDIPULATORA Podczas integracji oprogramowania odpowiadającego za realizację chodu z rzeczywistym modelem robota często ujawnia się, jak duży wpływ na ten proces mają zastosowane w nim rozwiązania konstrukcyjne. Jednym z kluczowych elementów mogących wpływać na proces generowania chodu robota jest zastosowana struktura kinematyczna pedipulatorów. Bardzo istotny jest tu sposób powiązania silników sterujących ze stopniami swobody, który może wpływać na niedokładność współpracy elementów połączonych w parze kinematycznej [12]. 30
Z punktu widzenia implementacji oprogramowania sterującego skomplikowane połączenia napędów ze stopniami swobody, np. zastosowanie dużej liczby czło- W takich nów pośredniczących, są bardzo niekorzystne. przypadkach pojawiają się rozbieżności pomiędzy rze- układ czywistymi kątami osiąganymi przez analizowany podczas ruchu a wartościami sterującymi zmiennymi przegubowymi generowanymi przez oprogramowanie. Analizowany układ został przedstawiony na rys. 3. Jest to prosty, dwunożny robot kroczący zbudowany z pro- kończyn, z stokątnego korpusu i dwóch identycznych których każda posiada dwa stopnie swobody. Za realiza- odpowiadają cję ruchów obrotowych w przegubach serwomechanizmy. Struktura kinematyczna zastosowanych pedipulatorów przedstawiona na rys. 2. odpowiada geometrii charakterystycznej dla prostego układu typu podwójne wahadło. Rys. 2. Struktura kinematyczna pedipulatora dwa przeguby obrotowe Na rys. 2 przedstawiona została struktura kinematyczna pedipulatora prostego dwunożnego robota kroczącego. W analizowanym przypadku tylko jeden z napędów (s1) urządzenia jest bezpośrednio połączony ze przegubem. Ruch obrotowy w drugim z analizowanych przegubów jest realizowany przez napęd (s2) umiejscowiony wzglę- sterowania dem niego w znacznej odległości. Podczas kątem dla danej pary kinematycznej pedipulatora biorą udział dodatkowe człony pośredniczące. W konstrukcjach mechanicznych rozbieżności lub nieli- analiz,, niowe charakterystyki, uzyskiwane podczas mogą wynikać nie tylko z zastosowanych rozwiązań konstrukcyjnych. Bardzo ważnym aspektem jest m.in. zachowanie symetrii pedipulatorów, czy też dokładność wykonania poszczególnych elementów. Tab. 1 przedsta- obydwu wia kluczowe wymiary geometryczne dotyczące pedipulatorów analizowanej maszyny. Na jej podstawie można stwierdzić, że testowany układ charakteryzują pewne niedoskonałości, wynikające m.in. z niewystarcza- jącej dokładności wykonania. Tab. 1. Wymiary geometryczne podstawowych elementów pedipulatorów Człon/Pedipulator Lewy [mm] L1 124,2 L2 105,7 L3 156,8 zawierającego Prawy [mm] 125,6 107,1 156,1 4. KONSTRUKCJA I SYSTEM STERUJĄCY Rys. 3. Analizowana maszyna krocząca Każdy z wykorzystywanych napędów ma możliwość osiągania kątów z zakresu <0 rad; π rad>. Jednak ze względu na ograniczenia konstrukcyjne późniejszej analizie zostały poddane zawężone zakresy zmiennych przegubowych przedstawione na rys. 4. Rys. 4. Zastosowane zakresy kątowe dla wykorzystywanych przegubów System odpowiedzialny za sterowanie pracą elementów wykonawczych został oparty na module Arduino Mega 2560. Podstawową funkcjonalnością zaimplementowane- związane z generowa- go oprogramowania były operacje niem odpowiednich sygnałów PWM sterujących serwomechanizmami podczas testów. Do jego głównych zadań należały również operacje związane z zarządzaniem przebiegiem całego procesu kalibracyjnego. Zarządzanie to było ściśle powiązane z odpowiednią komunikacją z oprogramowaniem zewnętrznym odpowiedzialnym za analizę obrazu wideo zawierającego bieżące pozycje testowanych członów robota. 5. OPROGRAMOWANIE ANALIZUJĄCE RUCH CZŁONÓW Oprogramowanie odpowiadające za analizę nagrania ruchu robota, wykorzystywane zarówno podczas testów jak i procesu kalibracyjnego opisywanej konstrukcji, zostało oparte na funkcjach udostępnianych przez biblio- zastosowanie w tekę OpenCV. Biblioteka ta znajduje coraz większej ilości obszarów wykorzystujących prze- twarzanie i analizę obrazu. Jest to wynikiem ciągłego udoskonalania tej biblioteki wizyjnej, co w szczególności 31
ZASTOSOWANIE METOD PRZETWARZANIA I ANALIZY OBRAZU W PROCESIE ( ) jest widoczne w zakresie jej rozwoju jako narzędzia umożliwiającego tworzenie efektywnych aplikacji wizyj- nych pracujących w czasie rzeczywistym[2]. Podstawową bazą dla zbudowanego były metody i algorytmy związane z oprogramowania zagadnieniami z dziedziny przetwarzania obrazów. Programy stworzone na potrzeby przeprowadzenia procesu kalibracyjnego oraz analizy jego wyników odpowiadają przede wszyst- przez stawy kim za pomiar wartości kątów osiąganych kończyny robota na podstawie obrazu wideo. Schemapomiar opiera się tycznie proces ten ilustruje rys. 5. Sam na wykorzystaniu szeregu różnych metod związanych z analizą przechwytywanego obrazu, które umożliwiają wyznaczenie aktualnych pozycji dla kluczowych punk- zbioru został tów konstrukcji. Każdy z punktów danego wyróżniony za pomocą znacznika o unikalnym kolorze. Zabieg ten znacząco upraszcza ich późniejszą identyfi- na podstawie kację oraz śledzenie ich przemieszczeń zarejestrowanego obrazu wideo. Dzięki temu, że każdy z danych punktów został opatrzony kolorowym znaczni- można było kiem, proces analizy ich przemieszczeń powiązać z zagadnieniem detekcji obiektów na podstawie ich koloru. Rys. 5. Schemat reprezentujący proces detekcji wartości zmiennych przegubowych robota na podstawie zarejestrowanego obrazu wideo 6. SEGMENTACJA OBIEKTÓW NA PODSTAWIE KOLORU W celu wyodrębnienia obiektów z obrazów cyfrowych oraz ich późniejszej reprezentacji można wykorzystać bardzo wiele zróżnicowanych cech, m.in. wybrane punkdopasowanie do ty, kształt, kolor, kontury, czy np. szablonu. Zawsze jednak należy zwracać uwagę na istnienie bardzo silnego związku między sposobem reprezentacji obiektów i wykorzystywanymi w kolejnych etapach algorytmami śledzącymi [8]. Podczas pracy nad oprogramowaniem zdecydowano się na wykorzystanie algorytmu CamShift jako metody odpowiedzialnej za śledzenie przemieszczeń obiektów, co po części wstępnie zdeterminowało sposób ich detekcji. Algorytm CamShift bazuje na odszukiwaniu lokalnego ekstremum w rozkła- względu jako dzie gęstości zbioru danych [2, 7], z tego cechę umożliwiającą detekcję zastosowano kolor obiektu, a dokładnie jego histogram. W operacjach odpowiadających za detekcję obiektów, opierających się na ich kolorystyce, bardzo duże znacze- barw. Jej rodzaj nie ma wybór konkretnej przestrzeni warunkuje zestaw parametrów, który opisuje barwę, a co za tym idzie, wpływa na dokładność przeprowadzanych modyfikacji i analiz obrazu. Z tego względu zbudowane w ramach pracy oprogramowanie współpracuje z obra- HSV, która po- zami przekształconymi do przestrzeni zwala na ograniczenie wpływu elementów, zaburzających proces analizy obrazów oparty na jego kolorystyce, m.in. zmiennego oświetlenia [6, 9]. Rys. 6. Złożony proces segmentacji zastosowany w budowanym oprogramowaniu Sam proces segmentacji polega na podziale przetwarzaobszary odpowiadające nego obrazu na jednorodne widocznym na nim obiektom. Przy wyborze segmentacji obiektów na podstawie ich koloru, to właśnie w jego wyizolowaniu i wyeksponowaniu bierze udział większość wykonywanych operacji. Wykorzystane w zbudowanym oprogramowaniu rozwiązanie, przedstawione na rys. 6., opiera się na połączeniu dwóch metod segmentacji związanych z kolorystyką obiektu. Pierwsza z nich jest klasyczną postacią segmentacji na podstawie koloru, w której wykorzystano binaryzację z podwójnym progiem. Druga z metod odpowiadających za segmentację jest oparta na operacji wstecznej projek- histogramu wybrane- cji, przeprowadzanej na podstawie go obrazu źródłowego. Obrazem tym może być klatka aktualnie przetwarzanej sekwencji wideo lub specjalnie przygotowane zdjęcie. Warunkiem uzyskania poprawnych wyników, a co za tym idzie, prawidłowego przebie- zawarcia w gu procesu segmentacji, jest konieczność danym obrazie źródłowym całego wyszukiwanego obieki wyeksponowanie, na tu. Umożliwia to odszukanie innych obrazach przy pomocy wstecznej projekcji, całego zakresu składowej poddawanej analizie [1]. Każda z opisywanych wyżej met łości, które wpływają na jakość w wyniku ich działania. Z tego tod posiada niedoskonaobrazów powstających względu obraz będący bazą działania algorytmu śledzącego powstaje na pod- powyższych metod stawie złożenia wyników dwóch segmentacji. Zastosowane połączenie pozwala na wyeli- danych metod oraz minowanie części niedoskonałości znaczną poprawę jakości uzyskiwanego obrazu wyniko- 32
wego. Na tym etapie na obrazie mogą jeszcze znaleźć się drobne przypadkowe elementy bądź luki. W celu ich eliminacji wykorzystano przekształcenia morfologiczne dylatację i erozję, których połączenia idealnie nadają się do poprawy jakości i uzupełnienia drobnych otworów wykrywanego obiektu. Dzięki tym operacjom, późniejsze śledzenie obiektu jest znacznie bardziej efektywne, ponieważ obraz go odwzorowujący zostaje w dużej mierze pozbawiony przypadkowych artefaktów. 7. ŚLEDZENIE OBIEKTÓW Podstawą do działania metod realizujących proces śledzenia obiektów, wykorzystujących techniki wizyjne, jest generowanie trajektorii określonego obiektu. Dana trajektoria powstaje w wyniku wyznaczenia pozycji obiektu dla każdej klatki sekwencji wideo [8]. Za śledzenie obiektów w zbudowanym oprogramowaniu odpowiada algorytm CamShift, któremu wcześniej przygotowany obraz zostaje przekazany jako jeden z parametrów wejściowych. Omawiany algorytm można w zależności od przyjętej systematyki zaliczyć do metod śledzenia jądra lub do metod śledzenia obiektu na podstawie modelu. Podstawą jego działania jest odszukiwanie lokalnego ekstremum w rozkładzie gęstości określonego zbioru danych [2, 7]. Nazwę zastosowanego algorytmu można dokładnie przedstawić jako ciągle adaptowany MeanShift (ang. continuously adaptive MeanShift). Jak sama nazwa wskazuje, jego podstawowa funkcjonalność opiera się na poprzedniku, czyli algorytmie MeanShift. Obydwa algorytmy znalazły zastosowanie w śledzeniu obiektów dla sekwencji wideo dopiero w wyniku rozwoju dziedzin takich jak przetwarzanie obrazu. Uproszczone działanie algorytmu MeanShift można opisać jako proces odnajdywania tzw. jądra (ang. kernel), tzn. obszaru obrazu cechującego się najgęstszym rozkładem danej cechy, co jest uzyskiwane przez coraz bliższe dopasowywanie opisywanej funkcji rozkładu do wyszukiwanego elementu [6]. Jest to proces iteracyjny, coraz bliższe dopasowanie uzyskuje się najczęściej w wyniku z góry określonej ilości iteracji głównego algorytmu [10]. Przybliżona zasada działania głównego algorytmu składa się z następujących kroków [10]: wyznaczanie położenia centroidu w oknie początkowym, wyznaczenie wektora przesunięcia, wyznaczenie nowego położenia środka okna przeszukującego, porównanie wartości danego wektora z określonym progiem dokładności (jeśli wektor jest większy od zadanego progu, powrót do kroku drugiego, jeżeli nie, następuje przerwanie działania algorytmu). Algorytm przerywany jest po uzyskaniu przez wektor wartości poniżej wyznaczonego progu (najczęściej gdy jest on zbliżony do 0) lub gdy osiągnięty został próg dla liczby przeprowadzonych iteracji procesu. Jako parametr wejściowy algorytm MeanShift wykorzystuje specjalnie przekształcony obraz zbudowany w wyniku przeprowadzenia operacji wstecznej projekcji na podstawie histogramu [1, 5]. Wstępny etap działania algorytmu opiera się przede wszystkim na wyznaczeniu współrzędnych centroidu funkcji rozkładu (dla początkowego okna) za pomocą jądrowego estymatora gęstości (ang. Kernel Density Estimation) [4]. Powszechne wykorzystywanie histogramu w tego rodzaju metodach wynika z faktu, że jest to najprostszy nieparametryczny estymator gęstości. W analizie obrazu umożliwia on wyznaczenie prawdopodobieństwa wystąpienia poszczególnych wartości pikseli, a więc idealnie nadaje się do przybliżenia gęstości ich rozkładu [7]. W tworzonym oprogramowaniu, na potrzeby śledzenia znaczników umieszczonych na robocie, wykorzystano algorytm CamShift. Podstawową różnicą jego działania w stosunku do poprzednika jest możliwość automatycznego dopasowania wielkości okna przeszukiwań do śledzonego obiektu [5, 10]. Możliwość zmiany wymiarów okna przeszukiwań podczas pracy algorytmu stanowi bardzo ważny element w przypadku śledzenia elementów znajdujących się w ciągłym ruchu oraz tych, których kształt zmienia się dynamicznie. 8. PROCES KALIBRACYJNY Proces kalibracyjny został podzielony na kilka etapów. Każdy z nich opierał się na wykorzystaniu opisywanych powyżej metod analizy obrazu w celu identyfikacji rzeczywistych wartości określonych zmiennych przegubowych robota podczas zadawanego ruchu. Efektem pierwszego etapu omawianego procesu jest uzyskanie danych pozwalających na weryfikację poprawności kątów uzyskiwanych pomiędzy określonymi członami konstrukcji podczas ruchu. Przeprowadzona analiza pozwoliła na porównanie wartości kątów zadawanych przez oprogramowanie sterujące ruchem pedipulatora, z wartościami osiąganymi przez dany układ w rzeczywistości. Dane rzeczywiste zostały pozyskane za pomocą dodatkowego oprogramowania analizującego. W celu uzyskania wiarygodnych wyników, niezależnych od czasu trwania obróbki i analizy przechwyconego obrazu wideo, dany etap został przeprowadzony przy wykorzystaniu materiału zapisanego z określoną prędkością. Dana prędkość uwarunkowana jest krokiem sterowania zastosowanym w programie sterującym badanej konstrukcji. Podczas analizy zastosowano prędkość 25kl./s., co spowodowało, że odstęp pomiędzy zapisem pojedynczych ramek obrazu wyniósł 40ms. Krok stero- 33
ZASTOSOWANIE METOD PRZETWARZANIA I ANALIZY OBRAZU W PROCESIE ( ) wania dla robota dobierano z zakresu od 40 do 160ms., pozwoliło to na synchronizację obliczeń z wartością prędkości, z jaką został zarejestrowany materiał video. Rys. 7. Interfejs oprogramowania analizującego przechwyconą sekwencje wideo wartości osiąganych kątów, przedstawione na wykresach, stanowią wartości uśrednione. Dla każdego z przegubów przeanalizowano zbiór 10 nagrań testowych. Rozbieżno- ści pomiędzy kątami zadawanymi i odczytanymi pojawi- przegubowej θ2 i w ły się w przypadku analizy zmiennej dużym stopniu w wynikały z zastosowanej geometrii kończyny przedstawionej na rys. 2. Dla każdego z przeprowadzonych testów została wyznana podstawie pomiarów czona wartość błędu uzyskanego wartości zmiennych przegubowych θ1 i θ2 oraz ich różnic w stosunku do wygenerowanych dla nich przebie- zostały obliczone gów idealnych (tab.2). Dane wartości na podstawie wzoru: Wykresy przedstawione poniżej powstały na podstawie danych uzyskanych podczas analizy specjalnie przygo- towanych nagrań. Rys. 8. Zależność między wartością zadaną a wartością odczy- taną dla zmiennej przegubowej θ1 (staw biodrowy konstrukcji) gdzie: (=) '! & σ - średni błąd kwadratowy, n wyznaczony błąd bezwzględny.!!, (4) - liczność próby, x - Tab. 2. Wartości błędów, wzór (4), uzyskanych podczas pomia- kinematycznych przed rów kątów w analizowanych parach procesem kalibracji Testowany przegub θ1 θ2 σ 0,011 rad 0,124 rad Rys. 9. Zależność między wartością zadaną a wartością odczy- konstrukcji) taną dla zmiennej przegubowej θ2 (staw kolanowy Na każdym z nich zarejestrowano określony ruch testo- wanego przegubu kończyny. Dane ilustrujące rzeczywiste Kolejnym etapem procesu kalibracyjnego było wykorzy- korektę zaist- stanie oprogramowania umożliwiającego niałych rozbieżności. Cały proces kalibracji był nadzo- oprogramowania, rowany przez dwa niezależne moduły komunikujące się między sobą w czasie rzeczywistym. Pierwszy z modułów jest oprogramowaniem sterującym ruchem robota i jest odpowiedzialny przede wszystkim za sterowanie serwomechanizmami. Natomiast drugi jest oprogramowaniem zewnętrznym, odpowiadającym za 34
bieżącą analizę przechwytywanego obrazu wideo. Schemat funkcjonowania zastosowanych modułów oraz ich wzajemnej komunikacji został przedstawiony na rys. 10. W wyniku przeprowadzenia wyżej opisanych operacji dla wszystkich wartości z zakresu sterowania, zbudowana została tablica korekcyjna, umożliwiająca prawidłowe sterowanie testowanymi układami w warunkach rzeczywistych. Istotnym aspektem zaproponowanego rozwiązania jest znaczące przyspieszenie przebiegu procesu kalibracyjnego. Tablica dla zmiennej przegubowej θ2, reprezentująca korekty dla całego jej zakresu sterowania (od 40 do 130 ), została zbudowana automatycznie w czasie ok. 40 minut. Dla jednej zapisywanej przez oprogramowanie wartości przeprowadzone zostało 30 pomiarów kąta uzyskiwanego przez analizowany przegub rzeczywistej konstrukcji. Dla porównania, testowa próba czasowa ustalenia danej wartości dla jednego kąta zadanego, przy użyciu standardowych przyrządów pomiarowych, została przeprowadzona w czasie ok. 5 min.. Końcowym etapem procesu kalibracyjnego była weryfikacja poprawności zastosowanego rozwiązania. Po raz kolejny przeprowadzono analizę porównującą wartości kątów zadawanych przez oprogramowanie sterujące ruchem pedipulatorów z wartościami osiąganymi w rzeczywistości. W tym wypadku działanie oprogramowania sterującego zostało jednak rozszerzone o możliwość wykorzystania tablicy, zbudowanej we wcześniejszym etapie. Rys. 10. Schemat oprogramowania odpowiedzialnego za proces kalibracji Współdziałanie głównych modułów zaimplementowanego oprogramowania kalibracyjnego opiera się na porównaniu wartości zadawanych dla zmiennych przegubowych z wartościami osiąganymi przez dane przeguby w rzeczywistości. Wynik pomiaru jest porównywany z określonym progiem dokładności. Jeżeli różnica pomiędzy wartościami jest większa od zadanego progu, program sterujący modyfikuje wartość zadaną w sposób umożliwiający zbliżenie się do wymaganej dokładności. W momencie, gdy dana dokładność zostaje osiągnięta, nowa wartość zadana, pozwalająca na uzyskanie przez analizowany przegub określonej wartości rzeczywistej, zostaje zapisana. Rys. 11. Wyniki testu nr 1 - Zależność między wartością zadaną a wartością odczytaną dla zmiennej przegubowej θ2, podczas liniowego przyrostu wartości zadanej Rys. 12. Wyniki testu nr 2 - Zależność między wartością zadaną a wartością odczytaną dla zmiennej przegubowej θ2, podczas zmiany wartości zadanej na podstawie rozwiązania odwrotnego zadania kinematyki 35
ZASTOSOWANIE METOD PRZETWARZANIA I ANALIZY OBRAZU W PROCESIE ( ) Przeprowadzono dwa rodzaje testów, analizujących wyniki dla zmiennej przegubowej θ2. Przytoczone analizy także zostały przeprowadzone na grupie specjalnie przygotowanych nagrań. Każda z nich składała się z 10 sekwencji wideo, a wyniki, przedstawione na wykresach (rys. 11, rys. 12) zostały dla nich uśrednione. Pierwszy z testów porównuje wartości kątów zadanych z wartościami rzeczywistymi uzyskanymi przez analizowany układ podczas liniowego przyrostu zadawanych wartości. Natomiast drugi poddaje analizie przypadek bardziej zbliżony praktycznemu zastosowaniu układu. Wartości zadane uzyskano tu na podstawie zastosowania rozwiązania zagadnienia kinematyki odwrotnej. W ramach obliczeń wykorzystano wzory (2) i (3) do wyznaczenia odpowiednich konfiguracji przegubów maszyny. Tab. 3. Wartości błędów, wzór (4), uzyskanych podczas pomiarów wartości zmiennej przegubowej θ2 w czasie testów przeprowadzonych po procesie kalibracji Nr testu 1 0,012 rad 2 0,011 rad 9. PODSUMOWANIE Uzyskane wyniki pozwalają na stwierdzenie, że zaproponowany proces kalibracyjny umożliwia znaczące ograniczenie wpływu błędów pojawiających się w procesie σ integracji oprogramowania sterującego z rzeczywistymi układami mechanicznymi. Dane błędy często bywają związane z niedokładnością wykonania elementów maszyny, ich podatnością, czy też niedokładnością współpracy łączonych elementów układu. Problemy te uwidocznił testowany w ramach pracy prosty robot kroczący. Wykorzystanie dodatkowego oprogramowania, opierającego się na metodach przetwarzania obrazu, w dużym stopniu wpłynęło na redukcję rozbieżności między wzorcowymi wartościami zmiennych przegubowych, zadawanymi poprzez oprogramowanie sterujące a wartościami uzyskiwanymi przez rzeczywisty układ mechaniczny. Jego istotną zaletą jest także zdecydowane przyspieszenie przebiegu procesu kalibracyjnego oraz jego pełna automatyzacja. Należy zauważyć, że zaproponowane w niniejszym opracowaniu rozwiązanie nie opiera się na zastosowaniu wyspecjalizowanego sprzętu i oprogramowania. Do akwizycji obrazu wykorzystano ogólnie dostępną kamerę internetową, natomiast oprogramowanie kalibracyjne powstało na podstawie operacji udostępnionych przez bibliotekę wizyjną, na licencji BSD. Zastosowanie ogólnie dostępnego urządzenia rejestrującego wiąże się zawsze z pewnymi ograniczeniami związanymi z jakością analizowanego obrazu, m.in. wpływem zmiennego oświetlenia, czy mniejszą prędkością przechwytywania. Pomimo tego rodzaju ograniczeń wyniki przeprowadzonych testów ukazują duży potencjał zaproponowanego rozwiązania wizyjnego. Literatura 1. Allen J. G., Xu R. Y. D., Jesse S. J.: Object tracking using CAMShift algorithm and multiple quantized feature spaces. In: Proceedings of the Pan-Sydney Area Workshop on Visual Information Processing, Sydney, 2004, p. 3-7. 2. Bradski G., Kaehler A.: Learning OpenCV: computer vision with the OpenCV Library. Sebastopol, CA: O'Reilly Media, 2008. 3. Buczyński P.: Optymalna reprezentacja kolorów w analizie i przetwarzaniu obrazów komputerowych. Praca doktorska. Warszawa: Politechnika Warszawska, 2005. 4. Comaniciu D., Ramesh V., Meer P.: Kernel-based object tracking. IEEE Transactions on Pattern Analysis and Machine Intelligence, IEEE Transactions 2003, p. 564-577. 5. Dahad S. O., Sonawane R. R.: Surveillance using CAMshift Tracking. International Journal of Advanced Research in Computer and Communication Engineering, 2016, Vol. 5, Iss. 5, p. 926-928. 6. Jog S., Halbe S.: Multiple objects tracking using CAMShift algorithm and implementation of trip wire. International Journal of Image, Graphics and Signal Processing, 2013, Vol. 5, Iss.6, p. 43-48. 7. Joshi S., Gujarathi S., Mirgemoving A.: Moving object tracking method using improved Camshift with surf algorithm. International Journal of Advances in Science Engineering and Technology, 2014, Vol. 2, Iss. 2, p. 14-19. 8. Lakshmeeswari G., Karthik K.: Survey on algorithms for object tracking in video. International Journal of Computer Applications, 2016, No. 13, Vol. 141, p. 17-22. 9. Rafajłowicz E., Rafajłowicz W.: Wstęp do przetwarzania obrazów przemysłowych. Wrocław: Oficyna Wydawnicza Politechniki Wrocławskiej, 2010. 36
10. Rayavel P., Appasami G., Nakeeran R.: Noise removal for object tracking based on HSV color space parameter using CAMSHIFT. International Journal of Computational Intelligence & Telecommunication Systems, 2011, Vol. 2, No. 1, p. 39 45. 11. Tchoń K., Mazur A., Dulęba I.: Manipulatory i roboty mobilne: modele, planowanie ruchu, sterowanie. Warszawa: Akademicka Oficyna Wydawnicza PLJ, 2000. 12. Zielińska T.: Maszyny kroczące. Warszawa: WKŁ, 2005. Artykuł dostępny na podstawie licencji Creative Commons Uznanie autorstwa 3.0 Polska. http://creativecommons.org/licenses/by/3.0/pl 37