• Nie Znaleziono Wyników

Struktura ramowa do implementacji i testowania serwomechanizmów wizyjnych / PAR 2/2011 / 2011 / Archiwum / Strona główna | PAR Pomiary - Automatyka - Robotyka

N/A
N/A
Protected

Academic year: 2021

Share "Struktura ramowa do implementacji i testowania serwomechanizmów wizyjnych / PAR 2/2011 / 2011 / Archiwum / Strona główna | PAR Pomiary - Automatyka - Robotyka"

Copied!
10
0
0

Pełen tekst

(1)

Mateusz BoryĔ

mgr inĪ. Tomasz Kornuta

prof. nzw. dr hab. inĪ. Cezary ZieliĔski

Instytut Automatyki i Informatyki Stosowanej Politechnika Warszawska

STRUKTURA RAMOWA DO IMPLEMENTACJI I TESTOWANIA

SER-WOMECHANIZMÓW WIZYJNYCH

1

Artykuá prezentuje strukturĊ ramową, opartą na zrĊbach MRROC++ i FraDIA, uáatwiającą implementacjĊ oraz testowanie róĪnego rodzaju serwomechanizmów wizyjnych. Dla peánoĞci, poza samą strukturą oraz ogólnym sposobem integracji zrĊbów, omówiono klasyfikacjĊ serwomechanizmów, implementacjĊ jednego z nich oraz przedstawiono wyniki eksperymentów.

A FRAMEWORK FOR IMPLEMENTATION AND TESTING OF DIVERSE VISUAL SERVO ALGORITHM

S

The paper presents a framework facilitating the development of diverse visual servoing (VS) algorithms. The solution utilizes MRROC++ programming frame-work (for robot control) and FraDIA vision frameframe-work (for image processing, analysis and recognition). The article contains the visual servos classification, implementation of one type of VS and the results of experiments.

1. WSTĉP

Robot pozbawiony zmysáów moĪe sprawnie i szybko wykonywaü przydzielone mu prace w dobrze ustrukturyzowanym, deterministycznym Ğrodowisku (np. w fabryce). Jednak w przypadku zmieniającego siĊ otoczenia, gdzie pozycja przedmiotów moĪe byü niedokáadnie okreĞlona lub wrĊcz nieznana, niezbĊdne jest wyposaĪenie robota w zmysáy (umoĪliwiające mu rozpoznawanie obiektów, okreĞlanie ich poáoĪenia itp.), a takĪe odpowiednie zachowania, związane z tymi zmysáami (np. ominiĊcie kolizji z wykrytym obiektem). PoniewaĪ zmysá wzroku jest najbardziej uniwersalnym (a przez to w rzeczywistoĞci najbardziej skomplikowa-nym) ze znanych nam zmysáów, dlatego wykorzystanie kamer jako jego zamiennika leĪaáo od zawsze w sferze zainteresowaĔ robotyki [1].

Podstawowe zachowania robotyczne wykorzystują zmysá wzroku to realizacji serwo-mechanizmu wizyjnego [3], który przetwarza informacjĊ wizyjną do Ğledzenia obiektu zainte-resowania. W systemie sterowania robota wykorzystującym serwowizjĊ moĪna wyróĪniü dwa podstawowe bloki:

x podsystem wizyjny – blok analizy i rozpoznawania obrazów, którego celem jest agre-gacja tych danych do postaci uĪytecznej w sterowaniu,

x podsystem sterujący ruchem robota – który na podstawie danych wyekstrahowanych z obrazów generuje odpowiednie sygnaáy sterowania robotem.

(2)

