1 Uvod Avtomatski parkirni sistemi postajajo čedalje pomembnejši. Avtomobilska industrija predstavlja vedno bolj učinkovite sisteme za pomoč voznikom pri vzvratnem in bočnem parkiranju. Končni cilj je sistem, ki lahko parkira avtomobil brez človekove pomoči. Takšni parkirni sistemi trenutno obstajajo za osebne avtomobile, za tovornjake pa še ne, saj je medsebojno vplivanje med tovornjakom in prikolico velik izziv. Pri vzvratni vožnji lahko tovornjak s prikolico modeliramo kot neholonomski, nelinearen sistem z omejenimi vrednostmi stanj in vhodov. Če kot med tovornjakom in prikolico postane dovolj velik, se pri nadaljnji vzvratni vožnji začne povečevati sam od sebe, dokler se tovornjak ne »zaklene«. Taka situacija najpogosteje nastane v slabih voznih razmerah (npr. spolzka cesta) in onemogoči vsakršno nadaljnje vodenje tovornjaka, zato se ji želimo na vsak način izogniti. Cilj našega dela je bil olajšati vzvratno in bočno parkiranje tovornjakov s pomočjo avtomatskega parkirnega sistema, ki lahko sam parkira tovornjak s prikolico. V literaturi je na voljo več pristopov modeliranja in vodenja tovornjaka [1,2,3,4]. Problem vzvratne vožnje je teoretično in praktično že dobro opisan, vendar pa večina praktičnih realizacij vožnjo naprej uporablja le, kadar je to nujno potrebno. Želeli bi, da tovornjak zaradi večje dosegljive hitrosti in stabilnosti večino časa vozi naprej. Prav tako v literaturi nismo zasledili nobenega članka, ki bi opisoval strategije za bočno parkiranje. 2 Simulacija 2.1 Modeliranje tovornjaka in prikolice Fizični model tovornjaka smo zgradili tako, da smo majhno prikolico priključili na robota, namenjenega robotskemu nogometu. Robot je kockaste oblike in ima dva vhodna signala: želeno hitrost (v) in kotno hitrost (ω). Največja razlika med našim modelom in dejanskim tovornjakom je, da se naš tovornjak lahko obrača na mestu, če je vhodna hitrost enaka nič in če prikolica ni priključena. Te možnosti nismo nikoli uporabili. Naša prikolica ima le eno os, ki se nahaja na zadnji strani Prejet 19. december, 2007 Odobren 10. oktober, 2008 Novak, Dovžan, Grebenšek, Oblak 306 prikolice. To je pogosta poenostavitev pri modeliranju tovornjakov s prikolicami [3],[4]. Ker se tovornjak lahko obrača na mestu, ga lahko opišemo s tremi diferencialnimi enačbami. (1) Položaj in orientacijo prikolice lahko nato opišemo z naslednjimi enačbami: (2) S temi enačbami smo v okolju MATLAB/Simulink realizirali simulacijo sistema tovornjaka s prikolico, na katerem smo preizkusili različne sisteme vodenja. Prvi sistem vodenja lahko vzvratno pripelje tovornjak na parkirno mesto iz katerega koli začetnega položaja. Praktična uporaba tega sistema v primerjavi z drugima dvema je omejena, vendar pa je relativno preprost. Drugi sistem z vožnjo naprej tovornjak poravna s parkirnim mestom, nato pa ga vzvratno parkira. Tretji sistem bočno parkira tovornjak. Slika 1: Položaj tovornjaka in prikolice Figure 1: Position of the truck and trailer 2.2 Vzvratno parkiranje tovornjaka, ki lahko vozi le vzvratno V dvodimenzionalnem koordinatnem sistemu je parkirno mesto na položaju (0,0). Tovornjak se mora parkirnemu mestu približevati iz smeri pozitivne y-osi. Celoten model v okolju Simulink je prikazan na sliki 2. Blok na skrajni desni vsebuje sistem diferencialnih enačb, ki opisujejo tovornjak in prikolico. Ima dva vhoda (hitrost in kotna hitrost tovornjaka) in šest izhodov (položaj in orientacija tovornjaka ter prikolice). Slika 2: Model v okolju Simulink za samo vzvratno vožnjo Figure 2: Complete Simulink model for backward movement only ωϕ ϕ ϕ = ⋅= ⋅= • • • 1 11 11 )sin( )cos( vy vx ))cos()sin(( 1 )sin()sin()sin()cos( )cos()sin()cos()cos( 21212 2212212 2212212 ϕϕωϕϕϕ ϕϕϕωϕϕϕ ϕϕϕωϕϕϕ −⋅⋅+−⋅ + = ⋅−⋅⋅+⋅−⋅= ⋅−⋅⋅+⋅−⋅= • • • Mv llL Mvy Mvx Avtomatski parkirni sistem za tovornjak s prikolico 307 Proces parkiranja lahko razdelimo na tri korake: 1. Tovornjak premaknemo v bližino cilja. 2. Tovornjak poravnamo z osjo y. 3. Tovornjak vzvratno zapeljemo na cilj. To storimo z dvema mehkima regulatorjema. Prvi (izračunaj želeni kot med tovornjakom in prikolico) nam na podlagi položaja in orientacije prikolice in tovornjaka izračuna kot med njima, ki ga potrebujemo za obračanje prikolice v želeno smer. Primeri pripadnostnih funkcij regulatorja so prikazani na sliki 3. Obnašanje regulatorja lahko opišemo v dveh korakih: 1. Če je x po absolutno vrednosti velik ali pa je y nižji od prednastavljene meje, je treba prikolico obrniti, tako da se premika vzvratno proti neki točki v bližini parkirnega mesta. 2. Ko je prikolica blizu parkirnega mesta, jo je treba poravnati z osjo y. Cilj prvega koraka je premakniti tovornjak v položaj blizu parkirnega mesta, kjer pa ima še vedno dovolj manevrskega prostora za obračanje in vzvratno vožnjo na parkirno mesto. Želeni kot primerjamo z dejanskim, razliko pa vnesemo v drugi mehki regulator (regulacija kotne hitrosti), ki izračuna potrebno kotno hitrost tovornjaka. Večja je ta razlika, večjo kotno hitrost potrebujemo. Drugi mehki regulator ima še en vhod: trenutno hitrost tovornjaka. Če se tovornjak giblje hitro, mora biti tudi kotna hitrost večja, saj le tako lahko obrnemo tovornjak, preden se ta premakne predaleč. Želeno hitrost tovornjaka izračunamo na podlagi oddaljenosti prikolice od parkirnega mesta ter želenega kota med tovornjakom in prikolico. Ko se tovornjak približuje parkirnemu mestu, se mora njegova hitrost postopoma zmanjševati, da ne pride do sunkovitega ustavljanja. Tovornjak se mora upočasniti tudi med obračanjem. Slika 3: Pripadnostni funkciji za kot prikolice (zgoraj) in za x koordinato prikolice (spodaj) Figure 3: Membership functions for the angle (top) and x coordinate (bottom) of the trailer Slika 4: Trajektoriji tovornjaka in prikolice Figure 4: Truck-trailer trajectory Primer trajektorij tovornjaka in prikolice je prikazan na sliki 4. Slika 5: Sistem vodenja za vožnjo naprej Figure 5: Control system for forward movement of the truck and trailer Novak, Dovžan, Grebenšek, Oblak 308 2.3 Vzvratno parkiranje tovornjaka, ki lahko vozi tako naprej kot nazaj Postopek parkiranja lahko znova razdelimo na tri korake: 1. Tovornjak premaknemo v bližino cilja. 2. Tovornjak poravnamo z osjo y. 3. Tovornjak vzvratno zapeljemo na cilj. Tokrat se tovornjak v korakih 1 in 2 premika naprej. Vzvratno vožnjo uporabimo le pri zadnjem koraku. Sistem vodenja vsebuje ločena podsistema, enega za vožnjo naprej in enega za vožnjo nazaj. Podsistem za vzvratno vožnjo je enak kot tedaj, ko tovornjak lahko vozi le nazaj, in ga ne bomo znova opisali. Sistem vodenja za vožnjo naprej je prikazan na sliki 5. Če je x po absolutni vrednosti velik, sistem izračuna kot med tovornjakom in točko v bližini parkirnega mesta. Regulator nato obrne tovornjak, tako da se premika v smeri te točke. Razliko med želenim in dejanskim kotom tovornjaka vnesemo v mehki regulator, ki izračuna potrebno kotno hitrost tovornjaka. Tovornjak želimo pripeljati v bližino parkirnega mesta, a mu še vedno pustiti dovolj manevrskega prostora za obračanje in vzvratno vožnjo. Ko x po absolutni vrednosti postane manjši od določene vrednosti in y postane pozitiven, se tovornjak poravna z osjo y. Ko je prikolica v položaju, primernem za vzvratno parkiranje, se regulator za vožnjo naprej izključi, regulator za vožnjo nazaj pa vključi. Med vožnjo naprej položaja prikolice ni treba posebej nadzorovati, saj bi težave lahko nastale le, če bi tovornjak poskušal prehitro obrniti. Primer trajektorij tovornjaka in prikolice je prikazan na sliki 6. Slika 6: Trajektoriji tovornjaka in prikolice Figure 6: Truck-trailer trajectory 2.4 Bočno parkiranje tovornjaka Bočno parkiranje lahko razdelimo na tri korake: 1. Tovornjak pripeljemo v bližino parkirnega boksa in ga poravnamo vzporedno z boksom. 2. Tovornjak vzvratno zapeljemo v boks. 3. Tovornjak večkrat zapeljemo naprej in nazaj, dokler nista tako tovornjak kot prikolica znotraj boksa in poravnana vzporedno z boksom. Za prvi korak lahko uporabimo sistem vodenja, ki smo ga uporabili za vzvratno parkiranje tovornjaka. Želeno parkirno mesto definiramo zunaj boksa. Ko sistem vodenja uspešno pripelje tovornjak na položaj zunaj parkirnega boksa, ciljni položaj premaknemo v notranjost boksa. Regulator lahko nato prikolico vzvratno zapelje v boks, vendar pa tovornjak v večini primerov ne bo popolnoma znotraj boksa. Za poravnanje tovornjaka potrebujemo dodaten regulator. Razširjen sistem je prikazan na sliki 7. Slika 7: Celoten sistem za bočno parkiranje Figure 7: Complete system for parallel parking Podsistem spodaj levo (Vožnja naprej in nazaj) vsebuje mehke regulatorje za vožnjo naprej in nazaj. Izhodna hitrost in kotna hitrost tega sistema se preneseta na vhode drugega podsistema, ki nadzoruje zadnji korak bočnega parkiranja – situacijo, ko je prikolica že deloma v parkirnem boksu in je treba tovornjak le še poravnati v boksu. Če se to še ni zgodilo, se na izhodu drugega podsistema pojavita hitrost in kotna hitrost, ki ju je izračunal prvi podsistem. Če pa se je to že zgodilo, drugi podsistem zavrže podatke iz prvega sistema ter izračuna novo želeno hitrost in kotno hitrost. Trenutna položaja tovornjaka in prikolice se preneseta v podsistem, ki izračuna trenutno oddaljenost prikolice od parkirnega mesta. Če se prikolica nahaja relativno v zunanjosti parkirnega boksa, ta podsistem (x, y) koordinatam tovornjaka in prikolice prišteje določene vrednosti. S tem premakne želeno parkirno mesto v notranjost boksa. Avtomatski parkirni sistem za tovornjak s prikolico 309 Če so izpolnjena merila za začetek zadnjega koraka (prikolica je že deloma znotraj parkirnega boksa in je deloma poravnana z boksom), začne sistem premikati tovornjak naprej in nazaj, obenem pa ga obrača. Tako poravna tovornjak znotraj boksa. Za to poskrbita ločena mehka regulatorja: eden za vožnjo naprej in eden za vožnjo nazaj. Oba izračunata želeno hitrost in kotno hitrost glede na (x, y) položaj prikolice. Na vožnjo naprej preklopimo, ko se prikolica približa zadnjemu robu boksa, na vožnjo nazaj pa preklopimo, ko se tovornjak približa prednjemu robu boksa. Vsakič, ko preklopimo z enega na drugi regulator, se števec poveča za ena. Proces parkiranja se konča, ko je bodisi tovornjak uspešno parkiran bodisi ta števec preseže določeno mejo (v našem sistemu 3). 3 Fizični model 3.1 Opis fizičnega modela Ker so bili vsi trije sistemi vodenja uspešni pri parkiranju simuliranega tovornjaka, smo jih uporabili na pomanjšanem fizičnem modelu tovornjaka s prikolico. Kot tovornjak smo uporabili 7,5 x 7,5 x 7,5 cm kockastega robota, prvotno namenjenega robotskemu nogometu. Prikolica je bila široka 7,5 cm in dolga 15 cm. Položaj tovornjaka in prikolice smo odčitavali s pomočjo barvne kamere, pritrjene na strop. Sistem umetnega vida je na posnetkih s kamere avtomatsko poiskal večbarvni nalepki, pritrjeni na vrh tovornjaka in prikolice, ter položaj le-teh posredoval glavnemu regulatorju na računalniku. Regulator je iz trenutnega položaja izračunal želeno hitrost in kotno hitrost ter ju po radijskem oddajniku posredoval tovornjaku. Tovornjak je bil sposoben z internimi pomožnimi regulatorji regulirati hitrost in kotno hitrost. Shema sistema je prikazana na sliki 8. Slika 8. Fizični model ter sistem vodenja Figure 8. The actual model and control system 3.2 Uspešnost Pri testiranju sistemov vodenja na simulaciji smo odpravili precej težav in napak. Ostale pa so nam težave, ki jih vnaša strojna oprema. Hitrosti tovornjaka namreč ne moremo nastavljati poljubno natančno, saj radijski sprejemnik na tovornjaku sprejema osembitna števila. Poleg tega tudi nimamo natančnih podatkov o položaju tovornjaka. Kamera lahko določi položaj nalepk na približno pol centimetra natančno, orientacijo pa približno na pet kotnih stopinj natančno. Kljub že omenjenim težavam lahko naš sistem vodenja uspešno parkira tovornjak s prikolico iz katerega koli začetnega položaja. Pri tem lahko vozi naprej in nazaj ali pa samo nazaj. Uspešno lahko tudi bočno parkira tovornjak v parkirnem boksu. Največja težava je manevriranje v boksu, a je tovornjak mogoče poravnati, če je na voljo dovolj prostora. Za zelo majhen parkirni boks bi bilo namreč treba premikanje tovornjaka voditi bolj natančno, kot to zmore naša strojna oprema. Zaporedja slik parkiranja so prikazana na sliki 9. Natančnejši rezultati so dostopni v obliki filmov na spletni strani: http://msc.fe.uni-lj.si/Icames/07/icames2007.htm 4 Sklep Sistem vodenja, ki smo ga razvili, je bil popolnoma uspešen v simuliranem okolju in se je v večini primerov izkazal za uspešnega tudi na fizičnem modelu kljub omejeni strojni opremi. Z zmanjšanjem mrtvega časa zaradi zajemanja slike ali povečanjem števila bitov D/A pretvornika bi lahko natančnost sistema še povečali in s tem omogočili bočno parkiranje v zelo majhne parkirne bokse. Težavam bi se morda lahko izognili tudi s kompleksnejšo metodo vodenja, npr. s prediktivnim vodenjem. Pokazali smo, da je avtomatsko parkiranje tovornjakov mogoče avtomatizirati s sprejemljivo natančnostjo in z relativno poceni pristopom. Največji izziv bo v prihodnosti uporaba drugačnih senzorjev (za praktično uporabo namreč ne moremo uporabiti kamere na stropu) in testiranje sistema na večjem vozilu. Slika 9. Rezultati parkiranja za realno napravo Figure 9. Parking results for the actual system 5 Literatura [1] C. Altafini, A. Speranzon, B. Wahlberg, »A Feedback Control Scheme for Reversing a Truck and Trailer Vehicle«, IEEE Transactions on Robotics and Automation, vol. 17, no. 6, pp 915-922, 2001. [2] H. Bromand, »Hybrid Control System for Reversing a Multibody Vehicle«, magistrska naloga, Stockholm, Royal Institute of Technology, 2004. [3] K. Tanaka et al., »Fuzzy Controller and Observer Design for Backing Control of a Trailer-Truck«,. Engineering Appications of Artificial Intelligence., vol. 10, no. 5, pp 441-452, 1997. [4] N. Zimic, M. Mraz, »Decomposition of a Complex Fuzzy Controller for the Truck&Trailer Reverse Parking Problem«, Mathematical and Computer Modelling, vol. 43, no. 5-6, pp 632-645, 2006. Domen Novak je leta 2008 diplomiral na Fakulteti za elektrotehniko v Ljubljani, kjer je trenutno zaposlen kot raziskovalec v Laboratoriju za robotiko in biomedicinsko tehniko. Dejan Dovžan je leta 2008 diplomiral na Fakulteti za elektrotehniko v Ljubljani, kjer je trenutno zaposlen kot mladi raziskovalec v Laboratoriju za modeliranje, simulacijo in vodenje. Rok Grebenšek zaključuje diplomsko delo na Fakulteti za elektrotehniko v Ljubljani. Simon Oblak je leta 2003 diplomiral na Fakulteti za elektrotehniko in se zaposlil kot mladi raziskovalec v Laboratoriju za modeliranje, simulacijo in vodenje. Leta 2008 je uspešno doktoriral. Trenutno je zaposlen v podjetju Iskraemeco. Lit