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(2), ker sta q1 in q2 kota v skladu s sliko 2.5. Radij zavoja je v tem primeru enak L2d 44l2(C1-c2) 2 d2 r + h24l2(C1-c2)2 +d2 d 2h (7) Definirajmo še Jacobijevo matriko za sistem nog r = Js a-b a + b Js= 2h 2h -ls1 -ls2 (8) (9) kjer je a = L2dl2 (t1 -c2)s1 4l2(C1-c2)2 +d2\ (10) in 15 b = 4 l2h2 (t1 -c2)s1 d V4/2(c1-c2) 2 rf2 (11) Pri tem smo spet uporabili okrajšave si =sin(qi) in ci =cos(qi) . V primeru rolk veljajo drugačne zveze. Radij zavoja za rolke v odvisnosti od kotov q1 in q2 je Ztan(a) 2atan 2/fc-c^ (12) v y Jacobijeva matrika za rolke pa je Jr Z.tan(a)üfc1 Lrtan(a)ds 2atan2 dl)( d+(2Kc,-c,))2 ) 2atan(2 1 d )]( d+(2,(c,c2)) ) (13) -Is ls Pri tem Lr predstavlja dolžino med paroma kolesc. rr _ _ 16 2.6 Dinamični model Dinamični model robota smo zgradili v okolju Sim Mechanics-u z uporabo vgrajenih objektov za segmente in sklepe. Slika 2.6 prikazuje model ene noge v okolju SimMechanics. sp \ 2 /i ko lk spredaj prenos spredaj (~3 y^ qdd f1 y radialni pospesek f~2 \-------^JEnvo—O gravitacija Okol j e Podlaga stik s podlago Slika 2.6: Model noge, zgrajen v Matlab SimMechanics Vhod v model so radialni pospeški, vektor gravitacije in želeno gibanje robota. Podatki o vztrajnostni matriki in masi posameznih delov noge so vgrajeni v model. Tako zgrajene posamezne dele lahko združujemo in dobimo celotno konfiguracijo robota z nogama, trupom in platformo, kot je prikazana na sliki 2.7. 17 (~~2 \—, radialni ^ pospešek (~~^ ^------^ gravitacija desna noga pospešek gravitacija qdd sp Fpd kods zd —^ Trup qdt Naklon hrbet leva noga Fpl pospešek koti qdl zd sp Slika 2.7: Model celotnega mehanizma Na celoten mehanizem delujeta gravitacija in radialna sila. Ker se smer in velikost teh dveh sil spreminjata v odvisnosti od naklona površine, naklona smučk in hitrosti, se vrednosti pospeškov iz modela okolja prenašajo v model smučarja. Radialna sila ima samo komponento v lateralni smeri, medtem ko se vektor gravitacije spreminja v odvisnosti od lokalnega naklona površine. Ker smo v modelu predpostavili, da ima robot obe nogi ves čas v kontaktu s podlago, se razdalja med smučkama spreminja, zato prihaja med podlago in smučkami v lateralni ravnini do zdrsov. V primeru, da je hitrost v sagitalni ravnini skoraj enaka 0, se smučka na nogi, ki izvaja izteg, zareže v sneg do določene globine. Nadaljnje iztegovanje poveča upor snega, kar povzroči, da se celoten robot premakne stran od smučke. Iz tega razloga pri nizkih hitrostih robot ne sme izvajati nagibov, ker to povzroči zelo velike sile in bi lahko privedlo do poškodb mehanizma. Med smučanjem pa smučka zareže v nov sneg in zaradi tega ne zarobi tako silovito. Želeni nagib na podlago lahko mehanizem izvede na dva načina, in sicer samo s krčenjem in iztegovanjem posamezne noge ali s sočasnim iztegovanjem in krčenjem nog. V prvem primeru se naklon smučarja na podlago spreminja okrog manj obremenjene smučke. Pri sočasnem gibanju obeh nog pa se nagib smučarja izvaja okrog osi, ki se nahaja znotraj območja med smučkama. Če se smučar giblje v sagitalni ravnini in izvaja gib q1 = -q2, se ta os nahaja točno na sredini med nogama. Tako zgrajeni model je služil za izbiro ustreznih komponent, ki so bile 18 uporabljene na robotu. 2.7 Model okolja V prejšnjem podpoglavju smo predstavili dinamični model robota. Na ta model pa vplivajo tudi zunanje sile, ki so posledica sil, s katerimi okolje deluje na robota. Na robota delujejo sila gravitacije, radialna sila ter reakcijske sile podlage. Smer gravitacije je ob predpostavki, da so smuči v stiku s podlago, odvisna od lokalnega naklona površine. Radialna sila pa je odvisna od hitrosti in radija zavoja, ki ga robot izvede z naklonom na podlago. Robotu se hitrost spreminja zaradi zunanjih sil, ki delujejo nanj. Vpliv teh sil na pospešek v sagitalni smeri je gs +Ft +Fu aR = , mR kjer je gs dinamična komponenta gravitacije, ki deluje v sagitalni smeri robota, Ft je sila trenja med smučmi in podlago, Fu pa sila zračnega upora, mR pa je masa celotnega robota. Sila trenja pri smučanju je odvisna od strukture podlage in smuči. Uporabili smo model, ki vključuje statično in viskozno trenje. Sila viskoznega trenja Fv je Fv =kvv, pri čemer je kv koeficient viskoznega trenja in v hitrost gibanja v sagitalni smeri. Viskoznemu trenju je dodana še komponenta statičnega trenja Fs, ki je neodvisna od amplitude hitrosti, je pa odvisna od smeri le-te Fs = kssign(v) , kjer je ks koeficient statičnega trenja. V model ni vključeno lepljenje, saj so koeficienti lepljenja med smučko in snegom zanemarljivi. Drug del modela okolja je gibanje robota po terenu. Smučar je po svojih lastnostih neholonomnen sistem. Holonomni sistemi so sposobni gibanja v vseh treh prostostnih stopnjah na ravnini, to je translacija v obeh smereh in rotacija okoli lastne osi. Gibanje neholonomnih sistemov v ravnini je bolj omejeno, saj imajo zgolj dve prostostni stopnji, ki ju opišemo na način 19 X = vcos((p), Y = vsin((p) (14) z naslednjo omejitvijo [38] Xsin(q>)-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
)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