W literaturze opisanych jest kilka programowych struktur ramowych uáatwiających tworzenie oraz badanie dziaáania serwomechanizmów wizyjnych. Przykáadem takiej struktury jest ViSP (ang. Visual Servoing Platform) [5] – moduáowe Ğrodowisko programistyczne po-siadające róĪne algorytmy wizyjne do rozpoznawania obiektów oraz sterowania wykorzystu-jącego informacjĊ wizyjną. Innym przykáadem jest Javiss [2], bĊdący Ğrodowiskiem do symu-lacji dziaáania serwomechanizmów wizyjnych. Pozwala na badania zachowania robota Ğle-dzącego okreĞlony przedmiot, np. poprzez zbieranie pomiarów pozycji koĔcówki roboczej.

Niniejszy artykuá przedstawia metodĊ integracji dwóch programowych struktur ramo-wych w sterownik robota wykorzystujący informacjĊ wizyjną. Pierwszą z nich jest FraDIA (ang. Framework for Digital Image Analysis) [4], wizyjna struktura ramowa, która umoĪliwia proste tworzenie róĪnorodnych zadaĔ wizyjnych. MoĪe ona równieĪ pracowaü jako podsys-tem wizyjny sterowników syspodsys-temów wieloobrotowych opartych na drugiej strukturze ramo-wej – MRROC++ (ang. Multi–Robot Research Oriented Controler) [8,9].

W opracowanym rozwiązaniu wykorzystano paradygmat projektowania obiektowego do stworzenia lekkiej, áatwej do rozszerzania i modyfikacji struktury klas realizujących róĪ-norodne serwomechanizmy wizyjne. W strukturze tej zaimplementowano i uruchomiono ser-womechanizmy wizyjne róĪnego typu, natomiast w tym artykule skupiono siĊ na omówieniu jednego z nich. Przeprowadzono równieĪ szereg eksperymentów dowodzących elastycznoĞci stworzonej struktury, a ponadto pozwalających na zweryfikowanie poprawnoĞci dziaáania da-nego serwomechanizmu.

2. SPOSOBY KLASYFIKACJI SERWOMECHANIZMÓW WIZYJNYCH

Serwomechanizm jest ukáadem sterownia o strukturze nadąĪnego ukáadu regulacji poáoĪenia lub prĊdkoĞci. W ukáadzie tym wartoĞü wzorcowa (zadana) porównywana jest z przetworzo-nym przez przetwornik bieĪącym sygnaáem wyjĞciowym i powstaáy w ten sposób uchyb po-dawany jest na blok sterowania. Zadaniem serwomechanizmów wizyjnych VS (ang. Visual Servo) [3,6] jest wykorzystanie informacji z kamer do sterowania robotem – kamery stanowią tu element pomiarowy systemu sterującego.

W pracy [7] zaproponowano podziaá serwomechanizmów wedáug nastĊpujących kryteriów:

 sposobu sterowania robotem,

 faktu, czy koĔcówka robocza jest obserwowana,

 poáoĪenia kamery,

 metody wyznaczania uchybu.

Sposób sterowania robotem zaleĪy od przestrzeni, w której obliczany jest uchyb:

 sterowanie poszczególnymi stawami, wykorzystujące uchyb w przestrzeni záącz (konfiguracyjnej) (ang. joint error control – JEC),

 sterowanie poáoĪeniem koĔcówki, gdzie uchyb okreĞlony zostaje w przestrzeni ope-racyjnej (ang. position error control – PEC).

W zaleĪnoĞci od tego, czy fakt widocznoĞci koĔcówki manipulatora w polu widzenia kamery wykorzystywany jest przez algorytmy rozpoznawania obrazu, serwomechanizmy wi-zyjne dzieli siĊ na:

 nieobserwujące koĔcówki robota (ang. endpoint open–loop – EOL),

 obserwujące koĔcówkĊ robota (ang. endpoint closed–loop – ECL).

Najbardziej oczywistym kryterium podziaáu serwomechanizmów wizyjnych jest sposób umieszczenia kamery obserwującej Ğrodowisko pracy robota. Kamera moĪe byü nieruchoma

(3)

