Univerza v Ljubljani Fakulteta za elektrotehniko Leon Lahajnar Avtonomno smučanje humanoidnega robota DOKTORSKA DISERTACIJA Mentor: prof. dr. Jadran Lenarčič Somentor: dr. Bojan Nemec Ljubljana, 2009 Vsebina Povzetek .................................................................................................................... iii Abstract ..................................................................................................................... vi Zahvala ...................................................................................................................... ix Tabela simbolov .......................................................................................................... x 1 Uvod ......................................................................................................................... 1 1.1 Pregled ožjega znanstvenega področja ......................................................... 1 1.2 Cilji doktorske disertacije ............................................................................. 4 1.3 Metodologija ................................................................................................. 5 2 Model robota smučarja ............................................................................................ 8 2.1 Motivacija ..................................................................................................... 8 2.2 Modeliranje človeka smučarja ...................................................................... 9 2.3 Zgradba robota ............................................................................................ 10 2.4 Zavijanje z nagibanjem ............................................................................... 11 2.5 Kinematični model robota ......................................................................... 14 2.6 Dinamični model ......................................................................................... 17 2.7 Model okolja ............................................................................................... 19 2.8 Elastičnost mehanizma ............................................................................... 20 3 Stabilnost smučarja na klančini ............................................................................. 22 3.1 Dinamično ravnotežje ................................................................................. 22 3.2 Točka ničelnega navora (ZMP) .................................................................. 22 3.3 Poenostavljen model smučarja v lateralni ravnini ...................................... 27 3.4 ZMP robota na klančini .............................................................................. 28 3.5 Zagotavljanje stabilnosti ............................................................................. 32 3.6 Odločitveno vodenje ................................................................................... 34 3.7 Analiza statične stabilnosti v odvisnosti od hitrosti in naklona .................. 37 3.8 Stabilizacija s trupom .................................................................................. 39 4 Navigacija med vratci ............................................................................................ 41 4.1 Uvod ............................................................................................................ 41 4.2 Zaznava vratc .............................................................................................. 44 4.3 Vodenje smučarja med vratci ..................................................................... 46 4.4 Model človeške navigacije .......................................................................... 47 4.5 Ocena pozicije robota glede na vratca ........................................................ 52 4.6 Izvajanje poti ............................................................................................... 58 5 Implementacija realnega sistema .......................................................................... 60 5.1 Navidezni robot smučar .............................................................................. 60 5.2 Zgradba robota ............................................................................................ 62 5.3 Senzorski sistem ......................................................................................... 64 5.4 Zgradba sistema vodenja ............................................................................ 68 6 Rezultati in ovrednotenje dela ............................................................................... 70 6.1 Rolkanje ...................................................................................................... 70 6.2 Smučanje ..................................................................................................... 77 7 Sklep ...................................................................................................................... 88 7.1 Izvirni prispevki .......................................................................................... 89 8 Literatura ................................................................................................................ 90 ii Povzetek Poglavitni prispevek doktorske disertacije je izdelava vodenja, ki zagotavlja avtonomno vožnjo smučarskega robota po smučišču. V delu smo predlagali tudi zgradbo robota, ki izvaja smučanje na smučkah s poudarjenim stranskim lokom na človeku podoben način. V simulaciji in na robotu smo preizkusili izdelane algoritme vodenja, ki zagotavljajo stabilno smučanje. Ob tem pa smo predlagali in implementirali še metodo za izvajanje poti po postavljeni poti. Človek izvaja zavoje na smučkah s poudarjenim stranskim lokom na dva načina in sicer z abdukcijo in addukcijo v kolku, ter fleksijo in ekstenzijo nog. V našem primeru smo se odločili, da uporabimo pri izdelavi robota model izvedbe zavojev s fleksijo in ekstenzijo nog. Zasnovali in zgradili smo robota, ki je sestavljen iz dveh nog z eno prostostno stopnjo in trupa z možnostjo nagiba v lateralni smeri. Ta zgradba dokaj verno oponaša gibanje človeka med smučanjem. Predlagana zgradba robota nam je služila za izgradnjo dinamičnega in kinematičnega model robota. Predstavili smo tudi odnos med naklonom rolk in smuči na podlago in zavijanjem. Zgrajen pa je bil še model vpliva okolja na smučarja. Na principu Newton-Eulerjeve metode smo zgradili še poenostavljen model smučarja na klančini, ki omogoča računanje dinamičnih veličin robota v realnem času. Do sedaj predlagani algoritmi za zagotavljanje stabilnosti hodečih in mobilnih robotov delujejo v večini primerov le v strukturiranem okolju. V teh primerih se trajektorije gibanja robota izračuna vnaprej. Med samo izvedbo naloge se izvajajo zgolj manjši popravki teh gibanj. Pri smučanju pa se mora robot aktivno odzivati na zaznane ovire in konfiguracijo terena. Zato smo predlagali algoritem za zagotavljanje stabilnosti v realnem času. Kot kriterij stabilnosti robota smo uporabili točko ničelnega navora, ki se izračunava na podlagi senzorskih informacij in poenostavljenega dinamičnega modela robota. Za razliko od predhodno predlaganih rešitev, kjer se ob vnaprej točno določeni poziciji točke ničelnega iii navora zagotovi tako gibanje robota, ki ohranja točko v tej poziciji, pa je pri naši metodi gibanje točke ničelnega navora omejena zgolj s področjem znotraj podpornega poligona. V tem območju se točka lahko prosto giblje, zato lahko robot izvaja še sekundarno nalogo. Algoritem temelji na regulatorju pospeška. V vsakem časovnem trenutku se preveri, ali želeni kontrolni pospeški zagotovijo ohranitev točke ničelnega navora znotraj podporne ploskve. Za robota je bila opravljena analiza, kakšni so dovoljeni nakloni na podlago, ki še zagotavljajo stabilnost robota brez lastnega gibanja robota v zavojih. Na podlagi teh dveh kriterijev je bilo zgrajeno iterativno vodenje, ki zagotavlja stabilno gibanje robota tako v zavoju, kot tudi v fazi med zavoji. Robot pa razen zagotavljanja stabilnosti lahko izvaja še sekundarno nalogo. V našem primeru smo kot sekundarno nalogo definirali vožnjo skozi sistem vratc. Za gradnjo poti med vratci smo uporabili model človeške navigacije. Za razliko od ostalih potencialnih metod, se pri tej metodi gradi potencialno polje na novo v vsakem trenutku, glede na trenutno pozicijo ovir in ciljev. Pri tem smo predlagali nov način gradnje trenutnih ciljev. S tem smo se izognili možnosti, da bi robot zašel v lokalni minimum. Druga prednost opisane metode je, da so poti in odvodi gladki, kar je nujno potrebno za uporabo pri neholonomskih mobilnih robotih. Iz literature je razvidno, da večina metod gradnje poti temelji na sestavljanju poti iz ravnih segmentov in krožnic okrog ovire z radijem enakim minimalnemu, ki ga je robot sposoben izvesti. V našem delu smo podali izboljšavo, ki s pomočjo virtualnega premika zagotovi pot, ki poteka bližje ovire, kot pa je minimalni radij. S tem smo zagotovili, da se ovira nahaja več časa v vidnem kotu kamere. To omogoča natančnejšo oceno dejanske pozicije vratc glede na robota. Zaradi nezanesljivosti senzorskih, predvsem vizualnih informacij, smo implementirali tudi oceno pozicije robota glede na vratca na podlagi razširjenega Kalmanovega filtra. Predlagani model omogoča filtriranje podatkov v primeru, ko se v podatkih o poziciji vratc pojavijo napake. Ob tem pa omogoča predikcijo pozicije vratc v primerih, ko iz računalniškega vida ni podatka. iv Ob koncu dela smo predstavili del eksperimentov, ki smo jih izvedli tako v simulaciji, kot tudi na robotu. Na podlagi simulacije je bilo ugotovljeno, da s pomočjo virtualnega premika vratc dosežemo bolj neposredno vožnjo skozi vratca. Preizkusi na robotu so pokazali, da je robot s predlaganimi algoritmi ohranil stabilnost med vožnjo. Medtem ko se je pri rolkanju merjeni radij zavoja ujemal z modeliranimi, pa se je pri smučanju izkazalo, da je izveden radij zavoja zelo odvisen od strukture podlage. Eksperimenti so pokazali, da se je robot, z uporabo v delu opisanih algoritmov, sposoben avtonomno spustiti po smučišču in ob tem prevoziti postavljeno pot. v Abstract The main contribution of this thesis is development of control algorithms for autonomous skiing of robot on the skiing ground. In our work we also propose robot structure that allows skiing on carving skies in similar way as human does. Also some models of robot and virtual environment are produced. Developed control algorithms are tested. Also method of path execution on the track is proposed and implemented. Human can execute turns using carving skis in two ways. First one is with adduction and abduction in the hip. The second way is with flexion and extension of the legs. In our case we concentrated on second way, because it is more commonly used. The skiing robot is composed of two legs with one degree of freedom and torso with inclination in the lateral plane. This structure represents human movement during the skiing. Based on this structure we built dynamic and kinematic models. In dynamic model also the environment influences were incorporated. Coupling between inclination to the ground and the turn radii for skateboards and carving skis are presented Also simplified model of a robot on the skiing ground was constructed. This allowed us to calculate dynamic properties of the robot in real-time. Previously proposed algorithms for dynamic stability of legged and mobile robots work mainly in structured environment. Those methods calculate stable motion offline in advance. During task execution only minor corrections in motion trajectories are induced. But during the skiing robot has to actively react to sensed obstacles and structure of the skiing ground. Therefore we proposed algorithm for real-time stability control. The robot stability was evaluated by zero moment point criteria, that is calculated from sensory information and simplified dynamic model of the robot. Methods proposed in literature calculate movement of the robot that vi will maintain zero moment point in defined position on the ground. In our method is position of zero moment point limited only to the area of support polygon. Zero moment point can be present in any point of this area. Therefore the robot can execute also the secondary task. Algorithm is based on acceleration control. In every time sample the control accelerations are tested if those accelerations will maintain zero moment point in area of support polygon. We had to analyze which robot inclination to the surface still maintains robot stability in turns without robots self motion. According to those two criteria iterative control was built, that assures stable motion of the robot in turns and also in region between turns. Except stability the robot can execute also secondary task. In our case this task is defined as skiing through the system of gates. A trajectory generation between the gates is based on the model of human navigation. In contrary to the other potential methods, this method generate potential field in every moment, according to temporal positions of obstacles and goals. We proposed a new way of defining goals that eliminates the possibility that the robot would be trapped in local minima. Second advantage of this method is that produced path and its derivate are smooth. Therefore produced path can be used with non-holonomic mobile robots. Most of presented methods for optimal path generation in literature are based on building path from straight segments and circular arc with minimal radii that the robot can execute. In our work we have also some knowledge of further gates. Therefore we proposed virtual shift of the gates that allows path that is closer to the obstacle than the minimal radii. This assures that the gates remains longer in camera angle of view and consequently allows the robot to estimate more precise position of the gates. Because of inexact sensory information, especially visual, we implemented estimation of robot position toward the gates based on extended Kalman filter. Proposed model allows to optimally estimate position of the robot in noisy environment. In cases when visual information is not available also predicted position of the gates toward the robot is estimated. vii In the end of the work a part of conducted experiments is presented. Simulation experiments showed that with the usage of virtual shift closer path to the gates is achieved. Experiments on the robot showed that proposed algorithms assured stability during the ride. An executed radius during the skating is quite similar to the modeled. But at skiing radii is very dependent on structure of the snow. Built robot is capable to autonomously ski on the skiing ground and drive through the system of the gates. viii Zahvala Zahvaljujem se mentorjema prof. dr. Jadranu Lenarčiču in dr. Bojanu Nemcu za mentorstvo in koristne nasvete pri izdelavi doktorske disertacije. Zahvaljujem se tudi vsem kolegom iz Odseka za avtomatiko, biokibernetiko in robotiko na Institutu Jožef Stefan, ki so mi pomagali pri delu. Prav posebna zahvala gre dr. Damirju Omrčenu in dr. Leonu Žlajpahu, ki sta mi pomagala s koristnimi nasveti. Za finančno podporo podiplomskega študija se zahvaljujem Javni agenciji za raziskovalno dejavnost Republike Slovenije. Nenazadnje bi se rad zahvalil vsem bližnjim za moralno podporo in spodbudo v vseh letih študija. ix Tabela simbolov 1i koti sklepov robota rad(o) t-c razdalja med med ploščadjo in sredino med smučkama m I dolžina segmenta noge m d razdalja med nogama m Rr radij zavoja rolke m 0 naklon robota na podlago rad(o) a kot naklona mehanizma rolke rad(o) Lr razdalja med mehanizmoma rolke m L dolžina smučke m r radij zavoja smučke m h višina krožnega odseka m Ws širina smučke spredaj m ww širina smučke na sredini m wt širina smučke na repu m d globina ugreza smučke v sneg m Cj cos(q,) si sin(q,) Js Jacobijeva matrika robota za radij smučanja in višino smučanja Jr Jacobijeva matrika robota za radij rolkanja in višino rolkanja ar radialni pospešek ms-2 g gravitacija ms-2 Fv sila vizkoznega trenja N Fs sila statičnega trenja N mR masa robota kg X globalna pozicija robota v smeri osi X m Y globalna pozicija robota v smeri osi Y m 9 globalna smer gibanja rad(o) lr dolžina desne noge m h dolžina leve noge m Mx navor okrog osi x Nm x My navor okrog osi y Nm R rezultanta vseh sil, s katero deluje podlaga na nogo N P točka na podlagi qsp vektor kinematičnih veličin poenostavljenega modela robota t vektor sil in navorov poenostavljenega modela robota r, vektor težišča i-tega segmenta nit masa i-tega segmenta kg /, vztrajnostna matrika i-tega segmenta a>i vektor kotnih hitrosti i-tega segmenta M j vektor zunanjega navora Fk vektor zunanje sile s k vektor prijemališča zunanj e sile Mp vektor navorov v točki P Xzmp točka ničelnega navora v smeri osi x m yzMP točka ničelnega navora v smeri osi y m M,.;,,- vektor navora s katerim deluje i-1 segment na segment / Fi.u vektor sile s katerodeluje i-1 segment na segment / if/ naklon podlage rad(o) iff s zaznan naklon podlage rad(o) F celotna sila s katero robot deluje na podlago pravokotno na smučko N F d sila s katero deluje desna noga na podlago N Fi sila s katero deluje desna noga na podlago N bsr polovica razdalje med smučkama m 6d želen naklon na podlago rad(o) 0m merjen naklon na podlago rad(o) (po kot pogleda na oviro rad(o) dv razdalja v slikovnih elementih od navpične osi piksel Kzk koeficient preslikave zornega kota v piksel piksel d0 razdalja do ovire m dc razdalja do cilja m b konstanta dušenja s-1 kg koeficient privlačenja cilja s-2 k0 koeficient odboja ovire s-2 xi c1 koeficient vpliva oddaljenosti cilja c2 vpliv cilja pri veliki oddaljenosti c3 koeficient vpliva kota pogleda na oviro c4 koeficient vpliva oddaljenosti ovire xii 1 Uvod 1.1 Pregled ožjega znanstvenega področja Težišče raziskav se v svetu osredotoča na humanoidno robotiko. Spekter problemov na humanoidni robotiki je zelo širok, od razvoja komponent do človeku podobnega gibanja in kognitivnega obnašanja. Veliko raziskav poteka tudi na področju t. i. dinamičnega gibanja humanoidnih robotov. Mnogo raziskovalcev se ukvarja z gradnjo in vodenjem bipedalnih robotov s sposobnostjo hoje. Večina teh raziskav je bila izvršena na ravni podlagi. Šele v zadnjem času raziskujejo hojo na nagnjenih površinah, stopnicah in hojo preko ovir, ki pa kljub vsemu predstavljajo strukturirano okolje. Glavni problem, ki ga rešujejo, je stabilnost v smeri hoje, medtem ko stransko stabilnost v mnogih primerih zanemarijo, saj je uporabljen planarni model hoje. Pogosto uporabljajo posebej oblikovana stopala, ki povzročijo, da se robot nagiba v odvisnosti od faze v koraku (Toddler [4]). Alternativni pristop je, da se s pomočjo premikov v gležnju in kolku zagotovi prenos težišča na želeno nogo, kar zagotavlja statično stabilnost. Ta pristop uporabljajo znani roboti, kot so Asimo, QRIO ... Najpogosteje uporabljen kriterij za zagotavljanje dinamične stabilnosti bipedalnih robotov je točka ničelnega navora (ang. Zero Moment Point - ZMP) [27], ki določa točko na površini, kjer vsota vseh dinamičnih sil, delujočih na robota, ne povzroča navorov. Robot je stabilen, če se ZPM nahaja v območju podpornih površin. Čeprav lahko stransko stabilnost pri hoji zanemarimo, pa postane pomembna pri gibanjih, kot so kolesarjenje, smučanje, rolkanje, drsanje ... Pri teh nalogah se človeku kot sistemu zmanjša okretnost, vendar pa s tem pridobi na stabilnosti in hitrosti v smeri gibanja. V literaturi so bili predstavljeni modeli avtonomnih kolesarjev. Murato-boy predstavlja kolesarja, ki svoj stranski nagib zaznava s pomočjo giroskopov, stabilnost v prečni smeri vzdržuje s pomočjo vztrajnika. Ta način vodenja so uporabili tako za enokolesna [3] kot tudi za dvokolesna vozila [22]. Tanaka in Murakami [17] sta za kolo uporabila model inverznega nihala, stabilnost pa zagotovila s PD regulatorjem krmilnega kota. Podoben način zagotavljanja stabilnosti je uporabil tudi Jingang Yi [6] pri vodenju avtonomnega motorista, katerega pomembna nadgradnja je, da poleg stabilnosti zagotavlja tudi sledenje trajektoriji. Gibanje, ki se izvaja na neravnih površinah, zahteva zaznavanje naklonov in oceno stabilnosti, ker bi sicer lahko prišlo do prevrnitve robota. Park [7] je v svojih raziskavah gibanja po neravnem terenu uporabil neholonomnega robota. Pri tem se je osredotočil na stabilnost v povezavi z akcijami v danem okolju. Okolje je zaznaval s pomočjo 3D skenerja. Pri robotskih vozilih se večina raziskav osredotoča na stabilnost v odvisnosti od hitrosti v zavojih, vendar pa pri tem predpostavljajo, da se struktura mehanizma in s tem točka težišča med zavojem ne spreminja [8],[9]. Tipičen primer spreminjanja točke težišča pa je na primer dvigovanje tovora med gibanjem viličarja [19]. Izdelava robota, ki je sposoben avtonomnega smučanja, zahteva tudi poznavanje osnov tehnike smučanja. S pojavom smuči s poudarjenim stranskim lokom se je smučanje korenito spremenilo. Če se pri klasičnih smučeh zavoje izvaja predvsem z oddrsavanjem, se pri smučeh s poudarjenim stranskim lokom zavoj izvede z zarezom roba smučke v sneg, kar povzroči gibanje po trajektoriji bolj ali manj podobni krožnici. Pri tem določata radij zavoja geometrija smučke in globina zareza [21]. Zarezne zavoje človek izvede na dva načina, in sicer z abdukcijo in addukcijo v kolku ter iztegom ter krčenjem kolen. Pri izvajanju zavojev pri nizkih hitrostih se uporabljata obe obliki izvedbe. Pri višjih hitrostih pa zaradi velikih radialnih sil smučar ne izvaja zavojev z abdukcijo v kolku, saj mišice v stranski ravnini niso kos velikim silam. Zato smučar izvede zavoj s krčenjem in iztegom nog (gibanje kolena), stabilnost pa zagotavlja z nagibom hrbtenice [1]. Do sedaj je bilo zgrajenih več mehanizmov, ki omogočajo smučanje. Glavna pomanjkljivost vseh teh mehanizmov je, da se ne odzivajo na okolje, saj izvajajo zgolj vnaprej predpisano gibanje. Yoneyama [33] je za oponašanje zarezne tehnike smučanja zgradil robota, ki omogoča gibanje v kolčnem sklepu. Shimizu [16] je zgradil robota za zarezno tehniko, ki uporablja gibanje kolka ali gibanje kolena. S tem je potrdil, da se pri zareznem smučanju lahko uporabljata obe obliki izvajanja 2 zavoja. Meritve sil na podlago posameznih nog pri smučarju, ki izvaja zarezne zavoje, so pokazale, da človek pri smučanju vselej teži k stanju, kjer ima stik s podlago z obema nogama [32]. Razmerje med silami se spreminja v odvisnosti od faze zavoja in hitrosti. V začetku zavoja se pojavijo večje sile na zunanji smučki, v nadaljevanju pa prehaja sila tudi na notranjo smučko. Pri zaključku zavoja, ki je obenem tudi začetek naslednjega zavoja, se sile spet prenesejo na zunanjo smučko. Smučar je v svoji osnovi neholonomni sistem, saj se, razen v primerih, ko se odlepi od tal, ne more gibati v poljubni smeri. Pri vodenju neholonomnih sistemov se večina raziskav osredotoča na lokalizacijo v prostoru, iskanje idealne poti in izogibanje oviram. Lokalizacija in iskanje optimalne poti pogosto zahtevata planiranje na globalnem nivoju, ki upošteva celotni prostor, po katerem se robot giblje. Zaradi računske zahtevnosti globalni algoritmi ponavadi ne delujejo v realnem času. Druga slabost pri uporabi globalnih metod je, da pogosto nimamo popolnih informacij o okolju. V nasprotju z globalnimi pa lokalni algoritmi upoštevajo le informacije o bližnji okolici robota, kar sicer računsko poenostavi problem, vendar pa ne zagotavlja globalno optimalne poti. Izogibanje oviram se v mobilni robotiki pogosto izvede zgolj na podlagi lokalnih informacij. Ena najbolj uporabljenih tehnik so umetna potencialna polja, ki odbijajo robota stran od ovir, hkrati pa ga privlačijo k cilju [16]. Pri neholonomnih robotih se pojavi problem, ker se robot ne more gibati v poljubno smer in je zato potrebno originalne metode ustrezno modificirati [11], [13]. Ena izmed pogosto uporabljenih metod za izogibanja oviram je tudi polje vektorskih histogramov, ki računa enodimenzionalni polarni histogram, na osnovi katerega se izračuna prosta območja, po katerih je možna pot [14], [15]. Tako metoda potencialnih polj kot polje vektorskih histogramov se najpogosteje uporabljajo v povezavi z raznimi sonarji in panoramskimi kamerami. Fajen [10] je za izogibanje oviram uvedel termin krmilni kot, katerega nadgradnja omogoča tudi uporabo kamer [36]. Metoda je podobna potencialnim poljem, vendar polje gradi le v okolici trenutne smeri gibanja robota. Za mero oddaljenosti pa uporablja podatke o prostorskem kotu ovire. V primeru znanih ovir pa se na podlagi velikosti in znanega kota pogleda na oviro ugotovi oddaljenost le-te. 3 1.2 Cilji doktorske disertacije Na podlagi rezultatov predhodnih raziskav in stanja tehnike menimo, da je mogoče zgraditi robota, ki bo avtonomno smučal po klančini in pri tem oponašal gibanje in obnašanje človeka. Pri tem se bomo omejili na t. i. zarezno tehniko smučanja. Glavna izziva sta zagotavljanje stabilnosti mehanizma med smučanjem po neravnem terenu ter sprotno planiranje poti na osnovi senzorskih informacij. Namen disertacije je razviti algoritme vodenja, ki na podlagi podatkov, pridobljenih iz senzorjev, podobnih človeškim, zagotovi mehanizmu stabilno izvajanje zavojev na klančini. Algoritme bomo testirali tako s simulacijo v virtualnem okolju kot na realnem modelu smučarja, ki smo ga razvili in zgradili v okviru naloge. Mehanizem je sestavljen iz dveh nog s po eno prostostno stopnjo, ki oponaša gibanje kolena, ter trupom s sposobnostjo prečnega nagiba, ki zagotavlja lateralno stabilnost. Na mehanizmu so vgrajeni giroskopi, senzorji sile na podlago, GPS in vizualni senzor. Vodenje mora zagotavljati stabilnost robota in obenem avtonomno gibanje robota v realnem času, pri čemer se mora izogibati statičnim in dinamičnim oviram. V splošnem ne moremo vedno zagotoviti stabilnosti in gibanja po želeni trajektoriji. V tem primeru je naša primarna naloga zagotavljanje stabilnosti. Pri tem ovire zaznavamo v realnem času s pomočjo monokularnega vida. Algoritmi vodenja in planiranja poti morajo zagotavljati avtonomno gibanje robota po smučišču. Pri tem lahko pot določimo tudi z vratci, kot je to v navadi pri tekmah alpskega smučanja. Podrobneje obravnavamo naslednjo problematiko: • Razvoj dinamičnega modela smučarja v zavoju. Model je primeren za analizo in ovrednotenje prečne stabilnosti smučarja ob upoštevanju naklona zaznane površine, po kateri se smučar giblje. Model omogoča simulacijo gibanja smučarja, ob tem pa posreduje tudi sile, s katerimi smučar deluje na podlago. Za algoritme vodenja pa je bil zgrajen tudi poenostavljen model. • Analiza stabilnosti mehanizma pri različnih hitrostih gibanja v zavojih. 4 • V realnem času je potrebno pridobiti mero stabilnosti robota pri različnih naklonih podlage in hitrostih gibanja. Na podlagi teh informacij smo zgradili vodenje, ki zagotavlja stabilne zavoje tako pri nizkih kot tudi pri visokih hitrostih. Sinteza vodenja, ki bo zagotovljalo stabilnost robota. Robot ima med vožnjo določeno področje, v katerem lahko izvaja svojo nalogo. Medtem ko mora zagotoviti stabilnost, se mora na podlagi višjega sistema vodenja tudi odzivati na okolje in izvajati želeno pot. Razvoj navideznega okolja, ki omogoča vizualizacijo mehanizma in gibanja smučarja. Vizualizacija se izvaja v navideznem okolju Blender. V okolju smo zgradili model smučišča, po katerem se bo robot gibal. Na robota bo pritrjena kamera, kar bo omogočilo testiranje algoritmov za lokalno izogibanje oviram na podlagi vizualnih informacij v navideznem okolju. Razvoj sistema za avtonomno gibanje neholonomnega robota med vratci. Vodenje bo temeljilo na osnovi združevanja informacij senzorskega sistema, ki bo vseboval GPS, kamero in giroskope. Večina algoritmov za vodenje neholonomnih robotov upošteva zvezno odvisnost med zasukom koles in radijem zavoja. Smučanje z zarezno tehniko pa vsebuje nezveznost. Pri majhnih naklonih smuči glede na podlago se smučar giblje naravnost. Ko se naklon smuči na podlago poveča, rob smučke zareže v sneg in s tem preide v zavoj z določenim radijem, ki se z večanjem naklona manjša. Sistem bo moral na podlagi zaznane okolice preklapljati med ravnimi odseki in zavoji z radijem, manjšim od stranskega radija smučke. 1.3 Metodologija Razvoj in izdelava robota smučarja zahteva intenzivno testiranje in prilagajanje kompleksnih algoritmov vodenja. Nerealno je pričakovati, da bomo lahko vsa testiranja opravili neposredno na smučišču. Zato je zgrajen kompleksen simulacijski sistem, ki bo temeljil na virtualnem okolju. Ta model bo omogočal tudi simulacijo 5 zajemanja vizualnih informacij s kamero, ki je ena ključnih problematik disertacije. Seveda pa je potrebno končno verifikacijo opraviti na realnem sistemu. V našem primeru to pomeni testiranje na smučišču. Da bi se izognili testiranju realnega sistema zgolj na smučišču, bomo za simulacijo smuči s poudarjenim stranskim lokom uporabili rolke in testiranja opravili tudi na betonski klančini. Najprej bomo zasnovali, skonstruirali in izdelali mehanizem, ki omogoča izvajanje zavojev s pomočjo smučk s poudarjenim stranskim lokom ali z rolkami. Ta mehanizem je sposoben na podoben način kot človek izvajati zarezne zavoje s krčenjem in iztegom nog. Stabilnost mehanizma bomo zagotavljali tudi s pomočjo gibanja trupa. V nadaljevanju drugega poglavja bomo predstavili kinematični in dinamični model robota, ki smo ga uporabili za izbiro pogonov in senzorskega sistema. Dinamični model robota smučarja, razvitega v okolju SiMechanics, smo zgradili na podlagi podatkov iz orodja za računalniško podprto načrtovanje IDEAS. V modelu smo predpostavili, da robot izvaja zgolj čiste zarezne zavoje brez oddrsavanja, ob tem pa sta smučki vedno v stiku s podlago, če je sila na podlago večja od določene meje. V model je vključeno tudi okolje, kar zajema predvsem lokalne naklone površine. Ob upoštevanju hitrosti gibanja pa na model delujejo še radialne sile. Za namen vodenja je bilo potrebno razviti tudi poenostavljeni dinamični model smučarja v zavoju. Model v okolju SimMechanics namreč ni primeren za izdelavo algoritmov vodenja. V tretjem poglavju opisujemo algoritme vodenja, ki zagotavljajo stabilno izvajanje zavojev na klančini. Stabilnost sistema smo ocenjevali na osnovi kriterija ZMP, ki je predstavljen v začetku poglavja. V nadaljevanju podajamo poenostavljen model robota, ki omogoča izračun ZMP-ja v realnem času, kar je potrebno za vodenje sistema. Na osnovi tega modela smo razvili algoritem, ki na podlagi zaznanega naklona in hitrosti ohranja stabilnost. Na podlagi modela se določijo meje stabilnih naklonov, ki jih lahko dosežemo z omejenimi pospeški. Ti pospeški so omejeni tako, da zagotavljajo stabilnost tudi ob upoštevanju nemodeliranih sil okolja. V prečni smeri v zavojih delujeta poleg nemodeliranih sil okolja še komponenta gravitacije in radialna sila. Območje stabilnih naklonov smučarja, ki ga bomo ocenjevali z uporabo ZMP, je odvisno od lokalnega naklona podlage, hitrosti in pospeškov težišča robota kot tudi od gibanja robota samega. Točka ZMP se mora vedno nahajati znotraj podporne podlage znotraj smuči. Z vodenjem zagotovimo, da 6 se ZMP nahaja v najbolj stabilni poziciji ob upoštevanju zmožnosti realnega sistema. V četrtem poglavju je predstavljeno vodenje robota na smučišču. V tem delu smo predstavili algoritme za sprotno generacijo trajektorij za vodenje robota po smučarski progi, ki jo določajo smučarska vratca. Lego vratc določamo s pomočjo kamere. Razvili smo algoritem, ki izračunava oddaljenost in lego vratc v realnem času na osnovi oblike in velikosti vratc. Obdelava slik temelji na podlagi iskanja robov in barvne informacije. Da bi se izognili problemom s spreminjajočo osvetlitvijo, smo vizualno zaznavanje izvedli v HSV barvnem prostoru. Pri obdelavi danih podatkov smo upoštevati še stranske naklone podlage in naklon smučarja na podlago. Lokalni naklon smučarja na podlago zaznamo s pomočjo inklinometra. V petem poglavju je predstavljena zgradba navideznega okolja, ki vsebuje modele robota in okolja. Ob tem pa je predstavljena še vizualizacija robota in okolja. V nadaljevanju poglavja je predstavljena mehanska zgradba samega robota. Opisani so tudi uporabljeni senzorski sistemi. Na koncu pa je predstavljena še zgradba sistema vodenja, ki je bila implementirana na robota. V predzadnjem poglavju smo predstavili rezultate simulacije in rezultate eksperimentov z robotom na klančini in smučišču. Pri poizkusih smo najprej preverili stabilnost robota pri rolkanju. V tem primeru so se podatki o stabilnosti med senzorskimi in modeliranimi vrednostmi dokaj ujemali. Izvedeni so bili tudi testi na različno postavljenih progah. V nadaljevanju smo podali rezultate testiranja na smučišču. Analizirani smo dve tipični vožnji robota na smučišču v različnih razmerah podlage. Na podlagi te analize smo ugotovili tudi, da je radij zavoja smučk s poudarjenim stranskim lokom zelo odvisen od strukture snežne podlage in hitrosti. 7 2 Model robota smučarja 2.1 Motivacija Raziskave v robotiki se v zadnjem času osredotočajo na humanoidno in servisno robotiko. Končni cilj je posnemanje človeka pri vsakdanjih opravilih, najprej pa preučevanje obnašanja človeka pri različnih nalogah. Čeprav se nekatere raziskave osredotočajo na naloge, ki so manj pomembne za uporabo robotov v vsakdanjem okolju (kot na primer kolesarjenje, drsanje, plezanje), pa so ključnega pomena pri razumevanju gibanja človeka in pri razvoju algoritmov za gibanje v nestrukturiranem okolju. Sem spada tudi oponašanje alpskega smučanja z robotom. Ne glede na prej našteto pa se pojavljajo tudi potrebe po specialnih robotih, ki bi lahko služili kot inštruktorji in pomočniki pri posameznih nalogah. Taki roboti bi bili uporabni tudi pri učenju in izvajanju posameznih športnih aktivnostih. V preteklosti so bili predstavljeni posamezni poskusi izvajanja alpskega smučanja s pomočjo raznih mehanizmov in tudi robotov. Ti primeri so se osredotočili predvsem na izvajanje zavojev s pomočjo enostavnih gibanj. Izkazalo se je, da lahko z opazovanjem teh mehanizmov lažje dojamemo bistvene aktivnosti pri smučanju. Glede na to lahko realno pričakujemo, da bi lahko robota uporabili tudi pri procesu učenja smučanja. Drug pomemben vidik uporabe robota smučarja je testiranje smučarske opreme. Ne glede na številne naprave, ki obstajajo za testiranje smučarske opreme, se večina testiranja opravi v statičnih razmerah. Te naprave omogočajo ponovljive meritve, vendar pa se pri smučanju mnoge slabosti opreme pokažejo šele pri testiranju na smučiščih v dinamičnih razmerah. Le del teh testiranj je izvedenih s pomočjo raznih senzorjev (sile, navori, zaznavanje gibanja). Velik del teh testiranj pa temelji zgolj na subjektivni oceni izkušenih smučarjev. Tudi lastnost človeka, da se hitro adaptira na različno opremo, predstavlja v fazi testiranja oviro. Robot smučar bi bil lahko pri tem bolj uspešen. Robotu lahko namreč predpišemo enako gibanje ne glede na izbrano opremo in na podlagi zabeleženih podatkov podamo bolj neodvisno oceno opreme. Možnosti uporabe robota smučarja so še druge. Omenimo samo nadzor in pregled smučišč, pomoč pri pregledovanju in 8 zavarovanju plazovitega terena itd. Gotovo pa so zelo pomembna in tudi neposredno in takoj uporabna znanja, ki omogočajo gibanje po smučišču in hkratno zaznavanje okolice. Na podlagi teh informacij, ki so zelo podobne človeškim, je mogoče zgraditi vodenje, ki oponaša človeško gibanje na smučišču in ob tem omogoča testiranje algoritmov za navigacijo in gradnjo zemljevidov. Ta znanja lahko neposredno uporabimo pri avtomatski navigaciji v prometu, avtomatski navigaciji invalidskih vozičkov in vodenju specialnih enokolesnih in dvokolesnih vozil. 2.2 Modeliranje človeka smučarja Človeška noga je kompleksen biomehanski sistem, ki ga najpogosteje modeliramo s sedmimi prostostnimi stopnjami (3 v gležnju, 1 v kolenu in 3 v kolku). Pri smučanju se gleženj nahaja v smučarskem čevlju, ki zaradi svoje zgradbe dovoljuje zgolj fleksijo in ekstenzijo gležnja. Kolk ima tri prostostne stopnje, in sicer fleksijo in ekstenzijo, abdukcijo in addukcijo ter notranjo in zunanjo rotacijo, kar človeku omogoča izvajanje smučarskih zavojev. Slednje gibanje se pri smučanju uporablja zgolj pri plužni tehniki, medtem ko se pri smučkah s poudarjenim stranskim lokom uporabljata zgolj ostali gibanji v kolčnem sklepu. V smučarskih krogih je sprejeto prepričanje, da človek izvaja zarezne zavoje na dva načina [1]. Najpogosteje se izvajajo s fleksijo in ekstenzijo nog. V tem primeru vsi trije sklepi delujejo na način, ki povzroči izteg ali pokrčitev noge. Na ta način zavoje izvedejo mišice, ki spadajo med najmočnejše v človeškem organizmu. Zarezne zavoje se lahko izvede tudi z abdukcijo in addukcijo v kolku, vendar pa so mišice, ki skrbijo za to gibanje, šibkejše in zato se ta način uporablja zgolj pri nižjih hitrostih, ko so sile, ki delujejo na telo, manjše. Pri tej obliki izvedbe zavojev je celotna akcija, ki je potrebna za izvedbo zavoja, izvedena samo s kolčnim sklepom. V obeh primerih pa smučar stabilnost med smučanjem vzdržuje z gibanjem trupa in rok. Na podlagi teh ugotovitev smo se odločili, da bo naš robot oponašal smučanje s pomočjo fleksije in ekstenzije nog. Pri tem načinu je pomembno gibanje izteg in pokrčenje nog, medtem ko se orientacija trupa ne spreminja, saj spremembo orientacije v kolenu kompenzirata gleženj in kolčni sklep. Zato smo v našem primeru zgradili nogo v obliki dvojnega medsebojno povezanega paralelograma, kot je prikazano na sliki 2.1. S tem je zagotovljeno, da se orientacija na vrhu noge ne spremeni glede na podplat. Tako dosežemo zgolj translatoren premik v z smeri. Enako gibanje pri 9 smučanju izvaja tudi človek, in sicer izvede izteg ali skrčenje noge s kolkom, kolenom in gležnjem. Razlika je v dejstvu, da človek med gibom ohranja tudi silo v sagitalni ravnini v zelo ozkem področju, medtem ko je pri predlaganem robotu delovanje sile v sagitalni ravnini odvisno zgolj od lokalnega naklona. 2.3 Zgradba robota V tem delu opisujemo robota, ki smo ga razvili za eksperimentalno preverjanje naše hipoteze, da je robot sposoben avtonomno smučati po smučarski progi. Robot je sestavljen iz dveh nog in trupa, ki so med sabo povezani s pomočjo ploščadi. Ploščad ima podobno funkcijo kot pri človeku medenica. Nogi sestavljata dva paralelograma, ki ohranjata kot med smučmi in ploščadjo. S tako kinematično zasnovo mehanizma lahko izvajamo dve vrsti gibov, in sicer • dvig ploščadi na določeno višino lc, • naklon nog glede na podlago ?. Slika 2.1: Model robota Celotno mehansko zgradbo robota zaključuje še trup, ki je pritrjen na ploščad. Predlagana mehanska konstrukcija omogoča izvajanje zavojev s smučkami s poudarjenim stranskim lokom in tudi z rolkami. Gibanje trupa je namenjeno zagotavljanju stabilnosti na klančini. S pomočjo trupa je mogoče kompenzirati tako kratkotrajne sunke, ki se pojavijo kot posledica hitre spremembe naklona podlage, kot tudi dolgotrajne, ki so posledica radialne sile v zavoju. Predlagani mehanizem 10 omogoča izvedbo naklona na podlago. S tem gibanjem je robot sposoben zavijanja s smučkami s poudarjenim stranskim lokom. 2.4 Zavijanje z nagibanjem Nekateri mehanski neholonomni sistemi zavijajo s pomočjo nagibanja. Tipični primeri so kolesa, rolke in smuči s poudarjenim stranskim lokom. Robot, ki smo ga predstavili v tem poglavju, je sposoben smučanja samo z uporabo smuči s poudarjenim stranskim robom. Da smo omogočili testiranje robota tudi v poletnem času, smo namesto smuči uporabili rolke, ki omogočajo posnemanje smučanja na klančinah. V nadaljevanju bomo podali matematični model zavijanja z nagibanjem za rolke in smuči. Model zavijanja rolke Rolke so tipični primer mehanizma, kjer zavijamo z nagibanjem. Sestavljene so iz dveh parov kolesc, ki imata naklonjeni krmilni osi, kot prikazuje slika 2.2. Osi sta postavljeni pod kotom a glede na vertikalno os tako, da stranski nagib povzroči zavoj v smeri nagiba. Ob predpostavki, da so vsa kolesca v stiku s podlago, je radij zavoja v odvisnosti od 6 podan z enačbo [9] R = tan(^ (1) 20 , kjer je L razdalja med paroma kolesc prikazana na sliki 2.2.. Ta enačba velja le v primeru, če ne prihaja do stranskega zdrsa posameznih kolesc. 11 Slika 2.2 Model rolke V našem primeru imamo par vzporednih rolk, po eno za vsako smučko. Ker sta obe rolki naklonjeni na podlago za enak kot, izvajata enak zavoj z radijem, izračunanim po enačbi (1). Ker pa morata biti radija zunanje in notranje rolke pri zavijanju različna, prihaja med vožnjo do zdrsavanja. V modelu smo zato predpostavili, da je radij zavoja definiran za točko, ki se nahaja na sredini med obema rolkama. To pomeni, da notranja rolka izvede zavoj z manjšim radijem od predpisanega, zunanja pa z večjim. Model zavijanja smuči s poudarjenim stranskim lokom Gibanje smučarja na smučišču določajo kontaktne sile med smučmi in podlago. Medtem ko se pri klasičnih smučeh zavoje izvaja z zdrsavanjem, ki ga uravnavamo tudi s pomočjo rotiranja trupa, pa se pri smučeh s poudarjenim stranskim lokom zavoj izvede zgolj z nagibom smučke na podlago. Pri tem je pomembno, da smučka zgolj zareže v podlago in ne oddrsava. V tem primeru se robnik smučke po celotni dolžini zareže v sneg. Zaradi oblike smučke, ki je del izseka krožnice, se smučka zapelje po krivulji krožnice. Slika 2.3: Krožni odsek smučke s poudarjenim stranskim lokom Medtem ko je tetiva krožnice enaka dolžini smučke L, pa se v primeru naklona na podlago 6 zaradi upogiba smučke na sredini poveča višina krožnega odseka na podlagi kot prikazuje slika 2.3. S spreminjanjem naklona smučke na podlago in ob predpostavki, da je sila pravokotna, na smučko, dovolj velika, da povzroči upogib smučke, je radij zavoja v odvisnosti od naklona smučke na podlago enak L2cos6> h2 --------+------ r= 4cosč (2) 2h 12 kjer je L dolžina smuči, h pa je višina krožnega izseka in je podana z enačbo h = S T W . (3) Parametri WS, WT in Ww predstavljajo širino smuči na sprednjem, zadnjem in srednjem delu smučke, kot jo prikazuje slika 2.4. Ta zveza velja zgolj ob pogoju, da se smučka po vsej svoji dolžini enako zareže v sneg. Predstavljeni so bili tudi modeli, ki upoštevajo še različne ugreze po dolžini smučke. Tako je Howe [21] predstavil model, ki poleg naklona smučke upošteva še globino vreza d na sredini smučke, kar je utemeljil z dejstvom, da je pritisk smučke na podlago neposredno pod smučarskim čevljem večji, kot je na sprednjem in zadnjem delu smuči. Zato smučka v tem delu globlje zareže v sneg. L 2 (4) (W S +W T -2W \ 4-cos6> Federolf [12] pa je na osnovi meritev smučk v statičnih razmerah prišel do Gauss-ove odvisnosti radija zavoja v odvisnosti od naklona. V teh meritvah je tudi pokazal, da je radij zelo odvisen od sile, s katero delujemo na podlago. Meritve pa so pokazale, da je zelo pomemben dejavnik tudi togost smuči in snežna podlaga. Vse metode izračuna radija zavoja veljajo zgolj za naklone smučk, večje od določene vrednosti, in v primeru statičnih razmer. Pri manjših naklonih se v realnosti pojavi zdrs smučke, zato so v teh primerih radiji zavojev mnogo večji, kot je izračunani stranski radij smučke. V našem primeru smo se odločili, da bomo za oceno radija zavoja uporabili metodo, ki upošteva zgolj naklon smuči na podlago, saj so ostali parametri zelo odvisni od trenutnih razmer na smučišču. Meritve v dinamičnih razmerah pa so pokazale, da pri majhnih naklonih smučke na podlago prihaja do zdrsov in smučka sploh ne izvede zavoja ali pa je radij izvedenega zavoja večji od radijev, izračunanih na podlagi enačb (2, 4). To nas je vodilo do zaključka, da je dejanski izvedeni radij na smučkah pri nizkih naklonih na podlago bolj odvisen od zunanjih dejavnikov, kot je na primer struktura snega, saj v primeru ledene proge smučka pri nizkih naklonih ne zareže v podlago. Na podlagi tega smo se odločili, da bodo za namen modeliranja radija zavoja pri majhnih naklonih smuči r = Howe 13 ( |?| < 5o ) na podlago uporabili obratno vrednost naklona z radijem. Pri večjih naklonih smo pri modeliranju zavijanja smučke uporabili enačbo (2). Slika 2.4: Predstavitev smučke s poudarjenim stranskim lokom 2.5 Kinematični model robota Predlagani robot ima dve nogi, ki s podlago tvorita paralelni mehanizem. Slika 2.5: Kinematični model robota Kot smo že omenili v poglavju 2.3, definiramo prostostni stopnji tega mehanizma kot razdaljo lc od točke vpetja trupa do točke na podlagi med smučkama, ki je enako oddaljena od obeh smučk, in naklon mehanizma ? na podlago. Medtem ko razdalja lc = ld + l (c1+ c2 ) (5) 14 nima vpliva na smer smučanja, ima naklon smučarja 6 = sign [q1 - q2) • arc cos d J(2l(C1-c2))2 -d2 (6) neposreden vpliv, saj je to naš mehanizem zavijanja, kot navaja enačba (2). Pri tem smo uporabili naslednje okrajšave C1 = cos^1) c2=cos()-Ycos(q>) = 0. (15) Enačbe (14)-(16) veljajo v ravnini XY. Ker pa se smučar giblje po razgibani podlagi, je potrebno gibanje prilagoditi podlagi, po kateri se robot giblje. Podlaga je definirana z vektorjem normale n. Kot

zmp 0] deluje samo navor Mp=[0 0 M]T. Komponenti ZMP sta ZMP S mt (z, + gz) x, - 2 mt (x, + gx) z, -^ (?;)_ 2>,(^ + gz) 2>,(^ + gz) in s^l^+gj^-s^, 2 tt + g, R J TMP i J ?&), 2>,(^+gz) 2>,(^+gz) (24) (25) 29 Z uporabo Newton-Euler-jeve formulacije za izračun dinamičnih enačb sistema se ZMP izračuna neposredno iz gornjih enačb. Najprej izračunamo celotno gibanje robota na podlagi zahtevanega gibanja sklepov. Z upoštevanjem tako dobljenih hitrosti in pospeškov vseh segmentov začnemo z izračunavanjem sil in navorov z vrha proti prijemališču robota. Za zadnji segment veljata naslednji dinamični enačbi Fi-1-mM)=°> (26) Mi-1,i + ri-i,dx Fi-1,i - [JA + ^x ^ ] = °- Sedaj lahko izračunavamo sile in navore, ki delujejo v sklepih, dokler ne pridemo nazaj do prvega segmenta, kjer veljajo naslednje enačbe Fo,i = Fi,2+mi (r1+g + arl) = YJmi(ri+g + an) i M01 =M12+r1xm1(ri + g + arl) + [l1d)1+(D1xI1(D1] (27) M0J ='Z[r^mi(ri + g + ari) + T^ i Enačbo navorov lahko sedaj zapišemo v naslednji obliki Mp ='Z[ri xmi(r+g + ön) + r.]-pxXffl.(r + g + ari). (28) ii Z združitvijo enačb (23) in (28) dobimo Mp=M01-pxF01. (29) Ob upoštevanju pogoja, da navor deluje zgolj okrog osi z, ki je pravokotna na podlago, se ZMP izračuna na naslednji način KO, KO, > >W = . (30) CU " fr). 30 Na ta način izračunamo tako podatke o silah, ki delujejo na podlago, kot tudi ZMP in posredno dobimo tudi izračun porazdelitve sil na posamezni nogi. Ocena hitrosti Meritev hitrosti mobilnega robota v nestrukturiranem okolju je pogosto problematična. V primeru vozil s kolesi se pogosto uporablja odometrija, ki meri hitrost preko merjenja obodne hitrosti koles z znanim radijem. Človek hitrosti ne meri neposredno. Oceno hitrosti pridobi na podlagi vizualnih informacij. Najbolje to opiše optični tok. Vendar se v tem primeru pridobi zgolj relativno hitrost med hitrostjo gibanja in velikostjo predmeta, kateremu se približujemo. Smučar v večini primerov pozna velikosti objektov, katerim se približuje, in na podlagi tega oceni tudi absolutno hitrost gibanja. Tudi v našem primeru bi lahko uporabili tak način ocenjevanja hitrosti, vendar robot prepogosto ne vidi naslednjih vratc. Zato smo merili hitrosti s pomočjo GPS sprejemnika in pospeškov, zaznanih s pomočjo inklinometra. Ker se podatki iz GPS obnavljajo s frekvenco 4 Hz, podatki iz inklinometra pa s frekvenco 100 Hz, je potrebno zgraditi estimator hitrosti v vmesnih trenutkih, ko ni podatkov iz GPS-a, saj se hitrost v tem času lahko občutno spremeni. Zgradili smo tudi model spreminjanja hitrosti v odvisnosti od lokalnega naklona v sagitalni ravnini. Hitrost ocenjujemo na podlagi izmerjenih pospeškov v sagitalni ravnini. Vemo tudi, da ima merjena hitrost, pridobljena iz GPS-a, varianco 0,1 m/s, začetna vrednost hitrosti pa je enaka nič. Na podlagi tega smo zgradili Kalmanov filter, ki ocenjuje hitrost robota. Pri tem smo uporabili algoritem, ki je podrobneje opisan v 4. poglavju. V tem primeru med ocenjevanjem lege robota implicitno računamo tudi hitrost robota. Ocena hitrosti je zelo pomembna, saj ima neposredni vpliv na zagotavljanje stabilnosti smučarja. Ocena naklona podlage Podatek o naklonu podlage se najpogosteje uporablja pri robotskih vozilih, ki se gibljejo po neznanih področjih. Park [7] je predstavil senzor, ki je deloval na podlagi strukturirane svetlobe. Na podlagi spremembe vzorcev je ugotavljal lokalni naklon podlage v območju pred robotom. Drug način zaznave okolice je uporaba laserskih daljinomerov [52]. V večini primerov pa se lokalni naklon 31 podlage oceni na podlagi senzorjev orientacije. V našem primeru smo uporabili inklinometer, vgrajen na platformo robota, ki omogoča izračun trenutnega lokalnega naklona podlage. Če sta obe nogi v stiku s podlago, je lokalni naklon površine v lateralni ravnini enak izmerjeni absolutni vrednosti naklona v tej ravnini v = vs-e, (31) kjer if/ predstavlja lokalni naklon podlage v stranski ravnini in yjs absolutni naklon ploščadi robota. Na podlagi merjenega in računanega naklona robota na podlago je razvidno, da se ob večji obremenitvi ene izmed nog poveča naklon v smeri bolj obremenjene noge, kot je bilo predstavljeno v predhodnem poglavju. Zato ocena trenutnega naklona na podlago y/ po enačbi (31) vsebuje napako, ki je posledica merjenega naklona robota 0. 3.5 Zagotavljanje stabilnosti Zagotavljanje stabilnosti mobilnih robotov v dinamičnih razmerah je dokaj neraziskano področje. Večina raziskav se je osredotočila na določitev stabilnih pozicij delovnih strojev v statičnih razmerah. Za te stroje se predvideva, da niso sposobni izvajati hitrih gibov, tako da so dinamične komponente gibanja v primerjavi z gravitacijo zanemarljive. Velik del raziskav na področju humanoidne robotike pa se je usmeril na področje hoje. V tem primeru so upoštevane tudi dinamične komponente, ki vplivajo na stabilnost, ob tem pa večina modelov hodi po ravnih površinah in že majhne spremembe naklona površine lahko povzročijo padec robota. Za zagotavljanje ravnotežja sta se uveljavila dva pristopa, ki delujeta na podlagi dinamičnih modelov mehanizma. Prvi pristop temelji na izvajanju vnaprej pripravljenih stabilnih trajektorij, kar pa pri smučarskem robotu ni mogoče, ker se okolje med gibanjem preveč spreminja. Drugi pristop pa je gradnja gibanja na podlagi trenutnih senzorskih informacij. Prvi pristop vnaprej pripravi gibanje posameznih sklepov, ki se prenese na realni mehanizem z zgolj minimalnimi spremembami. Tipičen primer tega so posnetki gibanja človeka, ki se z rahlimi spremembami prenesejo na humanoidnega robota [44]. Pri tem se pojavi tudi problem, da je težko natančno zajeti gibanje človeških sklepov. Ob prenosu gibanja 32 na robota pa je potrebno upoštevati še različno kinematiko (dolžine segmentov, sklepi ...) in dinamične značilnosti (težišče, vztrajnosti ...) robota in človeka [45]. V drugi kategoriji pa se gibanje gradi v realnem času na podlagi senzorskih informacij. Krmiljenje in planiranje sta v tej kategoriji združena. Na podlagi modela se izračuna trenutna stabilnost robota. Ob tem se ocenjuje, kakšno gibanje samega robota v trenutnih razmerah še zagotavlja dinamično ravnotežje. Glede na želeno gibanje se potem izračuna gibanje, ki bo čim bolj sledilo želenemu in ob tem ohranjalo dinamično ravnotežje. Pri hoji humanoidnih robotov je pogosto uporabljena rešitev, da se gibanje razdeli v dva dela, in sicer v gibanje spodnjih okončin - nog in gibanje ostalega telesa, ki zagotavlja ravnotežje [49]. Ta rešitev je možna zgolj v primeru, ko se gibanje izvaja v strukturiranem okolju. Če se naklon podlage spremeni za kot večji, od meje pri kateri se zgolj s trupom ne more zagotoviti ravnotežja, ta metoda odpove. V strogo predvidljivih razmerah, kot je na primer vožnja manipulatorja na platformi po ravni podlagi, se lahko stabilnost zagotavlja tudi s pomočjo vodenja kinematično redundantnih stopenj mehanizma [50]. Na podlagi indeksa stabilnosti mobilna platforma zagotavlja izvajanje naloge, sočasno pa se optimizira še indeks stabilnosti, ki je definiran na podlagi ZMP-ja. Večinoma pa se v primeru zagotavljanja stabilnosti med hojo in tudi vožnjo mobilnih robotov uporablja model inverznega nihala [51]. Podoben primer poenostavitve je tudi uporaba modela »cart-table«, ki ga je predstavil Kajita [53]. V tem primeru se celotnega robota predstavi kot matematično nihalo z vso maso v trupu, kar omogoči zagotovitev ravnotežnih položajev z lastnim gibanjem telesa. V dinamičnem okolju pa predlagane metode ne zagotavljajo ohranjanja ravnotežja. Pri smučanju in spuščanju na rolkah se spreminjata tako lokalni naklon kot hitrost, ki je veliko višja kot pri hoji, in zato se v zavojih pojavijo velike radialne sile. Za primer robota smučarja je bilo potrebno zgraditi vodenje, ki zagotavlja, da bosta obe smučki obdržali kontakt s podlago. Ta pogoj je izpolnjen, če se točka ZMP nahaja znotraj podporne ploskve smuči oziroma rolk. Podporna ploskev je definirana z območjem med smučmi in tvori v celotnem času pravokotnik, katerega širina se spreminja v odvisnosti od naklona robota na podlago, dolžina le-tega je določena z dolžino smučk L, kar prikazuje slika 2.3. V tem območju se mora vedno nahajati ZMP. Da bi to dosegli, smo predlagali hierarhično vodenje, ki ga predstavljamo v nadaljevanju. 33 3.6 Odločitveno vodenje Smučar mora med smučanjem opravljati tri naloge, in sicer ohranjati ravnotežje, izvajati zavoje in ob tem še amortizirati neravnine. V tem delu se bomo osredotočili zgolj na zagotavljanje stabilnosti in reagiranju na neravnine, medtem ko sta želen radij zavoja in razdalja lc odvisna od navigacijskega modula, ki bo predstavljen v naslednjem poglavju. Stabilnost smučarja se zagotavlja v realnem času z gibanjem nog in trupa. V primerih, ko samo s trupom ni mogoče zagotoviti stabilne lege, je potrebno to izvesti tudi z nogami. To povzroči, da ne zagotovimo predpisanega radija zavoja, ki ga predpisuje navigacijski blok, vendar pa s tem ohranimo stabilnost. Za ta namen smo razvili hierarhično odločitveno vodenje. Da bi zagotovili stabilno smučanje tudi v primeru nenadnih sunkov, ki so posledica neravnin na terenu, je potrebno zagotoviti, da se točka ZMP v vsakem trenutku nahaja znotraj podpornih ploskev smuči. V ta namen se v našem algoritmu najprej izračuna ZMP za primer, ko je pospešek naklona med podlago in trupom enak 0. Nato se ob upoštevanju maksimalnih dovoljenih pospeškov trupa izračuna, kolikšen vpliv na ZMP ima v danem trenutku lahko gibanje trupa. Na podlagi tega izračunamo, s kakšnimi pospeški se lahko spreminja naklon robota na podlago, da bo ohranil ZMP znotraj podpornega poligona. V našem primeru je dinamični model odvisen tako od hitrosti smučanja v sagitalni ravnini, lokalnega naklona podlage in naklona smuči na podlago. Na prvi dve spremenljivki nimamo neposrednega vpliva, saj sta ti posledica terena, po katerem robot smuča. Tako lahko na stabilnost vplivamo zgolj z naklonom smučarja na podlago in z gibanjem trupa. 34 Senzor sile F-^ J Odločitveno vodenje Računanje naklona Regulator sklepov <7' Slika 3.6: Shema zagotavljanja stabilnosti Na podlagi zaznane hitrosti in lokalnega naklona površine izračunamo naklon (meje naklona na sliki 3.6), ki med zavojem zagotovi, da se sile razdelijo na obe nogi. Tipična razdelitev sil med smučanjem v zavoju je pri človeku v razmerju 2:1. Porazdelitev sil med nogama v odvisnosti od ZMP podajata enačbi in F F 1 y?MP Fd = F sr J yz (32) (33) sr J kjer je F celotna sila, ki deluje pravokotno na smučki. Fl in Fd sta sili, s katerima robot deluje na levo in desno smučko, yZMP je točka ZMP robota, bsr pa je polovica razdalje med smučkama, kot prikazuje slika 3.4. Na začetku in koncu zavoja pa je razmerje med silama na posamezni nogi še večje. V tem primeru se razen radialne sile in gravitacije pojavi še vpliv dinamičnih sil zaradi sprememb naklona na podlago. V teh trenutkih lahko razmerje med silama na nogah pri človeku doseže tudi 3:1. Ta kriterij smo uporabili pri nastavitvi dovoljenih mej gibanja ZMP-ja, kar v primeru našega robota pomeni q- T rd 2 35 _ dd = + y?MP ~ ~ TT ~*~ yMsp — y?MP — „ ~*~ yMsp yzup , (34) 3cos# 3cos# kjer je d razdalja med nogama v kolku. Vpliv pospeševanja trupa na spremembo sile na podlago izračunamo za maksimalne pospeške, ki jih je trup sposoben izvesti. Na tej podlagi izračunamo mejne pospeške naklona na podlago, ki še zagotavljajo ravnotežno gibanje. V vodenju omejimo 6 , in sicer v pozitivno smer j+=------10s----y ZMP lOs (35) 10 y TMP in negativno w_ M,n +y+7MP F 0 =-----— zf 10s , (36) io yzMP kjer se M10s in F10s nanaša na navor in silo v statičnih razmerah ob upoštevanju gibanja maksimalnega gibanja trupa. Pri tem J10 predstavlja vztrajnostni moment robota okrog osi x, ki se nahaja na sredini med smučkama. 36 Računanje ZMP (brez pospeševanja) i' Meje dovoljenih pospeškov naklona na podlago IT PD regulator Omejitev želenih pospeškov Naklon robota ir Računanje ZMP (z omejenimi pospeški) ir Stabilizacija s q3 trup om Slika 3.7: Odločitveno vodenje Koeficient b opisuje zvezo med 6 in povzročeno silo v smeri osi z. Tako izračunani maksimalni in minimalni pospeški zagotavljajo ohranjanje ZMP znotraj podporne ploskve med smučkama. S tem se zagotovi, da ne bodo nikoli preseženi nakloni, ki še omogočajo stabilno lego smučarja. Na podlagi modela se izračuna delitev neposrednega razmerja sil med posamezni nogi. V vodenju je potrebno upoštevati še dinamične vplive, ki povzročijo dokaj velike sile. Premik med različnimi zavoji se dogaja zelo hitro, in sicer v manj kot sekundi, kar pomeni, da so potrebni veliki kotni pospeški in s tem tudi dinamične komponente, ki vplivajo na stabilnost. 3.7 Analiza statične stabilnosti v odvisnosti od hitrosti in naklona Človek med smučanjem ohranja stabilnost v zavoju s tem, da razporedi sile, s katerimi deluje na smučki, v območju razmerij med 2:1 do 1:2. Da bi zagotovili takšno porazdelitev sil pri robotu, je potrebno na podlagi zaznane hitrosti in lokalnega naklona podlage izračunati dovoljene naklone robota. V tem delu bomo opisali, kako se dovoljene meje naklonov spreminjajo, odvisno od trenutne 37 konfiguracije robota, hitrosti in lokalnega naklona površine. Medtem ko konfiguracija robota vpliva na težišče, pa hitrost vpliva samo na radialno silo, lokalni naklon površine pa vpliva na komponento gravitacije. To ponazarjata diagrama na slikah 3.8, 3.9. Pri tem smo predpostavili, da je hitrost gibanja v sagitalni ravnini enaka 2 m/s. V prvem diagramu je predstavljena odvisnost stabilnih naklonov glede na višino smučanja lc. Iz slike 3.8 je razvidno, da zmore robot večje naklone, če je težišče nižje. Vendar pa z nizkim težiščem onemogočimo, da bi robot lahko izvedel večje naklone na podlago, saj se nogi ne skrčita povsem, ampak imata omejitev, kot je opisana v 5. poglavju. Slika 3.8: Področje stabilnih naklonov v odvisnosti od višine smučanja Izračunali smo, za koliko lahko naklon trupa spremeni lokacijo ZMP-ja. V našem primeru je ta vpliv zelo omejen, saj zaradi majhne mase trupa, tudi premik v obe skrajni legi spremeni pozicijo ZMP-ja zgolj za 0.04 m. 38 Slika 3.9: Meje stabilnih naklonov v odvisnosti od naklona podlage in hitrosti Na sliki 3.9 sta predstavljeni omejitvi dovoljenih naklonov v odvisnosti od hitrosti in naklona podlage. Že v mirovanju se lahko robot nakloni v območju 0.3 radiana. Z večanjem hitrosti pa se to območje povečuje in pri hitrosti 10 m/s se to območje poveča na skoraj 2 radiana. Lokalni naklon podlage ima pri spremembi dovoljenega naklona vpliv na premik tega območja v smeri večjih naklonov robota, nasprotnih lokalnemu naklonu podlage. Konfiguracija robota vpliva tudi na radialno silo, vendar je vpliv le-te v primerjavi z ostalimi zanemarljiv in smo ga iz analize izpustili. 3.8 Stabilizacija s trupom Z gibanjem trupa lahko stabilnost povečamo na dva načina. Prvi je s spreminjanjem težišča. Kot je razvidno iz slike 3.9, je področje stabilnih naklonov pri nizkih hitrostih zelo ozko. S spremembo težišča trupa lahko to območje občutno povečamo. Ker se naklon pri nizkih hitrostih ne spreminja sunkovito, je tudi kompenzacija stabilnosti s trupom lahko počasnejša. Testi na modelu in realnem sistemu so pokazali, da je smiselno pri nizkih hitrostih kompenzirati s trupom predvsem gravitacijo. S tem lahko dosežemo večje naklone na podlago. Pri hitrostih, manjših od 2 m/s, se s trupom skrbi zgolj za statično stabilnost. 39 Med izvajanjem zareznega zavoja pri večjih hitrostih (4 m/s ali več) se pojavijo velike vztrajnostne sile v trenutku zareza smučke v sneg, kar seveda povzroči spremembo ZMP-ja. To silo kompenziramo z gibanjem trupa. Na ta način reagiramo na trenutne spremembe, ki so lahko posledica velike hitrosti in posledično hitre spremembe naklona podlage in radialne sile. V teh primerih se s hitrimi gibi na podlagi vztrajnostnega momenta trup odzove na te spremembe. Slika 3.10: Stabilizacija s trupom Črtkani črti na sliki 3.10 prikazujeta meje, ki zagotavljajo, da se sili porazdelita med nogi znotraj želenega razmerja. Če trupa ne premikamo, ZMP preseže želeno vrednost. S pomočjo gibanja trupa pa ZMP ostane znotraj mej. 40 4 Navigacija med vratci 4.1 Uvod Iskanje poti in izogibanje oviram sta dva izmed glavnih izzivov vodenja mobilnih robotov v realnem okolju. Pri iskanju poti z neholonomnimi mobilnimi roboti se planiranje poti najpogosteje izvede vnaprej na podlagi globalnih informacij. Pogosto pa se pojavijo problemi iskanja optimalne poti med ovirami do cilja. V teh primerih zagotovimo idealno pot kot kombinacijo ravnih odsekov in izsekov krožnic okrog ovir, katerih radij je enak najmanjšemu možnemu radiju, ki ga je sposoben izvesti neholonomni sistem, oziroma najmanjšemu možnemu radiju okrog ovire, ki ga pogojuje okolje. Pri tem se pojavi problem, da je povezava med ravnim odsekom in krožnico nezvezna. Zato bi se moral neholonomni robot v točki povezave med ravnim in krožnim odsekom ustaviti oziroma v trenutku spremeniti radij zavoja iz neskončnega v določen radij, kar pa zaradi dinamike realnih mehanizmov ni možno. Pri poskusih na realnih sistemih so se zaradi vpliva dinamike pojavila odstopanja med želenimi in dejanskimi potmi. Baltes [8] je predstavil metodo, ki omogoča popravljanje teh trajektorij v realnem času. Iskanje in izvajanje gibanja med ovirami lahko izvedemo na podlagi globalnih ali lokalnih metod. Globalne metode so bolj računsko zahtevne in se večinoma ne morejo izvajati v realnem času. Zaradi tega se tudi ne morejo uporabljati v dinamičnih okoljih. Lokalne metode pa za svoje izvajanje potrebujejo zgolj informacijo o bližnji okolici robota in določajo le trenutno najoptimalnejše gibanje. Zaradi tega so računsko manj zahtevne, kar omogoča uporabo v realnem času. Slabost lokalnih metod pa je, da ne zagotavljajo globalno optimalne rešitve. Okolje zaznavamo z različnimi senzorji, od laserskih daljinomerov, ultrazvočnih senzorjev in kamer. V splošnem lahko pri načrtovanju poti in izogibanju oviram uporabljamo sprotne senzorske informacije samo z lokalnimi metodami. Iz literature je znanih več metod, ki jih bomo na kratko predstavili v nadaljevanju. 41 Mreže določenosti Metoda, ki jo je predlagal Moravec [56], zgradi zemljevid v okolici robota na podlagi verjetnosti porazdelitve ovir v prostoru. S tem se zavaruje pred nenatančnostjo senzorskih informacij. Robot na podlagi senzorskih informacij zgradi dvodimenzionalno mrežo, ki predstavlja robotsko okolico. Vsak element mreže vsebuje tudi verjetnost, da se v določenem polju nahaja ovira. Vrednost vsakega polja se obnavlja v vsakem trenutku na podlagi senzorskih informacij s pomočjo verjetnostne metode, ki upošteva karakteristiko in interval zaupanja teh informacij. Ta metoda lahko upošteva samo statične ovire, saj bi v dinamičnem okolju po določenem času zasedli vsa polja mreže z ovirami, tako da ne bi ostalo nobenih prostih področij, kamor bi se lahko robot premaknil. Metoda potencialnih polj Ena izmed najpogosteje uporabljanih metod za lokalno navigacijo in izogibanje oviram temelji na umetnih potencialnih poljih, ki jih je uvedel Khatib [18]. Metoda je uporabna tako za mobilne robote kot tudi manipulatorje. Pri tem zgradimo ločena potencialna polja za odboj in privlačenje, ki definirajo odnos med robotom in zaznanimi objekti. Ta polja se nato združijo v enotno polje. Na podlagi gradienta tega polja dobimo gladko trajektorijo. Ovire so objekti, ki odbijajo robota stran od le-teh, medtem ko cilji privlačijo robota. Navigacija je zgrajena tako, da se robot giblje v smeri zmanjševanja potenciala. Ta metoda predpostavlja, da je oblika ovir v okolju znana. Originalna metoda je predpostavljala, da je okolje v času izvajanja naloge statično, kasneje pa so jo posplošili tudi za dinamična okolja. Potencialna polja zgradimo na podlagi zaznanih ovir in ciljev. Ta metoda deluje zgolj za en cilj. Če naloga zahteva večje število ciljev, potem najprej izberemo cilj, ki mora biti prvi izpolnjen. Ob izvršitvi prve naloge izberemo naslednji cilj in tako dalje do končnega cilja. Potencialno polje izračunamo v vsaki točki trajektorije, robot pa se giblje v smeri manjšanja potenciala, dokler ne doseže lokalnega ali globalnega minimuma. Čeprav je ta metoda ena najpogosteje uporabljenih, pa ima tudi slabosti. V analizi [54] so se kot glavne slabosti te metode izkazale: • Lokalni minimum lahko povzroči, da se robot ujame v past in ne najde več izhoda. Na past najpogosteje naletimo v primeru ovire v obliki črke U. 42 • Nezmožnost prehoda med dvema bližnjima ovirama, ker se zaradi velike odbojne sile ovir izniči vpliv cilja. • Oscilacije v primeru ozkih koridorjev. Dodatno se pojavi še problem, ki je pogosto spregledan. Pojavi se v primeru, ko je odbojna sila večja od sile privlačenja cilja, kar povzroči gibanje robota stran od cilja in ne proti njemu [55]. Ob upoštevanju teh problemov so bile razvite različne metode, ki bi reševale te probleme. Navidezno polje sil - VFF Na podlagi kombinacije mrež določenosti in virtualnih potencialnih polj je Borenstein [14] predstavil metodo navideznega polja sil (Virtual Force Field -VFF). Navidezno okno določene velikosti se premika po mreži. Vsa polja, ki jih aktivno okno pokriva, se upoštevajo kot aktivna. Vsa ta polja prispevajo k sili na podoben način kot pri potencialnih poljih. Amplituda sile posameznega polja je proporcionalna meri zaupanja, da je v tem polju ovira, in obratno sorazmerna s kvadratom razdalje polja od robota. Vse aktivne navidezne sile so seštete in določijo smer gibanja robota, da se bo izognil oviram. Ker metoda temelji na potencialnih poljih, prevzame tudi slabosti le-teh. Prednost je zgolj, da upošteva negotovost senzorskih informacij. Ne glede na verjetnostni značaj metode pa ohranja dokaj hiter odziv na nove zaznane ovire. Histogram polja vektorjev VFH Iz VFF je bila kasneje razvita še metoda histograma polja vektorjev. Ta metoda podatke reducira v dveh stopnjah za razliko od VFF. Pri tej metodi se na podlagi podatkov sonarja zgradi diskretno enodimenzionalno polarno funkcijo gostote ovir. Pot poiščemo na podlagi minimuma prej navedene funkcije in je v vsakem trenutku usmerjena k tej točki. V naslednji nadgradnji metode VFH+ [57] so v metodo vgrajeni še podatki o povečevanju ovir, histereza, ki preprečuje oscilacijo med različnimi dolinami v histogramu, kar zagotavlja bolj gladko trajektorijo. Tretja verzija VFH* poleg predhodnih izboljšav vsebuje vnaprejšnje (ang. »Look ahead«) preverjanje za zagotovitev, da se robot ne bi zapeljal v ˝past˝. 43 Metode na osnovi oponašanja živali V robotiki se pogosto uporablja algoritme, ki so nastali na osnovi opazovanja živali. Posebej pogosto se uporabljajo metode, ki oponašajo gibanje žuželk, predvsem mravelj. Večina teh algoritmov temelji na osnovi, ki sta jo predlagala Lumelsky in Stepanov [58] . Gibanje robota oziroma žuželk je sestavljeno iz dveh delov, in sicer direktnega gibanja proti cilju in izogibanja oviram. V primerih, ko pride do kontakta z oviro, se gibljemo ob oviri, vse dokler ne naletimo na črto, ki omogoča neposredno pot do cilja. V osnovi ta metoda deluje zgolj na osnovi senzorjev pozicije in senzorjev dotika. V kasnejših različicah pa so uporabili tudi druge senzorje. Te metode se trenutno zelo pogosto uporabljajo predvsem pri robotih za opravila, kot so na primer sesanje, košnja zelenic itd. Omenimo naj, da so navigacijski algoritmi še vedno predmet številnih raziskav in se stalno spreminjajo ter dopolnjujejo. Tako se poskuša nadgraditi lokalne metode s pomočjo delnih globalnih informacij. Zaznavanje ovir je v večini primerov izvedeno s pomočjo raznih radarjev in laserskih daljinomerov. Drug način pa je zaznavanje na podlagi vizualnih informacij, na podoben način kot to izvaja človek s pomočjo vida. Identifikacijo in lokalizacijo ovir v 3D prostoru lahko na podlagi vizualnih informacij pridobimo na podlagi stereo vida, vida gibanja in na podlagi modela opazovanih objektov. V našem primeru je bistvena predvsem lokalizacija ovir, ki je nujno potrebna za izvajanje poti med vratci. Ker je oblika ovir - vratc znana, smo lokalizacijo ovir izvedli na podlagi modela vratc. 4.2 Zaznava vratc Položaj vratc glede na smučarja smo v našem primeru določili z uporabo računalniškega vida. Vratca smo zaznavali na podlagi barve in oblike. Najprej se je potrebno odločiti, v kakšnem barvnem prostoru se bodo obdelovale slike. Najpogosteje se uporabljajo RGB prostori, vendar pa je ta barvni prostor zelo odvisen od osvetlitve. Na prostem je ta vpliv osvetlitve zelo izrazit. Ker so se poskusi izvajali v zunanjem okolju, je bilo potrebno vpliv osvetlitve zmanjšati. Da bi se izognili problemom v zvezi z osvetlitvijo, smo zajete slike pretvorili v HSV 44 (Hue – odtenek barve, Saturation – nasičenje, Value – vrednost) barvni prostor, ki predstavlja sliko na podoben način, kot jo zaznava človeško oko. Glede na definicijo naj bi osvetlitev vplivala zgolj na vrednost V. Sliko smo najprej upragovili v območju odtenkov in nasičenja. Tako so pridobljena področja, kjer obstaja možnost nahajanja vratc. V drugi fazi določimo, ali imajo ta področja obliko vratc. Na podlagi kalibrirane kamere, znane velikosti vratc in absolutne orientacije kamere izračunamo kot pogleda na vratca in trenutno oddaljenost le-teh. Slika je glede na položaj vratc zavrtena za določen kot, ki ga izračunamo na podlagi zasuka trupa in naklona ploščadi. Slika 4.1: Pogled smučarja na vratca v navideznem okolju Na sliki 4.1 je viden pogled smučarja na vratca v navideznem okolju. Na podlagi velikosti in kota pogleda je potrebno določiti razdaljo do vratc. Ob tem pa je potrebno iz slike pridobiti tudi kot pogleda na vratca. Pri tem se upošteva tudi naklon kamere. Slika 4.2 prikazuje oddaljenost vratc od osi, ki poteka skozi optični center kamere in je zarotirana za kot naklona kamere glede na pravokotnico na podlago. Kot pogleda na oviro je določen na podlagi razdalje dv, in sicer v naslednji obliki 45 -g>m)(e-^-^)e-c^, (38) i kjer tp predstavlja trenutni kot gibanja človeka v globalnem koordinatnem sistemu. Model je sestavljen iz treh delov: - Dušenje, ki onemogoča spremembo kotnega pospeška sorazmerno s kotno hitrostjo gibanja osebka s konstanto dušenja b. - Komponenta, ki privlači smer gibanja k cilju. Odvisna je od razlike med trenutno smerjo gibanja, kota pogleda na cilj in oddaljenosti od cilja. Konstanta c2 skrbi, da se tudi pri veliki oddaljenosti od cilja oseba usmerja proti cilju. Koeficient kg pa je proporcionalno ojačanje komponente, ki privlači k cilju. 47 - Komponenta, ki odbija smer od bližnjih ovir. Vpliv je proporcionalen za majhne razlike ?-?oi , z večanjem pa začne eksponentno padati v odvisnosti od koeficienta c3. Ravno tako se vpliv spreminja v odvisnosti od razdalje do ovire. Odvisnost eksponentnega padanja od razdalje do ovire je podana s konstanto c4. Pospešek v odvisnosti od ovire Pospešek, ki odbija od ovire, je odvisen od oddaljenosti od ovire in razlike med trenutno smerjo gibanja in smerjo ovire. Pospešek je grafično predstavljen na sliki 4.4, kjer je normiran za hitrost gibanja smučarja 1 m/s, kajti pospeški se morajo prilagajati hitrosti, kar bo prikazano tudi v nadaljevanju. Nastavitev parametrov modela pospeškov je bila izvedena iterativno na podlagi poskusov. Slika 4.4: Pospešek v odvisnosti od ovire Kot je razvidno s slike 4.4, največji pospeški delujejo v neposredni bližini ovire. Pospešek zmeraj deluje v smeri, ki odbija od ovire. V primeru, ko je trenutna smer gibanja usmerjena neposredno v oviro, pa ne deluje noben pospešek. Zato se v teh primerih zgodi, da se smer ne bo spreminjala in bo posledično prišlo do trčenja z oviro. 48 Pospešek v odvisnosti od cilja Medtem ko ovire odbijajo, pa cilji povzročajo pospeške, ki nas vodijo k cilju. Na sliki 4.5 so predstavljeni pospeški v odvisnosti od oddaljenosti od cilja in razlike med trenutno smerjo gibanja in kotom pogleda na cilj. Privlačni pospeški so največji v primeru neposredne bližine cilja. Slika 4.5: Pospešek v odvisnosti od cilja Pospeški, ki usmerjajo k cilju, pa delujejo tudi v veliki oddaljenosti od cilja. S tem se zagotovi, da se tudi v primeru zelo oddaljenih ciljev robot usmeri proti cilju. Vpliv hitrosti Večina mobilnih robotov nadzoruje hitrost gibanja. V primeru izogibanja oviram so razvili različne algoritme za vodenje te hitrosti. V primeru smučanja pa nimamo neposrednega nadzora nad hitrostjo. Kotna hitrost smučarja je odvisna od hitrosti smučarja v sagitalni ravnini in radija zavoja R, ki ga izvaja. Izračunamo jo s pomočjo enačbe 49 )acos d2.+d2.-(vAt)2 VI VI-1 2d d vi vi-1 (42) kjer indeks –1 označuje vrednosti v prejšnjem trenutku, ?t čas med zajemom dveh slik, ? trenutno smer vožnje in ?vi trenutno smer pogleda z robota na vratca. Ocena pozicije in orientacije robota je pogost problem v robotiki. Robot svojo pozicijo izračuna na podlagi merjenih oddaljenosti od znanih pozicij, merjenja kotov in lastnega gibanja. Na realnih sistemih pa vse meritve vsebujejo določeno napako in šum. Pri uporabi trigonometrije se pri izračunu pozicije pojavijo napake med posameznimi slikami. Zato se izmerjena pozicija lahko zelo spreminja in robot navidezno skače v okolici dejanske pozicije. Ena izmed najbolj uspešnih metod reševanja takih problemov je Kalmanov filter. Kalmanov filter omogoča oceno stanj na podlagi meritev in modela sistema. Ob tem pa upošteva, da podatki vsebujejo šum in je njihov vpliv na oceno odvisen od stopnje zanesljivosti le-teh. 52 Razširjen Kalmanov filter Za oceno oziroma estimacijo stanj se tudi v robotiki pogosto uporabljajo Kalmanovi filtri. Ti v svoji osnovni izvedbi omogočajo uporabo zgolj pri linearnih procesih. Za ocenjevanje stanj nelinearnih sistemov pa se uporablja razširjen Kalmanov filter (ang. Extended Kalman filter - EKF). Algoritem filtra je sestavljen iz dveh delov, in sicer iz predikcije in posodobitve. Filter se inicializira v določeni poziciji, kar sta v našem primeru zaznana oddaljenost in kot pogleda na oviro, z znano negotovostjo le-te. Posodobitev podatkov temelji na podlagi dveh funkcij f() in h(). Funkcija f() se nanaša na predhodno pozicijo pt-1, podatke o gibanju ut-1 in šumu v sistemu wt-1 pt=f( pt-1, ut-1, wt-1) (43) kot je razvidno s slike 4.6. Yt Yt-1 Xt Xt-1 Slika 4.7: Izračun nove pozicije na podlagi odometrije 53 Predikcija V tem koraku je izračunana pozicija p, = \xt Yt -1 , A-1, W,-1 )= Y t-1 + ("-1 + wXA) sinp-1 + (tL + wYA) cos p-1 .V. _ 3 kHz Slika 5.5: Senzor sile 8524-6001 Inklinometer Človek skrbi za ravnotežje s pomočjo ravnotežnega organa v srednjem ušesu. Pri robotu smučarju smo ravnotežni organ simulirali z XSens MTI inklinometrom. Za zaznavanje kotnih hitrosti v 3D prostoru uporablja elektronski giroskop. Ob tem pa meri še pospeške in magnetno polje, kar mu zagotavlja stabilne reference. 65 Tabela 5.2: Karakteristike inklinometra Xsens Mti Masa 50 g Dimenzije 58x58x22 mm Frekvenca zajemanja 500 Hz kalibrirani podatki senzorjev 120 Hz podatki o orientaciji Tempemperaturno območje delovanja -20 ... 55oC Resolucija kotov 0.05o Statična točnost <0.5o Dinamična točnost <2o Orientacija senzorja je podana absolutno v prostoru. Ob tem senzor zagotavlja še kalibrirane informacije o pospeških v posameznih ravninah, kotne hitrosti in orientacijo zemeljskega magnetnega polja. Slika 5.6: Inklinometer Xsens Mti Kamera Za zaznavanje okolice smo uporabili barvno USB 2 kamero Webcam for Notebooks, z zornim kotom 74o in resolucijo 320x240 slikovnih elementov. Kljub temu da smo izbrali širokokotno kamero, je zorni kot naše kamere še vedno majhen v primerjavi s človeškim očesom. Človekov zorni kot namreč znaša okrog 160o. Zaradi tega bomo lahko predmet opazili šele tedaj, ko bo robot usmerjen k predmetu. To velja toliko bolj, ko smo blizu opazovanega predmeta. 66 Slika 5.7: USB kamera GPS Merjenje hitrosti pri smučanju je problematično. Odometrija daje precej nezanesljive ocene hitrosti. Z našim senzorskim sistemom hitrost najenostavneje merimo s pomočjo GPS senzorjev. V našem GPS sprejemniku smo uporabili integrirano vezje Antares 4 in frekvenco zajemanja 4 Hz. Ob pogoju, da podatki iz satelitov niso moteni in da senzor v celotnem času zaznava najmanj 5 satelitov, lahko izmerimo hitrost z največjim odstopanjem 0.1 ms-1. Slika 5.8: GPS senzor Enkoderji Za merjenje pozicije in hitrosti posameznih motorjev smo uporabili enkoderje HEDS 5540. Uporabljeni inkrementalni enkoder je sestavljen iz kolesca z dvema vrstama enako oddaljenih rež, razvrščenih koncentrično na kolescu. Prehod reže preko svetlobnega žarka povzroči električni pulz. Število pulzov v znani smeri ob upoštevanju znanega kota med režami prikaže kotni premik v določenem intervalu 67 štetja. Ker so reže med vrstama zamaknjene za 90o, se s primerjavo med signaloma določi smer gibanja. Ker enkoder izgubi pozicijo ob izključitvi napajanja, je potrebno ob vsakem zagonu inicializirati začetno pozicijo, ki je določena z režo v tretji vrstici. Hitrost se meri s pomočjo enkoderja na dva načina, in sicer z merjenjem časa med posameznimi impulzi ali pa s štetjem impulzov v določenem časovnem intervalu [47]. V obeh primerih se lahko meri le ena vrednost. Znano je, da imata metodi veliko nenatančnost pri visokih oziroma nizkih hitrostih. V bistvu obe metodi ocenjujeta hitrost na podlagi odvajanja diskretnih podatkov. Trenutno se uporablja množica različnih filtrov za določanje hitrosti, vendar njihova uporaba za vodenje v realnem času ni priporočljiva, saj zaradi svoje zgradbe vnašajo v meritve zakasnitve, kar neposredno vpliva na stabilnost [48]. Za oceno hitrosti pri robotu smo uporabili metodo s fiksnim časom. Pospeške realnega sistema smo pridobili iz hitrosti, ob tem pa je bil signal hitrosti filtriran z nizkopasovnim Butterworthovim filtrom tretjega reda. 5.4 Zgradba sistema vodenja Kot smo že omenili, je naloga vodenja zagotavljanje stabilnosti in ustrezna navigacija med smučarskimi vratci. Zato je tudi vodenje zgrajeno iz dveh ločenih sistemov, in sicer sistema za zagotavljanje stabilnosti in sistema za navigacijo. Algoritem za zagotavljanje stabilnosti je implementiran v Matlab xpcTarget. XpcTarget je operacijski sistem, ki je namenjen delu v realnem času v povezavi z Matlabom. Krmilni računalnik je nadziral vodenje motorjev, branje podatkov iz inklinometra in merjenje sil. Za zagotavljanje stabilnosti je potreboval še podatke o hitrosti gibanja v sagitalni ravnini robota. Kot krmilni računalnik smo izbrali enokartični računalnik s procesorjem Geode GX1-300MHz z vodilom PC104. Na to vodilo je priključen krmilnik gibanja POSYS 1924, ki omogoča vodenje do štirih motorjev. Krmilnik omogoča tako hitrostno vodenje kot tudi vodenje navora s frekvenco 4,88 kHz. Pri robotu smo uporabili hitrostno vodenje. Za napajanje motorjev skrbijo močnostni ojačevalniki Elmo Violin. Na krmilnem računalniku teče operacijski sistem xPC Target, ki je paket programskega okolja MathWorks Matlab. Za ta sistem smo se odločili, ker omogoča hiter razvoj prototipnih aplikacij za delo v realnem času. Z opisano aparaturno opremo smo dosegli delovanje 68 algoritma za zagotavljanje stabilnosti s frekvenco vzorčenja 1 kHz. Krmilni računalnik pošilja podatke o naklonih smučarja navigacijskemu računalniku preko Ethernet povezave s frekvenco 100 Hz. Za komunikacijo med računalnikoma smo uporabili UDP protokol. Ta protokol omogoča uporabo v realnem času, vendar za ceno možnosti izgube posameznih podatkov. Navigacijski računalnik skrbi za sprotno navigacijo robota s pomočjo video kamere in GPS senzorja. Obdelava vida teče s frekvenco 30 Hz. S to frekvenco se tudi pošiljajo podatki o želenem radiju in trenutni hitrosti krmilnem računalniku. Algoritem za obdelavo slik in določanje želene poti smo implementirali v programskem jeziku C++ na operacijskem sistemu Windows XP. Na navigacijskem računalniku se poleg generiranja poti ocenjuje tudi hitrost v sagitalni ravnini. GPS sprejemnik Senzor sile Navigacijski racunalnik Nadzorni racunalnik Krmilnik DC motorjev Ojacevalnik DC motorjev Kamera Izvajanje poti ______________________________________________________________________________i Inklinometer Zagotavljanje stabilnosti DC Motor Slika 5.9: Shema zgradbe sistema vodenja 69 6 Rezultati in ovrednotenje dela V tem poglavju bomo predstavili tako simulacijske rezultate kot tudi izvedbo na realnem sistemu. Pri tem bomo podali rezultate tako za meritve na betonski klančini z rolkami kot za meritve na snegu s smučmi s poudarjenim stranskim lokom. V prvem delu se bomo osredotočili predvsem na ovrednotenje zagotavljanja stabilnosti. V nadaljevanju poglavja pa bodo predstavljeni rezultati navigacije robota med vratci. V okviru testiranj smo izvedli okrog 30 poskusnih voženj na rolkah in približno enako število voženj na snegu. V tem poglavju bodo predstavljeni reprezentativni rezultati voženj. 6.1 Rolkanje Rolkanje po ravnem Najprej smo izvedli poskuse rolkanja po ravni površini, pri katerem se je konstantno hitrost 2 m/s zagotavljalo s pomočjo vitla. Robot je izvedel tri zavoje z določenim trajanjem. Med zavoji so bili odseki ravne vožnje. Nakloni robota so bili med vožnjo v območju med -0.1 in 0.1 radiana, kar je pomenilo zavoje z radijem v območju med neskončnostjo in dvema metroma. Odločili smo se, da robot ne bo izvajal razbremenjevanja, zato je bila višina lc zmeraj konstantna. V tem primeru se kota sklepov (slika 5.4) gibljeta okoli vrednosti -0.85 radiana, kar zagotavlja srednjo vrednost dolžine noge med popolnoma iztegnjeno in pokrčeno. 70 Slika 6.1: Gibanje sklepov nog Na sliki 6.1 je predstavljeno gibanje sklepov leve in desne noge. Robot je v tem primeru izvedel tri zavoje, med temi zavoji pa so bili še ravni odseki. Iz višjega nivoja vodenja so bili podani zahtevki za zavoje ob časih 2.5 s, 8 s in 12.5 s. Zavoji so trajali različno dolgo. Slika 6.2: Sile pravokotno na rolko Na sliki 6.2 so prikazane merjene sile na posamezni nogi. V trenutkih, ko se spremeni naklon, se pojavijo hitre spremembe sile, ki so posledica vztrajnosti. 71 Zaradi tega smo v 5. sekundi dosegli tudi razmerje delitev sil 8:1 med posameznima nogama. V primerjavi z modelom, ki upošteva zgolj kinematiko nog brez elastičnosti sklepov, je to razmerje mnogo večje od modeliranega, kar je razvidno tudi s slike 6.3, saj bi na podlagi modela razmerje med silami doseglo zgolj razmerje 3:1. Slika 6.3: ZMP med vožnjo Tudi v fazi, ko je robot izvajal zavoj s konstantnim radijem, je prišlo do napake v določitvi ZMP-ja, kar je posledica napake v izmeri naklona površine. Napaka med merjenim in modeliranim ZMP-jem je dokaj majhna. Večja napaka se pojavi zgolj v času trenutnih sprememb pospeška naklona na podlago. Vzrok za to napako je predvsem v mrtvem hodu sklepa, saj se je v teh trenutkih povečala sila, s katero deluje robot na podlago. To je povzročilo večje pokrčenje bolj obremenjene noge in s tem tudi povečane pospeške. Ob tem tudi opazimo nihanje robota, ki je bilo najbolj opazno v času med 5. in 6. sekundo. 72 Slika 6.4:Kotna hitrost naklona na podlago Na sliki 6.4 je prikazana hitrost naklona na podlago, ki je bila izmerjena na podlagi enkoderjev, montiranih na sklepih robota. Medtem ko na teh merjenih hitrostih ni videti nihanja, kar je razvidno tudi iz modeliranega ZMP-ja na sliki 6.3, pa je dejanska kotna hitrost nihala, kar je vidno na merjenem ZMP-ju na sliki 6.3. Prav tako tudi merjeni pospeški enkoderjev ne nihajo. Razlog za nihanje pa je lahko tudi v mehanizmu rolke. Iz rolk smo namreč odstranili blažilce, saj je robot prelahek in ne bi bil sposoben nagniti rolke. 73 Slika 6.5: Kotni pospešek naklona na podlago Rolkanje po klančini Slika 6.6: Sile na nogi med rolkanjem po klančini Do še večjega nihanja je prišlo v primeru spuščanja robota po klančini. Slika 6.6 prikazuje sile na posamezni nogi. Vzrok za to nihanje leži v elastičnosti celotnega mehanizma. Skozi celoten potek je vidno nihanje s frekvenco okrog 1 Hz, kar je lastna frekvenca mehanizma. Če robota namreč modeliramo kot inverzno nihalo, kot je prikazano na sliki 3.4. se lastna frekvenca takega nihala približno ujema z 74 nihanjem robota. Slika 6.7: ZMP med rolkanjem po klančini Ker se merjeni ZMP računa na podlagi merjenih sil, je tudi s slike 6.7 razvidno nihanje. To nihanje je bilo razvidno tudi z videoposnetkov. 75 Slika 6.8: Zunanji in interni pogled na rolkanje na klančini Slike 6.8 prikazujejo potek rolkanja, kjer smo na klančini med startom in ciljem postavili dvoje vratc. Ti posnetki prikažejo tipično vožnjo robota izvedeno na podlagi zaznanih vratc. Prva vrsta zgoraj kaže zunanji pogled na robota. Robot je modra vratca obvozil po levi strani, naslednja pa po desni. V drugi vrsti so prikazani pogledi iz robota v istih trenutkih. Med vožnjo so bile zajete slike, iz katerih naši algoritmi za razpoznavanje vratc le-teh niso zaznali. V teh trenutkih je bila pozicija vratc ocenjena s Kalmanovim filtrom. Vse meritve na rolkah so bile izvedene brez 76 gibanja trupa. 6.2 Smučanje Testiranje algoritmov za zagotavljanje stabilnosti in navigacije smo najprej izvedli v simulaciji. Simulacija smučanja Vsi algoritmi za avtonomno gibanje smučarja so bili najprej preizkušeni v računalniški simulaciji. Na sliki 6.9 je predstavljena pot smučanja na testirani površini, izvedena s pomočjo prej opisane metode izvajanja zavojev v navideznem okolju, ob tem pa so bile upoštevane še omejitve, ki zagotavljajo stabilno smučanje. Slika 6.9: Poligon za simulacijo smučanja Med poskusi smo preizkusili različne postavitve vratc. Za lažjo predstavo je naslednji diagram (slika 6.10) predstavljen v xy ravnini. Podani sta dve simulaciji izvedbe zakoličene poti. Polna črta predstavlja izvedbo ob upoštevanju, da je zavoj izveden v oddaljenosti najmanjšega možnega radija zavoja. V tem primeru vratca hitro izginejo iz vidnega kota kamere. Zato se je potrebno več časa zanašati na podatke iz predikcije filtra. Zaradi tega se je tudi v simulaciji zgodilo, da zaradi netočnega predvidevanja pozicije robot ni mogel izpeljati proge. Črtkana krivulja 77 prikazuje izvedbo poti pri navideznem premiku vratc za 2 metra pravokotno na globalno smer smučanja, ki je za testno postavitev usmerjena v smeri osi y. S tem smo zagotovili, da so vratca ostala dlje časa v vidnem polju kamere in je bila zato ocenjena pozicija glede na vratca natančnejša. Iz tega razloga smo tudi v realnem smučanju vratca navidezno premaknili za 3 metre pravokotno na globalno smer smučanja. V obeh primerih se sredina zavoja nahaja pod vratci, kar je posledica dejstva, da smučar ne izvede zavoja v trenutku, saj mora upoštevati pogoje, ki zagotavljajo stabilnost. Slika 6.10: Simulirane trajektorije na izbrani progi (črtkana – navidezni premik vratc, polna – najmanjši radij okrog vratc) V obeh primerih je simulacija trajala enak čas, vendar pa je v primeru navideznega premika vratc robot prevozil daljšo pot po progi, kar je posledica bolj direktne linije in s tem tudi višje hitrosti. Testiranja na snegu Izvedli smo več testiranj robota, ki so bila izvedena v različnih okoliščinah. Tako je bila v prvem primeru, ki bo predstavljen v nadaljevanju, na smučišču 5 centimetrov debela plast svežega snega. V drugem primeru pa je bila snežna podlaga sveže steptana. Izkazalo se je, da ima oblika snežne podlage pomemben vpliv na 78 odzivanje robota. Zato bomo tipična primera voženj predstavili v ločenih podpoglavjih. Svež sneg V tem primeru so bile meritve izvedene na progi s 4 vratci. Najprej se bomo osredotočili na analizo stabilnosti med izvajanjem zakoličene poti. Slika 6.11 predstavlja modeliran ZMP. V območju med 1. in 2. sekundo je bil trup v poziciji, ki enakomerno porazdeli silo med nogi. V nadaljevanju se ZMP giblje v območju, ki zagotavlja razdelitev sil na nogi v razmerju 3:1. Slika 6.11: Modeliran ZMP Na sliki 6.12 so predstavljeni izmerjeni navigacijski podatki, ki so bili uporabljeni za izvajanje želene trajektorije. Opazimo, da na začetku ni nobenega hitrega gibanja, saj je hitrost spreminjanja naklona na podlago neposredno povezana s hitrostjo v sagitalni smeri. V nadaljevanju se zaradi povečanja hitrosti želeni naklon spreminja hitreje. V začetku se želeni in dejanski naklon dokaj ujemata, ko pa se hitrost poveča, se mora želeni naklon iz navigacijskega modula podrediti zahtevam za zagotavljanje stabilnosti. ? prikazuje lokalni naklon podlage v lateralni smeri in se spreminja v odvisnosti od smeri, v kateri se robot vozi. Največji lokalni naklon je bil zaznan v 9 sekundi. Kot pogleda na vratca (?- ?o) in razdalja do vratc sta medsebojno povezana. Kot pogleda se veča, ko se robot približuje vratcem. Ko se 79 razdalja do vratc zmanjša pod določeno mejo, vratca izginejo izven vidnega področja kamere. V tem trenutku nimamo podatkov o kotu pogleda in razdalji, dokler se v vidnem obzorju kamere ne pojavijo nova vratca. Ker hitrost raste, je čas približevanja vratcem vedno krajši. Zaradi večje hitrosti se lahko tudi ZMP vzdržuje na sredini, saj radialna sila kompenzira silo gravitacije, ki nastopi zaradi naklona smučarja na podlago. Slika 6.12: Meritve navigacijskih podatkov Podatke o orientaciji robota in hitrosti smo uporabili za izračun izvedenih radijev zavoja, kar je prikazano na sliki 6.13. 80 Slika 6.13: Merjen in modeliran radij Izkazalo se je, da se je dejanski izvedeni radij na svežem snegu zelo razlikoval od radija, ki smo ga izračunali s pomočjo modelov, znanih iz literature. Uporabljene smučke so izvedle zavoje z radijem 2.5 metra, kar bi pri modelih zahtevalo mnogo večje naklone, kot jih je robot izvedel. To lahko pojasnimo, če upoštevamo, da je prišlo na sredini smučke do globljega zareza v sneg kot v skrajnih legah smuči. Pri večji hitrosti pa so bili izvedeni radiji podobni modeliranim. 81 Slika 6.14: Pogledi iz robotove kamere in pogledi iz kamere ob smučišču, ki smo jih zajeli ob istem času Na sliki 6.14 so predstavljene zajete slike v določenih časovnih trenutkih. Iz slik je razvidno, da je robot uspešno presmučal sistem vratc. Iz slik, ki kažejo pogled kamere na robotu, je vidno spreminjanje velikosti vratc v odvisnosti od razdalje 82 robota do njih. Opazimo tudi, da pri nizkih hitrostih na začetku smučanja trup skrbi za kompenzacijo komponente gravitacije. Sveže steptan sneg Pri testiranju na steptanem snegu se je pogosto pojavil problem, da je algoritem za zagotavljanje stabilnosti preveč spreminjal želeni radij zavoja, ki ga je generiral navigacijski algoritem. Zato se je dogajalo, da robot ni mogel izpeljati proge in je posebej na koncu proge pri večjih hitrostih odpeljal mimo vratc. Zato smo spremenili parametre algoritma za stabilnost, da je dovoljeval razdelitev sil v višjem razmerju. V tem primeru se je ZMP lahko premaknil do razdalje 2 cm od roba podporne ploskve med smučkama. Zato se je lahko skoraj celotna sila, s katero deluje robot na podlago, premaknila na eno smučko. S tako nastavljenimi parametri algoritma smo izvedli nekaj poskusov. Tudi v praksi se je izkazalo, da je s tako nastavljenimi parametri robot zelo občutljiv na reakcijske sile podlage, ki nastanejo zaradi neravnin na smučišču. V nadaljevanju je prikazan primer, ko je zaradi neravnine na progi robot smučal po eni nogi. Kot je razvidno s slike 6.15, je robot pogosto vozil na mejah stabilnih vrednosti ZMP-ja, saj v primeru, ko le ta preseže vrednost 0,17 metra, pomeni, da je praktično vsa sila zgolj na eni nogi. Ob času 9.6 sekunde je ZMP presegel to vrednost in ZMP je dosegel vrednost 0.19 metra. V tem trenutku je, če si ogledamo sliko 6.16, sila na desni nogi skoraj enaka nič, ker se je ta noga odlepila od tal. Na podlagi meritev smo želeli ugotoviti, zakaj je algoritem v tej točki odpovedal. Na podlagi merjenih zavojev se je izkazalo, da je bil naklon na podlago v tem trenutku že tak, da bi moral robot že zavijati s predpisanim radijem, ki bi stabiliziral robota. Zaradi stranskega oddrsavanja smuči pa sta bila radij zavoja in s tem tudi radialna sila manjša od želenih, zato se je robot nagnil na notranjo smučko. Dodatno so k tej nestabilnosti prispevale tudi neravnine na podlagi. 83 Slika 6.15: Modeliran ZMP Slika 6.16 prikazuje sile merjene med smučanjem. Vidimo, da so signali sil precej zašumljeni. Edina jasno razpoznavna faza je, ko noga ni v kontaktu s podlago. Deloma so vidne tudi pozicije, kjer se ZMP približuje skrajnim vrednostim. Slika 6.16: Sila na desni nogi Podatki o silah, kot so na primer prikazani na sliki 6.16, so se izkazali kot neuporabni za vodenje v realnem času. Na merjenje sil je vplival tudi sneg, ki se je nabiral med smučko in ploščo na robotu, kamor je pritrjen senzor. Zato podatkov o 84 sili tudi nismo uporabili v vodenju. Slika 6.17: Pogled na robota v nestabilni poziciji Na sliki 6.17 je predstavljen dogodek, ko je robot izgubil stik s podlago z eno smučko. V nadaljevanju, ko se je notranja smučka zarezala v sneg, je robot zavil in radialna sila je stabilizirala robota. Na sliki 6.18 na grafu v območju v katerem je desna noga izgubila kontakt s podlago, podatki o lokalnem naklonu površine niso verodostojni, saj je neznan lokalni naklon podlage. 85 Slika 6.18: Meritev navigacijskih podatkov Če primerjamo še radije zavojev na svežem in steptanem snegu, prikazane na slikah 6.13 in 6.19, opazimo, da se na steptanem snegu mnogo bolj ujemajo z modeliranimi kot v primeru svežega snega. Radij zavojev se je v primeru svežega snega spreminjal v odvisnosti od hitrosti, saj pri nizkih hitrostih svež sneg ni nudil dovolj opore smučem neposredno pod robotom, z višjo hitrostjo pa se sila poveča po vsej dolžini smučke in je celotna smučka zarezala v bolj trdo podlago. 86 Slika 6.19: Merjen in modeliran radij Iz slike 6.19 je razvidno, da je posredno računan radij v trenutku izgube stika s podlago znašal nad 20 metrov, medtem ko je modeliran znašal za uporabljeno smučko le 5 metrov. 87 7 Sklep V delu smo razvili in predstavili robota, sposobnega avtonomne vožnje tako po klančini s pomočjo rolk kot tudi s smučmi. Robot pri tem izvaja gibanje na podoben način kot človek, ki zavija na smučkah s poudarjenim stranskim robom s fleksijo in ekstenzijo nog. Izkazalo se je, da je ključen problem v zagotavljanju stabilnosti robota med smučanjem. V ta namen smo razvili metodo zasnovano na točki ničelnega navora. Medtem ko ostale metode na tej osnovi zagotavljajo stabilnost zgolj na predhodno izračunanih trajektorijah oziroma pri neposrednem določevanju točne točke ZMP, pa se pri predlagani metodi točka ZMP giblje prosto po celotnem želenem področju podporne ploskve. Za izračun ZMP-ja smo razvili ustrezne modele smučarja. Ker je potrebno hitro izračunavanje parametrov robota za zagotovljanje delovanja v realnem času, smo razvili tudi poenostavljen model robota v lateralni ravnini. Zgradili smo tudi virtualno okolje, ki omogoča testiranje tako metode za zagotavljanje stabilnosti kot tudi testiranje algoritma za navigacijo robota na predpisani progi določeno z vratci. Z uporabo virtualnega okolja smo preizkusili algoritme za zaznavanje vratc. Da bi ugotovili dejanske sposobnosti mehanizma, smo na podlagi modela izvedli analizo stabilnosti mehanizma v odvisnosti od lastnega gibanja, hitrosti v sagitalni ravnini, višine smučanja in lokalnega naklona podlage. Prav tako smo prikazali, da se s pomočjo trupa lahko izvede kompenzacijo stabilnosti tako za dolgotrajne spremembe kot tudi za hipne spremembe, ki so posledica trenutnih sprememb odziva smučk. Nadalje smo zgradili algoritem, ki na podlagi modela človeške navigacije zagotavlja smučanje robota na zakoličeni progi. Metoda temelji na osnovi potencialnih polj, ki pogosto težijo k dejstvu, da se ujamejo v lokalne minimume. V predlagani izvedbi pa se temu izognemo s pomočjo sprotnega definiranja cilja v odvisnosti od ovire, kar onemogoči ujetje v lokalni minimum. Zaradi predlaganega načina gradnje cilja pa je tudi možna uporaba pri neholonomnih robotih, saj je pot vselej zvezna in odvedljiva. V algoritem smo vgradili virtualni premik vratc, ki je zagotavljal, da so vratca ostala dlje časa v vidnem kotu kamere. Predlagane algoritme smo implementirali na realnem sistemu, ki smo ga preizkusili tako na smučišču kot na betonski klančini. V slednjem primeru smo namesto smuči 88 uporabili rolke. Celotno vodenje robota je tako sestavljeno iz primarne naloge, torej zagotavljanja stabilnosti, da se robot ne prevrne. Ker zadano nalogo lahko izvede v določenem področju gibanja, je mogoče izvesti tudi sekundarno nalogo, torej navigacijo med vratci. S tem je gibanje podobno človeškemu, saj tudi človek najprej poskrbi za preprečitev padca in šele nato za smučanje po želeni trajektoriji. Rezultati testiranj so pokazali, da je predlagani sistem vodenja zagotovil stabilnost v skoraj vseh primerih. Problem se je pojavil zgolj v primeru, ko smo želeli povečati razmerje med silama, ki delujejo na posamezni nogi. Nad določeno mejo je bilo območje dovoljenega gibanja zelo blizu nestabilnosti. 7.1 Izvirni prispevki Na podlagi študij in raziskav, objavljenih v literaturi, menimo, da raziskava, opisana v doktorski disertaciji, med drugim vsebuje sledeče izvirne prispevke k znanosti: • Realizacija mehanizma humanoidnega robota s sposobnostjo gibanja na smučišču. Zgradili smo robota s sposobnostjo avtonomnega gibanja v dinamičnem okolju. • Metoda za zagotavljanje ravnotežja v koronalni ravnini na osnovi metode ničelnega navora in ob upoštevanju drugih vplivnih veličin. Razvita metoda omogoča stabilnost robota in ob tem omogoča še dokaj prosto odzivanje robota na sekundarno nalogo. • Nadgradnja modela človeške navigacije pri kateri je zaznavanje cilja izvedeno s pomočjo robotskega vida. Z nadgradnjo je omogočena uporaba tudi na neholonomnih sistemih. Predlagan način gradnje ciljev in navideznega premika dovoljuje uporabo te metode tudi v primerih uporabe kamer z mnogo ožjim zornim kotom, kot ga ima človek. • Izvedba eksperimentov z robotom v realnih dinamičnih razmerah na smučišču. Ker robot omogoča ponavljanje želenih trajektorij, se podatki meritev lahko primerjajo za različno smučarsko opremo oziroma za različne tipe podlage. 89 8 Literatura [I] M. Takahashi, T. Yoneyama, Basic ski theory and acceleration during ski turn. Science and Skiing II, pp. 307–321, 2001. [2] D. Lind, S. P. Sanders. The Physics of skiing – Second Edition. Springer, 2004. [3] E. Ferreira, S.Tsai, C. Paredis and H. Brown, Control of the Gyrover: a single-wheel gyroscopically stabilized robot. Advanced Robotics, 14 (6): 459–475, 2000. [4] R. L. Tedrake, Applied Optimal control for dynamically stable legged locomotion, PhD thesis, 2004. [5] J. Baltes and N. Hildreth, Adaptive Path Planner for Highly Dynamic Environments. RoboCup-2000: Robot Soccer World Cuo IV, pp. 76–85. Springer Verlag, Berlin, 2001. [6] J. Yi, D. Song, A. Levandowski, and S. Jayasuriya, Trajectory tracking and balance stabilization control of autonomous motorcycles. Proceedings of 2006 IEEE International Conference on Robotics and Automation, Orlando, FL, strani 2583–2589, 2006. [7] J. B. Park, J. H. Lee, B. H. Lee, Online Turnover-Free Control for a Mobile Agent with a Terrain Prediction Sensor. Journal of Field Robotics, 23(1):59–77, 2006. [8] N. H. Getz, J. E. Marsden, Control for an Autonomous Bicycle. IEEE International Conference on Robotics and Automation, May, Nagoya, 1995. [9] M. Wisse, Skateboards, Bicycles, and Three-dimensional Biped Walking Machines: Velocity–dependent Stability by Means of Lean-to-yaw Coupling, The International Journal of Robotics Research, 24(6):417–429, 2005. [10] B. R. Fajen,W. H. Warren, S. Termizer, L. P. Kaebling, A dynamical model of steering, obstacle avoidance, and route selection, International Journal of Computer Vision, 54(1–2):13–34, 2003. [II] S. Sekhavat, M. Chyba, Nonholonomic deformation of a potential field for motion planning. IEEE International Conference on Robotics and Automation, pp. 817–822, 1999. [12] P. A. Federolf. Finite element simulation of a carving snow ski, PhD thesis, 2005. [13] H. G. Tanner, S. Loizou, K. J. Kyriakopoulos, Nonholonomic stabilization with collision avoidance for mobile robots, IEEE/RSJ International Conference on Intelligent Robots and Systems, pp. 1220–1225, 2001. 90 [14] J. Borenstein, Y. Koren, "The Vector Field.Histogram - Fast Obstacle Avoidance for Mobile Robots", IEEE Journal of Robotics and Automation, 7(3): 278-288, 1991. [15] I. Ulrich, J. Borenstein, Reliable Obstacle Avoidance for Fast Mobile Robots, Proceedings of 1998 IEEE International Conference on Robotics and Automation, Belgium, pp. 1572-1577, 1998. [16] K. Hasegawa, S. Shimizu, Masatada Yoshizawa, Robotics applied to sports engineering, Advanced Robotics 14 (5): 377-379, 2000. [17] Y. Tanaka, T. Murakami, Self Sustaining Bicycle Robot with Steering Controller, Proceedings of 2004 IEEE Advanced Motion Control Conference, pp. 193–197, 2004. [18] O. Khatib, Real-time obstacle avoidance for manipulators and mobile robots. The International Journal of Robotics Research, 5 (1): 90–98, 1986. [19] Diaz-Calderon, A. Kelly, On-Line Stability Margin and Attitude Estimation for Dynamic Articulating Mobile Robots, International Journal of Robotics Research, 24 (10): 845–866, 2005. [20] C. Chevallereau, E. R. Westervelt, and J. W. Grizzle, Asymptotically Stable Running for a Five-Link, Four-Actuator Bipedal Robot Re-print, International Journal of Robotics Research, 24 (6): 431–464, 2005. [21] Howe J. The New Skiing Mechanics. McIntire Publishing, Waterford, ME, USA. 2001. [22] A. Beznos, A. Formalsky, E. Gurfinkel, D. Jicharev, A. Lensky, K. Savitsky, and L. Tchesalin, Control of Autonomous Motion of Two-Wheel Bicycle with Gyroscopic Stabilisation, Proceedings of 1998 IEEE International Conference on Robotics and Automation, Leuven, Belgium, pp. 2670–2675, 1998. [23] S. Tsai, E. Ferreira, and C. Paredis, Control of the Gyrover: A Single-Wheel Gyroscopically Stabilized Robot. Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS'99), pp. 179–184, 1999. [24] M.Vukobratovic, A. A. Frank, D. Juricic, On the stability of biped locomotion. IEEE Transactions on Biomedical Engineering, 17 (1), 1970. [25] M. Vukobratovic, D. Juricic, Contribution to synthesis of biped gait, IEEE Transactions on Biomedical Engineering, 16(1):1–6, 1969. [26] M . Vukobratovic, J. Stepanenko, On the stability of anthropomorphic systems. Mathematical Biosciences, 15 (1-2): 1-37, 1972. [27] M. Vukobratovic, B. Borovac, Zero-Moment Point – Thirty Five Years of its Life, International Journal of Humanoid Robotics, 1 (1): 157–173, 2004. [28] T. Arakawa, T. Fukuda, Natural motion generation of biped locomotion robot using hierarchical trajectory generation method consisting of GA, EP layers, In 91 Proceedings of the 1997 IEEE International Conference on Robotics and Automation, pp.211–216, 1997. [29] Napoleon, S. Nakaura, M. Sampei, Balance control analysis of humanoid robot based on zmp feedback control, In Proceedings of the 2002 IEEE/RSJ International Conference on Intelligent Robots and System, 2002. [30] Q. Huang, K. Li, Y. Nakamura, Humanoid walk control with feedforward dynamic pattern and feedback sensory reflection, In Proceedings of the 2001 IEEE International Symposium on Computational Intelligence in Robotics and Automation, 2001. [31] J. Yamaguchi, E. Soga, S. Inoue, A. Takanishi, Development of a bipedal humanoid robot-control method of whole body cooperative dynamic biped walking, In Proceedings of the 1999 IEEE International Conference on Robotics and Automation, 1999. [32] P. A. Federolf, Finite element simulation of a carving snow ski, Phd. Thesis, Swiss federal institut of technology, Zurich, 2005. [33] A. Kelly, A. Stentz, O. Amidi, M. Bode, D. Bradley, A. Diaz-Calderon, M. Happold, H. Herman, Toward Reliable Off Road Autonomous Vehicles Operating in Challenging Environments. International Journal of Robotics Research, 25 (5/6): 449–483, 2006. [34] S. C. Peters and K. Iagnemma. An Analysis of Rollover Stability Measurement for High-Speed Mobile Robots, In Proceedings of the 2006 IEEE International Conference on Robotics and Automation, Orlando, Florida, pp. 3711–3716, 2006 [35] T. Geng, B. Porr, F. Wörgötter, Fast Biped Walking with A Sensor-driven Neuronal Controller and Real-time Online Learning, The International Journal of Robotics Research, 25 (3): 243–259, 2006. [36] W. H. Huang, B. R. Fajen, J. R. Fink, W. H. Warren, Visual navigation and obstacle avoidance using a steering potential function, Robotics and Autonomous Systems, 54: 288–299, 2006. [37] J. E. Pratt and R. Tedrake, Velocity-Based Stability Margins for Fast Bipedal Walking, In Proceedings of the First Ruperto Carola Symposium on Fast Motions in Biomechanics and Robotics: Optimization and Feedback Control, Heidelberg, Germany, September 2005. [38] R. M. Murray, S. S. Sastry, Nonholonomic motion planning: Steering using sinusoids, IEEE Transactions on Automatic Control,38(5):700–716, 1993. [39] B. Fajen and W. Warren, Behavioral Dynamics of Steering, Obstacle Avoidance, and Route Selection, Journal of Experimental Psychology: Human Perception and Performance, 29(2):343–362, 2003. [40] T. Yoneyama, H. Kagawa, Study on the effective turn motion using a ski robot, The Engineering of Sport, 4: 463–469, 2002. 92 [41] A. Dasgupta and Y. Nakamura, Making feasible walking motion of humanoid robots from human motion capture data, In Proceedings of the 1999 IEEE International Conference on Robotics and Automation, pp. 1044–1049, Detroit, USA, 1999. [42] S. Kagami, T. Kitagawa, K. Nishiwaki, T. Sugihara, M. Inaba, H. Inoue, A fast dynamically equilibrated walking trajectory generation method of humanoid robot. Autonomous Robots, 12 (1):71–82, 2002. [43] A. Goswami, Postural stability of biped robots and the foot-rotation indicator (FRI) point, The International Journal of Robotics Research, 18(6):523–533, 1999. [44] T. Mita, T. Yamaguchi, T. Kashiwase, and T. Kawase, Realization of a high speed biped using modern control theory, International Journal of Control, 40(1): 107–119, 1984. [45] G. Capi, Y. Nasu, L. Barolli, K. Mitobe, Real time gait generation for autonomous humanoid robots: A case study for walking, Robotics and Autonomous Systems, 42(2):107–116, 2003. [46]M. Zarrugh and C. Radcliffe, Computer generation of human gait kinematics, Journal of biomechanics, vol. 12, no. 2, pp. 99–111, 1979. [47] S.-H. Lee and J.-B. Song, Acceleration estimator for low-velocity and low-acceleration regions based on encoder position data," IEEE/ASME Transactions on Mechatronics, vol. 6, no. 1, pp. 58–64, 2001. [48] R. H. Brown, S. C. Schneider, and M. G. Mulligan, Analysis of algorithms for velocity estimation from discrete position versus time data," IEEE Transactions on Industrial Electronics, 39(1):11–19, 1992. [49] J. Y. Kim, I. W. Park, Walking Control Algorithm of Biped Humanoid Robot on Uneven and Inclined Floor, Journal of Intelligent and Robotic Systems, 48(4):457–484, 2007. [50] J. Kim, W. K. Chung, Y. Youm B.H. Lee, Real-time ZMP compensation method using motion for mobile manipulators, IEEE International Conference on Robotics and Automation, 2:1967–1972, 2002. [51] S. Kajita, K. Tani, Study of dynamic biped locomotion on rugged terrain derivation and application of the linear inverted pendulum mode," in Proceedings 1991 IEEE International Conference on Robotics and Automation, pp. 1405–1411, Sacramento, California, USA, 1991. [52] J.-F. Lalonde, N. Vandapel, M. Huber, and M. Hebert, Natural terrain classification using three-dimensional ladar data for ground robot mobility, Journal of Field Robotics, 2006. [53] S. Kajita, F. Kanehiro, K. Kaneko, K. Fujiwara, K. Harada, K. Yokoi, H. Hirukawa, Biped walking pattern generation by using preview control of zero-moment point," IEEE International Conference on Robotics and Automation (ICRA 93 2003), pp. 1620–1626, May 2003. [54] J. Borenstein, Y. Koren, “Potential Field Methods and Their Inherent Limitations for Mobile Robot Navigation”, Proceedings of the IEEE International Conference on Robotics and Automation, California, April 1991. [55] S. S. Ge, Y. J. Cui, Path Planning for Mobile Robots Using New Potential Functions, Proceedings of 3rd Asian Control Conference, July 4–7, 2000. [56] H. Moravec, Certainty Grids for Mobile Robots, NASA/JPL Space Telerobotics Workshop, pp. 307–312, January 1987. [57] I. Ulrich, J. Borenstein, VFH+: reliable obstacle avoidance for fast mobile robots, Proc. IEEE Int. Conf. on Robotics and Automation, pp. 1572–1577, Leuven, Belgium, May 1998. [58] V. J. Lumelsky and A.A. Stepanov, Path planning strategies for a point mobile automaton moving amidst obstacles of arbitrary shape, Algorithmica 2:403–430, 1987. 94 Izjava Izjavljam, da sem doktorsko disertacijo izdelal samostojno pod mentorstvom prof. dr. Jadrana Lenarčiča, univ. dipl. inž. el. in dr. Bojana Nemca, univ. dipl. inž. el. Izkazano pomoč ostalih sodelavcev sem navedel v zahvali. V Ljubljani, 15. 1. 2009 Leon Lahajnar