Raport częściowy System rozpoznawania gestów dłoni na
Transkrypt
Raport częściowy System rozpoznawania gestów dłoni na
Politechnika Wrocławska Projekt zespołowy Raport częściowy System rozpoznawania gestów dłoni na podstawie miopotencjałów oraz czuciowego sprzężenia zwrotnego dla zręcznej protezy dłoni. 13.05.2013 1 Wstępne rezultaty Raport dotyczy rezultatów uzyskanych podczas prac na projektem od czasu jego rozpoczęcia do dnia 13.05.2013. W tym okresie, dużo czasu poświęcono na zdobywanie niezbędnych informacji oraz podstaw teoretycznych dla analizy sygnałów EMG oraz na złożenie zamówień na niezbędne elementy montażowe i elektroniczne do wykorzystania przy realizacji systemu czuciowego sprzężenia zwrotnego. 1.1 Wyniki prac: • Zakup elementów elektronicznych i montażowych do projektu, • zaprojektowanie i wykonanie modułu zasilania, • zaprojektowanie i wykonanie sterownika silników wibracyjnych, • zaprojektowanie schematu modułu pomiarowego z czujnikami nacisku i zgięcia, • zrealizowanie w środowisku Matlab programu do akwizycji sygnałów EMG, • zrelizowanie interfejsu graficznego użytkownika do ww. programu, ułatwiającego budowanie bazy próbek, • wdrożenie systemu kontroli wersji opartego na SVN, • wybranie metody klasyfikacji sygnałów EMG w oparciu o sieć Kohonena, • rozpoczęcie badań nad ektrakcją cech charakterystycznych z sygnału EMG, • naprawienie protezy dłoni, wykonanej przez jednego z dyplomantów Wydziału Elektroniki, • wykonanie płyty głównej modułu czuciowego sprzężenie zwrotnego, • wykonanie płytek PCB dla czujników (zgięcia i nacisku, temperatury), • opracowanie i pierwsze testy sterowania bioprotezą z poziomu Matlaba, • postawienie strony internetowej projektu na serwerze http://diablo.ict.pwr.wroc.pl/ projektbiopro/wordpress/. Wszystkie pliki, kody źródłowe, będące realizacją ww. punktów znajdują się na serwerze SVN. 1.2 Plan prac na najbliższe dni: • połączenie układu czujników, • napisanie oprogramowania do mikrokontrolera w celu pobierania pomiarów z czujników i wysterowania elementów wykonawczych, • stworzenie bazy próbek sygnału EMG dla różnych gestów dłoni, • implementacja sieci neuronowej przetwarzającej uzyskaną bazę próbek, • aktualizacja informacji na stronie internetowej projketu. 1 2 Uzyskiwanie cech charakterystycznych sygnałów, za pomocą algorytmu MFCC’s Algorytm MFCC (ang. Mel-frequency cepstral coefficients) jest stosowany do uzyskania cech charakterystycznych sygnałów. Równo rozmieszczone przedziały częstotliwościowe są bardziej naturalne dla człowieka, a także łatwiej rozpoznawalne i rozróżnialne dla programów. Dzięki temu algorytm znajduje zastosowanie w programach do kompresji dźwięków oraz algorytmach rozpoznawania (np. rozpoznanie silnika bądź mówcy, utworu muzycznego). Sposób działania algorytmu MFCC: 1. Bierzemy Transformate Fourier’a z sygnału (dla większej dokładności ale kosztem czasu obliczeń stosujemy transformatę na zokienkowanym wcześniej sygnale). 2. Do dalszej części bierzemy tylko połowę otrzymanej transformaty, gdyż druga połowa jest tylko odbiciem. 3. Otrzymane w ten sposób widmo podnosimy do kwadratu aby otrzymać widmo mocy. 4. Tworzymy bank filtrów melowych. 5. Przemnażamy odpowiednio widmo mocy każdego sygnału przez każdy filtr. 6. Otrzymane wartości są logarytmowane a następnie poddawane dyskretnej transformacie „kosinusowej”. 7. Cechami charakterystycznymi są apmlitudy otrzymanego widma. 3 Sterowanie bioprotezą Sterowanie bioprotezą odbywa się poprzez wysyłanie odpowiednich instukcji sterujących przez port szeregowy. Oprogramowanie sterownika bioprotezy umożliwia sterowanie każdym z dostępnych przegubów z osobna, zadając im kąty zgięcia. Ponadto sterownik udostępnia zapamiętany zbiór gestów, wykonywanych po otrzymaniu odpowiednich, skróconych instrukcji sterujących. Sterowanie z wykorzystaniem zapamiętanych gestów okazało się niewystarczające dla założeń projektu w związku z tym każdorazowo przesyłane będą instrukcje sterujujące z zadanym kątem dla każdego z przegubów. Ramka danych dla instrukcji sterującej wygląda następująco: p|aL|aH |q|f |r gdzie: aL - wartość kąta - 8 młodszych bitów aH - wartość kąta - 8 starszych bitów q - wybór przegubu: 0/1/2/3 f - wybór palca: 0/1/2/3 2