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

Podobne dokumenty