wzglĊdem podstawy robota (ang. stand–alone camera – SAC, w pracy [6] typ ten zwany jest równieĪ ETH, od ang. eye–to–hand). Wtedy pozycja kamery wzglĊdem koĔcówki roboczej zmienia siĊ w czasie pracy manipulatora. MoĪna równieĪ przymocowaü kamerĊ do koĔcówki roboczej manipulatora (ang. eye–in–hand – EIH).

Stosowane są dwa sposoby wyraĪania uchybu dla serwomechanizmów wizyjnych: uchyb w przestrzeni zadaniowej (ang. position based – PB) oraz uchyb w przestrzeni cech obrazu (ang. image based – IB). W pierwszym przypadku (PB), najpierw w obrazie z kamery wykrywany jest konkretny przedmiot. Wynikiem tej operacji są wspóárzĊdne punktów obrazu, które moĪna uznaü za punkty charakterystyczne przedmiotu. Znany jest równieĪ model przedmiotu, tzn. poáoĪenie punktów charakterystycznych w przestrzeni trójwymiarowej. Na podstawie tych dwóch informacji moĪna okreĞliü poáoĪenie oraz orientacjĊ przedmiotu wzglĊdem kamery, a tym samym pozycjĊ wzglĊdem podstawy robota (pozycja kamery jest znana). Uchyb jest wynikiem porównania pozycji koĔcówki roboczej oraz pozycji przedmiotu wzglĊdem podstawy robota. W drugim przypadku (IB) wybierane są cechy obrazu obiektu, które bĊdą porównywane (np. poáoĪenie i wielkoĞü przedmiotu w obrazie). Uchyb jest róĪnicą wektorów wartoĞci cech zadanych i wartoĞci cech aktualnych.

3. INTEGRACJA STRUKTUR RAMOWYCH MRROC++ I FRADIA

Programowa struktura ramowa MRROC++ jest narzĊdziem do tworzenia hierarchicznych, rozproszonych sterowników systemów wielorobotowych. Zostaáa ona z powodzeniem wyko-rzystana w róĪnorodnych aplikacjach robotycznych, m.in. do: powielania rysunków, Ğledzenia konturów obiektów oraz ukáadania kostki Rubika [8].

Zapotrzebowanie na narzĊdzie uáatwiające oraz standaryzujące proces tworzenia apli-kacji wizyjnych doprowadziáo do powstania wizyjnej struktury ramowej FraDIA. Zaimple-mentowane w jej warstwie sprzĊtowej sterowniki Ĩródeá obrazu pozwalają na skupienie uwagi programisty na wáaĞciwych algorytmach analizy oraz rozpoznawania obrazów. PoniewaĪ zrąb oferuje dodatkowo gotowe mechanizmy do komunikacji z procesami systemu MRROC++, obie struktury mogą byü uĪyte do konstrukcji záoĪonych sterowników robotycznych wyko-rzystujących wizjĊ komputerową (rys. 1).

W skáad sterownika systemu robotycznego wykorzystującego strukturĊ ramową MRROC++ wchodzą podzielone na warstwy procesy, pokazane na rys. 1:

 UI (ang. User Interface) – pojedynczy proces interfejsu uĪytkownika

odpowiedzial-ny, za komunikacjĊ z operatorem,

 MP (ang. Master Process) – pojedynczy proces koordynujący pracĊ wszystkich

efek-torów systemu,

 ECP (ang. Effector Control Process) – proces odpowiedzialnych za realizacjĊ

zada-nia zleconego pojedynczemu efektorowi,

 EDP (Effector Driver Process) – proces odpowiedzialny za bezpoĞrednie sterowanie

pojedynczym efektorem,

 VSP (Virtual Sensor Process) – proces odpowiedzialny za agregacjĊ danych

senso-rycznych do postaci uĪytecznej w sterowaniu. W zaleĪnoĞci od liczby czujników i rodzaju sprzĊĪenia procesy VSP mogą byü skojarzone z ECP lub MP.

(4)

Rys. 1. Integracja struktur ramowych MRROC++ i FraDIA w sterownik robota ze sprzĊĪeniem wizyjnym

