ERK'2020, Portorož, 196-199 196 Poligon z miniaturnimi avtomatsko vodenimi voziˇ cki za uˇ cenje in razvoj avtonomnih mobilnih sistemov Andrej Zdeˇ sar, Matevˇ z Boˇ snak, Gregor Klanˇ car Univerza v Ljubljani, Fakulteta za elektrotehniko, Trˇ zaˇ ska 25, 1000 Ljubljana, Slovenija E-poˇ sta:fandrej.zdesar, matevz.bosnak, gregor.klancarg@fe.uni-lj.si System of Small-Scale Automated Guided Vehicles for Education and Research of Autonomous Mobile Systems The paper presents a cyber-physical model of a scaled- down industrial warehouse with automated guided vehi- cles (AGVs). The platform consists of a network of lines with RFID-tags that mark drivable roads and crossroads, along which the AGVs can travel. Above the platform it is a vision system that enables global tracking of all the AGVs in real time. AGVs are made from 3D printed, mechanical and electronic parts. The kinematic model of the AGVs drive train is a front-wheel driven tricycle. Since not all of the essential sensors are available in ap- propriate small-scale version, some virtual sensors are introduced. Various modular subsystems are integrated together using the Robot Operating System (ROS). The complete system enables study, development and evalu- ation of algorithms for autonomous driving. Although it is mainly used for educational purposes in the graduate course Autonomous Mobile Systems, it is also suitable for research activities. 1 Uvod Na Univerzi v Ljubljani, Fakulteti za elektrotehniko se v drugem letniku magistrskega ˇ studija izvaja predmet Av- tonomni mobilni sistemi (AMS). Predmet je sestavljen iz treh ur predavanj in dveh ur laboratorijskih vaj tedensko. Namen laboratorijskih vaj je, da ˇ studenti samostojno im- plementirajo metode za avtonomne mobilne sisteme, ki so jih spoznali tekom predavanj, na praktiˇ cnem primeru. Laboratorijske vaje pri predmetu AMS so v preteklosti potekale v skupinah dveh ali treh ˇ studentov na razliˇ cne naˇ cine in na razliˇ cni opremi. Eno ˇ studijsko leto je vsaka skupina delala na svojem projektu (na razliˇ cnih mobilnih sistemih). Spet drugo leto so vsi ˇ studenti delali na istem projektu (na istem mobilnem sistemu), a vsaka skupina le na doloˇ cenem podsistemu — na koncu pa so podsis- temi, ki so jih razvile posamezne skupine morali delovati skupaj [1]. V zadnjih letih smo, zaradi naraˇ sˇ canja ˇ stevila ˇ studentov pri predmetu (od ˇ studijskega leta 2018/19 poteka predmet vzporedno tudi v angleˇ skem jeziku za ˇ studente na izme- njavi) in za dosego laˇ zje primerljivosti ˇ studentskega dela, vaje preoblikovali tako, da imajo vse skupine ˇ studentov MA VV Ref. znaˇ cka Sledilna ˇ crta RFID-znaˇ cka Slika 1: Fiziˇ cni model industrijske hale z MA VV-ji. enako nalogo, ki jo vsaka skupina izvaja na svojem mo- bilnem sistemu. Naloga je zasnovana tako, da so posto- poma obdelane vse glavne teme predavanj: modeliranje, vodenje, planiranje poti in lokalizacija. Po desetih ter- minih laboratorijskih vaj sledi ob zakljuˇ cku semestra za- govor vaj, ki poteka kot demonstracija delovanja avtono- mnega mobilnega sistema. Za izvedbo laboratorijskih vaj smo morali zagotoviti veˇ c enakih kolesnih mobilnih sistemov, ki omogoˇ cajo iz- vedbo vsebine obravnavane na predavanjih. Znan sistem, ki se tudi uporablja za namen uˇ cenja in razvoja algorit- mov za avtonomno voˇ znjo, je Duckietown [2], a je sistem veliko prevelik za vpeljavo v obstojeˇ co uˇ cilnico. V Labo- ratoriju za avtomatiko in kibernetiko (LAK) smo zato raz- vili fiziˇ cni model industrijske hale in miniaturne avtomat- sko vodene voziˇ cke (MA VV) ter pripadajoˇ ce pomoˇ zne sisteme (slika 1). Sistem predstavlja nadgradnjo naˇ sega predhodnega sistema, kjer smo imeli miniaturni poligon mesta in mobilne robote z diferencialnim pogonom [3]. V nadaljevanju je predstavljena zgradba celotnega sistema in moˇ znosti, ki jih sistem ponuja — ne le za pedagoˇ ske namene, temveˇ c tudi za raziskave in razvoj, npr. sledenje trajektoriji [4] ali voˇ znja veˇ c-agentov v formaciji [5] itd. Pri izdelavi MA VV-jev nismo zahtevali natanˇ cne pre- slikave dejanske situacije iz industrijskega okolja, saj vseh sistemov (npr. laserskega merilnika razdalj, pogonskega mehanizma) ni moˇ c primerno pomanjˇ sati. S fiziˇ cnim mo- delom tako posnemamo le tiste lastnosti avtomatsko vo- denih voziˇ ckov (A VV), ki so potrebne za uˇ cenje in razvoj algoritmov za avtonomno voˇ znjo. Za namen izvedbe pe- dagoˇ skega procesa smo ˇ zeleli, da sistem omogoˇ ca razvoj 197 algoritmov za avtonomno voˇ znjo, tako da je moˇ zna vsaj izvedba odometrije, vodenja mobilnega sistema po poti, naˇ crtovanje poti med poljubnimi cilji in lokalizacija mo- bilnega sistema v znanem zemljevidu okolja. Za namen raziskav in razvoja smo zaˇ zeli tudi, da sistem omogoˇ ca ˇ se razvoj algoritmov za veˇ c-agentno vodenje, naˇ crtovanje in optimizacijo poti veˇ c agentov, iskanje alternativnih poti in obvozov v primeru zastojev in/ali ovir in podobno. Zaradi boljˇ se povezljivost med razliˇ cnimi sistemi in modularnosti smo se odloˇ cili, da bomo uporabili okolje ROS (angl. Robot Operating System). 2 Poligon V industrijskih okoljih z A VV-ji se za oznaˇ cevanje poti mnogokrat uporabljajo magnetni trakovi, ki jih je mogoˇ ce zanesljivo zaznavati, in RFID-znaˇ cke, ki delujejo na pod- lagi radio frekvenˇ cne tehnologije, za oznaˇ cevanje imen poti in kriˇ ziˇ sˇ c. Naˇ s poligon je sestavljen iz omreˇ zja usmer- jenih poti, ki se v kriˇ ziˇ sˇ cih razdruˇ zijo v veˇ c poti ali pa se zdruˇ zijo v eno pot (slika 2). Pri miniaturizaciji mo- bilnega sistema smo v naˇ sem primeru uporabili optiˇ cni IR-senzor, ki omogoˇ ca detekcijo ˇ crte pod mobilnim siste- mom, in RFID-bralnik, ki omogoˇ ca branje RFID-znaˇ ck, ki se nahajajo na znanih poloˇ zajih ob poteh. Glede na iz- biro roba ˇ crte, ki mu sledimo, lahko v kriˇ ziˇ sˇ cu izberemo ˇ zeleno pot. RFID-znaˇ cke se ne nahajajo ob vseh poteh in tudi ne pred vsemi kriˇ ziˇ sˇ ci (na sliki 2 so poloˇ zaji RFID- znaˇ ck oznaˇ ceni s sinje modrimi oznakami). V osrednjem delu poligona imamo tudi t. i. prosto podroˇ cje, ki je brez sledilnih ˇ crt. V tem podroˇ cju mora navigacija mobilnega sistema biti izvedena s pomoˇ cjo do- datnih senzorjev, in ne na podlagi optiˇ cnega senzorja za sledenje ˇ crti. 2.1 Predstavitev zemljevida poligona z grafom Zemljevid poligona lahko zapiˇ semo v obliki grafa. Vsaka pot ima doloˇ ceno smer, ki jo v grafu predstavimo kot usmerjeno povezavo. V ozliˇ sˇ ca grafa predstavljajo kriˇ ziˇ sˇ ca, kjer se stikajo poti. Graf v programskem jeziku Python lahko zapiˇ semo s pomoˇ cjo gnezdenega slovarja (podat- kovni tipdict). Za namen planiranja poti in vodenja smo graf pred- stavili v ˇ se nekoliko prirejeni obliki. Mesta na poteh, kjer se nahajajo RFID-znaˇ cke, smo obravnavali kot postaje, kjer se mobilni sistem lahko ustavi oz. se odloˇ ci o svoji naslednji akciji — obiˇ cajno izbiramo le med sledenjem levemu ali desnemu robu ˇ crte. Ker se na vseh poteh ne nahajajo RFID-znaˇ cke, le te opremimo s t. i. virtual- nimi znaˇ ckami (njihov poloˇ zaj lahko doloˇ cimo le na pod- lagi odometrije/lokalizacije), ki jih tudi obravnavamo kot postaje. V ozliˇ sˇ ca v grafu torej predstavljajo vse znaˇ cke (postaje), poti med znaˇ ckami pa so usmerjene povezave v grafu (na sliki 2 so povezave med znaˇ ckami oznaˇ cene z modrimi, rdeˇ cimi in zelenimi ˇ crtami). V tej predstavi- tvi se doloˇ ceni deli poti med postajami torej prekrivajo. Za to predstavitev grafa smo pripravili program, ki avto- matsko pretvori prej omenjeno predstavitev zemljevida z grafom v to obliko. Pri tem smo upoˇ stevali tudi, da je Slika 2: Zemljevid z oznaˇ cenimi potmi in poloˇ zaji RFID- znaˇ ck (sinje modre oznake) ter virtualnih znaˇ ck (rumene oznake). poloˇ zaj RFID-senzorja izmaknjen glede na toˇ cko na mo- bilnem sistemu, ki sledi ˇ crti (glej poglavje 4). 3 Globalni sistem za merjenje lege s stroj- nim vidom Nad poligonom se nahaja kamera, ki omogoˇ ca sledenje vseh objektov, ki se gibljejo po ravnini poligona. Na vsa- kem robotu se nahaja posebna znaˇ cka z unikatnim vzor- cem, ki ga sistem s kamero lahko robustno zazna in doloˇ ci njegovo lego na sliki. Sledi opis postopka merjenja lege vseh znaˇ ck oz. mobilnih sistemov glede na poligon, pri ˇ cemer je lega kamere poljubna. Predpostavimo, da je koordinatni sistem kamere glede na svetovni koordinatni sistem podan z rotacijsko matriko R = [r 1 r 2 r 3 ] in translacijskim vektorjem t. Glede na perspektiviˇ cni model kamere je preslikava homogene toˇ ckep T W = [x W y W 1] na poljubni ravnini v prostoru in homogeno toˇ ckop T P = [x P y P 1] v koordinatnem sis- temu slike: p P /S r 1 r 2 t p W =Hp W ; (1) kjer matrika S vsebuje notranje (intrinziˇ cne) parametre kamere. MatrikoS lahko doloˇ cimo s kalibracijo, npr. z uporabo postopka s ˇ sahovnico [6]. Preslikava H v (1) je znana kot homografija — predstavlja preslikavo med dvema ravninama. HomografijoH lahko ocenimo na podlagi vsaj ˇ stirih korespondenˇ cnih parov toˇ ck v ravnini tal in slikovni rav- nini. Iz tega razloga se na poligonu nahajajo ˇ stiri re- ferenˇ cne znaˇ cke (slika 1), katerih poloˇ zaj glede na sve- tovni koordinatni sistem je znan. Za namen merjenja lege je vsak MA VV opremljen s posebno unikatno znaˇ cko. Med voˇ znjo MA VV-ja se znaˇ cka premika po ravnini, ki je vzporedna s tlemi, zato se poloˇ zaja MA VV-ja ne da oce- niti neposredno na podlagi homografijeH. Ker poznamo viˇ sino h, na katero je nameˇ sˇ cena znaˇ cka na MA VV-ju, lahko doloˇ cimo homografijoH h (h) za to vzporedno rav- nino na podlagi homografijeH. Poloˇ zaj znaˇ ckep P na sliki, ki se nahaja v vzporedni ravnini glede na ravnino 198 tal na viˇ sini h, lahko preslikamo na ravnino tal v toˇ cko p W , ki je pravokotna projekcija znaˇ cke na ravnino tal: p W /H 1 h (h)p P : Da lahko ocenimo homografijoH h (h) moramo po- znati intrinziˇ cne parametre kamereS: H h (h) =S q 1 q 2 (q 1 q 2 ) h n +q 3 ; (2) kjer parameter normiranjan doloˇ cimo kot: n = (kq 1 k+kq 2 k)=2: (3) Vektorjiq 1 doq 3 v (2) in (3) so: S 1 H = q 1 q 2 q 3 : Vse dokler se mobilni robot giblje le po ravnih tleh, predstavljena metoda omogoˇ ca zelo toˇ cno sledenje, saj so omejitve sistema implicitno upoˇ stevane v algoritmu za merjenje lege. Ker znaˇ cka ni rotacijsko invariantna, lahko doloˇ cimo tudi njeno orientacijo in tako celotno lego MA VV-ja v ravnini tal. Predstavljena metoda merjenja lege MA VV-jev deluje za poljubno postavitev kamere, dokler so vse znaˇ cke v vidnem polju kamere, a natanˇ cnost sistema je lahko spremenljiva. ˇ Ce ne pride do okluzij re- ferenˇ cnih znaˇ ck na podlagi, deluje metoda tudi med gi- banjem kamere, sicer pa se referenˇ cna homografija H izraˇ cuna le kadar so vidne vse ˇ stiri referenˇ cne znaˇ cke. Predstavljeni pristop je tudi raˇ cunsko uˇ cinkovit, tako da ne zahteva izredno zmogljive strojne opreme. Algo- ritem za merjenje lege veˇ c MA VV-jev smo implementi- rali na vgradnem sistemu Raspberry Pi 3 B+ s kamero Raspberry Pi Camera Board v2. Za sledenje znaˇ ck smo uporabili knjiˇ znico ArUco [7, 8], ki omogoˇ ca robustno in hitro sledenje znaˇ ck z unikatnimi vzorci, ki je neod- visno od osvetljenosti prostora. S sistemom smo dosegli sledenje veˇ c znaˇ ck in ocenjevanje lege MA VV-jev glede na svetovni koordinatni sistem s frekvenco 20Hz. Po- datki o legi MA VV-jev so na voljo v ROS-u na kanalutf, ki vsebuje podatke o preslikavah med koordinatnimi sis- temi. Sistem s strojnim vidom za merjenje lege omogoˇ ca hitro in enostavno postavitev, saj je potrebno nastaviti le poloˇ zaje referenˇ cnih znaˇ ck in viˇ sine posameznih znaˇ ck na MA VV-jih ter doloˇ citi notranje parametre kamere (npr. s standardnim postopkom za kalibracijo kamere). 4 Miniaturni avtomatsko vodeni voziˇ cki ˇ Zeleli smo izdelati MA VV s kinematiˇ cnim modelom tri- kolesnika, ki ima gnano prednje kolo. 4.1 Zgradba Prednji pogonski del smo izdelali z voziˇ ckom z diferen- cialnim pogonom, ki je na ˇ sasijo pritrjen pasivno preko leˇ zaja. Takˇ sna oblika mehanskega mehanizma je bila naj- bolj enostavna za izvedbo, pri tem pa smo ˇ se vedno dose- gli ˇ zeleni kinematiˇ cni model. Zgradba MA VV-ja z glav- nimi sestavnimi deli je prikazana na sliki 3. MA VV smo opremili z veˇ c senzorji, ki omogoˇ cajo implementacijo algoritmov za avtonomno voˇ znjo. Mo- torja na prednjem voziˇ cku, ki ˇ zeneta obe kolesi, sta opre- mljena z inkrementalnim enkoderjem. Poleg tega imamo Desni motor z enkoderjem Prednje levo kolo Prednje desno kolo Zadnje levo kolo Raˇ cunalnik Baterija Absolutni enkoder Drsni obroˇ c Leˇ zaj Optiˇ cni detektor ˇ crte RFID-bralnik ˇ Sasija Prednji voziˇ cek Slika 3: Zgradba MA VV-ja v prerezu. ˇ se absolutni enkoder, ki omogoˇ ca merjenje kota pred- njega voziˇ cka glede na ˇ sasijo. Na dnu prednjega voziˇ cka se nahaja namensko tiskano vezje z mikrokrmilnikom, ki skrbi za nizkonivojsko obdelavo signalov v realnem ˇ casu in regulacijo hitrosti vrtenja motorjev. Na tiskanem vezju se nahaja tudi 7 segmentni optiˇ cni detektor ˇ crte. Zadnji kolesi sta pasivni in v trenutni izvedbi nista opremljeni z enkoderji. Na spodnjem delu ˇ sasije se na- haja ˇ se RFID-bralnik. Za obdelavo informacij s senzorjev, komunikacijo z zunanjimi sistemi in izvedbo regulacijskih algoritmov za avtonomno voˇ znjo se znotraj ˇ sasije nahaja raˇ cunalnik Ra- spberry Pi Zero W. V ˇ sasiji se nahaja ˇ se baterija. 4.2 Dodatni virtualni senzorji Zaradi majhnosti MA VV-ja, smo omejeni z naborom sen- zorjev, ki jih lahko uporabimo, saj doloˇ cenih senzorjev, ki se obiˇ cajno uporabljajo na A VV-jih, ni na voljo v tako majhni izvedbi. Takˇ sen primer je laserski merilnik raz- dalj (LMR), ki je pri sodelujoˇ cih A VV-jih obiˇ cajno obve- zen kot varnostni element. A VV-ji so lahko opremljeni celo z veˇ c LMR-ji, ki omogoˇ cajo pokrivanje ˇ cim veˇ cjega vidnega kota. LMR-ji se pogosto uporabljajo za namen lokalizacije in gradnje zemljevida okolja [9]. ˇ Ceprav LMR-ja ne moremo primerno pomanjˇ sati, da bi ga vgradili na MA VV , pa lahko simuliramo meritve tega senzorja. Globalni sistem s strojnim vidom nam omogoˇ ca merjenje leg MA VV-jev, poznamo pa tudi nji- hove oblike in obliko poligona. Oblike vseh objektov lahko opiˇ semo z daljicami, nato pa uporabimo algoritem za detekcijo preseˇ ciˇ sˇ c laserskih ˇ zarkov z daljicami ovir. Algoritem se sprehodi ˇ cez vse daljice vseh objektov, ki predstavljajo statiˇ cne ali dinamiˇ cne ovire, pri ˇ cemer za vsako daljico naredimo naslednje (slika 4): 1. ˇ Ce sta a in b robni toˇ cki daljice zapisani v ho- mogenih koordinatah, potem je premica skozi ti dve toˇ cki l ab = a b in enotski vektor daljice e ab = b a kb ak . 2. Za vsak ˇ zarek LMR-ja l = [ sin( ) cos( )x 0 sin( ) y 0 cos( )] naredimo naslednje: 199 0 (x 0 ;y 0 ) l a b p l ab Svet Laser Slika 4: Modeliranje laserskega merilnika razdalj. (a) Poiˇ sˇ cemo preseˇ ciˇ sˇ ce p = [xy ] T =l l ab ˇ zarka s premico daljice in izraˇ cunamo faktor q =e T ab ( p a). (b) ˇ Ce velja 0 q 1, potem preseˇ ciˇ sˇ cep leˇ zi na daljici. V tem primeru izraˇ cunamo razda- ljor od objekta do izhodiˇ sˇ ca laserskega me- rilnika (v smeri vektorja ˇ zarka): r = ( p T p T 0 ) cos sin 0 T : ˇ Ce velja0 r r max in ˇ ce jer tudi manjˇ si od trenutne najkrajˇ se razdaljer , posodobimo najkrajˇ so razdaljo:r =r. Virtualni LMR lahko namestimo glede na katerikoli koordinatni sistem (npr. na prednji del MA VV-ja). Na- stavimo lahko razliˇ cne parametre senzorja, kot so doseg, natanˇ cnost, vidni kot, kotna loˇ cljivost itd. Podatke me- ritev podamo v obliki standardnega ROS-sporoˇ cila tipa sensor msgs/LaserScan. S staliˇ sˇ ca podatkov ne moremo loˇ citi med naˇ cinom uporabe realnega ali virtu- alnega senzorja. Virtualni senzor ne more zaznati objek- tov, katerih leg ne poznamo oz. jih ne merimo z global- nim sistemom za merjenje lege — poleg MA VV-jev lahko z znaˇ ckami oznaˇ cimo tudi druge objekte na poligonu in tako omogoˇ cimo zaznavanje tudi teh. Na sliki 5 je vizualizacija laserskih meritev (vijoliˇ cne toˇ cke) v orodju RViz (del okolja ROS), kjer se laserski merilnik razdalj nahaja na vijoliˇ cnem MA VV-ju. Vidimo odboje laserskih ˇ zarkov na zelenem, modrem in rumenem MA VV-ju, ne pa tudi na sinje modrem MA VV-ju, saj je zasenˇ cen z zelenim MA VV-jem; rdeˇ ci MA VV pa je izven vidnega kota senzorja. Zaradi omejenega dosega senzor ne zaznava objektov, ki so preveˇ c oddaljeni. 5 Zakljuˇ cek V ˇ clanku smo predstavili zgradbo miniaturnih avtomat- sko vodenih voziˇ ckov, poligona in podpornih sistemov, ki omogoˇ ca uˇ cenje in tudi razvoj algoritmov za avtono- mno voˇ znjo. ˇ Ceprav fizikalne lastnosti dejanskih A VV- jev niso natanˇ cno posnemane, MA VV-ji omogoˇ cajo ˇ studijo Slika 5: Vizualizacija meritev LMR-ja, leg MA VV-jev in naˇ crtovanih poti v orodju RViz. vseh esencialnih problemov, ki se pojavljajo pri razvoju avtonomnih mobilnih sistemov. Sistem je modularen in ga je moˇ zno enostavno in hitro prilagoditi za ˇ zelene na- mene. V prihodnosti imamo v naˇ crtu opremiti MA VV-je z dodatnimi senzorji (kamera, senzorji bliˇ zine idr.). V naˇ crtu pa je tudi nadgradnja sistema, ki bo omogoˇ cala oddaljen dostop do sistema in opravljanje laboratorijskih vaj oz. preizkusov na daljavo. Zahvala Raziskovalni program ˇ st. P2-0219 je sofinancirala Javna agencija za raziskovalno dejavnost Republike Slovenije iz drˇ zavnega proraˇ cuna. Literatura [1] A. Zdeˇ sar, S. Blaˇ ziˇ c, and G. Klanˇ car, “Engineering education in wheeled mobile robotics,” IFAC-PapersOnLine, vol. 50, no. 1, pp. 12173 – 12178, 2017. 20th IFAC World Congress. [2] L. Paull, J. Tani, H. Ahn, J. Alonso-Mora, L. Carlone, M. Cap, Y . F. Chen, C. Choi, J. Dusek, Y . Fang, et al., “Duckietown: an open, inexpensive and flexible platform for autonomy education and research,” in 2017 IEEE International Conference on Robotics and Automation (ICRA), pp. 1497–1504, IEEE, 2017. [3] M. Tavˇ car, U. Skalar, J. Perko, and A. Zdeˇ sar, “Implementation of model-based control systems for autonomous driving of miniature robotic vehicles,” in Proceedings of the 27th International Elec- trotechnical and Computer Science Conference ERK, pp. 131–134, IEEE, 2018. [4] G. Klanˇ car and I. ˇ Skrjanc, “Tracking-error model-based predictive control for mobile robots in real time,” Robotics and autonomous systems, vol. 55, no. 6, pp. 460–469, 2007. [5] G. Klanˇ car, D. Matko, and S. Blaˇ ziˇ c, “A control strategy for plato- ons of differential drive wheeled mobile robot,” Robotics and Au- tonomous Systems, vol. 59, no. 2, pp. 57–64, 2011. [6] Z. Zhang, “A flexible new technique for camera calibration,” IEEE Transactions on pattern analysis and machine intelligence, vol. 22, no. 11, pp. 1330–1334, 2000. [7] S. Garrido-Jurado, R. Mu˜ noz-Salinas, F. J. Madrid-Cuevas, and R. Medina-Carnicer, “Generation of fiducial marker dictionaries using mixed integer linear programming,” Pattern Recognition, vol. 51, pp. 481–491, 2016. [8] F. J. Romero-Ramirez, R. Mu˜ noz-Salinas, and R. Medina-Carnicer, “Speeded up detection of squared fiducial markers,” Image and vi- sion Computing, vol. 76, pp. 38–47, 2018. [9] L. Tesli´ c, I. ˇ Skrjanc, and G. Klanˇ car, “Using a lrf sensor in the kalman-filtering-based localization of a mobile robot,” ISA tran- sactions, vol. 49, no. 1, pp. 145–153, 2010.