Z-ANO - České vysoké učení technické v Praze
Transkript
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA BIOMEDICÍNSKÉHO INŽENÝRSTVÍ Katedra biomedicínské techniky TÝMOVÝ PROJEKT 2012 Lenka Hálová ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta biomedicínského inženýrství Katedra biomedicínské techniky Umělá inteligence pro určení ZMP Týmový projekt Vedoucí projektu: Mgr. Slávka Vítečková Student: Lenka Hálová II leden 2012 Zadání projektu III Anotace Cílem této práce bylo vypočítat Zero-Moment Point, který bude použit při návrhu neuronové sítě (umělé inteligence), která se naučí Zero-Moment Point vypočítat sám. Signál lidské chůze jsme snímali pomocí kamerového systému Lukotronic AS 200 a 18 markerů, které jsme vhodně rozložili po měřeném subjektu. Signál jsme zpracovávali v Matlabu R2010b. Umělou inteligenci budeme vytvářet v témž programu za využití toolboxu Neural Network. Anotation The aim of this study was to calculate the Zero-Moment Point, which will be used for designing a neural network (artificial intelligence), which learns to compute the Zero-Moment Point itself. The signal of human gait was obtained by a camera system Lukotronic AS 200 with using 18 markers appropriately spread over the measured subject. We processed signal in Matlab R2010b. Artificial intelligence will be created by using the Neural Network toolbox also in Matlab. IV Prohlášení Prohlašuji, že jsem týmový projekt s názvem Umělá inteligence pro určení ZMP vypracovala samostatně a použila k tomu úplný výčet citací použitých pramenů, které uvádím v seznamu přiloženém k závěrečné zprávě. Nemám závažný důvod proti užití tohoto školního díla ve smyslu §60 Zákona č.121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Praze dne 3. ledna 2012 ……………………..... Lenka Hálová V Obsah Zadání projektu ..................................................................................................................... III Anotace .................................................................................................................................... IV Prohlášení ................................................................................................................................. V Obsah ....................................................................................................................................... VI Seznam použitých symbolů ................................................................................................VIII Seznam použitých zkratek .................................................................................................VIII Seznam obrázků ..................................................................................................................... IX Seznam tabulek ....................................................................................................................... IX 1. 2. Úvod ................................................................................................................................... 1 1.1 Stav problematiky ve světě...................................................................................................... 1 1.2 Stav problematiky na FBMI .................................................................................................... 1 Lidská chůze ...................................................................................................................... 2 2.1 3. Chůzový cyklus ....................................................................................................................... 2 Antropometrie ................................................................................................................... 4 3.1 Hmotnost ................................................................................................................................. 4 3.2 Těžiště ..................................................................................................................................... 5 4. Zero Moment Point ........................................................................................................... 8 5. Umělé neuronové sítě ...................................................................................................... 10 6. 7. 8. 5.1 Neuron ................................................................................................................................... 10 5.2 Struktura ................................................................................................................................ 11 5.3 Učení s učitelem .................................................................................................................... 11 Lukotronic ....................................................................................................................... 12 6.1 Specifikace systému Lukotronic AS 200............................................................................... 14 6.2 Rozložení markerů ................................................................................................................ 15 Návrh řešení projektu ..................................................................................................... 16 7.1 Výpočet hmotnosti segmentů ................................................................................................ 16 7.2 Výpočet těžišť za pomoci Matlabu........................................................................................ 17 7.3 Výpočet ZMP – varianta A.................................................................................................... 17 7.4 Výpočet ZMP – varianta B .................................................................................................... 18 Závěr ................................................................................................................................ 19 VI Seznam použité literatury a elektronických informačních zdrojů .................................... 20 Příloha 1 .................................................................................................................................. 22 a) Interpolace dat ............................................................................................................................... 23 b) Výpočet těžišť segmentů lidského těla.......................................................................................... 23 c) Výpočet ZMP ................................................................................................................................ 26 VII Seznam použitých symbolů m hmotnost [kg] g gravitační zrychlení [m∙s-2] ω úhlová rychlost [rad∙s-1] P bod P H matice H M momentový vektor ̇ [N.m] první derivace podle času ̈ druhá derivace podle času Seznam použitých zkratek ZMP Zero-Moment Point BP bakalářská práce TPR týmový projekt UI umělá inteligence NS Neuronové sítě ANN artificial neural network (umělá neuronová síť) VIII Seznam obrázků Obr. 1: Fáze lidské chůze ........................................................................................................... 3 Obr. 2: Chůzový cyklus dle Dr. Jaqueline Perry [16] ................................................................ 4 Obr. 3: Experimentálně určené indexy pro výpočet těžiště segmentů [12]................................ 6 Obr. 4: Znázornění ZMP, N je reakční síla, M je točivý moment a P je bod, ve kterém je M = 0. [15] ......................................................................................................................................... 8 Obr. 5: Pohyb ZMP po podložce při chůzi [15] ......................................................................... 9 Obr. 6: Matematický model neuronu [20] ................................................................................ 10 Obr. 7: Analytický výpočet přenosu neuronu .......................................................................... 11 Obr. 8: Struktura vícevrstvých neuronových sítí [20] .............................................................. 11 Obr. 9: Kohonenova síť vyšší dimenze [19] ............................................................................ 12 Obr. 10: Kamerový systém Lukotronic AS 200: stativ s kamerami, markery s napájecí baterií .................................................................................................................................................. 13 Obr. 11: Možnosti nastavení vzdálenosti (rozptylu) kamer Lukotronicu ................................ 13 Obr. 12: Možnost označení markerů v softwaru Lukotronicu ................................................. 14 Obr. 13: Rozložení markerů na subjektu .................................................................................. 15 Seznam tabulek Tab. 1: Tabulka pro výpočet hmotnosti segmentů těla dle Zaciorského a Selujanova (1979) [12] ............................................................................................................................................. 5 Tab. 2: Experimentálně určené indexy pro výpočet těžiště segmentů [12]................................ 6 Tab. 3: Technické parametry systému Lukotronic AS 200 [5] ................................................ 14 Tab. 4: Antropologické údaje měřené osoby ........................................................................... 16 Tab. 5: Tabulka hmotností segmentů těla našeho subjektu ...................................................... 16 IX 1. Úvod V této práci se zabývám především způsobem, jak z dat naměřených pomocí kamer Lukotronic AS200, získat hodnoty ZMP, které poté využiji ve své bakalářské práci. Hodnoty budou sloužit mnou vytvořené neuronové síti (umělé inteligenci) jako učitel, pomocí kterého se naučí z dat naměřených sám vypočítat umístění ZMP. Téma jsem si vybrala kvůli tomu, že propojuje laboratorní měření s programováním v programu Matlab R2010b. Jelikož jsme tento software používali po celou dobu studia, jsem si v něm nejjistější a nejlépe mu rozumím. ZMP je důležitou součástí robotiky, což je pro mne také velmi zajímavá oblast. 1.1 Stav problematiky ve světě Schopnost analyzovat a interpretovat lidský pohyb má obrovský význam pro velké množství aplikací, od rozpoznání podezřelých a patologických pohybů až po vytváření humanoidů – robotů, jež jsou podobní člověku principiální stavbou těla a zejména způsobem pohybu. Aby bylo možné analyzovat tak složitý děj jako je lidská chůze, je nutné využít takových metod, které umožňují lépe popsat chování reálných systémů tím, že nechávají prostor pro nepřesnost a neurčitost těchto systémů. Takovou metodou jsou i Neuronové sítě (NS). První umělou neuronovou síť vymyslel v roce 1958 psycholog Frank Rosenblatt. Byla nazvána Perceptron a smyslem její existence mělo být modelování postupu, při kterém lidský mozek zpracovává vizuální data a učí se rozeznávat objekty. Jiní badatelé používají od té doby podobné ANN sítě ke studiu lidského poznávání. V dnešní době jsou neuronové sítě v oblasti biomedicíny velmi rozšířené. Využívají se například k simulaci nervové soustavě, analýze biologických signálů, zpracování a klasifikaci biomedicínských dat. 1.2 Stav problematiky na FBMI Na naší fakultě je téma lidské lokomoce velmi populární. V roce 2011 byly vypracovány dvě bakalářské práce na toto téma. 1 Bc. Václav Procházka toho roku zpracoval práci na téma „Využití predikce pohybu dolní končetiny pomocí neuronových sítí“ pod vedením Ing. Patrika Kutílka, Ph.D. Cílem bylo analyzovat možnost řízení protetických náhrad metodami umělé inteligence. Bc. Markéta Kubánková ve stejný rok vypracovala bakalářskou práci na téma „Řízení pohybu dolních končetin pomocí fuzzy systému“ pod vedením doc. RNDr. Ing. Marcela Jiřiny, Ph.D. Za cíl práce si zvolila návrh fuzzy inferenčního systému, který by dokázal predikovat pohyb umělé dolní končetiny na základě vstupního signálu ze zdravé končetiny, a výstupy systému vizualizovat. Vedoucí mé práce, Mgr. Slávka Vítečková, na katedře biomedicínské informatiky pod vedením doc. RNDr. Ing. Marcela Jiřiny, Ph.D. zpracovává disertační práci na téma „Využití umělé inteligence v asistivní robotice“. Obsahem práce je navrhnout model dolní končetiny, který bude využívat informací ze senzorů a adaptivních algoritmů, které budou umožňovat učení a přizpůsobení pohybů pacienta. 2. Lidská chůze Chůze je druh mechanického pohybu využívající dolní končetiny, který je vlastní bipedálním živočichům, jímž je i člověk. Chůze neboli lokomoce se skládá z jednotlivých kroků, kdy se cyklicky střídá jedna noha za druhou, čímž dochází k pohybu. Za definici chůze se považuje stav, kdy je vždy aspoň jedna noha v dotyku se zemí. Pokud jsou obě nohy v kontaktu se zemí, jedná se o stání. Pokud nastávají okamžiky, kdy ani jedna noha není ve styku se zemí, jedná se o běh (či skok). Během chůze se těžiště těla pohybuje v závislosti na jednotlivých krocích. [1] 2.1 Chůzový cyklus Základní jednotkou lidské chůze je krok. Jeden krok sestává ze dvou základních fází: stojná (opěrná) a švihová (letová). Stojná fáze trvá asi 60% času jednoho chůzového cyklu a začíná, jakmile pata přijde do styku s podložkou. Končí, jakmile se palec (poslední prst) odlepí od podložky. Během fáze stojné jedné končetiny zároveň probíhá na druhé končetině fáze švihová. Při švihové fázi (přibližně 40% času jednoho chůzového cyklu) se končetina ohýbá v kyčli a koleni a ke konci dochází k extenzi kolene a dorzální flexi hlezenního kloubu, aby se opět pata mohla dotknout podložky a začít další fáze stojná. [1] 2 Obr. 1: Fáze lidské chůze Kromě základního dělení chůze na fázi stojnou a švihovou můžeme použít dělení dle Dr. Jaqueline Perry do následujících osmi fází [16]: - Počáteční kontakt (Initial contact) – zahajuje houpavý pohyb paty pro postup a redukci nárazu, cílem je stabilizace končetiny k podpoře váhy těla - Zátěžová odpověď (Loading response) – flexe kolene pro absorpci nárazu - Mezistoj (Midstance) – valení končetiny dopředu přes opěrnou nohu - Koncový okamžik opory (Terminal stance) – postup celého těla přes opěrnou nohu, cílem je nést hmotnost těla - Předšvih (Preswing) – přechod ze stoje do švihu – odlepení nohy od podložky - Počáteční švih (Initial swing) – švih končetiny dopředu - Mezišvih (Midswing) – konečný pohyb stehna - Koncový švih (Terminal swing) – dokončení délky kroku, příprava pro stoj 3 Obr. 2: Chůzový cyklus dle Dr. Jaqueline Perry [16] 3. Antropometrie Antropometrie je soustava metod pro měření různých znaků lidského těla a jeho částí. Hlavními antropometrickými znaky jsou výška a hmotnost celého těla, hmotnosti a velikosti jednotlivých tělesných segmentů, různé funkční a výkonnostní ukazatelé apod. [10] 3.1 Hmotnost Za využití znalosti celkové váhy a experimentálních indexů pro výpočet hmotnosti segmentů získáme hmotnosti jednotlivých segmentů těla měřené osoby. 4 Tab. 1: Tabulka pro výpočet hmotnosti segmentů těla dle Zaciorského a Selujanova (1979) [12] Část těla Hlava Stehno Berec Noha Nadloktí Předloktí Ruka Trup Podíl z celkové hmotnosti 7,40% 12,40% 4,60% 1,60% 2,90% 1,70% 0,70% 44,80% 3.2 Těžiště Celkové těžiště těla je myšlený bod, do nějž umisťujeme tíhovou sílu. Celkové těžiště je důležité zejména tam, kde zjednodušujeme mechanickou analýzu pohybu na pohyb hmotného bodu. [14] V tzv. základním anatomickém postoji – stoj spatný, paže podél těla, dlaně vpřed – se celkové těžiště těla nachází přibližně ve výši druhého křížového obratle. U žen leží těžiště níže než u mužů, jelikož mají rozdílné proporce pánve. V průběhu ontogenetického vývoje se celkové těžiště posouvá níže, jelikož se mění rozdělení hmotnosti jednotlivých segmentů (kojenci a batolata mají větší hlavu v porovnání s trupem a končetinami). Celkové těžiště těla lze zjistit na základě znalosti poloh dílčích těžišť jednotlivých segmentů a hmotnosti (resp. tíhy) těchto segmentů. Při zjišťování celkového těžiště jsme proto nejprve z naměřených dat vypočítali těžiště jednotlivých segmentů těla. [14] Na výpočet těžiště tělesného segmentu je nutné znát polohu tohoto segmentu na osách x, y, z a experimentálně určené indexy [12] (Tab. 4), (Obr. 3). Tu jsme určili z naměřených hodnot, jelikož jsme markery lepili právě na počátky a konce jednotlivých segmentů. 5 Tab. 2: Experimentálně určené indexy pro výpočet těžiště segmentů [12] Část těla Hlava Stehno Berec Noha Nadloktí Předloktí Trup Mezi markery hlava → rameno kyčel → koleno koleno → kotník kotník → malík rameno → loket loket → ruka rameno → kyčel Index 0,5 0,43 0,41 0,5 0,44 0,43 0,42 Obr. 3: Experimentálně určené indexy pro výpočet těžiště segmentů [12] Výpočet těžiště segmentu podle vzorce: kde 𝑡 = 𝐴 + (𝐵 − 𝐴) ∙ 𝑘 𝑡 je těžiště daného segmentu 𝐴 a 𝐵 jsou naměřené hodnoty - body určené osami x, y, z 𝑘 je experimentálně určený index 6 (1) , Výpočet celkového těžiště jsme pak vypracovali podle vzorců [14]: ∑𝑛1 𝑥𝑖 ∙ 𝑚𝑖 𝑥𝑇 = ∑𝑛1 𝑚𝑖 ∑𝑛1 𝑦𝑖 ∙ 𝑚𝑖 𝑦𝑇 = ∑𝑛1 𝑚𝑖 kde: 𝑧𝑇 = ∑𝑛1 𝑧𝑖 ∙ 𝑚𝑖 ∑𝑛1 𝑚𝑖 (2) (3) (4) , 𝑥𝑇 , (𝑦𝑇 , 𝑧𝑇 ) je souřadnice 𝑥, (𝑦, z) celkového těžiště těla 𝑚𝑖 jsou hmotnosti jednotlivých segmentů 𝑥𝑖 , (𝑦𝑖 , 𝑧𝑖 ) jsou souřadnice těžišť dílčích segmentů na příslušných osách 7 4. Zero Moment Point Zero Moment Point určuje místo, v němž dynamická reakční síla v místě kontaktu nohy se zemí nevytváří žádný moment v horizontálním směru, tj. bod, ve kterém se celková vertikální setrvačnost (na ose x a y) a gravitační síla rovnají nule. [7] 𝑀𝑥 = 𝑀𝑦 = 0 (5) Koncept byl poprvé představen v roce 1968 srbským inženýrem Miomirem Vukobratrovićem na Třetím Mezinárodním Kongresu Teoretické a Aplikované Mechaniky v Moskvě [9]. Během let 1970 až 1972 bylo vypracováno mnoho prací, které tuto myšlenku rozšířily a ve kterých najdeme právě označení Zero Moment Point. Obr. 4: Znázornění ZMP, N je reakční síla, M je točivý moment a P je bod, ve kterém je M = 0. [15] Vztah pro výpočet ZMP [7]: 𝑥𝑍𝑀𝑃 = 𝑦𝑍𝑀𝑃 = 𝑚𝑡𝑜𝑡 ∙ 𝑔𝑧 ∙ 𝑝𝐶𝑜𝑀𝑥 + 𝑧𝑍𝑀𝑃 ∙ 𝑃𝑥 − 𝐻𝑦 𝑚𝑡𝑜𝑡 ∙ 𝑔𝑧 + 𝑃𝑧 𝑚𝑡𝑜𝑡 ∙ 𝑔𝑧 ∙ 𝑝𝐶𝑜𝑀𝑦 + 𝑧𝑍𝑀𝑃 ∙ 𝑃𝑦 − 𝐻𝑥 𝑚𝑡𝑜𝑡 ∙ 𝑔𝑧 + 𝑃𝑧 8 (6) (7) kde: 𝑧𝑍𝑀𝑃 je výška podstavy – pokud se rovina XY nachází na zemi, zZMP je rovno nule mtot je celková hmotnost subjektu [kg] g z je tíhové zrychlení [m/s²] 𝑝𝐶𝑜𝑀𝑥 , 𝑝𝐶𝑜𝑀𝑦 je x-ová (y-ová) souřadnice CoM 𝑃𝑧 je z-ová souřadnice bodu P – v našem případě se rovná nule H je matice H, která vychází z robotiky Pokud předpokládáme, že točivý moment τ = 0, takže x ZMP = p, výsledkem je zjednodušený vztah pro výpočet ZMP [7]: 𝑥𝑍𝑀𝑃 = 𝑝 = 𝑥𝐶𝑜𝑀 − 𝑦𝑍𝑀𝑃 = 𝑦𝐶𝑜𝑀 − 𝑥̈ 𝐶𝑜𝑀 ∙ 𝑧𝐶𝑜𝑀 𝑔𝑧 𝑦̈ 𝐶𝑜𝑀 ∙ 𝑧𝐶𝑜𝑀 𝑔𝑧 (8) (9) Na Obr. 5 můžeme vidět, jak se pohybuje ZMP po podložce při chůzi člověka, který dělá kroky dlouhé 50 cm. Obr. 5: Pohyb ZMP po podložce při chůzi [15] 9 5. Umělé neuronové sítě Umělá neuronová síť (ANN, artificial neural network) je prostředkem pro zpracování komplexních dat, využívajícím ke své práci množství propojených procesorů a výpočetních cest. ANN jsou inspirovány architekturou lidského mozku. Jsou schopny se učit a analyzovat rozsáhlé a komplexní množiny dat, které mnohem lineárnější algoritmy jen těžko zvládnou. Od 80. let se ANN začaly používat nejen na poskytování pohledů na fungování lidského mozku, ale začaly být užitečným nástrojem i samy o sobě. Jejich schopnost vytvářet vzorce a samy se jim učit umožňují postihnout mnoho problémů, které byly obtížné nebo zcela neřešitelné standardními výpočetními a statistickými metodami. Ačkoliv jsou ANN sítě často nazývány prostě neuronovými sítěmi, je vhodné si uvědomit, že tento název mnohem spíše náleží biologickým mozkům, podle nichž byly původně modelovány. [4] 5.1 Neuron Základní jednotkou ANN je neuron. Analogicky k anatomickému neuronu má mnoho vstupů, ale pouze jeden výstup. Matematický model neuronu je zobrazen na Obr. 6, analytický výpočet přenosu neuronu je pak na Obr. 7. Jednotlivé vstupy jsou násobeny koeficientem wi (váhou), který je v průběhu procesu učení neuronovou sítí regulován. Výstupem je prahová funkce f(x), jenž je většinou parametrizovanou sigmoidou. [19] Obr. 6: Matematický model neuronu [20] 10 Obr. 7: Analytický výpočet přenosu neuronu 5.2 Struktura Umělá neuronová síť funguje tak, že vytváří spojení mezi mnoha různými neurony, analogickými se samostatným neuronem v biologickém mozku. Každý neuron dostává mnoho vstupních signálů. Poté, na základě vnitřního vyvažovacího systému, produkuje jednotlivý výstupní signál, který je typicky zasílán jako vstup jinému neuronu. Neurony jsou těsně propojeny a organizovány do různých vrstev. Vstupní vrstva dostává vstupní údaje, výstupní vrstva vytváří finální výstup. Mezi tyto dvě vrstvy je obvykle vložena jedna nebo více skrytých vrstev. (Obr. 8) Obr. 8: Struktura vícevrstvých neuronových sítí [20] 5.3 Učení s učitelem Umělé neuronové sítě mají na počátku procesu učení náhodné váhy u všech svých neuronů. To znamená, že musejí být školeny na řešení konkrétního problému, pro který byly zamýšleny. Při pohledu hodně ze široka lze říci, že existují dvě metody školení ANN v závislosti na problému, který musejí řešit. Samoorganizující se ANN (self-organizing ANN, často nazývaná podle svého tvůrce Kohonenova) je vystavována velkému množství dat a směřuje k 11 odhalení zákonitostí a souvislostí v těchto datech. Badatelé často používají tento typ pro analýzu experimentálních dat. Zpětně šířící ANN (back-propagation ANN) je lidmi školena na vykonávání speciálních úloh. Během školicího období učitel vyhodnocuje, zda je výstup ANN správný. Pokud je správný, neuronové váhy, které tento výstup vytvářejí, jsou posíleny; pokud je výstup nesprávný, zodpovědné váhy jsou oslabeny. Tento typ je nejčastěji využíván pro poznávací výzkum a pro aplikace na řešení problémů. [20] Obr. 9: Kohonenova síť vyšší dimenze [19] 6. Lukotronic Pro měření dat jsme si zvolili kamerový systém od rakouské firmy Lukotronic. Konkrétně typ AS 200, který je součástí inventáře fakulty biomedicínského inženýrství. Kamerový systém sestává ze dvou stativů, na každém z nich jsou na kovovém rámu umístěny tři infračervené kamery (Obr. 8), speciálně vyrobeny pro snímání objektu v 3D. Díky stativu je možné nastavovat výšku i natočení kamer podle toho, jakou oblast chceme snímat (Obr. 9). 12 Obr. 10: Kamerový systém Lukotronic AS 200: stativ s kamerami, markery s napájecí baterií Obr. 11: Možnosti nastavení vzdálenosti (rozptylu) kamer Lukotronicu Kamery snímají pohyb aktivních markerů, které jsou umístěny na snímaném objektu, zapojených do napájecí baterie. Výrobcem stanovený maximální počet markerů je 48 [18]. Pro naše měření jsme použili celkem 16, poté i 18 markerů. Markery jsou fyzicky i softwarově očíslovány pro lepší orientaci (viz. Obr. 10). 13 Obr. 12: Možnost označení markerů v softwaru Lukotronicu 6.1 Specifikace systému Lukotronic AS 200 Tab. 3: Technické parametry systému Lukotronic AS 200 [5] Vzorkovací frekvence Počet markerů Měřící vzdálenost Přesnost Rozhraní Radiová frekvence Rozevírací úhel, markery PC požadavky Operační systém Hmotnost 1200 Hz - 2400 Hz max. 48, min. 10 5–7 m 0.1 mm (při vzdálenosti 1,5 m) USB 1.1 433 MHz ≥ +/-90° [total ≥180°] Obyčejný PC nebo notebook; min. 500 MHz Windows 98, 2000, ME, XP; Linux 2.4 kg 14 6.2 Rozložení markerů Rozložení markerů jsme si zvolili s ohledem na data, jež jsme chtěli získat, a na již používané rozložení markerů. Rozložení markerů zvané Helen Hayes Marker Set nás inspirovalo k velmi podobnému rozložení, jež je přesně zaznamenáno na Obr. 11. Červené číslice značí aktivní marker s daným označením, modré číslice značí marker, který jsme pro naši práci nevyužili. Obr. 13: Rozložení markerů na subjektu 15 7. Návrh řešení projektu Pomocí příslušného softwaru nakalibrujeme kamery kamer Lukotronic AS 200, abychom následně mohli naměřit data na subjektu, na němž jsou podle Obr. 9 rozmístěny markery. Naměřené hodnoty uložíme ve formátu ASV a následně ho převedeme do formátu XLS. Pro další zpracování budeme používat program Matlab R2010b, proto je nutné data importovat. Pomocí funkce impaint_nans interpolujeme data, která se kamerám nepodařilo zachytit. 7.1 Výpočet hmotnosti segmentů Jako subjekt jsme si zvolili muže ve věku 22 let, jehož antropologické údaje jsou vepsány do následující tabulky: Tab. 4: Antropologické údaje měřené osoby Měřená osoba: Věk Tělesná výška Tělesná hmotnost muž 22 193 cm 80 kg Pro vypočítání hmotností segmentů těla jsme použili znalosti procentuálního podílu z celkové hmotnosti. (Tab.1) Tab. 5: Tabulka hmotností segmentů těla našeho subjektu Část těla Hmotnost [kg] Hlava 5,92 Stehno 9,92 Berec 3,68 Noha 1,28 Nadloktí 2,32 Předloktí 1,36 Ruka 0,56 Trup 35,84 Celková hmotnost 80 16 7.2 Výpočet těžišť za pomoci Matlabu Výpočet těžišť segmentů v Matlabu: Výpočet celkového těžiště v Matlabu: 7.3 Výpočet ZMP – varianta A Výpočet za využití vzorců: 𝑥𝑍𝑀𝑃 = 𝑝 = 𝑥𝐶𝑜𝑀 − 𝑦𝑍𝑀𝑃 = 𝑦𝐶𝑜𝑀 − 𝑥̈ 𝐶𝑜𝑀 ∙ 𝑧𝐶𝑜𝑀 𝑔𝑧 𝑦̈ 𝐶𝑜𝑀 ∙ 𝑧𝐶𝑜𝑀 𝑔𝑧 (10) (11) 1) Zjistíme hmotnosti a těžiště segmentů těla subjektu. Viz. kapitola 3. Antropometrie. 17 2) Vypočítáme rychlost 𝑣⃗ a zrychlení 𝑎⃗ každého tělesného segmentu. Z fyziky víme, že rychlost je první derivace dráhy podle času a zrychlení je druhá derivace dráhy podle času. 𝑑𝑥 𝑑𝑦 𝑑𝑧 𝑣⃗ = �𝑣𝑥 , 𝑣𝑦 , 𝑣𝑧 � = � , , � 𝑑𝑡 𝑑𝑡 𝑑𝑡 𝑑2𝑥 𝑑2 𝑦 𝑑2𝑧 𝑎⃗ = �𝑣𝑥̇ , 𝑣𝑦̇ , 𝑣𝑧̇ � = � 2 , 2 , 2 � 𝑑𝑡 𝑑𝑡 𝑑𝑡 (12) (13) 3) Dosadíme do vzorců (10) a (11) a získáme souřadnice bodu ZMP v čase. Tuto variantu jsme použili při vypracování Týmového projektu. 7.4 Výpočet ZMP – varianta B Výpočet za využití vzorců: 𝑥𝑍𝑀𝑃 = 𝑦𝑍𝑀𝑃 = 𝑚𝑡𝑜𝑡 ∙ 𝑔𝑧 ∙ 𝑝𝐶𝑜𝑀𝑥 + 𝑧𝑍𝑀𝑃 ∙ 𝑃𝑥 − 𝐻𝑦 𝑚𝑡𝑜𝑡 ∙ 𝑔𝑧 + 𝑃𝑧 𝑚𝑡𝑜𝑡 ∙ 𝑔𝑧 ∙ 𝑝𝐶𝑜𝑀𝑦 + 𝑧𝑍𝑀𝑃 ∙ 𝑃𝑦 − 𝐻𝑥 𝑚𝑡𝑜𝑡 ∙ 𝑔𝑧 + 𝑃𝑧 (14) (15) 1) Provedeme kroky 1) a 2) z varianty A 2) Pomocí M-file uhly.m vypočítáme úhly mezi segmenty, úhlovou rychlost (první derivace) a zrychlení (druhá derivace). 3) Vypočítáme matici H. 4) Dosadíme do vzorců (14), (15) pro zjištění souřadnic bodu ZMP na osách x, y v čase. Tuto variantu použiji při zpracování Bakalářské práce. 18 8. Závěr Cílem týmového projektu jako takového je především seznámení se odborněji s vybraným oborem a příprava na vypracování bakalářské práce. Mohu říci, že v těchto ohledech jsme projekt splnili na výbornou. Vypracovali jsme si důkladnou rešerši lidské chůze, pojmu ZMP, připravili jsme si několik podkladů v Matlabu, které nepochybně využijeme v bakalářské práci. Při práci v laboratořích jsme se naučili zacházet s kamerovým systémem Lukotronic AS 200 a obsluhovat jej. Kamerový systém budeme používat při zajišťování dat i v dalším semestru. V průběhu vytváření M-file uhly.m jsme zjistili, že námi naměřená data nevykazují takové úhly, jaké jsme předpokládali. Proto jsme se rozhodli vypočítat ZMP pomocí vzorců, ve kterých se úhly neobjevují (kap. 7. Návrh řešení projektu). Výsledné ZMP pak vyšlo velmi podobně, jako je zobrazené na obrázku Obr. 14: Pohyb ZMP po podložce při chůzi, což ukazuje, že zvolené postupy byly správné, avšak kvalita dat byla nedostatečná. Při pokračování v práci na tomto projektu bude zapotřebí naměřit data, ve kterých budou zaznamenány signály ze všech markerů, a to v co nejdelších intervalech. Vyhneme se tak chybám z interpolace. Také bude nutné s daty zacházet více precizně, nezaokrouhlovat je, zbytečně s nimi neprovádět více operací, než bude nutné. V bakalářské práci se zaměřím především na vypracování umělé inteligence pomocí Umělé neuronové sítě v Neural Network toolboxu v Matlabu. Má práce se bude opírat o postupy výpočtu ZMP, které jsem prostudovala v průběhu vypracovávání týmového projektu. 19 Seznam použité literatury a elektronických informačních zdrojů [1] Rose, J.; Gamble, J. G. Human Walking. Philadelphia: Lippincott Williams & Wilkins, 2006. ISBN 0-7817-5954-4. [2] Kubánková, M. Řízení pohybu dolních končetin pomocí fuzzy systému. Bakalářská práce. Kladno: FBMI, ČVUT, 2011. [4] Jiřina, M. Umělé neuronové sítě. Přednáška z předmětu Umělá inteligence v biomedicíně. 2011. [5] Kutílek, P. Kinematika, dynamika a pohybová omezení končetin. studijní materiál z předmětu Biomechanika a biomateriály [7] Kostic, D., Nijmeijer, H. Zero-moment Point Method for Stable Biped Walking, Eindhoven: University of Technology. 2009. [8] Lísalová, M. Biomechanika chůze. Semestrální práce. 2011. [9] Vukobratovic M., Borovac B. Zero-moment point – Thirty five years of its life, International Journal of Humanoid Robotics, Vol. 1, No. 1 (2004), pp. 157-173 [10] Antropometrie. [Online] 2011. http://lekarske.slovniky.cz/pojem/antropometrie. [11] Anthropometry and Biomechanics. [Online]. 2011. http://msis.jsc.nasa.gov/sections/section03.htm. [12] Segmenty těla, těžiště těla. [Online]. 2011. http://is.muni.cz/do/1451/e-learning/kineziologie/elportal/pages/segmenty_teziste.html. [13] Geometrie hmotností lidského těla. [Online]. 2011. http://biomech.ftvs.cuni.cz/pbpk/kompendium/biomechanika/geometrie_hmotnost.php [14] Těžiště lidského těla. [Online]. 2011. http://biomech.ftvs.cuni.cz/pbpk/kompendium/biomechanika/geometrie_teziste.php [15] Zero Moment Point. [Online]. 2007 http://cilab.csie.ncu.edu.tw/mt/tabo/archives/2007/05/zmp_ece_zero_mo_1.html [16] J. Perry, Ganganalyse, Urban & Fischer, München, Germany, 2003. 20 [17] Mařík, V. et al. Umělá inteligence (4). Praha : Academia, 2003. ISBN 80-200-0502-1. [18] Oficiální stránky Lukotronicu. [Online]. 2011 http://www.lukotronic.com/de/produkte/as-200300.html [19] Studijní materiály Matematického institutu. [Online]. 2011 http://homepages.math.slu.cz/TomasKopf/index.php?topic=neuron&page=06 [20] Osobní stránky Ing.Vojtěcha Hordějčuka http://old.voho.cz/ 21 ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta biomedicínského inženýrství Katedra biomedicínské techniky Příloha 1 Skripty v Matlabu Vedoucí projektu: Mgr. Slávka Vítečková Student: Lenka Hálová 22 leden 2012 a) Interpolace dat clear all; close all; clc; A = xlsread('data.xlsx'); T=zeros(949,1+3*18); je casovy cas=A(:,1); T(:,1)=A(:,1); %nacteni dat z excelu do matice A %definuji si matici na vysledky, prvni sloupec %definuji si casovy sloupec %zapisu do prvniho sloupce for i=1:1:54 %i od jedne do 54 (krokuji po 1) jednaX=A(:,2+i); %zacne od 3. sloupce (prvni je casovy, v druhem jsou same nuly) jednaXI=INPAINT_NANS(jednaX,3); %interpolace dat pomoci fce inpaint_nans (metoda 3) T(:,i+1)=jednaXI; %zapisu do i-teho sloupce interpolovana data end xlswrite('datainterp.xls', T); %export dat do Excelu % for j=1:1:54 % plot(cas,T(:,1+j)); % figure % end %POZOR!!! vyplotuje vsech 54 grafu %pro zavreni vsech grafu, pouzijeme "close all" %pro vyplotovani jednoho konkretniho grafu: %plot(cas,T(:,zvolime cislo sloupce)); b) Výpočet těžišť segmentů lidského těla clear all; close all; clc; A = xlsread('datainterp.xls'); %nacteni dat z excelu (bez nuloveho sloupce) do matice A B = xlsread('datainterp.xls'); %nacteni dat z excelu do matice B - pro lepsi orientaci v tvoreni tezist T=zeros(949,38); cas=A(:,1); %definuji si casovy sloupec T(:,1)=A(:,1); %zapisu do prvniho sloupce cas %teziste=A+(B-A)*koeficient %PRAVA CAST TELA T(:,2)=A(:,2)+((B(:,5)-A(:,2))*0.43); kycli a kolenem T(:,3)=A(:,3)+((B(:,6)-A(:,3))*0.43); kycli a kolenem T(:,4)=A(:,4)+((B(:,7)-A(:,4))*0.43); kycli a kolenem %prave stehno X - mezi T(:,5)=A(:,5)+((B(:,8)-A(:,5))*0.41); kolenem a kotnikem %prave lytko X - mezi 23 %prave stehno Y - mezi %prave stehno Z - mezi T(:,6)=A(:,6)+((B(:,9)-A(:,6))*0.41); kolenem a kotnikem T(:,7)=A(:,7)+((B(:,10)-A(:,7))*0.41); kolenem a kotnikem %prave lytko Y - mezi T(:,8)=A(:,8)+((B(:,11)-A(:,8))*0.5); kotnikem a spickou nohy T(:,9)=A(:,9)+((B(:,12)-A(:,9))*0.5); kotnikem a spickou nohy T(:,10)=A(:,10)+((B(:,13)-A(:,10))*0.5); kotnikem a spickou nohy %prave chodidlo X - mezi T(:,11)=A(:,17)+((B(:,20)-A(:,17))*0.44); ramenem a loktem T(:,12)=A(:,18)+((B(:,21)-A(:,18))*0.44); ramenem a loktem T(:,13)=A(:,19)+((B(:,22)-A(:,19))*0.44); ramenem a loktem %pravy humerus X - mezi T(:,14)=A(:,20)+((B(:,23)-A(:,20))*0.43); loktem a zapestim T(:,15)=A(:,21)+((B(:,24)-A(:,21))*0.43); loktem a zapestim T(:,16)=A(:,22)+((B(:,25)-A(:,22))*0.43); loktem a zapestim %prave predlokti X - mezi %prave lytko Z - mezi %prave chodidlo Y - mezi %prave chodidlo Z - mezi %pravy humerus Y - mezi %pravy humerus Z - mezi %prave predlokti Y - mezi %prave predlokti Z - mezi %LEVA CAST TELA T(:,17)=A(:,2+42)+((B(:,5+42)-A(:,2+42))*0.43); kycli a kolenem T(:,18)=A(:,3+42)+((B(:,6+42)-A(:,3+42))*0.43); kycli a kolenem T(:,19)=A(:,4+42)+((B(:,7+42)-A(:,4+42))*0.43); kycli a kolenem %leve stehno X - mezi T(:,20)=A(:,5+42)+((B(:,8+42)-A(:,5+42))*0.41); kolenem a kotnikem T(:,21)=A(:,6+42)+((B(:,9+42)-A(:,6+42))*0.41); kolenem a kotnikem T(:,22)=A(:,7+42)+((B(:,10+42)-A(:,7+42))*0.41); kolenem a kotnikem %leve lytko X - mezi T(:,23)=A(:,8+42)+((B(:,11+42)-A(:,8+42))*0.5); mezi kotnikem a spickou nohy T(:,24)=A(:,9+42)+((B(:,12+42)-A(:,9+42))*0.5); mezi kotnikem a spickou nohy T(:,25)=A(:,10+42)+((B(:,13+42)-A(:,10+42))*0.5); mezi kotnikem a spickou nohy %leve chodidlo X - T(:,26)=A(:,17+18)+((B(:,20+18)-A(:,17+18))*0.44); mezi ramenem a loktem T(:,27)=A(:,18+18)+((B(:,21+18)-A(:,18+18))*0.44); mezi ramenem a loktem T(:,28)=A(:,19+18)+((B(:,22+18)-A(:,19+18))*0.44); mezi ramenem a loktem %levy humerus X - T(:,29)=A(:,20+18)+((B(:,23+18)-A(:,20+18))*0.43); mezi loktem a zapestim T(:,30)=A(:,21+18)+((B(:,24+18)-A(:,21+18))*0.43); mezi loktem a zapestim %leve predlokti X - 24 %leve stehno Y - mezi %leve stehno Z - mezi %leve lytko Y - mezi %leve lytko Z - mezi %leve chodidlo Y %leve chodidlo Z - %levy humerus Y %levy humerus Z - %leve predlokti Y - T(:,31)=A(:,22+18)+((B(:,25+18)-A(:,22+18))*0.43); mezi loktem a zapestim %leve predlokti Z - %TRUP X=zeros(949,12); X(:,1)=A(:,17)+((B(:,2)-A(:,17))*0.42); X(:,2)=A(:,17+18)+((B(:,2+42)-A(:,17+18))*0.42); T(:,32)=X(:,1)+((X(:,2)-X(:,1))*0.5); %trup X - mezi (pravym ramenem a pravou kcyli) a (levym ramenem a levou kycli) X(:,3)=A(:,18)+((B(:,3)-A(:,18))*0.42); X(:,4)=A(:,18+18)+((B(:,3+42)-A(:,18+18))*0.42); T(:,33)= X(:,3)+((X(:,4)-X(:,3))*0.5); %trup Y - mezi (pravym ramenem a pravou kcyli) a (levym ramenem a levou kycli) X(:,5)=A(:,19)+((B(:,4)-A(:,19))*0.42); X(:,6)=A(:,19+18)+((B(:,4+42)-A(:,19+18))*0.42); T(:,34)= X(:,5)+((X(:,6)-X(:,5))*0.5); %trup Z - mezi (pravym ramenem a pravou kcyli) a (levym ramenem a levou kycli) %HLAVA S KRKEM X(:,7)=A(:,17+18)+((B(:,17)-A(:,17+18))*0.5); X(:,8)=A(:,15)+((B(:,33)-A(:,15))*0.5); T(:,35)=X(:,7)+((X(:,8)-X(:,7))*0.5); %hlava s krkem X mezi (pravym a levym ramenem) a (pravym a levym uchem) X(:,9)=A(:,18+18)+((B(:,18)-A(:,18+18))*0.5); X(:,10)=A(:,16)+((B(:,34)-A(:,16))*0.5); T(:,36)=X(:,9)+((X(:,10)-X(:,9))*0.5); %hlava s krkem Y mezi (pravym a levym ramenem) a (pravym a levym uchem) X(:,11)=A(:,19+18)+((B(:,19)-A(:,19+18))*0.5); X(:,12)=A(:,16)+((B(:,35)-A(:,16))*0.5); T(:,37)=X(:,11)+((X(:,12)-X(:,11))*0.5); %hlava s krkem Z mezi (pravym a levym ramenem) a (pravym a levym uchem) %pro zavreni vsech grafu, pouzijeme "close all" %CELKOVE TEZISTE %Teziste=soucet (teziste segmentu * vaha segmentu) / soucet vsech vah segmentu M = xlsread('hmotnost.xlsx'); %nacteni dat s hmotnostmi z excelu do matice M S=zeros(949,1); %pomocna matice S = soucet tezist segmentu*hmotnost segmentu m=zeros(949,1); %pomocna matice na soucet hmotnosti CT=zeros(949,1); %Celkove Teziste for j=1:1:36 S=S+(T(:,j+1)*M(1,j+1)); m=m+(M(1,j+1)/3); CT=S/m; %vypise matici 949x949, ale jen prvni sloupec je nenulovy end T(:,38)=CT(:,1); %vyberu nenulovy sloupec xlswrite('datateziste.xls', T); 25 c) Výpočet ZMP clear all; close all; clc; A = xlsread('datateziste.xls'); T=zeros(949,38); cas=A(:,1); T(:,1)=A(:,1); for i=1:3:35 for j=2:948 %SOURADNICE TEZISTE % Xcom=A(:,i+1); % Ycom=A(:,i+2); % Zcom=A(:,i+3); %nacteni dat z excelu %matice na vysledky %casovy sloupec %do 1. sloupce zapisu cas %sloupec i+1 %VZTAH PRO VYPOCET ZMP % Xzmp=Xcom-(diff(Xcom,2)/9.81)*Zcom; % Yzmp=Ycom-(diff(Ycom,2)/9.81)*Zcom; % Zzmp=0; K1=[A(j-1,i+1),A(j,i+1),A(j+1,i+1)]; %j-1,j,j+1 ... 3 radky po sobe jdouci ve sloupci K2=[A(j-1,i+2),A(j,i+2),A(j+1,i+2)]; %cas1=[cas(j-1,1),cas(j,1),cas(j+1,1)]; T(j,i+1)=A(j,i+1)-(diff (K1,2)/9.81)*A(j,i+3); T(j,i+2)=A(j,i+2)-(diff (K2,2)/9.81)*A(j,i+3); %ZAPIS SOURADNIC ZMP DO MATICE T % T(:,i+1)=Xzmp; % T(:,i+2)=Yzmp; % T(:,i+3)=Zzmp; end end xlswrite('ZMP.xls', T); %zapis vysledne matice T do excelu 26
Podobné dokumenty
Z-ANO - České vysoké učení technické v Praze
Fuzzy logika spočívá v rozšíření logických operátorů na fuzzy množiny. Teorie fuzzy
množin spočívá v zavedení tzv. stupně příslušnosti prvku k množině, který může nabývat
katalog ke stažení - Filmový klub Vsetín
Èervený kùò èi ve filmu Nejdelší cesta, který jsme pøipravili pro aktuální semináø).
Rozhovor s Metem Jovanovskim - pøedstavitelem hlavních rolí ve filmech Tetování a Zatím
bez dobrého názvu, otisk...
Biomechanická analýza chůze s různými typy protetických chodidel
zkonstruován hydraulický kolenní kloub, který zajiš oval kontrolu p i stojné i švihové fázi
krokového cyklu a ischiální kvadrilaterální l žko. Tepeln upravitelná prysky ice se ukázala
jako vhodná p...
PES A FENA ROKU 2015 PES A FENA ROKU 2015
Pes na netitulové akci získal v kategorii OB3 celkem 250 bodů a porazil 3 psy.
Z = 250 / 10 * 3 + 30 = 105
Novinky Trek 2012
m6.A to jiZ vzhtedem
k jfzdnimuproje- vdm piipomene.
vu, kteqi se d5 v lehkostipiirovnatprd- TopFuetu.V ter6nujeStEupouitimepL55n5mnaktuzkych
ityii atmosf6ry
vE ke kiidtim mouchy.
StejnEsnadnose tE...
Acrobat reader PDF soubor 20 stránek
(Theory of testing and evaluation of human motoricity and its use for education process.)
zBlahuš,P.: Zkušenosti s využitím informačního systému pro řízení výběru talentů v tréninkových
střediscích...