W przypadku systemu robotycznego wykorzystującego informacjĊ wizyjną FraDIA peáni rolĊ wyspecjalizowanego procesu VSP systemu MRROC++. FraDIA wspóápracuje nie-interaktywnie z procesami warstwy zadaniowej systemu MRROC++, co oznacza, iĪ caáy czas odbiera oraz przetwarza obrazy z kamery, natomiast MRROC++ wysyáa Īądanie odesáania zagregowanego odczytu czujnika – a wiĊc najnowszego wyniku przetwarzania i analizy – wtedy, gdy jest mu on potrzebny.

Przykáadowe aplikacje robotyczne, w których wykorzystano zintegrowane struktury ramowe MRROC++ i FraDIA to chwytanie obiektów czy gra w warcaby prowadzona z robo-tycznym przeciwnikiem [4].

4. TRZON STRUKTURY SERWOMECHANIZMÓW WIZYJNYCH

Na rys. 2 przedstawiono gáówne, bazowe klasy skáadające siĊ na strukturĊ serwomechani-zmów wizyjnych po stronie procesu ECP systemu MRROC++. Obiekty tych klas są elemen-tami ukáadu regulacji. Ich wykorzystanie zostanie przedstawione w dalszej czĊĞci artykuáu na przykáadzie serwomechanizmu wizyjnego PEC-EOL-PB-EIH.

Abstrakcyjne klasy robot oraz sensor stanowią interfejsy do warstwy sprzĊtowej – a wiĊc odpowiednio do procesów EDP stanowiących sterowniki manipulatorów oraz proce-sów VSP związanych z danym czujnikiem. W przypadku omawianej struktury serwomecha-nizmów procesem VSP jest FraDIA, a wszystkie serwomechanizmy wykorzystują klasĊ

fradia_sensor, która jest wywiedziona z klasy sensor. Obiekty tej klasy sáuĪą do

komunika-cji pomiĊdzy strukturami ramowymi MRROC++ i FraDIA i są odpowiedzialne za dostarcza-nie zagregowanej informacji wizyjnej do sterownika robotycznego.

(5)

Klasa visual_servo jest klasą bazową dla poszczególnych typów serwomechanizmów. Obiek-ty klas pochodnych są odpowiedzialne za obliczenie uchybu w sposób specyficzny dla dane-go rodzaju serwomechanizmu wizyjnedane-go. Informacja o poáoĪeniu przedmiotu wzglĊdem ka-mery otrzymywana jest z interfejsu sensor.

Obiekty klasy abstrakcyjnej visual_servo_regulator realizują wybrany algorytm ste-rowania. Istnieje moĪliwoĞü zaimplementowania wielu algorytmów regulacji, np. regulatorów P, PID, a takĪe bardziej záoĪonych, np. algorytmów regulacji predykcyjnej. DziĊki oddziele-niu obliczania uchybu od algorytmu regulacji moĪna áatwo porównaü róĪne algorytmy regu-lacji dziaáające dla jednego serwomechanizmu wizyjnego.

Klasa abstrakcyjna generator jest odpowiedzialna za przygotowanie rozkazu sterujące-go poáoĪeniem koĔcówki roboczej danesterujące-go efektora. Z klasy generator dziedziczy abstrakcyj-na klasa visual_servo_maabstrakcyj-nager, która jest generatorem ruchu wchodzącym w skáad serwo-mechanizmów wizyjnych. W tej klasie zaimplementowano ograniczenia prĊdkoĞci i wartoĞci przyspieszenia koĔcówki roboczej.

Rys. 2. Diagram zawierający najwaĪniejsze abstrakcyjne klasy struktury serwomechanizmów wizyjnych po stronie systemu MRROC++

