Wiedza i doświadczenie projektowe wizytówką absolwenta kierunku automatyka i robotyka na Wydziale Automatyki, Elektroniki i Informatyki Politechniki Śląskiej POKL.04.01.02-00-020/10 Program Operacyjny Kapitał Ludzki współfinansowany przez Unię Europejską ze środków Europejskiego Funduszu Społecznego SKN Robotyki Encoder Wydział Automatyki, Elektroniki i Informatyki- Politechnika Śląska Gliwice, 22.02.2013 Dr hab. inż. Marek Pawełczyk, prof. nzw. w Politechnice Śląskiej Koordynator Projektu POKL.04.01.02-00-020/10 Sprawozdanie z projektu realizowanego w ramach działalności SKN Robotyki ENCODER : Sterowanie manipulatorem Adept za pomocą czujnika fal mózgowych
Opis i cel projektu Celem projektu było utworzenie mechanizmu zdalnego sterowania manipulatorem Adept za pomocą fal mózgowych. Robot miałby wykonywać podstawowe komendy: zmień położenie, podnieś, wskaż. Kontrola odbywałaby się poprzez czujnik, który rejestruje i analizuje czynności elektryczne mózgu. Projekt opiera się na dwóch urządzeniach: AdeptSix 300 Robot, Emotiv EEG neuroheadset czujnik fal mózgowych. Przyrząd potrafi wykrywać myśli, odczucia oraz mimikę (oczywiście musi być on najpierw skalibrowany pod konkretną osobę). Połączenie z komputerem odbywa się drogą bezprzewodową (odbiornik USB). Do czujnika dołączony jest zestaw bibliotek i plików koniecznych do tworzenia aplikacji. Zadaniem zespołu było utworzenie aplikacji, która umożliwi komunikację pomiędzy oboma urządzeniami. Zespół projektowy Rafał Kobyłko, Aleksander Mielczarek, Jakub Musik, Jan Sładek, Wojciech Dędys, Zdzisław Niemiec, Andrzej Stańczak Ramowy plan prac Projekt był realizowany w semestrze zimowym roku akademickiego 2012/2013. Etap I (listopad grudzień): Obsługa manipulatora Adept, zakup czujnika EEG. Etap II (grudzień styczeń): Zapoznanie się z czujnikiem i dołączoną do niego dokumentacją. Etap III (styczeń luty): Utworzenie aplikacji realizującej cel projektu. Koszty i stan projektu Kosztorys projektu zakładał kupno tylko jednego elementu - czujnik Emotiv neuroheadset wraz z licencją Research SDK. Niestety w związku z opóźnieniem w realizacji jego zamówienia (niewynikającym z winy zespołu) nie udało się go zakupić w terminie. Przyrząd pełni kluczową rolę w naszym projekcie i bez niego nie było możliwe zrealizowanie wszystkich założeń. W związku z tym raport dotyczy tylko pierwszego etapu prac, gdyż tylko tyle mogliśmy zrobić. Wyrażamy również chęć kontynuowania projektu w następnym semestrze i składamy stosowny wniosek z prośbą o przeniesienie funduszy na kolejny konkurs. 1/4
Miejsce publikacji Sprawozdanie zostało opublikowane na oficjalnej stronie internetowej SKN Robotyki Encoder : http://encoder.polsl.pl/?page_id=274 ETAP I: Obsługa manipulatora Manipulator AdeptSix 300 Robot dostępny jest w laboratorium wydziału AEiI (p. 436). Jest to robot przemysłowy o sześciu stopniach swobody, dodatkowo wyposażony w chwytak i prosty system wizyjny. Na pierwszych spotkaniach zespołu, opiekun naukowy przeprowadził krótkie szkolenie z obsługi robota. Zostaliśmy zapoznani z jego budową, podłączeniem oraz oprogramowaniem. Rysunek 1. AdeptSix 300 Robot Manipulator jest programowalny zdalnie (TCP/IP). Producent dostarcza do niego bibliotekę ActiveX/COM (ActiveV2.dll), która pozwala m.in. na: łączenie się z urządzeniem, wysyłanie komend sterujących V+ (język programowania Adepta), uruchamianie/zamykanie programów, odczyt/ustawianie parametrów i zmiennych, monitorowanie pracy (watchdog). Wszystkie te czynności można wykonywać z poziomu komputera PC. Biblioteka jest kompatybilna z podstawowymi narzędziami programistycznymi firmy Microsoft można ją zaimportować do projektów: Visual Basic, Visual Basic.NET i C#.NET. Dzięki takiemu rozwiązaniu programista może w łatwy sposób zarządzać urządzeniem, nie znając języka programowania robota (V+). 2/4
Język V+ PC ActiveV2.dll Rysunek 2. Schemat programowania z wykorzystaniem ActiveV2.dll Pierwszym zadaniem było przetestowanie manipulatora w praktyce oraz poznanie jego możliwości ruchu, obrotów. Zanim rozpocznie się pracę z C#, mimo wszystko warto najpierw zaznajomić się z elementarnymi funkcjami języka V+. Zaczęliśmy od wydania kilku prostych komend, np.: APPRO, MOVE,, CALL itd. Robot wykonywał ruchy zgodnie z naszymi poleceniami. Z punktu widzenia programistycznego, wykorzystanie biblioteki ActiveV2.dll jest bardzo wygodne. Posiada ona jednak dość sporą wadę. Za jej pomocą nie można bezpośrednio sterować ruchem członów manipulatora. Dlatego w dalszej części projektu korzystamy z nieoficjalnej modyfikacji, która omija to ograniczenie poprzez edycję programu w V+. Modyfikacja ta została wykonana kilka lat temu przez członka koła naukowego..program pick_place(poz_pob, poz_odl) APPRO poz_pob, 30 MOVES poz_pob CALL chwytak_zam() APPROS poz_pob, 30 APPRO poz_odl, 30 MOVE poz_odl CALL chwytak_otw() APPROS poz_odl, 30.END Rysunek 3. Przykładowy fragment kodu w V+ Na stanowisku pracy mieliśmy do dyspozycji przykładowe aplikacje napisane w języku C#. Podstawowy program do obsługi pozwala na połączenie się z manipulatorem, ustawienie osi, kalibrację, wskazanie punktu itp. Poddaliśmy także analizie kody źródłowe programów do obsługi chwytaka i systemu wizji. Dzięki temu zaznajomiliśmy się (w stopniu podstawowym), z nowymi dla nas technologiami programowania m.in. Microsoft Speech SDK (przetwarzanie mowy), DirectX, Emgu CV (przetwarzanie obrazu). Ten etap miał charakter głównie szkoleniowy i zapoznawczy. W trakcie oczekiwania na potwierdzenie zamówienia czujnika, rozpoczęliśmy już przygotowania do realizacji właściwej części projektu. W naszej aplikacji będziemy wykorzystywać język C#, biblioteki czujnika i manipulatora oraz środowisko 3/4
Microsoft Visual Studio, dlatego każdy z członków zespołu został obligowany do indywidualnego poszerzenia swojej wiedzy w zakresie: obsługi platformy.net, Windows Communication Foundation, Windows Presentation Foundation, wykorzystania środowiska Visual Studio jako narzędzia do pracy zespołowej, obsługi SVN. Będąc tak przygotowanym merytorycznie, możemy szybko rozpocząć pracę z czujnikiem, gdy tylko on do nas dotrze. Rafał Kobyłko, kierownik projektu.. mgr inż. Michał Mikulski, opiekun projektu.. 4/4