Univerza v Ljubljani Fakulteta za elektrotehniko Uroš Mali Haptična naprava za vodenje gibanja prsta Magistrsko delo Mentor: prof. dr. Marko Munih V Ljubljani, april 2003 Zahvala Za strokovno pomoč se zahvaljujem mentorju prof. dr. Marku Munihu, ki me je s svojim bogatim strokovnim znanjem usmerjal v pravo smer raziskovalnega dela. Zahvaliti se moram tudi prof. dr. Tadeju Bajdu za koristne nasvete in vprašanja, ki so pripomogla h kreativnemu ustvarjanju dela. Za posredovanje izkušenj s področja strojništva in računalniškega načrtovanja se najlepše zahvaljujem Mitji Mahniču, sodelavcem Alešu Bardorferju in Matiji Ponikvarju za koristne pripombe pri programiranju, Romanu Kamniku, Matjažu Mihlju in Janezu Šegi za tehnično pomoč ter ostalim kolegom iz Laboratorija za robotiko. Iskreno se zahvaljujem tudi staršem Bogdanu in Marjani, ki sta me v času študija vzpodbujala in podpirala, ter Martini, ki mi je ves čas stala ob strani. Zahvaljujem se še vsem ostalim, ki so kakorkoli pripomogli pri nastajanju tega dela. Kazalo Seznam uporabljenih simbolov ix Povzetek 1 Abstract 3 Uvod 4 Haptične naprave................................. 4 Modeliranje.................................... 6 1. Kinematiˇcni in dinamiˇcni model naprave 10 1.1 Osnovni kinematični podatki in označevanje............... 11 1.1.2 Segment A.............................. 12 1.1.5 Dimenzije paralelnega mehanizma................. 14 1.2 Kinematika modela............................. 15 1.2.3 Jakobijeva matrika manipulatorja................. 18 1.3 Dinamika modela.............................. 18 iii Kazalo 1.3.1 Dinamiˇcni parametri segmentov .................. 19 1.3.2 Motor ................................ 20 1.3.3 Jeklena vrv ............................. 20 1.4 Enaˇcbe gibanja ............................... 21 1.5 Rezultat modeliranja ............................ 22 2. Identifikacija parametrov modela 25 2.1 Identifikacija uporabljenega motorja .................... 25 2.1.1 Matematiˇcni model motorja .................... 26 2.1.2 Metoda najmanjˇsih kvadratov ................... 26 2.1.3 Meritve ............................... 28 2.2 Identifikacija segmenta B .......................... 31 2.2.1 Matematiˇcni model segmenta B z motorjem ........... 31 2.2.2 Meritve ............................... 32 3. Strojna opremainvodenje naprave 36 3.1 Osebni raˇcunalnik z merilnimi karticami ................. 37 3.1.1 Merilna kartica PCI-DDA08/12 .................. 37 3.1.2 Merilna kartica PCI-QUAD04 ................... 38 3.1.3 Merilna kartica PCI-DAS1002 ................... 38 3.2 Elektronski vmesnik ............................ 38 3.2.1 Prikljuˇcna ploˇsˇca .......................... 39 3.2.2 Generator toˇcnih impulzov in ’kuˇza pazi’ ˇcasovnik ........ 39 3.2.3 Konˇcna stopnja ........................... 40 4. Aplikacijainregulacijske sheme 43 4.1 Struktura aplikacije ............................. 43 4.1.1 Regulacijska zanka ......................... 43 4.1.2 Primerjava toˇcnosti izvajanja regulacijske zanke ......... 45 iv Kazalo 4.1.3 Uporabniˇski vmesnik ........................ 46 4.1.4 Primer vaje za vodenje giba prsta – 5. vaja ........... 48 4.2 Regulacijska shema ............................. 50 4.2.1 PD regulator z ali brez kompenzacije ............... 51 4.2.2 Izraˇcun sile na vrhu robota ..................... 52 5. Zakljuˇcek 55 DodatekA 57 DodatekB 59 DodatekC 62 Literatura 64 Izjava 68 v Slike 1.2 Model naprave s postavitvijo koordinatnih sistemov........... 12 1.3 Slika segmenta A.............................. 13 1.5 Osnovne dimenzije kinematičnega modela................. 15 1.7 Inverzni kinematični model......................... 17 1.8 Primer sheme simulacijskega modela v MATLAB/Simulink®-u..... 23 1.10 Primerjava odzivov pozicij enkoderjev realnega sistema in modela ... 24 2.1 Vhodna signala z amplitudama 0.08 V in 0.33 V (PNBS) ........ 29 2.2 Povprečne vrednosti a[ in bx in standardnih deviacij glede na amplitudo 2.3 Primerjava odziva hitrosti identificiranega modela in realnega sistema 2.4 Primerjava amplitudnih odzivov identificiranega modela in realnega sis- 2.5 Primerjava faznih odzivov identificiranega modela in realnega sistema 2.6 Vhodna signala z amplitudama 0.2 V in 0.55 V (PNBS)......... 33 vi Slike 2.7 Povprečne vrednosti a'1B in b'1B in standardnih deviacij glede na ampli- 2.8 Primerjava odziva identificiranega modela in realnega sistema pri am- 2.9 Primerjava amplitudnih odzivov identificiranega modela in realnega sis- 2.10 Primerjava faznih odzivov identificiranega modela in realnega sistema pri amplitudah 0.2 V in 0.55 V....................... 35 3.2 Shema elektronskega vmesnika....................... 39 3.3 Vezalna shema generatorja točnih impulzov in ’kuža pazi’ časovnika . . 41 3.4 Shema tokovnega ojačevalnika....................... 42 3.5 Razpored elementov končne stopnje.................... 42 4.1 Blokovna shema strukture aplikacije.................... 44 4.2 Primerjava histogramov časa med izvajanji zanke pri RT-linuxu (levo) in Matlab-Simulinku (desno)........................ 45 4.3 Histogram časov med izvajanji zanke z uporabo prekinitev....... 46 4.4 Koti v prstu uporabljeni pri vaji...................... 49 4.5 Kota v prstu v primerjavi z referenčnima................. 49 4.7 Regulacijska shema PD regulatorja z ali brez kompenzacije....... 51 4.8 Primerjava odzivov z ali brez linearizacije glede na referenčni kot .... 52 4.9 Primerjava odzivov kotov z referenčnim signalom pri različnih vrednostih 4.10 Primerjava odzivov kotov z referenčnim signalom pri Kp = 6.75 in Kp = 0.25 ..................................... 53 4.11 Koti v prstu in sila na vrhu robota pri prstu z zmanjšano fleksijo .... 54 vii Slike BI Vezalna shema priključne plošče...................... 60 B2 Vezalna shema končne stopnje....................... 61 viii Seznam uporabljenih simbolov V delu so uporabljeni naslednji simboli: • Male črke s poševno in poudarjeno pisavo označujejo vektorje: h, q, e, ... • Grške črke s poudarjeno pisavo tudi označujejo vektorje: ip, t, ... • Velike črke s poševno in poudarjeno pisavo označujejo matrike: B, C, F,... • Črke s poševno pisavo označujejo skalarne spremenljivke: (fi, K, fi7 ... • Črke z normalno pisavo označujejo enote: cm, Nm, rad/s, ... Simboli uporabljeni v enačbah modela • B ... vztrajnostna matrika, • C ... matrika Coriolisovih ter cetrifugalnih prispevkov, • F ... matrika parametrov viskoznega trenja, • K ... matrika elastičnosti jeklene vrvi, • G ... prispevek gravitacije, • J ... Jacobijeva matrika, • q in ip ... vektor sklepnih spremenljivk, • t ... vektor sklepnih momentov oziroma sil ter • h ... vektor sil manipulatorja v dotiku z okolico. ix Povzetek Izdelali smo haptično napravo z dvema aktivnima prostostnima stopnjama. Nato smo določili parametre dinamičnega modela naprave in jih verificirali z identifikacijo. Nadalje smo izdelali spremljajočo strojno in programsko opremo, ki vključuje varnostne mehanizme, predlagane v evropski smernici za medicinske naprave MDD93/42. V uvodu so na kratko predstavljeni izsledki raziskav v povezavi s prsti. Opisanih je nekaj haptičnih naprav, predvsem tistih, ki so podobne v tem delu predstavjeni napravi ali že uporabljene v rehabilitacijske namene. Prikazani so primeri modeliranj in identifikacij parametrov robotskih manipulatorjev. V prvem poglavju sta podana celotni kinematični in dinamični model naprave. Prikazan je izračun koordinat vrha manipulatorja ob znanih kotih med segmenti in obratno. Prav tako je podan izračun sil na vrhu ob znanih momentih motorja v statičnih razmerah. Na koncu je prikazana primerjava odziva realne naprave in modela. V naslednjem poglavju smo preko meritev potrdili vrednosti znanih parametrov dinamičnega modela in določili vrednosti nekaterih neznanih parametrov. Izvedli smo parametrično identifikacijo z metodo najmanjših kvadratov. Prikazani so rezultati identifikacije motorja in segmenta. V nadaljevanju je opisana strojna oprema, ki vključuje osebni računalnik, merilne kartice ter elektronski vmesnik. Predstavljen je inovativen pristop k reševanju težav z zagotavljanjem izvajanja regulacijske zanke v realnem času v operacijskem sistemu Windows® 2000. Opisani so tudi vgrajeni varnostni mehanizmi in rutine za preverjanje stanja sistema. V četrtem poglavju je predstavljena aplikacija z grafičnim uporabniškim vmesnikom za prikaz kinematičnega modela naprave, nastavitvijo nekaterih parametrov regulacije in možnostjo izbire različnih vaj za gibanje prsta ter različnih parametrov regulacijske sheme. Uporabnik lahko izmerjene podatke shrani v datoteko ali pa jih naloži iz nje, ko želi ponoviti posneti gib. V zaključku so predstavljene prednosti izgrajene naprave in tudi predlagane možne izboljšave. Ključne besede: haptičnost, haptična naprava, modeliranje, identifikacija, regulacijske sheme, realni čas Abstract Haptic device with two active degrees of freedom was developed. Dynamic model of the device presented was calculated in and confirmed by identification. The accompanying hardware and software were developed, which implement certain degree of safety complied with the requirements of European medical device directive MDD93/42. In the beginning of the thesis recent research achievements regarding finger therapy are presented. Some commercially available haptic devices similar to ours and already used for rehabilitation purposes are introduced. Examples of modelling and identifications of similar mechanisms are also shown. First chapter presents kinematic and dynamic model of the device. Calculating end effector coordinates from joint coordinates and vice versa is shown. Also calculation of the force on the end effector of the robot in static condition is presented. Time responses of the model and the manipulator are compared at the end of this chapter. In the next chapter unknown parameters of the model are determined and the known parameters are verified. Parametric identification with least square error method is used. Identification results of the motor and segment are presented. Description of the hardware follows next. Use of personal computer, data acquisition cards and controller is described. Innovative way of solving real time problems within Windows® 2000 operation system is introduced. Implemented safety mechanisms and system status checking are also depicted. In the fourth chapter software application and graphical user interface for kinematic model visualization and exercise parameters setting is introduced. Different exercises and implemented control schemes are presented. Files and acquired data handling is also introduced. In concluding chapter the advantages of the haptic device and possible improvements are enumerated. Key words: haptics, haptic device, modelling, identifiction, control schemes, real time Uvod Haptične naprave Pojem haptičnost izhaja iz grške besede haptesthai, ki pomeni sposobnost zaznavanja dotika, tipati. Haptičnost obsega informacije o fizičnih lastnostih objektov, kot so vztrajnost, trenje, podajnost, temperatura in grobost površine. V grobem lahko haptičnost občutimo kot kinestetično informacijo, tj. premik ali silo in kot taktilno informacijo, tj. zaznavanje oblik in tekstur. Raziskave na tem področju vključujejo razvoj, preizkušanje, izboljšave v dovršenosti taktilnih povratnih informacij in občutenja sile ter programsko podporo, ki omogoča uporabniku občutiti in upravljati dvo- ali tridimenzionalne objekte znotraj navideznih okolij. Veliko dela je posvečenega tudi zaznavanju trkov znotraj navideznih okolij in generiranju pravilne povratne informacije o sili. Poleg osnovnih psihofizičnih lastnosti človeka in haptičnih naprav je veliko raziskav namenjenih tudi bolj aplikativnim rešitvam, kot so kirurške simulacije, vaje v medicini, znanstveni prikazi in različne podporne tehnologije za pomoč slepim in slabovidnim. Zadnje čase pa se haptične tehnologije vse več uporabljajo v rehabilitacijske namene. Ena najbolj uporabljenih haptičnih naprav je PHANToM proizvajalca SensAble Technologies. Izvedena je v obliki majhnega robota s tremi aktivnimi prostostnimi stopnjami. Vsi trije sklepi so rotacijski in so gnani z enosmernimi motorji. Vsak motor je voden samostojno s pomočjo osebnega računalnika. Na vrhu robota je pritrjeno držalo, s katerim lahko uporabnik robota prosto premika po prostoru. S pravimi vrednostmi tokov skozi motorje lahko mehanizem proizvede do največ 8 N sile na vrhu v vseh smereh. Bistvo prikaza haptične informacije je enostavno: vsako milisekundo ali prej računalnik, ki vodi haptično napravo, zajame vrednosti enkoderjev v posameznih 4 UVOD sklepih. S tem lahko doloˇci natanˇcno pozicijo vrha manipulatorja. V kolikor toˇcka v navideznem okolju, ki jo predstavlja vrh, ni v dotiku z objektom v navideznem ˇ okolju, uporabnik ne ˇcuti sile. Ce pa sistem zazna trk znotraj navideznega okolja, naprava proizvede silo v smeri normale na povrˇsino, na kateri je priˇslo do trka. Tako ˇcuti dotik z navideznim objektom. Razliˇcne haptiˇcne naprave delujejo na podoben naˇcin, uporabljene so le razliˇcne mehanske reˇsitve za generiranje sile. ˇ Ceprav je bistvo haptiˇcnosti enostavno, ostaja ˇse vedno velik izziv predvsem konstrukcija naprave, zaznavanje trkov v realnem ˇcasu, preraˇcunavanje sil na vrhu teh zapletenih mehanizmov ter regulacijo sile. V nadaljevanju je podan kratek pregled nekaterih haptiˇcnih naprav v svetu [4], [5]. Kot smo ˇze omenili, je zelo zanimiva haptiˇcna naprava PHANToM [6], [7], [8], ki je lahko zamenjava za ali dopolnilna vhodna naprava k miˇski, tipkovnici ali igralni palici. Naprava je majhen namizni robot, ki omogoˇca navidezni dotik prek pisala ali drˇzala za prst na vrhu manipulatorja. Robot sledi toˇcki v prostoru in bere tri orientacije vrha. Pri gibanju in trkih v navideznem okolju povzroˇca obˇcutek dotika. CyberGraspTM [9], [10], proizvajalca Immersion Corporation, je skeletna naprava, ki se jo namesti na hrbtno stran roke. Sposobna je izvajati silo v smeri ekstenzije za vse prste roke. Novejˇsa razliˇcica ˇze vsebuje vgrajen sistem za pozicioniranje roke v prostoru. Sposobna je izvajati 12 N sile na posamezen prst, pomankljivosti pa so predvsem velika masa 450 g, dokaj visoko trenje zaradi tetivnega prenosa sile in smer delovanja sile le v smeri ekstenzije prsta. Zelo podobna naprava je Rutgers Master II [4], [11], ki so jo razvili na Rutgersu, Univerzi v New Jerseyu. Za generiranje sile so uporabljeni pnevmatski cilindri, ki so nameˇsˇceni v uporabnikovo dlan in so sposobni proizvesti 16 N sile na ˇstirih prstih. Masa naprave je 130 g, slabost pa je nepopolna fleksija prstov. Na Univerzi v Tsukubi na Japonskem uporabljajo haptiˇcno napravo HapticMaster [12], [13]. Ima 6 aktivnih prostostnih stopenj in lahko proizvede do najveˇc 21 N sile in 0.56 Nm momenta. Zgrajena je v obliki Stewartove platforme. Poleg omenjenih naprav, ki so sposobne izvajati sile v 3D prostoru, poznamo tudi 2D haptiˇcne naprave. Na Univerzi British Columbia so razvili haptiˇcno napravo Pantograph 2D [14], [15]. Podobna je miˇski, le da z njo lahko ˇcutimo oblike, teksture, robove in podobno. Poleg tega lahko danes kupimo po sprejemljivi ceni razliˇcne vrste miˇsk in igralnih palic, ki ˇze omogoˇcajo zaznavanje sile ali taktilne informacije. Na koncu predstavitve naj omenim ˇse nekaj naprav, ki so bile razvite za potrebe 5 UVOD rehabilitacije. V okviru evropskega projekta Gentle/S [16], [17] je bila razvita naprava za pomoč pri rehabilitaciji zgornjih ekstremitet pacientov po kapi. Podobna naprava MIT-Manus je bila razvita na Massachusetts Institute of Technology. Na Univerzi Rutgers pa so razvili Rutgers Ankle [19], tj. haptična naprava za rehabilitacijo gležnja. S pomočjo omenjenih naprav naj bi zmanjšali stroške rehabilitacije, povečali motivacijo pacientov in navsezadnje omogočili boljšo rehabilitacijo večjemu krogu pacientov. Vse te naprave pa niso bile razvite v skladu z zahtevami za medicinsko opremo, s čimer se pojavijo določene težave v širši uporabi, kar je glavna pomanjkljivost teh haptičnih sistemov [20]. Modeliranje Kar nekaj je literature, ki obravnava modeliranje kinematike in dinamike ter vodenje robotskih manipulator]ev [21], [22], [23], [24], [25], [26], [27]. V [21] je opisan celotni kinematični in dinamični model haptične naprave PHANToM in v [23] model industrijskega robota Stäubli RX-90. Osnovni cilj modeliranja in simulicije je izgradnja modela, s katerim lahko preučujemo odzive sistema na računalniku, ne da bi uporabili dejanski sistem. S tem lahko dobimo podatke o odzivih že obstoječih ali pa hipotetičnih sistemov. Preden nadaljujemo, moramo pojasniti pojma sistem in model. Sistem je skupek elementov, zloženih v določeno celoto, usmerjenih k nekemu cilju ali dejanju [30]. Model pa opisuje bistvene lastnosti nekega realnega ali hipotetičnega sistema v uporabni obliki. Obstaja ogromna množica sistemov, saj le-ti obstajajo na različnih področjih človekovih dejavnosti. Srečujemo jih tudi znotraj istega področja, kjer se v glavnem razlikujejo po zahtevanih ciljih. Podobno je tudi z modeli. Obstajajo različni modeli za isti sistem, odvisno kaj želimo doseči z eksperimentiranjem na modelu, obstajajo različni pristopi k modeliranju, različna sredstva, uporabjena pri modeliranju in simulaciji, različna znanja eksperta. Raznolikost modelov je potemtakem še večja, kot je raznolikost sistemov. Preden začnemo opazovati obnašanje nekega sistema, moramo najprej definirati vprašanja, na katere iščemo odgovore s simuliranjem na modelu. Pri tem je pomembno, da so v model vključujem najmanj tisti pogledi, ki so pomembni za pridobitev iskanih odgovorov. Vse poenostavitve je treba skrbno pretehtati in argumentirati. Tako moramo poiskati vmesno pot med natančnostjo in kompleksnostjo modela. Ce bi nas na primer zanimala pot avtomobila na makadamski cesti, potem bi 6 UVOD bili bistveni podatki o avtomobilu kot sistemu modeliranja pospešek, pojemek, hitrost in njegova pot. Poraba gum, vrsta motorja, udobnost sedenja in podobno pa igrajo zanemarljivo vlogo in jih zaradi tega ne vključimo v model. Ce pa bi iskali odgovore na ekonomičnost vožnje ali udobnost potnikov, pa bi nas pri modeliranju zanimali popolnoma drugi podatki. Izbira parametrov sistema, ki bodo upoštevani pri modeliranju, je kljub mnogim tehnikam modeliranja še vedno odvisna od presoje, odločitev, intuicije in izkušenj modelerja, tj. tistega, ki model ustvarja. Očitno je, da je treba preučevati sisteme in njihovo obnašanje, kadar želimo izboljšati njihovo delovanje. Mogoče je tudi eksperimentiranje na modelu, kadar je na realni napravi predrago ali pa je v fazi razvoja aplikacije eksperimetiranje z realnim modelom nevarno, prvič zaradi možnosti loma naprave ali pa obstaja visoka možnost poškodb tako človeka kot tudi okolja, v katerem se nahaja naprava. Model naprave nam omogoča tudi lažje učenje, saj so lahko naprave predrage, da bi jih imeli več, kot je le nujno. Omenimo pa naj, da modeliranje in simulacija nista edina načina za preučevanje sistemov. Uporabimo lahko še eksperimentiranje na pomanjšanem realnem sistemu, ki ga le redko uporabljamo in je neprikladno, ter matematično reševanje problemov, ki daje splošne in nekoliko manj uporabne podatke o sistemu kot modeliranje in simulacija. Najvažnejše pri simuliranju sistemov je čim večje ujemanje rezultatov simulacije z odzivom realnega sistema. Navsezadnje lahko pri poenostavljanju po pomoti ali zaradi kompleksnosti zanemarimo tudi tiste elemente, ki so bistvenejši, kot smo predvideli in moramo zaradi tega postopek ponoviti. Ocena rezultatov je največkrat subjektivna. Osnovni kriterij pa je to, da so rezultati modeliranja in simulacije boljši od ostalih načinov preučevanja sistemov. Cilj modeliranja v tem delu je dobiti čim boljši model naprave, saj lahko z njim zelo dobro ocenimo silo na vrhu mehanizma ali potrebne momente za premik po predvideni poti, čeprav sile na vrhu ali momentov v motorjih ne merimo. Želimo čim boljše ujemanje hitrosti in pozicije modela ter realne naprave pri enakem vzbujanju na vhodu, tj. momentov motorjev. Dalje želimo uporabiti model naprave pri različnih regulacijskih shemah, naprimer regulacijski shemi s PD regulatorjem, regulacijski shemi z regulatorjem z inverzno dinamiko itd. Iz dobljenega modela zapisanega v primerni obliki lahko izluščimo posamezne prispevke modela, kot so Coriolisovi in centrifugalni prispevki, prispevek gravitacije itd. Slika 1 prikazuje realni sistem v povezavi z modeliranjem in simulacijo. 7 UVOD Realni sistem enačbe Simulacijski model Matematiˇcni model Slika 1: Odnos med sistemom, modeliranjem in simulacijo Za doloˇcanje zahtev pri razvoju naprave smo si pomagali z izsledki predhodnih raziskav v povezavi s terapijo prstov. Iz diplomskega dela [1] so bile povzete raziskave o velikostih falang, velikosti fleksije in ekstenzije posameznih prstov ter velikost sile, ki jo lahko proizvede en prst. Na podlagi teh povzetkov je bilo doloˇceno delovno po-droˇcje prsta ter velikost delovnega podroˇcja in dolˇzine posameznih segmentov haptiˇcne naprave za vodenje giba prsta tako, da pokrije najmanj in celotno delovno obmoˇcje gibanja. Na podlagi velikosti sil in dolˇzin segmentov naprave smo ocenili momente, ki jih morajo biti sposobni proizvesti motorji. V diplomskem delu [2] so bile pokazane lastnosti enosmernega motorja in njegova uporaba pri haptiˇcni napravi. Ugotovljeno je bilo, da je izhodna karakteristika momenta na gredi motorja linerano odvisna od velikosti toka skozi rotor. Vendar pa so bile opaˇzene poglavitne pomankljivosti uporabljenega enosmernega motorja z izraˇzenimi magnetnimi poli, kot so: preveliko nihanje momenta v razliˇcnih zavrtitvah rotorja zaradi ’zaklepanja’ magnetov med pole, preveliko trenje zaradi grafitnih ˇsˇcetk in veliko trenje zaradi tam uporabljenega prenosnega mehanizma. V nadaljevanju je bilo v [3] pokazano, da je v haptiˇcnih napravah primernejˇsa uporaba enosmernih motorjev brez ˇzeleza v rotorju motorja v haptiˇcnih napravah. Iz momentnih karakteristik uporabljenega motorja in podatkov o momentih, ki jih potrebujemo pri haptiˇcni napravi za vodenje giba prsta, smo doloˇcili ˇse prestavno razmerje uporabljenega tetivnega prenosnega mehanizma. Tako so konstrukcijske zahteve naprave znane. Treba pa je bilo ˇse dodati pri-padajoˇco strojno in programsko opremo. Izgrajen je bil elektronski vmesnik z moˇcnostno elektroniko, z elektroniko za branje enkoderskih signalov ter elektroniko za preverjanje stanja elektronskega vmesnika in za izklop naprave, ˇce pride do napake. Programska oprema pa obsega razvoj aplikacije z razliˇcnimi primeri vaj za vodenje 8 UVOD giba prsta, razvoj regulacijskega algoritma v realnem ˇcasu ter razvoj gonilnikov za uporabljene merilne kartice. Vodila pri razvoju strojne in programske opreme pa so bila priporoˇcila evropske smernice medicinskih naprav MDD93/42 in evropskih standardov v povezavi z elektriˇcnimi medicinskimi napravami. 9 1. Kinematicni in dinamični model naprave Ker je naprava plod lastnega razvoja in izdelave, poznamo večino podatkov vključujoč mase in vztrajnostne momente segmentov ter dimenzije, vendar pa še vedno ne poznamo vseh podatkov, naprimer trenja in elastičnosti jeklene vrvi. Želimo torej zgraditi matematični model, ki vključuje vse pomembne znane in neznane parametre. Nato želimo ovrednotiti dobljeni model s pomočjo simulacije in primerjanjem z odzivi realnega sistema. Neznane parametre bomo poskušali oceniti z eksperimentiranjem na modelu, njihove ocene pa približati realnim kasneje s pomočjo identifikacije. Za modeliranje dinamičnih odzivov bi lahko uporabili namenska orodja, ki so vgrajena v razvojna okolja, vendar so ta splošna in omogočajo modeliranje širokega obsega modelov realnih sistemov. Prav zaradi splošnosti izgubimo preglednost nad modelom, kot tudi nad načinom zapisa, ki je neprimeren za poglobljeno eksperimentiranje. Naprava ima dve aktivni (v bazi naprave) in dve pasivni (na vrhu za vpetje prsta na napravo) prostostni stopnji. Uporablja enosmerne motorje za pogon in nesamozaporni (angl. backdrivable) mehanizem za prenos navora. Napravo uvrščamo med haptične, saj je mogoče dokaj enostavno oceniti silo na vrhu mehanizma zaradi omenjene lastnosti mehanizma in lastnosti uporabljenih motorjev ter to silo tudi nastavljati. Na sliki 1.1 je prikazana skica naprave. Le-ta je sestavljena iz paralelnega mehanizma, ki vsebuje štiri glavne segmente. Od tega dva segmenta (segment B in C, ki prenašata navor) nista upoštevana v kinematicni verigi. Upoštevana sta le segment A (mali kolut) in segment D (ročica z naprstnikom). Segmenta A in B sta gnana neodvisno prek dveh ločenih kolutov. Tako lahko reguliramo oba kota segmentov neodvisno od referenčnega koordinatnega sistema. Prenos je izveden s pomočjo posebne jek- 10 1. KINEMATICNI IN DINAMIČNI MODEL NAPRAVE Segment A ’Mali kolut’ Vijačnica Segment B ’Veliki kolut’ _ Segment C ’Povezovalna ročica’ Nosilec naprstnika Segment D ’Roˇcica z nosilcem naprstnika’ Vijačnica Motorja Nosilec Podstavek Slika 1.1: 3D Model naprave lene vrvi, ki je napeljana prek vijačnic pritrjenih na gred motorja, in na obeh straneh pripeta na koluta. Posebnost uporabljene jeklene vrvi je njena togost po dolžini in izredna prečna voljnost, kar omogoča majhen premer ovijanja okrog gonilne vijačnice. Konstrukcija naprave je v celoti poznana, kar velja tudi za dinamične podatke segmentov. Tako smo lahko v nadaljevanju zelo enostavno določili kinematični in dinamični model naprave. Za opis transformacijskih matrik smo uporabili koncept vijačnih premikov in zapis z eksponencialnimi koordinatami. Za zapis dinamičnih enačb pa smo uporabili Lagrangeov pristop. 1.1 Osnovni kinematični podatki in označevanje 1.1.1 Postavitev koordinatnih sistemov Na sliki 1.2 je poudarjeno prikazana postavitev koordinatnih sistemov za kasnejšo uporabo pri določitvi direktne kinematike in dinamike modela. Nakazani so tudi položaji težišč posameznih segmentov. V nadaljevanju je uporabljen naslednji zapis posameznih koordinat točk: TAx je x koordinata točke T a. 11 1. KINEMATICNI IN DINAMIČNI MODEL NAPRAVE z 2 /T 2 Te / / T d U/i / Slika 1.2: Model naprave s postavitvijo koordinatnih sistemov 1.1.2 Segment A Segment A (’mali kolut’) je gnani segment paralelnega mehanizma. Zaradi enostavnejšega modeliranja je v tem segmentu upoštevan celotni sestav in ne le ročica segmenta. Na sliki 1.3 je prikazan celotni segment (nepoudarjeno) in ’navidezna’ ročica, ki v nadaljevanju predstavlja celotni segment A. Narisan je položaj težišča glede na koordinatni sistem segmenta in prikazano je označevanje uporabljenih parametrov. Pa = 190 (1.1) J- Ax lo.ii mm i Ay o i. 14 mm V Ta ¦*¦ Ax i J-Ay 4.UDO CUI VTa y^A ^Ta ja = aretan ^—A- = 68.2 ^Ta (1.2) (1.3) (1.4) 12 1. KINEMATICNI IN DINAMIČNI MODEL NAPRAVE aA (fa |N f/ J-Ax \\ X\ W V V ' \ // 1--------- 1 Slika 1.3: Slika segmenta A 0/-A = Pa + A4 + 7a = fi + 258.2 (1.5) 1.1.3 Segment B Segment B (Veliki kolut’) je podobno kot A tudi gnani segment paralelnega mehanizma. Tudi v tem segmentu je upoštevan celotni sestav in ne le ročica segmenta. Na sliki 1.4 je prikazan celotni segment (nepoudarjeno) in ročica, ki v nadaljevanju predstavlja celotni segment B. Omenjena ročica prenaša navor prek segmenta C (’povezovalna ročica’) do segmenta D, ki je drugi del v kinematični verigi modela. Narisan je tudi položaj težišča prav tako glede na koordinatni sistem segmenta s podobno numenklaturo kot prej na sliki 1.3. Na koncu ročice je narisan tudi koordinatni sistem 2’, ki je enak koordinatnemu sistemu na vrhu robota, le da je translacijsko premaknjen. Pb = 100 (1.6) -* Bx id. /1 mm i By 04.40 mm V J^Tß Bx T J By ö.öö Cm (1.7) (1.8) 13 1. KINEMATICNI IN DINAMIČNI MODEL NAPRAVE Slika 1.4: Slika segmenta B VTb %Tb jb = arctan ^—^- = 64.1 ° OtB = 1 0 0 1 •d 2 0 0 1 q1 0 0 0 q2 h 0 0 g(0) = 13x3 p(0) 01 p(0) = /1 + /2 0 o (1.15) 15 T 1. KINEMATICNI IN DINAMIČNI MODEL NAPRAVE Uporabljena je še zveza: ßi = (f1 1 2 = y>2 - $1 Slika 1.6: Planarni model naprave Âl^i cos?1 -sin?1 0 0 sin ?1 cos ?1 0 0 0 0 10 0 0 01 Al®* cos(c/?1 - tp2) sin((^1 - sin((^1 - (^2) cos((/?1 ^2) 0 /1(l - cos((^1 - (^2) ^2) 0 /1 sin((^1 - (^2) 0 0 0 0 1 0 0 1 ,(*) = &*L« g(0) COS (/?2 - Sili lf2 0 /1 COS (/?1 +/2 COS (/?2 sin tg mC + h m d (1.45) B12 = (lTc2mC + hlTDmD)cos(
  • d)sin((/?i - i + mA Rta cos(ai + '-Pi)) (1.61) G2 = g{(lTc mC + ^1 mD) cos (/?2 + tub Rtb cos(a2 + ^2))- (1.62) 1.5 Rezultat modeliranja Na sliki 1.8 je prikazana shema simulacijskega modela, zgrajenega v MATLAB/Simulink®-u, ki ustreza enačbi 1.43. Na shemi je z B označen blok, kjer se računa inverzno matrika B~ . V spodnjih vejah pa so bloki za izračun Coriolisovih in centrifugalnih prispevkov, viskoznih trenj, elastičnih ter gravitacijskih prispevkov. Na desni strani sheme so prikazane izhodne veličine (pozicija in hitrost enkoderja, tj. obrati motorja). Zaradi lažjega razumevanja so vrednosti podane v korakih (impulzih), saj je zapis v radianih (rad) težje predstavljiv. Na slikah 1.9 in 1.10 sta primerjana odziva modela in realne naprave na posameznih oseh. Prikazani sta poziciji in hitrosti enkoderjev. Opazimo lahko, da se odziva hitrosti zelo dobro ujemata. Pri pozicijah pa je razlika nekoliko večja inje posledica integralnih lastnosti sistema. 22 1. KINEMATICNI IN DINAMIČNI MODEL NAPRAVE Slika 1.8: Primer sheme simulacijskega modela v MATLAB/Simulink®-u Vhodna veličina je moment motorja, izhodna pa je hitrost. Pozicija je le integral hitrosti po času, pri čemer se vsaka napaka v ujemanju hitrosti sešteva in povečuje s časom. Odziv ifii 6 4 2 -2000 I1 it-. f\ A l\ Ü h ' f\ k n> i t !\ i \ \ 1 \J\ (' 1 1 \ VW V K ¦ " r i i r J \\ i t V I u* i v Odziv (p2 0 -0 1 1 ¦ 1 1 !\ f y fi /il iM iS k l ff l l J l" 1 r* 1 ^ 1 v ! V ! I 1 | t 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 čas i/s čas t/s Slika 1.9: Primerjava odzivov hitrosti realnega sistema (-) in modela (-·), pri vhodnem signalu (··) Na koncu naj poudarimo, da z enaˇcbami predstavljeni matematiˇcni model na strani 22 ni nastal v enem koraku. Najprej smo modelirali samo motor in primerjali model motorja z 23 E x 10 8000 0 -1 -6000 1. KINEMATICNI IN DINAMIČNI MODEL NAPRAVE Odziv ?1 l i i V / \ \ / \ il \ i ry\ A / / \s '-'•¦\ / \ \ i / \ i Odziv ?2 -1000 -1500 - h \ r\ d / A ^ • 1 y. v i ,¦ ; l '. ¦\i \ ¦ \\ f \/ rv \ l 15 2 2 čas 5 t/s 0.5 1 15 2 25 3 35 4 45 5 Čas t/s Slika 1.10: Primerjava odzivov pozicij enkoderjev realnega sistema (-) in modela (-·). realnim. Opazili smo, da se model precej razlikuje od realnega sistema. Razlog je bilo znatno statiˇcno trenje, ki je zelo nelinearno, zaradi ˇcesar ga nismo upoˇstevali v prvem modelu. Poleg tega tudi vrednost trenja ni poznana. Z eksperimentiranjem na modelu motorja smo spreminjali vrednost trenja, dokler nismo dobili zadovoljivega odziva modela motorja. V naslednjem koraku smo modelirali celotno napravo, vendar brez poznavanja trenja v oseh segmentov. Tudi v tem primeru je bilo neupoˇstevanje trenja prehuda poenostavitev, zato smo na modelu eksperimentalno doloˇcili suho in viskozno trenje. Kljub upoˇstevanju ocenjenih vrednosti trenj nam ni uspelo dobiti zadovoljivega odziva. Po daljˇsem opazovanju obnaˇsanja realnega sistema smo opazili, da so prisotne ˇse ne upoˇstevane elastiˇcnosti zaradi navite jeklene vrvi. Domnevo smo potrdili s postavitvijo naprave v horizontalno lego tako, da smo se izognili vplivu gravitacije. Ob premikanju segmentov A in B smo opazili, da oba teˇzita proti neki ravnovesni legi. Razlog za to lahko najdemo v jekleni vrvi, ki se je prilagodila v neko obliko in vsak premik od te oblike sili segmenta nazaj. Za laˇzje razumevanje te situacije si predstavljamo vzmet, ki jo ˇzelimo odviti. Ravnovesni legi (brez gravitacije) smo ocenili z branjem enkoderjev. Koeficient vzmeti pa smo doloˇcili z eksperimentiranjem na modelu. Postopek ocene parametrov je bil daljˇsi kot prej pri motorju, saj je bilo treba oceniti tako trenje, kot tudi elastiˇcnost. 24 2. Identifikacija parametrov modela V tem poglavju je predstavljeno, kako smo potrdili vrednosti znanih parametrov in doloˇcili vrednosti neznanih parametrov. Konstrukcija naprave je v celoti znana. Poznamo tudi vrednosti mas in vztrajnostnih momentov segmentov. Poskuˇsali pa smo ugotoviti viskozno trenje motorja fm, ki je sicer podano v tehniˇcnih podatkih motorja, vendar smo ˇzeleli to vrednost potrditi. Ugotovili smo pribliˇzno vrednost viskoznega trenja na leˇzajih segmenta A fA in segmenta B fB. Suhega trenja zaradi nelinearnosti nismo upoˇstevali v matematiˇcnem modelu. Zaradi tega smo izvedli meritve pri razliˇcnih amplitudah vhodnega signala, s ˇcimer smo lahko posneli odzive z razliˇcnimi hitrostmi segmentov. Ker sta priˇcakovani vrednosti fA in fB mnogo veˇcji, meritev za ocenitev parametra fC, ki so omenjene v prejˇsnjem poglavju, nismo izvedli. Cilj tega poglavja je ˇcim boljˇsa ocena omenjenih neznanih parametrov, s ˇcimer bi izboljˇsali obstojeˇci model naprave. 2.1 Identifikacija uporabljenega motorja Identifikacija parametrov celotnega modela naprave je potekala po korakih. Najprej smo zapisali model motorja z znanimi parametri. Ostali koraki bodo opisani kasneje. Znani parametri motorja so momentna konstanta motorja (ku = 4 · 10-3 Nm/V) (motor skupaj s tokovnim pretvornikom), vztrajnostni moment motorja in vijaˇcnice (Jm = 18 · 10-7 kg m2, Jvij = 2 · 10-7 kg m2), v tehniˇcnih podatkih je podano tudi viskozno trenje motorja (fm = 10-7 kg m2/s). Tu je treba opozoriti, da je vrednost viskoznega trenja relativno majhna v primerjavi s suhim (Coloumbovim) trenjem, ki ga tukaj zaradi nelinearnosti nismo upoˇstevali. To se pozna pri identificiranih vrednostih koeficienta trenja, ki se precej razlikujejo med seboj. Vse podane vrednosti so zapisane v osnovnih enotah SI sistema, zato enot v nadaljevanju ne bomo veˇc pisali. 25 2. IDENTIFIKACIJA PARAMETROV MODELA 2.1.1 Matematični model motorja Linearno diferencialno enačbo motorja lahko zapišemo kot (Jm + Jvij)Um(t)+ fmcom(t)= t (t)= kii(t)= kuu(t), (2-1) kjer je um kotna hitrost motorja. Po uporabi Laplaceove transformacije zapišemo zgornjo enačbo v frekvenčnem prostoru {Jm + Jvij)^m{s)S + fmÇim(s)= t(s)= kil(s)= kuU(s) (2-2) in še naprej v obliki prenosne funkcije ku . _.. ilm (s) k u Um+Jvn) b\ „. Gis)= = —---------—--------— =------------t------- =--------t. (2-o) U (S) (Jm + Jvij)S + Jm S + 7----—----7 s + a\ Če vnesemo znane parametre v zgornjo enačbo, dobi prenosna funkcija vrednosti 4 • 10-3 2000 G (s)=--------^--------37 =----------. (2-4) 20-10 's + 10 ' s + 0.05 Prenosno funkcijo zveznega modela nato pretvorimo v diskretni sistem z uporabo zadrževalnika ničtega reda in vzorčnim časom 10 ms [31]: 20z_1 b\Z~l G(z)=-----------------t- =------------t. (2-5) 1 — 0.9995z i 1 + a\Z i Iz diskretne prenosne funkcije smo dobili število parametrov, kijih moramo določiti s pomočjo parametrične identifikacije, torej parametra a\ in b\. 2.1.2 Metoda najmanjših kvadratov Izvedli smo parametrično identifikacijo z metodo najmanjših kvadratov [31]. 2.1.2.1 Opis postopka Najprej zapišemo prenosno funkcijo iz enačbe 2.5 v diskretnem časovnem prostoru: y (k) + a\y(k — 1) = b\u(k — 1), (2-6) y (k) = —a\y{k — l)+b\u{k — l). Naprej zapišemo enačbo 2.6 v vektorski obliki: y (k)= Tp (k)6, (2-7) 26 2. IDENTIFIKACIJA PARAMETROV MODELA kjer sta xß (k) = [—y(k — l),u(k — l)\ 0 = [ai, 61]. (2.8) Za naš model lahko napišemo y(k) = iß1 (k)e, (2.9) kjer je ÖT = [ai,6i] ocena parametrov. Od tod lahko izračunamo pogrešek modela e(k) = y (k) — y (k) (2.10) (2.11) in napišemo enačbo, ki tvori osnovo za reševanje po metodi najmanjših kvadratov: e(k) = y (k) — ij> (k)0. (2.12) Iz te enačbe lahko zapišemo sistem enačb: e(k — N + 1) = y{k — N -\-l) — xp (k — N + 1)0, e(k — N +2) = y{k — N +2) — xp (k — N +2)0, (2.13) e(k) = y (k) — tj) (k)0, kjer je N število opazovanj in mora biti večje od števila ocenjevanih parametrov. V prikazanem primeru je N veliko večji. Ce definiramo vektorje in matriko y y (k — N + 1) y (k — N + 2) y (k) in e = e(k — N + 1) e(k — N + 2) e(k) * xp (k — N + 1) xp (k — N + 2) xp (k) = [*i,*2]! (2.14) (2.15) 27 _ _ 2. IDENTIFIKACIJA PARAMETROV MODELA kjer sta *1 —y (k — N) y (k — N + 1) —y (k — 1) in ^2 = lahko enačbo 2.13 zapišemo v matrični obliki G- == tj — y/t/. u(k — N) u(k — N + 1) u(k — 1) (2.16) (2.17) Naprej napišimo kriterijsko funkcijo V, to je vsoto kvadratov pogreškov, kot V = eTe = [y — ^6]T[y — *ö] = [yT — 6 *T][y — *0] = T T = yTy — 0 ^ y — yTiS>6 + 6 ^Sf ^SfO in upoštevamo A = AT, ker so vsi členi skalarji, T V = y y — 2y ^0 + 6 ^Sf ^SfO. Nato odvajamo kriterijsko funkcijo V po spremenljivki 6 ^ = -2yT* +2*T*Ö = -2(y*T - *T*Ö) = 0. 96» ' (2.18) (2.19) (2.20) na koncu pa dobimo oceno parametrov 0 izraženo kot 0 = [*r*]-1*r2/. (2.21) 2.1.3 Meritve Vhodni in izhodni signal sta bila vzorčena s frekvenco 1000Hz. Vsaka meritev je trajala 3 s. Za vhodni signal smo uporabili psevdo naključni binarni signal (PNBS), kateremu smo spreminjali amplitudo, kot tudi začetek iz sekvence PNBS (slika 2.1). Spreminjali smo tudi spekter vzbujanih frekevenc, ki je znašal fv = 0 -j- 30 ± 10 Hz Izvedli smo 50 meritev za vsako amplitudo vhodne napetosti. Začeli smo pri 0.08 V in po korakih 0.05 V nadaljevali do 0.53 V. Amplitude so razmeroma nizke, saj je sistem zelo malo dušen in je pri večjih amplitudah hitrost prevelika za uspešno branje le-te. Pri identifikaciji smo vzorčena signala decimirali na vzorčno frekvenco 100Hz (uporabili smo le vsak deseti vzorec). Iz identifikacijskega postopka dobimo koeficiente diskretne prenosne funkcije. Nato lahko nazaj pretvorimo diskretno prenosno funkcijo v zvezno z uporabo bilinearne transformacije [32]. Izračunane vrednosti v novi prenosni funkciji so zelo podobne pričakovanim. Ker je _ 28 2. IDENTIFIKACIJA PARAMETROV MODELA koeficient b'0 v zvezni prenosni funkciji zanemarjivo majhen v primerjavi z vrednostjo b\, ga lahko zanemarimo. Izkaže se, da je pri meritvah, kjer je vrednost b'0 manjša od 1700, prišlo do napake pri branju enkoderja in s tem napake izhodnega merjenega signala. Zaradi tega smo te meritve ovrgli. Od tu naprej smo izračunali povprečno vrednost b^ iz posameznih meritev pri različnih amplitudah. Na sliki 2.2 sta prikazana grafa povprečnih vrednosti a^ in b'x in standardnih deviacij glede na amplitudo vhodnega signala (sliki 2.1). 0 0 -0 0.4 0.3 0.2 0.1 0 -0.1 -0.2 -0.3 ˇcas t/s 1.5 ˇcas t/s Slika 2.1: Vhodna signala z amplitudama 0.08 V in 0.33 V (PNBS) T T ^ T T - r -L 1 2100 2000 1900 1800 1700 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 amplituda PNBS/V 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 amplituda PNBS/V Slika 2.2: Povpreˇcne vrednosti a[ in h\ in standardnih deviacij glede na amplitudo vhodnega signala Vsekakor bi bila uporabnejša meritev v različnih delovnih točkah, to je pri različnih hitrostih in z dodanim naključnim vzbujanjem. Sistem nam tega ne dopušča, ker imamo omejeno dolžino besede enkoderskega dekodirnika na samo 16 bitov in lahko hitro prekoračimo obseg že pri manjših hitrostih. Poleg tega je regulacija hitrosti težko izvedljiva predvsem 29 0.08 0.06 -0.04 -0.06 -0.08 0.5 2.5 0.5 2.5 2. IDENTIFIKACIJA PARAMETROV MODELA zaradi operacijskega sistema, ki ne deluje ˇcisto striktno v realnem ˇcasu. Lahko pa najdemo povezavo med amplitudo vhodnega signala in pa izhodno hitrostjo. Iz te povezave lahko ocenimo hitrost v delovni toˇcki glede na amplitudo vzbujanja. Na sliki 2.3 sta prikazani primerjavi odzivov identificiranega modela (polna ˇcrta) in realnega sistema (ˇcrta pika). Opazimo lahko, da model dobro predstavlja realni sistem v okolici delovne toˇcke. Napaka se z odaljevanjem od delovne toˇcke veˇca in je posledica predvsem nelinearnosti realnega sistema zaradi suhega trenja, ki ga v modelu nismo upoˇstevali. 1 -1 -2 r'\ 200 100 -100 -200 -300 \ i A /i \ A \ A / V\ A A /A / >\ j, i { A \ 7 \ " \ A A /< h \ \ i 1; A v v. h 7 V/ ;/ V \ i \ i X \\ / v \ > X ' v /'AA v A / /i " "\ i Ji A / \ ¦ " 0 0.5 1 1.5 2 2.5 čas t/ë čas t/& Slika 2.3: Primerjava odziva hitrosti identificiranega modela (-·) in realnega sistema (-) pri amplitudah 0.05 V in 0.28 V Na slikah 2.4 in 2.5 so prikazane primerjave amplitudnih in faznih odzivov modela (ˇcrta pika) in realnega sistema (ˇcrta). 10 ^^r—-v I •I. IAtI ;............:. .. I A Ji l]fr ili--I : r lil ' 'ii'llf J ' ji : jI 1 Ml ' 10 AA frekvenca f/Hz 100 101 frekvenca f/Hz Slika 2.4: Primerjava amplitudnih odzivov identificiranega modela (-·) in realnega sistema (-) pri amplitudah 0.05V in 0.28V. 30 20 -40 0.5 2.5 10 10 10 10 10 10 10 10 10 10 10 10 0 10 30 2. IDENTIFIKACIJA PARAMETROV MODELA /JI 11 1 hi i.; I h ill 11 ... ./v J \ i i || 1 li fi f]'1!') lili frekvenca f/Hz frekvenca f/Hz Slika 2.5: Primerjava faznih odzivov identificiranega modela (—•) in realnega sistema (—) pri amplitudah 0.05 V in 0.28 V Ce podamo oceno parametrov zveznega modela a'1; lahko iz grafa na sliki 2.2 levo odčitamo vrednost ~ 1.1, kar je pri višjih hitrostih, kjer je delež viskoznega trenja proti suhemu večji, približno 20-krat večja od pričakovane. Iz tega lahko zaključimo, da je koeficient viskoznega trenja na motorju enak fm ~ 20 • f0-7kgm2/s, podana vrednost s strani proizvajalca pa je fm = 10-7kgm2/s. Večja vrednost viskoznega trenja je najverjetneje posledica vgrajenega optičnega enkoderja na motorju, za katerega pa nimamo podatkov. Ocena vrednosti b^ (graf na sliki 2.2 desno) je pri višjih hitrostih zelo podobna predvideni in znaša cca. 2000, kar je tudi pričakovana vrednost. 2.2 Identifikacija segmenta B V drugem koraku smo zapisali model segmenta B z znanimi parametri. Novi znani parametri modela so prestavno razmerje (kr = 20), vztrajnostni moment segmenta B (Je = 6.673 • 10-4kgm2), kjer pa se mora zaradi uporabljene prestave le-to upoštevati na osi motorja. Tudi tu je treba opozoriti, da je vrednost viskoznega trenja v ležajih in motorju relativno majhna, suhega (Coloumbovega) trenja pa v modelu nismo upoštevali. Zaradi tega smo sistem identificirali v različnih delovnih točkah, torej pri različnih amplitudah vhodnega signala. 2.2.1 Matematični model segmenta B z motorjem Linearno diferencialno enačbo segmenta B z motorjem lahko podobno kot v prvem koraku zapišemo v obliki f 1 e / {Jm + J vi j H-----2^b)^"1^) ~1~ (/m H-----2JB)^"1^) = TW = "-» H v = kuu(t). (2.22) kr kr 31 300 400 200 300 100 200 -100 -200 -100 -300 -200 10 10 10 10 10 10 10 10 2. IDENTIFIKACIJA PARAMETROV MODELA Ostalih enačb ne bomo ponavljali. Zapišimo le končno prenosno funkcijo: ku f\ l '-* m ~T~ '-* vij ~~I *T '-^ B / [) -t t~i G(s) =--------------------,-----------------------,-------=----------------kr = —^—. (2.23) {Jm + J vi j + TTzJb)s +(fm + T-j/ß) fm + ~k~5fB s + aiB i '-*m~T~ '-*vij~\ k ^T B ) Če vnesemo znane parametre v zgornjo enačbo, se prenosna funkcija glasi 1090 G(s)=-------:—. (2.24) s + alB Koeficienta a'lB ne moremo oceniti, zaradi tega lahko tudi prenosno funkcijo zveznega modela zapišemo v diskretni model le v obliki diskretne prenosne funkcije G(Z)=-------------T. (2.25) 1+ aiBZ-1 Enako kot prej smo tudi tu iz diskretne prenosne funkcije določili število parametrov, ki jih moramo oceniti s pomočjo parametrične identifikacije, v tem primeru parametra ü\b in b\B- Tudi v tem primeru smo izvedli parametrično identifikacijo z metodo najmanjših kvadratov. 2.2.2 Meritve Meritve so potekale pod enakimi pogoji kot pri meritvah modela motorja samega. Vhodni in izhodni signal sta bila vzorčena s frekvenco 1000Hz. Vsaka meritev je trajala 3 s. Za vhodni signal smo uporabili psevdo naključni binarni signal (PNBS), kateremu smo spreminjali amplitudo, kot tudi začetek iz sekvence PNBS. Spreminjali smo tudi spekter vzbujanih frekevenc, ki je znašal fv = 0-l-30± 10 Hz. Izvedli smo 20 meritev za vsako amplitudo vhodne napetosti. Začeli smo pri 0.2 V in po korakih 0.05 V nadaljevali do 0.55 V (slika 2.6). Pri večjih amplitudah je prišlo do zaletavanja segmenta v skrajnih legah. Teh meritev nismo upoštevali in smo jih ponovili. Pri identifikaciji smo vzorčena signala decimirali na vzorčno frekvenco 100Hz (uporabili smo le vsak desti vzorec). Iz identifikacijskega postopka dobimo koeficiente diskretne prenosne funkcije. Nato lahko nazaj pretvorimo diskretno prenosno funkcijo v zvezno z uporabo bilinearne transformacije. V tem primeru se je izračunana zvezna prenosna funkcija modela zelo razlikovala od pričakovane. Razlog najdemo v neupoštevanju suhega trenja, saj je to občutno večje pri celotnem mehanizmu kot pri motorju. Trenje je v največji meri posledica navijanja jeklene vrvi okrog vijačnice. Ker je koeficient b'0B v zvezni prenosni funkciji zanemarjivo majhen v primerjavi z vrednostjo b'lB, smo ga tudi tokrat zanemarili. 32 2. IDENTIFIKACIJA PARAMETROV MODELA Na sliki 2.7 sta prikazana grafa povprečnih vrednosti a'lB in b'lB in standardnih deviacij glede na amplitudo vhodnega signala. 0 - 0.6 0.4 0.2 0 -0.2 -0.4 ri —i i-------- —- —i n n nn 1.5 ˇcas t/s 1.5 ˇcas t/s Slika 2.6: Vhodna signala z amplitudama 0.2 V in 0.55 V (PNBS) 13 1100 1000 900 800 700 600 500 400 300 12 11 10 / ^ 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 amplituda PNBS/V 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 amplituda PNBS/V Slika 2.7: Povpreˇcne vrednosti a'1B in b'1B in standardnih deviacij glede na amplitudo vhodnega signala Tudi v tem primeru bi bilo bolje izvesti meritve pri različnih hitrostih in z dodanim naključnim vzbujanjem, vendar zaradi že omenjenih težav tega nismo mogli izvesti. Pri nižjih amplitudah so hitrosti segmenta nižje, zaradi česar je vpliv suhega trenja večji. Posledica tega je večja vrednost koeficienta a'lB (slika 2.7 levo) pri nižjih amplitudah, saj se vrednost suhega trenja navidezno prišteva k viskoznemu. Zato lahko pri višjih hitrostih, ko se vpliv suhega trenja manjša, upoštevamo vrednost a'lB kot pravo vrednost. Podobno ima suho trenje vpliv tudi na vrednost koeficienta b'lB (slika 2.7 desno). Zaradi trenja pospešuje segment pri nižjih amplitudah vhodnega signala počasneje (navidezna vztrajnost je večja), kar je razlog za naraščanja vrednosti b'lB, ki predstavlja obratno vrednost vztrajnosti segmenta. 33 0.25 0.2 0.15 0.1 -0.15 -0.2 -0.25 0.5 2.5 0.5 2.5 2. IDENTIFIKACIJA PARAMETROV MODELA Pri višjih amplitudah, ko je vpliv suhega trenja, ki ga nismo upoštevali v modelu, najmanjši, je vrednost b'lB najbližje pravi vrednosti. Na sliki 2.8 sta prikazani primerjavi odzivov identificiranega modela (polna črta) in pa realnega sistema (črta pika). Pri vhodnem signalu z nizko amplitudo je ujemanje zelo slabo, pri večjih amplitudah pa model že bolje opisuje realni sistem. .'¦. i\ ! ¦ ; j A i i /i M A i 1 a Ä /t i/ \ ' Ih \ r v / ¦ 'jI;' 1 \ 1 \ /W \i ¦ i ' i j ; O ; ; ! jVi y i j i; i w ' \! " 4 2 .'; .' '¦ / ; ' /V ., / \ y i h •\ A/ A !\ 1 H 1 ¦' '¦ Ai '/ // / \ \ \ i 1 ; 1 f 1 j\v A ;v; i\/; W \ ^ ? Ni \ v i; i V. V » v ¦ i V \ i \ i 1.5 čas t/s 1 1.5 2 2.5 čas t/s Slika 2.8: Primerjava odziva identificiranega modela (-·) in realnega sistema (-) pri amplitudah 0.2 V in 0.55 V Na slikah 2.9 in 2.10 so prikazane primerjave amplitudnih in faznih odzivov modela in realnega sistema. 10 ----------------1ii i j 10 10 10 - —¦- "J. : : 10 ^^Trr~ Uj . I ......:.;... 10 t,, ¦ i ........... ^ frekvenca f/Hz 100 101 frekvenca f/Hz Slika 2.9: Primerjava amplitudnih odzivov identificiranega modela (-·) in realnega sistema (-) pri amplitudah 0.2 V in 0.55 V Ocena vrednosti 6'1B je pri višjih hitrostih zelo podobna predvideni, zato lahko vzamemo kar pričakovano vrednost. Zaključimo lahko, da so vrednosti znanih dinamičnih parametrov 15 120 100 10 80 -5 -40 -10 -60 -15 -80 0.5 2.5 0.5 10 10 10 10 0 0 34 2. IDENTIFIKACIJA PARAMETROV MODELA . 4ip^#l frekvenca f/Hz frekvenca f/Hz Slika 2.10: Primerjava faznih odzivov identificiranega modela (—•) in realnega sistema (—) pri amplitudah 0.2 V in 0.55 V naprave zelo dobre, zato upoštevamo za vrednost b'1B ~ 1100. Za vrednost Jb vzamemo že znano vrednost 6.673 • 10-4 kg m2. Če podamo oceno parametra zveznega modela a'1B, ki jo odčitamo pri največji amplitudi, ker je tam vpliv suhega trenja najmanjši, lahko odčitamo vrednost ~ 7.5. b\ k u ---------------------------------------------------- —— 1 B {Jm + Jvij + k 1 rTjJb) Iz enačb 2.23 in 2.26 lahko izrazimo fB- fB = kr (ku—.1 B-fm) ~ 10- kg m /s. b 1B (2.26) (2.27) Izračunana vrednost Jb se izkaže kot mnogo večja od ostalih trenj v sistemu. 400 250 200 300 150 200 100 100 50 -100 -50 -200 -100 -300 -150 -200 10 10 10 10 10 10 10 35 3. Strojna oprema in vodenje naprave V tem poglavju so predstavljeni posamezni sklopi naprave. Ker je model naprave kot mehanizma že predstavljen v prvem poglavju, ga tukaj ne predstavljamo ponovno. Električno vezalno shemo sistema naprave prikazuje slika 3.1. Osebni računalnik z vgrajenimi merilnimi karticami je najpomembnejši sklop v sistemu. Računalnik je povezan z elektronskim vmesnikom, ki vključuje varnostni del, generator točnih impulzov in močnostni del za pogon motorjev. A/D kabel DIO kabel D/A kabel enkoderski kabel LPT kabel Elektronski vmesnik Slika 3.1: Elektriˇcna vezalna shema sistema naprave 36 3. STROJNA OPREMA IN VODENJE NAPRAVE 3.1 Osebni računalnik z merilnimi karticami Zahteve po procesorski moči osebnega računalnika, kjer poteka izračunavanje regulacijskih shem, niso visoke. V začetni fazi preizkušanja je bil uporabljen osebni računalnik s procesorjem Pentium® MMX 166 MHz. Regulacijska zanka se je brez težav izvajala s frekvenco 1kHz. Preizkusili smo tako DOS, Windows© kot tudi RT Linux okolje. V fazi preizkušanja je bila za vodenje naprave uporabljena Burr-Brownova merilna kartica za generiranje referenčne napetosti za vrednost toka skozi rotor motorjev. Za branje enkoderskih signalov, tj. položaj rotorja motorja, je bilo izdelano merilno vezje s 16-bitnimi števci HCTL2016 proizvajalca Agilent Technologies. Vrednosti števcev smo brali prek ’LPT; vrat osebnega računalnika. Trenutno je za vodenje uporabljen osebni računalnik s procesorjem AMD Athlon® XP 1800+ in s 512MB delovnega spomina. Predvidene so tri merilne kartice: PCI-DDA08/12, PCI-QUAD04 in PCI-DAS1002, vendar sta samo prvi dve nujno potrebni za delovanje naprave. Vse merilne kartice uporabljajo PCI podatkovno vodilo osebnega računalnika in so izdelek istega proizvajalca, tj. Measurement Computing®. 3.1.1 Merilna kartica PCI-DDA08/12 Merilna kartica PCI-DDA08/12 vsebuje osem 12-bitnih analognih izhodov. Od tega trenutno uporabljamo le dva analogna izhoda za določanje vrednosti tokov motorjev. Vsakemu izmed izhodov lahko ločeno nastavimo območje bodisi bipolarno ali unipolarno vrednost 2.5 V, 5 V ali 10 V. Cas umiritve izhodne vrednosti je tipico 6/xs in največ 10/xs, kar je dovolj hitro za uporabljene vzorčne čase v regulacijski zanki. Poleg analognih izhodov vsebuje merilna kartica še 48 digitalnih vhodno-izhodnih linij, ki jim lahko ločeno določamo smer (digitalni vhod ali izhod) v šestih skupinah po 8 bitov. Uporabljenih je 24 digitalnih vhodnih linij za preverjanje stanja elektronskega vmesnika in posameznih osi v njem. Pri kakršni koli napaki so vsi digitalni vhodi prek upora vezani na maso, tako da dobimo logično stanje ena le v primeru pravilnega delovanja. Priključitveni kabel ima na strani kartice 100-pinski priključek, ki se razcepi v dva kabla s 50-pinskima IDC priključkoma. Kabel s pini od 1 do 50 se priključi na zadnjo stran elektronskega vmesnika skrajno desno, kabel s pini od 51 do 100 pa se priključi na drugo prazno mesto z desne strani. Zaradi enakih priključkov na kablih ju lahko medsebojno po pomoti zamenjamo. V kolikor sta oba priključka pravilno vstavljena v elektronski vmesnik in je računalnik vklopljen, ob priključkih svetita zeleni LED diodi. 37 3. STROJNA OPREMA IN VODENJE NAPRAVE 3.1.2 Merilna kartica PCI-QUAD04 Merilna kartica PCI-QUAD04 omogoča branje štirih kvadraturnih enkoderskih signalov v enopolnem ali diferencialnem načinu. Uporablja dva dvoosna 24-bitna kvadraturna števca LS7266. Največja dovoljena hitrost branja enkoderskih signalov v kvadraturnem načinu je 4.3MHz. Na merilni kartici se nahaja 37-pinski moški priključek. Priključitveni kabel ima na eni strani moški ter na drugi ženski 37-pinski priključek. Na zadnji strani elektronskega vmesnika je ženski tip 37 pinskega priključka. Zamenjava priključkov enkoderskega kabla ni mogoča. Ob pravilni priključitvi in vklopljenem računalniku sveti ob priključku zelena LED dioda. 3.1.3 Merilna kartica PCI-DAS1002 Merilna kartica PCI-DAS1002 vsebuje osem 12-bitnih analognih vhodov, dva 12-bitna analogna izhoda in 24 digitalnih vhodno-izhodnih linij, ki jim lahko ločeno določamo smer (digitalni vhod ali izhod) v treh skupinah po 8 bitov. Za delovanje naše haptične naprave ta merilna kartica ni nujno potrebna. Z njo je mogoče preverjati vrednosti tokov, saj njihove dejanske vrednosti sicer ne poznamo. Priključitveni kabel je enak kablu s kartice PCI-DDA08/12. V kolikor uporabimo merilno kartico z analognimi vhodi, priključimo kabel s pini od 1 do 50 na zadnjo stran elektronskega vmesnika na tretje prazno mesto z desne strani. Zaradi enakih priključkov na kablih lahko tega po pomoti zamenjamo. V kolikor je priključek pravilno vstavljen in je računalnik vklopljen, ob priključku sveti zelena LED dioda. 3.2 Elektronski vmesnik Elektronski vmesnik vodi signale iz oziroma do računalnika. Na eni strani pretvori analogni napetostni signal v tok - tokovna referenca, na drugi strani pa pretvori signale iz optičnih dajalnikov na motorjih v signale, primerne za branje s kvadraturnim enkoderjem. Poleg tega preverja stanja vseh napajalnih napetosti in posameznih osi ter pravilno priključitev posameznih priključkov. Vgrajena sta tudi točna ura za proženje prekinitev na osebnem računalniku in ’kuža pazi’ časovnik v primeru napake v aplikaciji. Elektronski vmesnik je opremljen tudi z gumbom za izklop v sili. Shemo elektronskega vmesnika prikazuje slika 3.2. 38 3. STROJNA OPREMA IN VODENJE NAPRAVE enkoderski kabel DIO kabel D/A kabel A/D kabel LPT kabel Slika 3.2: Shema elektronskega vmesnika 3.2.1 Priključna plošča Pri tolikšnem številu merilnih kartic in kablov z različnimi priključki je bila zelo učinkovita rešitev težav s priključitvami izdelava tiskanega vezja, ki na eni strani povezuje signale iz oz. do merilnih kartic in na drugi strani do posameznih osi. Predvidena je priključitev do štirih osi. Poleg tega je bilo tiskano vezje načrtovano tako, da ga je mogoče pritrditi na ohišje elektronskega vmesnika. Na tiskanem vezju je še generator točnih impulzov in ’kuža pazi’ časovnik. Vse neuporabljene vhodno-izhodne linije merilnih kartic so pripeljane na dodatne priključke, ki tako omogočajo razširitev možnosti elektronskega vmesnika. Prav tako so vsi signali stanja sistema pripeljani na ločen priključek, ki ga lahko uporabimo za priklop kazalcev stanja na sprednji plošči elektronskega vmesnika. 3.2.2 Generator točnih impulzov in ’kuža pazi’ časovnik Kot smo že omenili, je za realistično zaznavanje sile ustrezna frekvenca izvajanja regulacijske zanke vsaj 1 kHz. Da bi dosegli vedno enake časovne intervale v tem območju, smo poskušali z različnimi metodami in v različnih razvojnih okoljih. Frekvenca in točnost izvajanja zanke v operacijskem sistemu RT-Linux je izredno dobra, vendar sem v tedaj začetnem obdobju imel težave pri administriranju sistema in programiranju uporabniškega vmesnika, saj mi je bil operacijski sistem Linux precej tuj. Prav to je bil povod za preizkus novega pristopa. V osnovi smo uporabili vzporedna vrata osebnega računalnika. Uporaba le-teh nam je dobro znana, saj smo jih uporabljali že prej za branje kvadraturnih števcev. Sli smo še korak dlje. Ena izmed linij vrat ima možnost proženja 39 Elektronski vmesnik Priključna plošča GTI ’kuža pazi’ časovnik Napajalnik +5 V +15V -15V +12 V Konč_ eoa stop0ja končna stopnja 2 E - Stop motor 1. osi motor 2. osi 3. STROJNA OPREMA IN VODENJE NAPRAVE prekinitve - IRQ. Številko prekinitve je mogoče nastaviti v BIOS-u osebnega računalnika in je ponavadi enak vrednosti 7 (IRQ7). Naša naloga je bila samo še zaznati prekinitev, tj. napisati programsko kodo, ki omogoči vklop in prepoznavanje te prekinitve, ter kodo za prekinitveno rutino. Za generiranje točnih impulzov smo uporabili mikrokrmilnik tipa AT90S2313 proizvajalca Atmel. Prednost uporabljenega mikrokrmilnika je simulacijsko okolje, enostavno programiranje programske kode in zelo enostavno nalaganje programske kode v prepisljiv pomnilnik mikrokrmilnika prek vzporednih vrat osebnega računalnika. Postopek generiranja točne vzorčne frekvence, ki poteka med elektronskim vmesnikom in osebnim računalnikom je sledeč. Preden začnemo regulacijsko zanko, omogočimo prekinitev paralelnih vrat (IRQ7). Nato pošljemo mikrokrmilniku iz osebnega računalnika ukaz za začetek generiranja impulzov. Mikrokrmilnik resetira vse svoje spremenljivke napak, pošlje impulz na prekinitveno linijo in vklopi napetostno referenco za tok motorjev. Takoj, ko se začne izvajati na osebnem računalniku prekinitvena rutina, pošljemo vsakokrat mikrokrmilniku signal, da seje prekinitev izvedla. V kolikor se prekinitev na strani osebnega računalnika ne izvede v roku 2 ms, sporoči mikrokrmilnik napako prve stopnje. Ce se prekinitev ne izvede v roku 5 ms, mikrokrmilnik izklopi napetostno referenco in sporoči napako, ki jo preverjamo izven prekinitvene rutine - ’kuža pazi’ časovnik. Program sporoči napako in če želimo ponovno pognati regulacijsko zanko, moramo najprej resetirati vse napake. Razlog za preverjanje izvajanja zanke je, da se lahko zaradi obremenjenosti operacijskega sistema zanka ne izvede v predvidenem času in v takšnem primeru zaradi varnosti izklopimo tokovno referenco, tj. tok skozi motorje. Vezalno shemo generatorja točnih impulzov in ’kuža pazi’ časovnika prikazuje slika 3.3. 3.2.3 Končna stopnja Vsaka aktivna os mehanizma ima ločeno končno stopnjo. Glavni del končne stopnje so linearni močnostni operacijski ojačevalnik, prilagodilnik enkoderskih signalov, medtem ko je ostala elektronika namenjena preverjanju stanja posamezne osi in s tem preprečevanju nevarnosti pri kakršnih koli nepravilnostih. Vezalna shema je prikazana v prilogi na sliki B2 na strani 61. 3.2.3.1 Tokovni ojačevalnik Veličina, s katero krmilimo motorje, je v našem primeru tok, saj je momentna karakteristika motorja, tj. moment na gredi motorja zelo linearen glede na tok skozi motor [3]. Na vhodu tokovnega ojačevalnika je priključena napetost z merilne kartice, ki je referenčna vrednost za 40 3. STROJNA OPREMA IN VODENJE NAPRAVE Slika 3.3: Vezalna shema generatorja točnih impulzov in ’kuža pazi’ časovnika tok. Glede na tokovno ojačanje ojačevalnika se na izhodu le-tega pojavi tok, če je upornost bremena dovolj majhna. Vhodna referenčna napetost se nahaja med ±5 V, kar je ekvivalentno ±1A izhodnega toka. Tako je vrednost tokovnega ojačanja enaka ki = 0.2 A/V. Tokovni ojačevalnik je izveden s pomočjo močnostnega operacijskega ojačevalnika L465A, ki na izhodu dovoli tokove do 4 A, ali pa s šibkejšo izvedbo L165A z le do 3 A toka na izhodu. Operacijski ojačevalnik je vezan v povratni zanki, kar pomeni, da primerjamo napetostno referenco s padcem napetosti na nizko omskem uporu 0.33 Q, vezanim zaporedno z rotorjem motorja. Vezalna shema tokovnega ojačevalnika je prikazana na sliki 3.4. 3.2.3.2 Nastavitve končne stopnje Na sliki 3.5 vidimo razpored elementov končne stopnje na tiskanini s posebej označenimi tistimi elementi, ki jih lahko nastavljamo. S položajnimi stikalci (A) nastavimo identifikacijsko številko kabla, ki mora biti za vsako os oz. motor drugačna. Ob pravilni povezavi posamezne osi in motorja se številki ujemata, sicer program sporoči napako. S trimer potenciometroma TP_A (B) in TP_B (C) nastavimo nivo enkoderskih signalov. Z mostičema JA (D) in JB (E) lahko izbiramo med smerjo štetja kvadraturnega števca. Mostiča ne smeta biti hkrati v zgornjem ali spodnjem položaju. S trimer potenciometrom TPJREF (F) nastavljamo tokovno ojačanje. Položaj potenciometra skrajno desno pomeni ojačanje nič. Vse nastavitve 41 3. STROJNA OPREMA IN VODENJE NAPRAVE I REF TPJREF/lOkfi Slika 3.4: Shema tokovnega ojačevalnika končne stopnje se praviloma nastavijo enkrat ob priključitvi istega motorja in jih ni treba kasneje več spreminjati. A B CD EF rMMs A • fM jjftaréi dTe^-H SIR1 ^^ J •••••••o ti r> RELE2 l© Phalantom Axis Driver & Status ri 0 ¦ fi •. u h^f. X3F ¦BS I« ^ !••••••••• •ooukSiftt'w^ L465A ¦ [Jop] « O +15V + GND -15V K GND i GND +12V RELE CL ¦)¦¦=!• ____. D2A (MZe) • CU ¦ C3S ¦ ¦¦ : o OPI/ Slika 3.5: Razpored elementov končne stopnje 42 4. Aplikacija in regulacijske sheme V nadaljevanju bomo predstavili programsko plat celotne aplikacije, tj. programske rešitve točnosti izvajanja regulacijske zanke s pomočjo prekinitev, vgrajene varnostne mehanizme in uporabniški vmesnik ter posamezne regulacijske sheme, ki so uporabljene za različne načine vodenja. Pred uporabo prekinitev v okolju Windows® 2000 je potrebno najprej namestiti gonilnike za podporo dostopa do strojne opreme osebnega računalnika na stopnji registrov [33], vendar se v nadaljevanju ne bomo spuščali v podrobnosti gonilnikov. 4.1 Struktura aplikacije Struktura aplikacije je sestavljena iz dveh neodvisnih zank. Prva zanka skrbi za grafični uporabniški vmesnik in delo z uporabnikom, grafični prikaz kinematične verige mehanizma ter za delo z datotekami. Časovna točnost izvajanja prve zanke ni pomembna, medtem ko je časovna točnost izvajanja druge zanke pomembnejša in se izvaja s hitrostjo 1kHz. Druga, tj. regulacijska, zanka je dejansko prekinitvena rutina, katere izvajanje sproži zunanji signal, v našem primeru zunanja ura. Začetek izvajanja druge zanke določimo znotraj prve zanke. Konec izvajanja regulacijske zanke lahko zahteva uporabnik, pri napaki v elektronskem vmesniku ali po poteku časovno omejene vaje, pa se regulacijska zanka prekine sama. Vse potrebne podatke si obe zanki izmenjujeta s pomočjo ogromnega polja skupnih spremenljivk. Celotno strukturo aplikacije prikazuje slika 4.1. 4.1.1 Regulacijska zanka Rešitvam povezanim z izvajanjem regulacijske zanke smo v našem delu posvetilu zelo veliko pozornost. Predstavljena je učinkovita rešitev izvajanja v realnem času pod Windows® 2000 okoljem. 43 4. APLIKACIJA IN REGULACIJSKE SHEME Zaˇcetek , I Inicializacija Zanka 1 I Zanka 2 Slika 4.1: Blokovna shema strukture aplikacije Zaˇcetek izvajanja regulacijske zanke doloˇci uporabnik. Zanka 1 poˇslje mikrokrmilniku na LPT vratih ukaz za zaˇcetek generiranja toˇcnih impulzov in ob tem tudi omogoˇci prekinitev. Inicializira se tudi ˇcas zaˇcetka regulacijske zanke. Takoj ko mikrokrmilnik sprejme ukaz za zaˇcetek proˇzenja impulzov, vklopi ˇcasovnik in rele referenˇcne napetosti. Ob vsakem nastavljenem prelivu ˇcasovnika se v mikrokrmilniku izvede prekinitev, ki poˇslje impulz na prekinitveno linijo LPT-vrat. Ragulacijska zanka (prekinitveni program) se na osebnem raˇcunalniku zaˇcne vsakiˇc, ko je zaznan signal prekinitve. V tem programu preverimo stanje elektronskega vmesnika in pri napaki le-to sporoˇcimo in hkrati konˇcamo regulacijsko zanko. Nadalje preverjamo pravilnost prikljuˇcitve vseh kablov, prisotnost logiˇcne napajalne napetosti in napetosti na motorjih na posamezni osi. Preverjamo tudi stanje izklopa v sili in preklopa releja referenˇcne napetosti, vendar v primeru morebitne napake ne ustavimo regulacijske zanke, ampak le opozorimo uporabnika. V naslednjem koraku sporoˇcimo mikrokrmilniku, da se je prekinitveni program zaˇcel. Zato moramo poslati pravo vrednost, saj lahko v primeru napake mikrokrmilnik vseeno dobi signal. Pri preobremenjenem sistemu, ko se prekinitev ne uspe izvesti v roku 5 ms, pa mikrokrmilnik izklopi tokovno referenco. Le-to lahko ponovno vklopimo pri inicializaciji. Nato v prekinitvenem programu preberemo toˇcen ˇcas in vrednosti enkoderjev. Le-te najprej filtriramo z Butter-Worth diskretnim filtrom tretjega reda z mejno frekvenco 70 Hz ˇ in za tem pretvorimo v vrednosti kotov med segmenti. Ce je vklopljena moˇznost snemanja (angl. recording), se v polje podatkov na mesto meritve in referenˇcnih vrednosti shranjujejo tudi vrednosti pozicij, hitrosti in pospeˇskov kotov, sicer se vrednosti shranjujejo le na mesto meritve. Tak zapis je kasneje uporabljen pri ponovitvi (angl. play) vaje, kjer se na mestu 44 4. APLIKACIJA IN REGULACIJSKE SHEME referenčnih vrednosti le-te ne prepišejo, na mestu meritev pa shranjujemo vzorce trenutne vaje. Tako lahko kasneje primerjamo referenčne vrednosti z vrednostmi zadnje vaje. V naslednjem koraku izračunamo posamezne dinamične prispevke: gravitacijske, Cori-olisove in prispevke viskoznega trenja. Glede na izbrano regulacijsko shemo nato izračunamo referenčno vrednost toka. Za tem omejimo izračunane vrednosti tokov tako, da sila na vrhu robota ne presega največje dovoljene vrednosti. 4.1.2 Primerjava točnosti izvajanja regulacijske zanke Omenili smo že operacijski sistem RT-linux, ki je sposoben izvajati regulacijsko zanko v zelo točnih časovnih presledkih. Čas med izvajanjem dveh zaporednih korakov regulacijske zanke za primer RT-linuxa kaže slika 4.2 levo1. Hitrost izvajanja je 1 ms±3µs in v nobenem primeru ne presega te meje. Administracija tega operacijskega sistema pa zahteva preveč znanja, zato 102 il 1 it III i li NI II i y 1 J ill y i n 1 ¦ i i i 1 1 i i i 1 I lil LU |^H i i ^i II lu 1 ,, I ..l. kl ni IUI Il 1 Il 1 11 II 1 II Illl 0.997 0.998 0.999 1 1.001 1.002 1.003 0.2 0.4 0.6 0.8 1 AT/ms AT 1.4 1.6 1.8 2 2.2 Slika 4.2: Primerjava histogramov časa med izvajanji zanke pri RT-linuxu (levo) in Matlab-Simulinku (desno) smo izbrali drugo pot. Prav na začetku gradnje sistema smo poskusili izvajati zanko v realnem času znotraj Matlab-Simulink® razvojnega okolja. Razultat točnosti je sicer dober, vendar mora imeti proces najvišjo možno prioriteto izvajanja (realtime). Zaradi tega je operacijski sistem med tekom regulacijske zanke popolnoma ohromljen. Pri tem načinu se v zanki preverja trenutni čas, ko je le-ta večji od želenega, se zanka izvede. Točnost izvajanja zanke pri normalni prioriteti izvajanja je slabša kot sicer. Odstopanja v tem primeru so veliko večja in znašajo območja na x-oseh se med primeri razlikujejo 10 10 10 10 10 10 10 45 4. APLIKACIJA IN REGULACIJSKE SHEME tudi do 5 ms. Primer točnosti izvajanja zanke s pomočjo Matlab-Simulink okolja prikazuje slika 4.2 desno. Korak naprej pa je že prej omenjena uporaba prekinitev vzporednih vrat. Točnost v tem primeru je sicer slabša od RT-linux ali Matlab-Simulink z najvišjo prioriteto, vendar je sistem veliko manj obremenjen kot v primeru Matlab-Simulinka. Časi izvajanja so sicer v območju 1 ms ± 100/xs, vendar se lahko še vedno zgodi, da se zanka ne izvede v času 5ms. Tudi pri polni obremenitvi operacijkega sistema seje zanka izvajala v mejah 5ms. Daljši časi izvajanja so bili popolnoma nepredvidljivi. Točnost izvajanja zanke kaže slika 4.3. Prepoznamo lahko, da je časovno ta rešitev boljša od Matlab-Simulinkove možnosti in slabša od RT-linuxa. I ¦ i U ul 1 JI 1 ., lili 1 I i . L JI II 1 In j 1 1 1 lil 1 II H m i ¦i i i 0.9 0.92 0.94 0.96 0.98 1 1.02 1.04 1.06 1.08 1.1 AT/ms Slika 4.3: Histogram ˇcasov med izvajanji zanke z uporabo prekinitev 4.1.3 Uporabniški vmesnik Izgrajena aplikacija ponuja preprost grafiˇcni uporabniˇski vmesnik – GUV (slika 4.6). Glavni del GUV-a vkljuˇcuje prikaz planarnega kinematiˇcnega modela naprave. Uporabnik lahko v orodni vrstici izbira med delom z datotekami, zagonom in zaustavitvijo regulacijske zanke, med razliˇcnimi regulacijskimi shemami ter nastavitvami in med pregledom stanja sistema. Izbrati je mogoˇce med razliˇcnimi naˇcini gibanja robota ali prsta. V vseh primerih lahko omejimo velikost sile na vrhu robota: 10 10 10 46 4. APLIKACIJA IN REGULACIJSKE SHEME 1. Najenostavnejši je primer, kjer lahko uporabnik določi navidezni koeficient dušenja, ki ga čuti pri premikanju vrha robota skozi prostor. 2. Naslednji primer gibanja je enostaven zapis želenih vrednosti enkoderja. Tu lahko uporabnik določi poleg dušenja še navidezni koeficient vzmeti. II.» SUu, E„"d„,., s„„ "-""" |,.» LÜ 1 jj E„c.d„," on 2 ,». li 1 Jj D,r.„„c 1°* hi 1 2i lr.„,d,„o, do, |B,S LÜ J ' 3. V naslednjem primeru lahko uporabnik premika vrh robota s pomoˇcjo miˇske. Tudi tu se lahko doloˇcita navidezna koeficienta, vendar je treba opozoriti, da lahko pri doloˇcenih vrednostih koeficientov postane gibanje robota nestabilno. Vrednosti koeficientov so sicer navzgor omejene, vendar je omogoˇceno omejeno eksperimentiranje z vrednostmi. 4. V naslednji vaji lahko uporabnik posname ˇzeleno pot gibanja prsta in jo v naslednjem koraku ponovi. Kasneje lahko primerja odzive posnetega in ponovljenega giba. Pri predvajanju posnetega giba lahko uporabnik izbira med tremi razliˇcnimi regulacijskimi shemami. Record / Play • > Damping |0.25 l'I J ±\ Impedanc factor |6.75 Lil J Jj F Era* Compensato, 47 4. APLIKACIJA IN REGULACIJSKE SHEME 5. Pri zadnji vaji pa lahko uporabnik, ob znanih dimenzijah prsta in doloˇcenih predpostavkah, premika vrh robota tako, da se spreminjajo koti v prstih po vnaprej znanih krivuljah. Za uporabnika sta zanimivi predvsem zadnji dve vaji. Peta vaja pa je obširneje razložena v nadaljevanju. Pri delu z datotekami lahko uporabnik izbira med shranjevanjem podatkov v datoteko ali prenosom podatkov iz datoteke v polje podatkov. Pri shranjevanju se v tekstovno datoteko shrani številko vzorca, čas izvedbe regulacijske zanke za vsak vzorec, referenčne vrednosti spremenljivk v notranjih in zunanjih koordinatah, vrednosti notranjih spremenljivk zadnje vaje ter silo na vrhu robota. Pri nalaganju podatkov iz datoteke se v polje podatkov na mesto referenčnih vrednosti prepiše vrednosti iz datoteke. Uporabnik ima tudi možnost shraniti v datoteko posamezne prispevke momentne enačbe 1.43 na strani 21. Zapis datotek je prilagojen uporabi meritev v okolju Matlab®. Edina slabost zapisa je potratnost prostora na trdem disku, saj se v datoteko shranjujejo vsi vzorci, tj. 1000 vzorcev na sekundo vaje. 4.1.4 Primer vaje za vodenje giba prsta – 5. vaja Pri tej vaji predpostavimo fiksno točko proksimalnega (MCP) sklepa prsta. Predpostavimo tudi ničelni kot med srednjo in distalno falango. Iz ocen dolžin falang in znane točke MCP sklepa lahko na podlagi položaja vrha prsta, ki ga dobimo iz znanega položaja vrha manipu-latorja, določimo kote v MCP in srednjem (PIP) sklepu prsta ali obratno. Označevanje kotov v prstu prikazuje slika 4.4. Pri tej vaji glede na želena kota v MCP in PIP sklepu izračunamo potreben položaj vrha manipulatorja, tj. kota v segmentih manipulatorja. Pri določanju želenih kotov v sklepih prsta lahko uporabnik nastavi hitrost spreminjanja, velikost amplitude in ničelni kot v posameznem sklepu prsta. Uporabljena je sinusna funkcija za generiranje želenega kota. Slika 4.5 prikazuje referenčni kot in dejanska kota kadar robot ni v dotiku z prstom ter kadar 48 4. APLIKACIJA IN REGULACIJSKE SHEME srednji sklep vrh prsta Slika 4.4: Koti v prstu uporabljeni pri vaji je v dotiku z zdravim prstom. Na sliki so prikazani koti za oba sklepa prsta. Na strani 54 sta prikazana tudi odziva prsta z zmanjˇsano fleksijo prsta pri razliˇcno omejenih velikostih najveˇcje dovoljene sile. 60 30 20 10 60 50 40 30 20 i i A A A __ referenčni ko odziv brez prsta ^ / \ / \ // \ — odziv z zdravim prstom \ /' V // /' \ /' \ // \ tX'.-Z a - - - . V •¦ { ' l 1 \ - \ / \ i \ / \ / v V' u v .• \m *- 1 ^ 1 1 23456789 10 11 čas t/s A A. A A A / v / V / v / v. / v -------,_ / \ i / \ <¦ f > / \ i / \ \ i \ 1 i i \ W \n/ W W V/ V/ \7 v/ 10 0 1 23456789 10 11 čas t/s Slika 4.5: Kota v prstu v primerjavi z referenčnima Na sliki 4.6 je prikazan izgled uporabniškega vmesnika vaje vodenja gibanja prsta. Slika prikazuje kinematični model naprave z modro barvo in pa model prsta z zeleno. Rdeč krog 49 0 4. APLIKACIJA IN REGULACIJSKE SHEME predstavlja želen položaj vrha manipulatorja, bel krog pa dejanski. Bel krog tako sledi rdečemu. Velikost sile, ki je izvajana na prst, je omejena, zaradi česar tudi pride do tolikšne razlike med želeno in dejansko pozicijo vrha prsta, kot je razvidno iz slike 4.6. Slika 4.6: Izgled uporabniškega vmesnika za primer vaje 4.2 Regulacijska shema Naloga vodenja giba prsta vključuje medsebojni vpliv med vrhom manipulatorja in okoljem, tj. v našem primeru prstom. Na splošno so pri kontaktu robota z okolico uporabljene različne tehnike regulacije, ki preko impedančnih ali direktnih shem vodenja omogočajo definiranje kontaktne sile ali kontaktne sile v povezavi s pozicijo. Vendar prav zaradi stika vrha robota in prsta v našem primeru ne pride v poštev pozicijsko vodenje robota po prostoru, saj moramo ves čas upoštevati omejitve velikosti sile dotika. Čeprav želimo čim večje ujemanje med želeno in dejansko potjo prsta med gibanjem, je še pomembnejša omejena velikost sile, ki jo izvaja mehanizem na prst. Pri prevelikih silah je lahko občutek pri gibanju neprijeten, v skrajnem primeru pa bi morda prišlo do poškodbe prsta. Zato v našem primeru izračunano vrednost toka preprosto omejimo tako, da velikost sile ne preseže največje dovoljene. V nadaljevanju je predstavljena uporabljena regulacijska shema pri različnih vrednostih ojačanj KP in KD. V regulacijski shemi je izvedena globalna linearizacija z nelinearno funkcijo v povratni zanki regulatorja, ki pa jo lahko uporabnik po želji izklopi v primeru eksperimentiranja. 50 4. APLIKACIJA IN REGULACIJSKE SHEME 4.2.1 PD regulator z ali brez kompenzacije Regulacijska shema prikazana na sliki 4.7 je uporabljena v vseh načinih vodenja gibanja prsta, razen pri predvajanju posnetega giba, kjer lahko izbiramo še med dvema drugima shemama (regulator z inverzno dinamiko v notranjih in zunanjih koordinatah). Vhod v regulacijsko shemo je želena vrednost notranjih koordinat q, tj. vrednost kotov (p, ki sta regulirana v povratni zanki. V povratni zanki je tudi trenutna hitrost, ki pa nasprotuje spremembam kotov, kar daje občutek dušenja. Občutek dušenja se viša z večanjem vrednosti KD. S tem je izboljšana tudi stabilnost sistema, saj je sicer robot nestabilen že pri nižjih vrednostih KP. Enačba regulatorja [22] je naslednja: U = KI2U {KP{qd -q)-KDq+ n(q, q)), (4.1) kjer je n(Q) q)= G(q)+ C(q, q) q (4-2) linearna kompenzacija vplivov gravitacijskih in Coriolisovih prispevkov. KI2U Je konstanta, ki pretvori vrednost toka v referenčno napetost na izhodu analognega izhodu in znaša 5 V/A. 1 Qw KP Ö q T i —*+ v/ '• ------• JV.^ AV/ Q KD ^J^-^L n(q, q) Slika 4.7: Regulacijska shema PD regulatorja z ali brez kompenzacije Omogočena je izbira med izključeno ali vključeno linearno kompenzacijo in torej delno vključenim inverznim dinamičnim modelom. Pri tem pride do izraza predvsem kompenzacija gravitacije. Zaradi slabo poznane elastičnosti tetive in suhega trenja je kompenzacija vpliva gravitacije nepopolna. Primer kompenziranega in nekompenziranega odziva prikazuje slika 4.8 za kot tp\ levo in za kot tp2 desno pri vrednosti KP = 0.675 in KD = 0. Razlika odstopanj med dejanskimi in referenčnimi vrednostmi na oseh se pojavi kot posledica različnih uporabljenih tetiv, saj nam v času razvoja ni uspelo dobiti ustrezne zamenjave po poškodbi ene izmed tetiv. Slika 4.9 prikazuje skočni odziv kotov v primerjavi z referenčnim signalom za različne vrednosti KD za kot tp\ levo in za kot tp2 desno. Vrednost KP = 7.5 in se ne tu spreminja, 51 4. APLIKACIJA IN REGULACIJSKE SHEME 0 i 1;...... f------ 1 1....... ----'': t ( ----------i: 1 f ' i 1- - J \- 1 ---- ii fi1/ — d i Mi".......... i -i Y A 2 i i "-- 1 i čas t/& 0 2 čas t/& 10 12 Slika 4.8: Primerjava odzivov z ali brez linearizacije glede na referenˇcni kot nelinearna kompenzacija pa je vklopljena. Opazimo lahko, da je sistem pri KD = 0.1 premalo, pri KD = 0.5 pa preveˇc duˇsen. Eksperimentalo smo izbrali vrednost KD = 0.25 kot najprimernejˇso. 0 1 Kp = 7.5,."._- = 0 25 Kp = 7.5,K& = 0.5 Kp = 7.5,Kd = 0.1 : I ... ... ._.'. , r r i f 1.7 ! - - Jfp = 7.5,S:D = 0.25 .... Jfp = 7.5,S:D = 0.5 1 1 i 1 1 ¦ 1 1 i " i1 ¦ i i ; l r i ,. ' i , v F 1 -i-' i r čas t/s čas t/s Slika 4.9: Primerjava odzivov kotov z referenčnim signalom pri različnih vrednostih K d Na sliki 4.10 je prikazan odziv glede na referenčni signal pri vrednostih Kp = 6.75 in Kp, = 0.25 za kot tp\ levo in kot tp2 desno. 4.2.2 Izračun sile na vrhu robota Ker je vrh manipulatorja ves ˇcas v stiku s prstom, nas zanima tudi velikost sile med vrhom ma-nipulatorja in prsta. Pri stiku manipulatorja z okolico lahko momentno enaˇcbo 1.43 razˇsirimo 1.2 3.5 0.8 0.6 0.2 1.5 -0.4 -0.6 10 12 2.1 0.4 1.9 0.3 0.1 1.6 1.5 1.4 6.5 3.5 4.5 5.5 52 4. APLIKACIJA IN REGULACIJSKE SHEME 0 r _n r ir —11- - Kp = 6.75, Kd = 0.25 | j I il ¦ „J J čas t/s J 1 j j r i [ — Kp = 6.75, Kd = 0.25 1 1 i J čas t/s Slika 4.10: Primerjava odzivov kotov z referenˇcnim signalom pri KP = 6.75 in KD = 0.25 v naslednjo obliko: B(o) Q + C(?) <Ž) Q + ^ 9 + G (o) = T - JT(q) h-, (4.3) kjer predstavlja h = [Fx, Fy]T silo med manipulatorjem in prstom. Iz te enačbe lahko izrazimo velikost sile kot: h J~T(q) (t - B{q) q - C{q, q) q - F q - G{q)\ (4.4) Glede na znane ali ocenjene vrednosti spremenljivk na desni strani in znano J~T je mogoče izračunati kontaktne sile h. Kot primer je zopet pokazana peta vaja, kjer naprava vodi gibanje prsta z zmanjšano fleksijo. Na sliki 4.11 sta prikazana dejanska kota v prstu pri omejenih silah Fmax = 2N in Fmax = 5N. Opazimo lahko zmanjšano fleksijo proksimalnega sklepa prsta i sin i?i + Q>i (1 — cos i?i). (A5) (A7) Hitrost izračunamo kot: v = —u> x q. (A6) Za izračun homogene matrike s pomočjo eksponencialnih koordinat uporabimo enačbo L-&i e^i i (I - eWi i )(wi x Di)+ Wi Wi Di i?i 01 Za izračun lege vrha manipulatorja moramo določiti ničelno lego vrha g(0) glede na referenčni koordinatni sistem. Uporabimo naslednjo enačbo: 111(0) p(&) 01 9(^«.efe'...,Ô-9(.) 9(0): (A8) 57 _ Dodatek A kjer je n število sklepov in $ vektor sklepnih spremenljivk. Matrika Riß) predstavlja rotacijo, vektor piß) pa translacijo. Naj omenimo, da je izračun posplošen le za rotacijske sklepe. 58 Dodatek B V dodatku sta prikazani vezalni shemi priključne plošče in končne stopnje, ki se nahajata v elektronskem vmesniku. 59 Dodatek B ftwl all, I I [P iUi^ 1UW uni ft ^1 rlff.L T T^ Uli ma 1UW 1U1I HI II iiirir L i^ rtil fe At m$d :Jl 1 ,__J3. pll IM mi iUÜ ^^^^^^^^ MU 1 ÜW iUL AIIL iW Slika BI: Vezalna shema priključne plošče 60 Dodatek B ^^ öl 11 s JJJ < io <3 33 h io sa as i 1 S Bgg 1 i ÎjP A9S/dn00SE Ä 1±l ? K HS'ee vsy vso -K—I dU89 Slika B2: Vezalna shema končne stopnje 61 56 Dodatek C V nadaljevanju je izpisana programska koda generatorja toˇcnih impulzov in ’kuˇza pazi’ ˇcasovnika. Uporabljena je bila demonstracijska razliˇcica razvojnega orodja BASCOM, ki je namenjen Atmelovim AVR Risc osembitnim mikrokrmilnikom. ’ ---------------------------------------------------------- ’ RTC&WATCHDOG ’ ---------------------------------------------------------- Dim I As Integer , N As Byte , P As Byte Dim Mayi As Byte ’10MHz oscillator frequency $crystal = 10000000 ’configure timer1 as timer, prescale 1 Config Timer1 = Timer ,Prescale = 1 Enable Interrupts Enable Int0 On Int0 Int0_int On Ovf1 Tim1_int Config Portd = Output Config Portb = Input Config Pind.2 = Input Mayi = 1 Do Loop ’endless loop End ’the following code is executed when the INT0 occurs Int0_int: P = Pinb If P = &H65 Then If Mayi = 1 Then Enable Timer1 Timer1=55600 ’55536 Set Portd.4 62 Dodatek C Set Portd.5 ’ Set Portd.6 ’ Waitus 100 ’ Reset Portd.6 N=0 End If End If If P = &H22 Then If Mayi = 1 Then Disable Timer1 Reset Portd.4 Reset Portd.5 Reset Portd.6 End If End If If P = &HAB Then If Mayi = 1 Then N=0 End If End If If P = &HC3 Then If Mayi = 1 Then Set Portd.5 N=0 End If End If If P = &HF8 Then Reset Portd.3 Mayi = 1 End If Return ’the following code is executed when the TIMER1 rolls over Tim1_int: Timer1=55600 ’6536-2ms Incr N Reset Portd.6 Waitus 250 Set Portd.6 Set Portd.0 If N > 1 Then Reset Portd.5 End If If N > 4 Then Mayi = 0 Set Portd.3 Set Portd.1 Reset Portd.4 Disable Timer1 Reset Portd.1 End If Reset Portd.0 Return 63 Literatura [1] T. Sabadin, Kinematika in statika haptiˇcnega robota za prst, diplomsko delo, Ljubljana, 2001 [2] U. Mali, Robotski segment s ˇskripˇcevjem, diplomsko delo, Ljubljana, 2000 [3] U. Mali, M. Munih, Force control of cable-driven robotic segment, Proceedings of the 10th International Conference on Advanced Robotics ICAR 2001, Budapest, Hungary, 2001, pp. 97-100. [4] G. C. Burdea, Haptics and Touch Feedback in Virtual Reality , John Wiley & Sons, Inc. New York, N.Y., 1996. [5] J. Hespanha, M. McLaughlin and G. Sukhatme, Introduction to Haptics: How Devices Can Emulate Touch, URL: http://www.informit.com/content/index.asp?product_id=%7BBD7BB6CC-843D-44E3-925C-721DF01D1652%7D [6] K. Salisbury, D. Brock, T. Massie, N. Swarup and C. Zilles, Haptic rendering: Programming touch interaction with virtual objects, Proceedings of the 1995 Symposium on Interactive 3D Graphics, 1995, Monterey, California, United States, pp. 123-130 [7] T. H. Massie, and J. K. Salisbury, The PHANToM haptic interface: A device for probing virtual objects, Proceedings of the ASME Winter Annual Meeting, Symposium on Haptic Interfaces for Virtual Environment and Teleoperator Systems, November, 1994, Chicago, IL, VOL DSC 55-1, pp. 295 - 302 [8] A. Bardorfer, M. Munih, Connecting haptic interface with a robot, MEleCon 2000, 10th Mediterranean Electrotechnical Conference, May 29-31, 2000, Cyprus, pp. 1202-1205 64 LITERATURA [9] Immersion Corporation, CyberGrasp: Groundbreaking haptic interface for the entire hand, URL: http://www.immersion.com/products/3d/interaction/cybergrasp.shtml [10] C. Shahabi, G. Barish, M. R. Kolahdouzan, D. Yao, R. Zimmermann, K. Fu and L. Zhang, Alternative Techniques for Efficient acquisition of Haptic data, ACM SIGMETRICS Performance Evaluation Review, Volume 29 , Issue 1, June, 2001, pp. 334 - 335 [11] M. Bouzit, G. Popescu, G. Burdea and R. Boian, The Rutgers Master II-New Design Force Feedback Glove, IEEE/ASME Transaction on mechatronics, vol. 7, no. 2, June 2002, pp. 256-263 [12] VR lab., HapticMaster, URL: http://intron.kz.tsukuba.ac.jp/vrlab_web/hapticmaster/hapticmaster_e.html [13] T. Horie, N. Abe, K. Tanaka and H. Taki, Controlling Two Remote Robot Arms with Direct Instruction using HapticMaster and Vision System, 10th International Conference on Artificial Reality and Tele-existence, pp.167-172, October 25-27, 2000, Taipei, Taiwan [14] D. K. Pai and L. M. Reissell, Haptic Interaction with Multiresolution Image Curves, Computers and Graphics, Vol. 21, No. 4, pp. 405-411, July/August, 1997 [15] D. DiFilippo and D. K. Pai, The AHI: An Audio and Haptic Interface for Contact Interactions, Proceedings of 13th Annual ACM Symposium on User Interface Software and Technology, pp. 149 - 158, November 5-8, 2000, San Diego, California [16] GENTLE/S, Robotic assistance in neuro and motor rehabilitation, URL: http://www.gentle.rdg.ac.uk [17] W. S. Harwin, et. al., The GENTLES/S project: A new method of delivering neuro-rehabilitation, Assistive Technology - Added value to the quality of life, IOS Press, Vol. 10, pp. 36-41, Ljubljana, September, 2001 [18] MIT, Manus robot aids physical therapy of stroke victims, URL: http://web.mit.edu/newsoffice/tt/2000/jun07/manus.html 65 LITERATURA [19] R.F. Boian, C.S. Lee, J.E. Deutsch, G. Burdea and J.A. Lewis, Virtual Reality-based System forAnkle Rehabilitation Post Stroke, 1st International Workshop on Virtual Reality Rehabilitation, Lausanne, Switzerland, November 7-8, 2002, pp. 77-86 [20] G. Burdea, Keynote Address: Virtual Rehabilitation: Benefits and Challenges, 1st International Workshop on Virtual Reality Rehabilitation, Lausanne, Switzerland, November 7-8, 2002, pp.1-11 [21] M. C. Cavusoglu and D. Feygin, Kinematics and Dynamics of PhantomTM model 1.5 Haptic Interface, UC Berkeley ERL Memo M01/15, March 20, 2001 [22] L. Sciavicco and B. Siciliano, Modelling and Control of Robot Manipulators, 2nd Edition, Springer-Verlag, London, UK, 2002 [23] W. Khalil and E. Dombre, Modeling identification & control of robots, Hermes Penton Science, London, Hermes Penton Ltd, 2002 [24] Mark W. Spong and M. Vidyasagar, Robot dynamics and control, New York, John Wiley & Sons, 1989 [25] Frank L. Lewis, Chaouki T. Abdallah and D. M. Dawson, Control of robot manipulators, New York, Macmillan, 1993 [26] K. Kozlowski, Modelling and Identification in Robotics, Springer-Verlag, London, UK, 1998 [27] M. Munih, Robotika I. Dinamika in vodenje robotov, Ljubljana, Fakulteta za elektrotehniko, 2002 [28] R. M. Murray, Z. Li and S. S. Sastry, A Mathematical Introduction to Robotic Manipulation, CRC Press, Inc., 1994 [29] T. Bajd, Osnove robotike, zaloˇzba FER, Ljubljana, 2002 [30] R. Karba, Modeliranje procesov, zaloˇzba FER, Ljubljana, 1999 [31] D. Matko, Identifikacije, zaloˇzba FER, Ljubljana, 1998 [32] D. Matko, Diskretni regulacijski sistemi, zaloˇzba FER, Ljubljana, 1991 66 LITERATURA [33] EnTech Taiwan, TVicHW32 5.0 - The toolkit for directly accessing hardware from Win32 applications URL: http://www.entechtaiwan.com/tvichw32.htm 67 Izjava Izjavljam, da sem magistrsko delo izdelal samostojno pod vodstvom mentorja prof. dr. Marka Muniha. Izkazano pomoˇc drugih sodelavcev sem v celoti navedel v zahvali. V Ljubljani, 12. april 2003 Uroˇs Mali