Generator ruchu jest teĪ odpowiedzialny za ograniczenie pozycji koĔcówki roboczej w przestrzeni zadaniowej robota. W tym celu korzysta z obiektu klasy position_constraint, gdzie definiowane są ograniczenia pozycji. Obiekt klasy visual_servo_manager moĪe mieü wiele obiektów reprezentujących róĪne ograniczenia pozycji. Istnieją dwa typy ograniczeĔ – pierwsze reprezentują obszar, w którym moĪe znajdowaü siĊ koĔcówka robocza, oraz orienta-cjĊ, jaką moĪe przyjąü w tym obszarze. Drugi typ ograniczeĔ związany jest ze znajdującymi siĊ na scenie obiektami, z którymi odgórnie zakáada siĊ, iĪ robot nie moĪe siĊ zderzyü, przy czym záoĪony obszar moĪna opisaü wykorzystując kilka obiektów klasy position_constraint. Przykáadowo, gdy zadaniem robota jest dosiĊgniĊcie przedmiotu leĪącego na stole, moĪna ograniczyü przestrzeĔ zadaniową do prostopadáoĞcianu znajdującego siĊ tuĪ nad powierzch-nią tego stoáu. MoĪna wtedy mieü pewnoĞü, Īe robot nie spróbuje siĊgnąü po przedmiot leĪą-cy na podáodze obok stoáu, powodując w rzeczywistoĞci kolizjĊ.

Klasa termination_condition reprezentuje warunek zakoĔczenia pracy generatora. Ge-nerator ruchu moĪe mieü wiele warunków zakoĔczenia. GeGe-nerator zakoĔczy dziaáanie, gdy dowolny z nich zostanie speániony. Warunek zakoĔczenia pracy generatora ruchu jest ko-nieczny w zadaniach, gdzie naleĪy np. chwyciü obiekt. Przykáadowym warunkiem zakoĔcze-nia moĪe byü warunek dosiĊgniĊcia obiektu, który jest speániony, gdy wartoĞü uchybu ser-womechanizmu wizyjnego, szybkoĞü oraz wartoĞü przyspieszenia koĔcówki roboczej bĊdą bliskie zeru.

(6)

5. REALIZACJA SERWOMECHANIZMU WIZYJNEGO PEC-EOL-PB-EIH

PoniĪej opisano realizacjĊ przykáadowego serwomechanizmu wizyjnego, w którym robot jest sterowany uchybem zadaniowym, z kamerą nieobserwującą koĔcówki roboczej i umieszczo-ną na koĔcówce roboczej. Serwomechanizm oblicza uchyb w przestrzeni zadaniowej. Celem pracy prezentowanego serwomechanizmu jest Ğledzenie szachownicy.

Na rys. 3 przedstawiono manipulator, kamerĊ oraz Ğledzony przedmiot z zaznaczonymi pozycjami jednego obiektu wzglĊdem drugiego.

Rys. 3. Ukáady wspóárzĊdnych i transformacje pomiĊdzy robotem, kamerą oraz przedmiotem

PrzyjĊto nastĊpujące oznaczenia dla róĪnych ukáadów oraz transformacji: 0 – ukáad wspóárzĊdnych związany z podstawą robota, E – ukáad wspóárzĊdnych związany z koĔcówką roboczą, C – ukáad wspóárzĊdnych związany z kamerą, G – ukáad wspóárzĊdnych związany z Ğledzonym przedmiotem, G

E

T – pozycja przedmiotu wzglĊdem koĔcówki roboczej, const

TC

E

– pozycja kamery wzglĊdem koĔcówki roboczej wyznaczona w procesie kalibra-cji oko–rĊka, G

C

T – pozycja przedmiotu wzglĊdem kamery.

Na rys. 4 przedstawiono najwaĪniejsze bloki ukáadu sterowania serwomechanizmu wi-zyjnego PEC-EOL-PB-EIH wraz z danymi przepáywającymi pomiĊdzy nimi.

Informacja o stanie Ğrodowiska jest dostarczana przez kamerĊ do zadania wykrywające-go szachownicĊ. Wierzchoáki pól szachownicy są punktami charakterystycznymi, na podsta-wie których estymowana jest pozycja szachownicy wzglĊdem kamery. Do rozpoznawania szachownicy oraz estymacji pozycji zostaáy wykorzystane algorytmy z biblioteki OpenCV.

