Artykuł - Encoder - Politechnika Śląska
Transkrypt
Artykuł - Encoder - Politechnika Śląska
Sieciowe Sterowanie Robotem Przemysłowym KUKA KR3 Sprzężonego z Systemem Wizyjnym oraz Systemem Rozpoznawania Mowy Jakub Machnik, Michał Grycman, Mateusz Konieczny Politechnika Śląska, Gliwice, Polska {jakumac939, michgry907, matekon832}@student.polsl.pl Abstract. Artykuł ten przedstawia wyniki projektu wykonanego w ramach studenckiego koła naukowego. Głównym założeniem projektu było stworzenie systemu integrującego robota przemysłowego z kamerą oraz systemem rozpoznawania mowy. Użytkownik za pomocą mowy wydaje polecenia głosowe, nakazujące robotowi przeniesienie określonych przedmiotów w inne miejsca. Zadane przedmioty są następnie wykrywane na stole roboczym, obliczane są ich współrzędnie, które są wysyłane do sterownika robota. Ten z kolei wykonuje sekwencję ruchów pozwalającą na zmianę położenia określonych przedmiotów. 1 Wprowadzenie W jakim miejscu znajdował by się obecnie światowy przemysł gdybyśmy nie dysponowali robotami przemysłowymi? Bez wątpienia istotną rolę w obecnych zakładach pracy pełnią właśnie roboty przemysłowe, które cechują się wysoką precyzją, bardzo dobrą powtarzalnością a dodatkowo mogą pracować w trudnych warunkach środowiskowych. Tak naprawdę sam manipulator to tylko połowa sukcesu. Doposażenie takiego robota w narząd "wzroku i słuchu " czyni go bardzo inteligentnym narzędziem. Wykonanie ściśle określonej czynności przez robota wymagałoby minimalnej ingerencji ze strony operatora. Idealną sytuacją byłoby stworzenie takiego systemu, w którym wydanie polecenia głosowego przez osobę nadzorującą wiązało się z automatyczną pracą robota(tj. detekcja przedmiotu + wykonanie ruchu). 2 2 Jakub Machnik, Michał Grycman, Mateusz Konieczny Założenia Projektu Głównym założeniem projektu było stworzenie systemu wizyjnego oraz systemu rozpoznawania mowy dedykowanego dla robota przemysłowego KUKA KR3. Robot ten(a dokładnie sterownik robota) jest połączony z komputerem nadrzędnym za pomocą protokołu TCP/IP. Celem komputera nadrzędnego jest integracja systemu wizyjnego(w skład którego wchodzą 2 kamery) oraz systemu rozpoznawania mowy. Komputer ten posiada także odpowiednie oprogramowanie, za pomocą którego dane otrzymywane z kamery i mikrofonu są przetwarzane, a specjalny algorytm steruje pracą robota. Główne etapy na jakie został podzielony projekt: Stworzenie wielowątkowej aplikacji sieciowej typu klient-serwer do sterowania robotem przemysłowym KUKA KR3. Rolę serwera pełnić będzie sterownik robota. Klientem będzie dowolny komputer z odpowiednim oprogramowaniem, połączony za pomocą sieci Ethernet ze sterownikiem. Implementacja systemu wizyjnego. System ten będzie odpowiedzialny za przechwytywanie obrazu z kamer oraz jego obróbkę w celu uzyskania współrzędnych opisujących położenie przedmiotów w przestrzeni roboczej manipulatora. Implementacja systemu rozpoznawania mowy. Głównym zadaniem będzie rozpoznawanie poleceń wypowiadanych przez operatora systemu. 3 Główna Aplikacja Podstawą do wykonania niniejszego projektu jest aplikacja sieciowa do zdalnego sterowania robotem przemysłowym KUKA KR3. Łączność pomiędzy aplikacją serwera i klienta ta została oparta na protokole TCP/IP z wykorzystaniem mechanizmu SOCKETów. Program serwera został napisany w języku C++ z wykorzystaniem biblioteki MFC. Wybór takiego a nie innego języka programowania był podyktowany faktem, iż biblioteka do obsługi robota KUKA została napisana właśnie w języku C++. Oczywistą sprawą było zapewnienie wielowątkowości, umożliwiającej jednoczesne sterowanie robotem i odbieranie wiadomości od klientów. W odróżnieniu od programu serwera, część kliencką zdecydowano się pisać Sieciowe Sterowanie Robotem Przemysłowym KUKA KR3 ... 3 w języku C#, biorąc pod uwagę późniejszą implementację systemu wizyjnego oraz systemu rozpoznawania mowy. 4 System Wizyjny Głównym elementem systemu wizyjnego jest kamerka internetowa Logitech C270 o rozdzielczości 720p przetwarzająca obraz z szybkością 30 klatek na sekundę. Drugim elementem systemu jest odpowiednie oprogramowanie. W tym celu wykorzystaliśmy bibliotekę OpenCV, która cechuje się wysoką wydajnością oraz sporą liczbą budowanych mechanizmów. Niewątpliwą zaletą tej biblioteki jest możliwość przetwarzania obrazu w "locie" czyli bezpośrednio strumienia wideo z kamery. Poniższy schemat prezentuje uproszczony algorytmu wykrycia obiektu: Fig. 1. Algorytm rozpoznawania obiektów Wynikiem przetworzenia obrazu z kamery są współrzędne obiektu podane w pikselach. Muszą zostać one przeliczone na współrzędne kartezjańskie, które odpowiadają współrzędnym znajdującym się w przestrzeni roboczej robota. 4 Jakub Machnik, Michał Grycman, Mateusz Konieczny Dodatkowo za pomocą wbudowanych funkcji mogliśmy obliczyć środki ciężkości zidentyfikowanych obiektów. W celu wizualizacji aktualnie przetwarzanego obiektu wykorzystaliśmy funkcję 'Draw' do wyrysowania w czasie rzeczywistym obwodu wykrytej figury. Fig. 2.Wykryty obiekt widziany przez system wizyjny 5 System Rozpoznawania Mowy Rozpoznawanie mowy zostało oparte na bibliotece System.Speech dostępnej w angielskiej wersji systemu Windows 7. System rozpoznawania mowy pozwala na bezdotykowe sterowanie robotem KUKA KR3. By zwiększyć dokładność działania systemu zbiór wyrazów rozpoznawanych został zawężony do kilkunastu, niezbędnych do działania aplikacji. Dzięki temu uniknęliśmy błędnego rozpoznania wyrazów, spowodowanego akcentem, osoby wypowiadającej słowa. Przykłady rozpoznawanych słów przez aplikację: "square" - po wypowiedzeniu tego słowa, system wizyjny znajduje na stole roboczym figurę o kształcie kwadratu, wyznacza współrzędne krawędzi, a następnie wyznaczane są współrzędne środka ciężkości figury "base one" - stwierdzenie to oznacza wybranie zdefiniowanej bazy jako punktu końcowego, do którego zostanie przeniesiony obiekt "start" - inicjalizuje przeniesienie przedmiotu do miejsca zdefiniowanego przez użytkownika Sieciowe Sterowanie Robotem Przemysłowym KUKA KR3 ... 5 6 Wnioski W ramach projektu został wykonany program do komunikacji sieciowej z robotem przemysłowym. Komunikacja na podstawie protokołu TCP/IP w sieci Ethernet okazała się być wystarczająco szybka do naszych celów. W kolejnych etapach program ten został doposażony w elementy pozwalające na detekcję obrazu(konkretnie przedmiotów na stole roboczym). Moduł ten został oparty na bibliotece OpenCV. W podstawowej wersji naszego programu, wykrywane są takie obiekty jak: trójkąt, kwadrat, prostokąt, okrąg czy trapez. W przyszłości istnieje możliwość rozbudowy tej grupy o bardziej rozbudowane i skomplikowane kształty odpowiadające takim przedmiotom jak wkrętarka czy nożyczki. Całość systemu jest sterowana głosem osoby operującej urządzeniem. Do tych celów wykorzystaliśmy bibliotekę System.Speech zawierającą spory zestaw zdefiniowanych "szablonów". Przygotowany przez nas projekt oferuje bardzo duże możliwości pod względem wykorzystania go do celów praktycznych takich jak: asystowanie w zabiegach chirurgicznych, przenoszenie i dozowanie substancji niebezpiecznych czy też montaż urządzeń elektronicznych. Informacja o finansowaniu. Praca współfinansowana przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach projektu „Wiedza i doświadczenie projektowe wizytówką absolwenta kierunku automatyka i robotyka na Wydziale Automatyki, Elektroniki i Informatyki Politechniki Śląskiej” nr POKL.04.01.02-00-020/10. Bibliografia 1. W. Kasprzak, Rozpoznawanie obrazów i sygnałów mowy, Warszawa 2009. 2. R. Tadeuszewicz, Systemy wizyjne robotów przemysłowych, Warszawa 1992. 3. T.Szkodny, Kinematyka robotów przemysłowych, Gliwice 2009. 4. MSDN, Dokumentacja [Dok. elektr.]. [dostęp 02.01.2012]. Dostępny w internecie: http://msdn.microsoft.com/en-us/library/. 5. OpenCV, Dokumentacja [Dok. elektr.]. [dostęp 24.01.2012]. Dostępny w internecie: http://docs.opencv.org/. 6 Jakub Machnik, Michał Grycman, Mateusz Konieczny