Wynikiem dziaáania algorytmu estymacji pozycji szachownicy wzglĊdem kamery jest macierz przeksztaácenia jednorodnego G

C

T , która jest nastĊpnie przekazywana ze struktury ramowej FraDIA do struktury ramowej MRROC++.

(7)

Rys. 4. NajwaĪniejsze bloki serwomechanizmu PEC-EOL-PB-EIH

Uchyb zadaniowy wyraĪony jest wzorem:

G C C E G E G E E T T T , H (1)

Na jego podstawie regulator proporcjonalny wylicza sterowanie, bĊdące w istocie przy-rostem poáoĪenia (ang. Step Generator – SG):

) ( , ' , EG E G E E' SG H (2)

NastĊpnie obliczony przyrost podawany jest na wejĞcie bloku, który sprawdza, czy po jego wykonaniu robot bĊdzie nadal znajdowaá siĊ w dozwolonym obszarze przestrzeni zada-niowej (ang. Position Constraint – PC):

) , ( 0 ' , '' , EG E E G E E' PC ' T (3) Otrzymany przyrost E,G'' E'

podawany jest nastĊpnie na blok, który ogranicza wartoĞci prĊdkoĞci i przyspieszenia (ang. Velocity and Acceleration Constraint – VAC):

) ( , '' ''' , EG E G E E' VAC ' (4) Na podstawie tego przyrostu oraz aktualnego poáoĪenia obliczane jest zadane poáoĪenie koĔcówki roboczej, przekazane dalej do sterownika robota do realizacji:

''' , 0 ''' 0 G E E E G T T ' (5)

Na rys. 5 przedstawiony jest diagram klas zaimplementowanego serwomechanizmu PEC-EOL-PB-EIH. W odróĪnieniu od rys. 1 (na którym przedstawiono klasy bazowe caáej struktury), na tym diagramie przedstawiono konkretne klasy wykorzystywane w zaimplemen-towanym serwomechanizmie.

(8)

Rys. 5. Diagram klas uĪytych w implementacji serwomechanizmu PEC-EOL-PB-EIH

Klasa fradia_sensor jest implementacją interfejsu do wirtualnego sensora (dziedziczy z klasy sensor). Jest odpowiedzialna za odbieranie wielkoĞci G

C

T od wirtualnego sensora za-implementowanego w strukturze ramowej FraDIA. G

C

T jest wykorzystywane w obiekcie kla-sy pb_eih_visual_servo do obliczenia uchybu zadaniowego EG

E

,

H (wzór 1 oraz blok

„Obli-czenie uchybu” na rys. 4). Klasa pb_eih_visual_servo pochodzi od klasy visual_servo. Uchyb EG

E

,

H jest przekazywany do generatora kroku – tutaj jest to regulator

proporcjo-nalny. Obliczenie przyrostu (wzór 2) jest wykonywane w obiekcie klasy p_reglator, która pochodzi z klasy visual_servo_regulator. Wynikiem tej operacji jest przyrost pozycji E,G'

E'

. Ograniczenie pozycji koĔcówki roboczej jest realizowane w obiekcie klasy

posi-tion_constraint, gdzie zostaáa zaimplementowana funkcja PC uĪyta we wzorze 3. Po ograni-czeniu pozycji otrzymujemy wielkoĞü E,G''

E'

.

Rys. 6. Manipulator obserwujący dwa róĪne obiekty testowe

Ograniczenie szybkoĞci i wartoĞci przyspieszenia koĔcówki roboczej (wzór 4) jest za-implementowane w generatorze ruchu serwomechanizmu wizyjnego:

pec_visual_servo_manager. Po zastosowaniu ograniczenia na szybkoĞü koĔcówki roboczej

otrzymujemy E,G'''

E'

. UwzglĊdniając aktualne poáoĪenie koĔcówki roboczej TE

0

, uzyskujemy zgodnie ze wzorem 5 nową pozycjĊ koĔcówki roboczej '''

0

G

T . Pozycja ta ma byü osiągniĊta w kolejnym kroku sterowania, wiĊc jest wysyáana do sterownika manipulatora reprezentowa-nego przez obiekt klasy irp6ot_robot. Klasa ta odpowiada za komunikacjĊ z procesem EDP, który bezpoĞrednio steruje robotem.

(9)

Klasa pec_visual_servo_manager sprawdza równieĪ warunek zakoĔczenia pracy gene-ratora ruchu (termination_condition). Warunek jest speániony, gdy uchyb bĊdzie bliski zeru, szybkoĞü szachownicy wzglĊdem podstawy robota bĊdzie bliska zeru oraz wartoĞü przyspie-szenia bĊdzie bliska zeru.

6. EKSPERYMENTY

W celu weryfikacji dziaáania struktury stworzono zadanie dwurobotowe (rys. 6). Pierwszy robot (taĞmociąg) poruszaá w zadany sposób przedmiotem (np. ruchem sinusoidalnym lub jednostajnie przyspieszonym). Drugi robot (manipulator) miaá za zadanie Ğledziü przedmiot leĪący na taĞmociągu. Podczas pracy zbierane byáy pomiary pozycji koĔcówki roboczej ma-nipulatora oraz pozycji taĞmociągu. Na podstawie tych pomiarów obliczano rzeczywisty uchyb serwomechanizmu wizyjnego.

Na rys. 7 przedstawiono pomiary zebrane przy weryfikacji dziaáania serwomechanizmu Ğledzącego szachownicĊ poruszającą siĊ ruchem sinusoidalnym.

Rys. 7. PoáoĪenie przedmiotu (linia ciągáa), poáoĪenie koĔcówki roboczej (linia przerywana) oraz uchyb dla serwomechanizmu PB–EIH Ğledzącego szachownicĊ

Na rys. 8 przedstawiono eksperyment, w którym szachownica poruszaáa siĊ ruchem si-nusoidalnym, lecz ograniczenia poáoĪenia koĔcówki roboczej nie pozwalaáy dokáadnie naĞla-dowaü ruch przedmiotu – wspóárzĊdna y poáoĪenia koĔcówki roboczej nie mogáa byü mniej-sza niĪ 2 m.

7. PODSUMOWANIE

W artykule omówiono metodĊ integracji programowych struktur ramowych MRROC++ oraz FraDIA w sterownik robota mogący wykorzystaü informacjĊ wizyjną. Na jego bazie zaim-plementowano strukturĊ umoĪliwiającą tworzenie róĪnorodnych serwomechanizmów wizyj-nych. W szczegóáach omówiono implementacjĊ serwomechanizmu PEC–EOL–PB–SAC oraz przedstawiono eksperymenty przeprowadzone na rzeczywistym sprzĊcie. Warte podkreĞlenia jest, iĪ w rzeczywistoĞci serwomechanizm przetestowano dla róĪnych obiektów, a samą struk-turĊ wykorzystano równieĪ do implementacji serwomechanizmów typu PEC–EOL–PB–EIH oraz PEC–EOL–IB–EIH.

(10)

Rys. 8. PoáoĪenie przedmiotu (linia ciągáa), poáoĪenie koĔcówki roboczej (linia przerywana) oraz uchyb dla serwomechanizmu PB–EIH Ğledzącego szachownicĊ, z dziaáającymi ograniczeniami poáoĪenia

Gáównym celem dalszych prac jest rozbudowa istniejącej struktury o moĪliwoĞü jedno-czesnego korzystania z kilku kamer (np. jednej EIH oraz jednej SAC) oraz zbadanie moĪli-woĞci przeáączania miĊdzy nimi. Przykáadem zastosowania tego rozwiązania jest analiza sce-ny za pomocą nieruchomej kamery zawieszonej nad sufitem, a w przypadku wykrycia obiektu zainteresowania stopniowe zwiĊkszanie roli kamery zintegrowanej z chwytakiem w miarĊ zbliĪania siĊ do tego obiektu. Dalsze prace obejmują równieĪ implementacjĊ róĪnego rodzaju regulatorów (PID, PI2D).

BIBLIOGRAFIA

1. G.J. Agin. Real Time Control of a Robot with a Mobile Camera. Raport Techniczny 179, SRI International, 1979.

2. E. Cervera. A Cross-Platform Network-Ready Visual Servo Simulator. Proceeding of the International Conference on Intelligent Robots and Systems, s. 2314–2319, 2006.

3. S. A. Hutchinson, G. D. Hager, and P. I. Corke. A tutorial on visual servo control. IEEE Robotics and Automation Magazine, wol. 12(5), s. 651–670, 1996.

4. T. Kornuta. Application of the FraDIA vision framework for robotic purposes. Computer Vision and Graphics, Lecture Notes in Computer Science, wol. 6375, s. 65–72. Springer, 2010.

5. E. Marchand, F. Spindler, and F. Chaumette. ViSP for visual servoing: a generic software platform with a wide class of robot control skills. IEEE Robotics and Automation Maga-zine, wol. 12, s. 40–52, 2005.

6. F. Chaumette, S. A. Hutchinson. Visual Servoing and Visual Tracking. Rozdziaá w The Handbook of Robotics. B. Siciliano, O.Khatib (edytorzy), s. 563–610. Springer, 2008. 7. M. Staniak and C. Zielinski. Structures of visual servos. Robotics and Autonomous

Systems, 58(8): 940–954, 2010.

8. C. Zielinski, W. Szynkiewicz, T. Winiarski, M. Staniak, W. Czajewski, T. Kornuta. Rubic's cube as a benchmark validating MRROC++ as an implementation tool for service robot control systems. Industrial Robot: An International Journal, wol. 34, nr 5, s. 368–375, 2007.

9. C. ZieliĔski, T. Winiarski. Motion Generation in the MRROC++ Robot Programming Framework. The International Journal of Robotics Research, wol. 29, nr 4, s. 386–413, 2010.

Cytaty

Powiązane dokumenty

Rozpoczêcie procedury s¹dowej, nag³oœnione w prasie równie¿ nie prze³o¿y³o siê na zmianê nastrojów i opinii spo³ecznej obni¿y³a siê liczba badanych postuluj¹cych

QyZEXG\QNLSU]H]QDF]RQHGRVSUDZRZDQLDNXOWXUHOLJLMQHJRWDNLHMDNV\QDJRJL F]\GRP\PRGOLWZ\

Zmiany w duńskim reżimie wiedzy Duński reżim wiedzy zdominowany jest przez organizacje badawcze wywodzące się z  sekto- ra państwowego i  społecznego, przez który ro-

Tak więc, według legalnej definicji karty płatniczej zawartej w prawie bankowym, należy przez nią rozumieć kartę identyfikującą wydawcę i upoważnionego posiadacza,

w programach lojalnościowych, głównie ze względu na osiąganie korzyści finansowych; na ogół charakteryzują się średnim poziomem zaangażowania w związek z firmą,

Tak więc dla pa ristw, w któryc h wy stępują szoki wywołane przez poli tyki gospodarcze, utrata kursu wa lutowego po przystąpieniu do unii wa lutowej ni e powoduje

Chojna J., Miejsce podmiotów z udziałem kapitału zagranicznego w gospodarce narodowej Polski [w:] Inwestycje zagraniczne w Polsce, IKCHZ, Warszawa 2004.. Chrościcki T., Inwestycje

Według En cyklopedii POII',I'zechnei kataster kadaster to urzędowy spis gruntów i budynków, służący do oznaczenia nieruchomości przy zakładaniu i prowadzeniu ksiąg wieczystych