Sistem za detekcijo ovir na osnovi kamere z vgrajenim slikovnim procesorjem Lovro KUŠČER, Aleš GORKIČ, Janez DIACI Povzetek: V članku je predstavljen razvoj senzorskega sistema na osnovi laserske profilometrije, ki omogoča detekcijo ovir pri vožnji mobilnega robota po ravni podlagi. Sistem je zgrajen na osnovi triangulacijskega merilnega modula, ki ga sestavljata laserski črtni projektor in digitalna videokamera z vgrajenim slikovnim procesorjem. Modul zajema profile, ki omogočajo robotu tridimenzionalno zaznavo okoliškega prostora s frekvenco do 200 meritev na sekundo in jih posreduje vgrajenemu osebnemu računalniku. Ta analizira zajete profile v realnem času, iz njih izlušči ovire in vodi robot tako, da se oviram izogne. V članku sta predstavljeni zasnova in realizacija mobilnega robota in njegovega optičnega in optoelektronskega podsistema. Obravnavane so najpomembnejše značilnosti uporabljene strojne in razvite programske opreme. Opisan je algoritem, ki omogoča detekcijo ovir na osnovi analize zajetih profilov v realnem času. Opisani so eksperimenti, v katerih je bil sistem preizkušen v laboratorijskem okolju. Ključne besede: mobilni robot, detekcija ovir, optična triangulacija, laserska profilometrija, obdelava slike ■ 1 Uvod Avtonomni mobilni roboti se danes uporabljajo na številnih področjih, kjer morajo velikokrat delovati v spremenljivih in nepredvidljivih okoljih. Zato morajo biti sposobni zanesljivega zaznavanja ovir, kar predstavlja enega izmed velikih izzivov na področju razvoja avtonomnih mobilnih robotov. Mobilni robot mora biti sposoben zaznati ovire, ki bi mu lahko zaprle pot, in se jim pravočasno izogniti ter nato nadaljevati operacije, ki so v skladu z njegovim ciljem. Zaznavanje ovir, ki se človeku zdi enostavno, je za robot zahtevna naloga in je zato Lovro Kuščer, univ. dipl. inž., dr. Aleš Gorkič, univ. dipl. inž., izr. prof. dr. Janez Diaci, univ. dipl. inž; vsi Univerza v Ljubljani, Fakulteta za strojništvo še vedno tema številnih raziskav. Rezultat tega so senzorski sistemi, ki so zasnovani na različnih tehnologijah, na osnovi katerih lahko sisteme za zaznavanje ovir razdelimo v dve skupini. V prvo sodijo sistemi z uporabljenimi točkovnimi ultrazvočnimi in/ali infrardečimi senzorji [1], ki so primerni za hitro in enostavno zaznavanje ovir, vendar pa imajo velike pomanjkljivosti, kadar gre za ovire z zapleteno 3D-obliko. V drugo skupino pa sodijo sistemi, ki temeljijo na zajemanju in procesiranju slik [2] V tej skupini najdemo sisteme, ki te meljijo na stereovidu, in sisteme, ki uporabljajo laserske daljinomere oz profilomere [3, 4]. Sistemi, zasnovan na stereovidu, imajo dobro zaneslji vost pri detekciji prostorskih oblik vendar pa se pojavljajo omejitve kadar gre za objekte z neizrazitimi teksturami. Sistemi z laserskimi pro-filomeri zagotavljajo veliko natančnost in zanesljivost. Poleg tega omogočajo tudi detekcijo objektov kompleksnih oblik, vendar je za to potrebno izvajati premikanje laserskega izvora ali celotnega merilnega modula, kar poveča kompleksnost takšnega sistema. Možne pa so tudi rešitve z več merilnimi moduli. V članku sta predstavljena zasnova in potek razvoja senzorskega sistema na osnovi laserske profilometrije, ki omogoča detekcijo ovir pri vožnji po ravni podlagi. Sistem je zgrajen na osnovi triangulacijskega merilnega modula, ki ga sestavljata laserski črtni projektor in digitalna videokamera z vgrajenim slikovnim procesorjem. Predstavljena je programska oprema, ki je bila razvita za potrebe detekcije ovir in krmiljenja mobilnega robota. Prikazani so tudi rezultati testiranj v laboratorijskem okolju. ■ 2 Sistem za detekcijo ovir Za detekcijo ovir z metodo laserske triangulacije (slika 7) potrebujemo Slika 1. Detekcija ovir z lasersko triangulacijo slikovni senzor in vir strukturirane laserske svetlobe, ki oddaja točkovni, črtni ali mrežni svetlobni vzorec. Ko se pred mobilnim robotom pojavi ovira, se laserska svetloba od nje odbije, kar zazna slikovni senzor. Iz položaja laserskega svetlobnega vzorca na sliki je možno določiti oddaljenost ovire od mobilnega robota. Pogoj za detekcijo je torej ustrezen difuzni odboj laserske svetlobe od površine ovire, kar pomeni, da prozornih ali slabo oziroma zrcalno odbojnih površin na ta način ne moremo zaznati. Za izločanje laserske črte iz slike obstaja veliko algoritmov, ki se razlikujejo po učinkovitosti in zahtevanih procesnih zmogljivostih. Zato je potrebno poiskati ustrezno razmerje med zanesljivostjo in hitrostjo. Izločanje laserske črte iz slike v našem primeru izvaja digitalna videokamera z vgrajenim slikovnim procesorjem, ki je bila razvita za uporabo pri hitri laserski triangulaciji [5]. Omogoča zajemanje in procesiranje do 200 slik na sekundo pri ločljivosti 502 x 667 slikovnih točk. Za izvor laserske svetlobe sta uporabljena dva črtna laserska projektorja, ki sta nameščena tako, da projicirata lasersko ravnino vzporedno s tlemi. Kot pahljače, pod katerim se širi laserska ravnina, sestavljena iz obeh žarkov, je lahko od 45° do 90°, odvisno od postavitve laserskih projektorjev. Kamera je postavljena nad lasersko ravnino in vpeta na nosilcu, ki omogoča nastavljanje višine in naklona (slika 2). Tako je mogoče spreminjati triangulacijski kot med optično osjo kamere in lasersko ravnino, s čimer vplivamo na vidno območje kamere in s tem posledično na območje zaznavanja ovir. Ker želimo zaznavati ovire v čim večjem območju, smo uporabili širokokotni objektiv z goriščno razdaljo 4,5 mm ter vidnim kotom 60° v vodoravni ravnini. Ločljivost senzorskega sistema znaša 0,12° v horizontalni smeri, v vertikalni smeri pa 0,0075° zaradi podtočkovne detekcije laserske črte, ki se izvede v slikovnem procesorju v Slika 2. Postavitev kamere in laserskih črtnih projektorjev na mobilnem robotu Slika 3. Shema mehatronskega sistema na mobilnem robotu kameri. Eksperimenti so pokazali, da izbrani širokokotni objektiv zagotavlja sprejemljivo ločljivost in območje detekcije. 3 Zgradba in delovanje mobilnega robota Mobilni robot zaznava okolico preko digitalne videokamere, ki s svojim vgrajenim slikovnim procesorjem iz slike že izloči položaj laserske črte. Te podatke nato pošlje mikroračunalniku, ki je pomanjšan osebni računalnik s procesorjem, ki deluje s frekvenco 1 GHz in z 1 GB delovnega spomina. Nanj je naložen operacijski sistem Microsoft Windows XP. Mikroračunalnik prejete senzorske podatke interpretira in na tej osnovi usmerja in vodi gibanje mobilnega robota. Želeni premik robota se izvede s pošiljanjem ustreznega ukaza podsistemu za krmiljenje elektromotorjev, ki je sestavljen iz 8-bitnega mikrokrmilnika in močnostnega vmesnika (slika 3 in 4). Poleg naštetih gradnikov je na mikroračunalnik prikljUen tudi modul WLAN, ki omogoča povezovanje mobilnega robota v brezžično lokalno omrežje. Tako je možen dostop do mikroračunalnika na mobilnem robotu iz kateregakoli osebnega računalnika v tem brezžičnem omrežju, z uporabo ustrezne programske opreme pa tudi dostop preko interneta. Na ta način je omogočen vpogled v delovanje mobilnega robota, kar je še posebej koristno v fazi razvoja krmilnih algoritmov in algoritmov za detekcijo ovir. 4 Algoritmi in programska oprema Med avtonomnim delovanjem mobilnega robota digitalna videokamera zajema sliko (slika 5a) in s svojim vgrajenim slikovnim procesorjem iz nje izloča laserske črte na podlagi intenzitete svetlobe. Zaradi motenj iz okolice, ki imajo lahko večjo intenziteto kot laserska črta, je uporabljen optični filter (slika 5b), ki prepušča samo ozek pas valovnih dolžin okoli valovne dolžine laserske svetlobe. Iz slike 5b nato slikovni procesor v kameri izloči laserski profil (slika 5c). Slika 4. CAD-model in izdelan mobilni robot V nadaljevanju torej namesto celotne slike prenašamo in obdelujemo samo laserski profil, s čimer smo količino podatkov zmanjšali za približno 200-krat. Potrebna hitrost prenosa podatkov se tako zmanjša s 83 MB/s na 400 KB/s. Izločeni laserski profil nato obdela še mikroračunalnik, ki posamezne dele interpretira kot ovire oziroma kot steno (slika 5d). jim je potrebno izogniti, ter stene, ki ji mora slediti. Razpoznavanje objektov (razlikovanje med steno in ovirami) temelji na analizi oblike in položaja laserske črte. Programski modul, ki realizira ta algoritem, je sestavni del programa za krmiljenje robota, katerega uporabniški vmesnik je prikazan na sliki 6. V osrednjem delu vidimo grafični prikaz podatkov iz laserskega Slika 5. Zaznavanje objektov Za določitev položaja zaznanih objektov je potrebno predhodno umeriti laserski triangulacijski sistem. Umerjanje poteka s postavljanjem prizmatičnega objekta znanih dimenzij (80 mm x 50 mm x 50 mm) na znane razdalje, izmerjene z referenčnim merilnim sistemom. Običajno zadošča umerjanje v petih referenčnih točkah [6], s čimer zadovoljivo popišemo umeritveno krivuljo, s pomočjo katere lahko za vsako točko v laserskem profilu določimo položaj glede na mobilni robot. Razviti algoritem omogoča razpoznavo dveh vrst objektov v robotovi okolici: ovir, ki mu zapirajo pot in se triangulacijskega sistema z označenimi objekti, ki jih je program razpoznal. Poleg grafičnih informacij lahko vidimo tudi parametre zaznanih objektov, ki so prikazani na desni strani okna. Tu lahko preberemo lokacijo začetne in končne točke ovire, dolžino projekcije ovire in povprečno oddaljenost ovire oziroma stene od robota. Na podlagi teh informacij lahko robot izvede ustrezen manever izmikanja oviri oziroma sledenja steni. Za sledenje steni je potrebno predhodno nastaviti referenčno oddaljenost. Trenutno oddaljenost robota od stene nato krmilimo z diskretnim Pl-krmilnikom, katerega nastavitve so bile določene na podlagi eksperimentov. Slika 6. Uporabniški vmesnik programa za krmiljenje robota Program za krmiljenje robota je bil razvit v razvojnem okolju Microsoft Visual Studio in je napisan v programskem jeziku C#. Razviti algoritmi za razpoznavanje objektov in krmiljenje robota pa niso vezani na določen programski jezik ali razvojno okolje in jih je možno prenesti tudi na druge platforme. ■ 5 Testiranja Testiranja mobilnega robota so bila izvedena v laboratorijskem okolju. Izvedenih je bilo več testov in meritev, s katerimi smo preverjali učinkovitost različnih načinov delovanja ter skušali določiti lastnosti celotnega sistema. Najprej smo preizkusili delovanje laserskega triangulacijske-ga sistema. Osnovni podatki, ki jih dobimo iz tega senzorskega sistema, so razdalje oziroma položaji objektov. Če sočasno z zajemanjem teh podatkov merimo še čas, dobimo časovni potek spreminjanja razdalj. Od tu pa lahko z odvajanjem dobimo hitrosti in pospeške. V ilustracijo predstavljamo na sliki 7 rezultate poskusa, delu pa je prikazan časovni potek hitrosti približevanja oviri. Frekvenca izvajanja meritev je odvisna od časa, ki je potreben za zajem in obdelavo slike. Zaradi uporabe kamere z vgrajenim slikovnim procesorjem je možno obdelati do 200 slik na sekundo. Procesiranje zajetega profila na mikroračunalniku traja manj kot 3 ms. Največjo omejitev v celotni krmilni zanki v sedanji izvedbi predstavlja osvetlitveni čas senzorja, ki znaša 30 ms. Z uporabo laserskih projektorjev večje izhodne moči je mogoče to omejitev znižati. Za testiranje avtonomnega delovanja mobilnega robota smo izbrali sledenje steni. Najprej smo nastavili referenčno oddaljenost robota od stene, nato pa robot postavili na neko večjo razdaljo. V krmilnem programu smo izbrali možnost samodejnega sledenja steni in pri tem sproti shranjevali podatke o oddaljenosti od stene. Posneti podatki pri sledenju steni so prikazani v grafu na sliki 8. Vidimo lahko, daje bil robot na začetku od stene oddaljen 300 mm, potem pa je oddaljenost od stene skušal približati Slika 7. Časovni potek poti (levo) in hitrosti (desno) robota med približevanjem oviri in oddaljevanjem od nje Slika 8. Oddaljenost od stene pri avtonomnem delovanju pri katerem seje robot približeval in oddaljeval od mirujoče ovire. Pri tem smo na mikroračunalniku beležili oddaljenost od ovire in trenutni čas. V levem delu slike 7 vidimo časovni potek približevanja oviri, v desnem referenčni razdalji, ki je bila 190 mm. Prenihanje, ki ga opazimo na začetku, je posledica nastavitev diskretnega Pl-krmilnika. Če opazujemo absolutne vrednosti odstopkov od referenčne vrednosti, vidimo, da redko presežejo vrednost 5 mm. Če med sledenjem steni robot zazna oviro, zmanjša hitrost, se oviri izogne in nadaljuje s sledenjem steni (slika 9). Z razvitim krmilnim programom je možno tudi sledenje steni v vogalu in sledenje ukrivljeni steni. Slika 9. Izmikanje mobilnega robota oviri ■ 6 Zaključek V članku je predstavljen razvoj sistema za detekcijo ovir pri mobilnih robotih, ki temelji na laserski profi-lometriji. Izkazalo se je, da je sistem zmožen hitrega in zanesljivega zaznavanja ovir, pri čemer so izvzete prozorne in slabo oziroma močno odbojne površine. Za prikaz zmogljivosti in uporabnosti senzorskega sistema je bil razvit in preizkušen algoritem za sledenje steni in izmikanje oviram. Zaradi natančnih podatkov o položaju objektov v okolici mobilnega robota je mogoče njegovo gibanje prilagoditi razmeram. To pomeni, da je potek izmikanja oviri odvisen od velikosti in oblike ovire. Slabost razvitega senzorskega sistema je, da omogoča zaznavanje samo v območju projicirane laserske ravnine, kar pomeni, da previsnih ovir ni mogoče zaznati. Ta problem je mogoče rešiti z drugačnimi postavitvami laserskega triangulacijskega sistema oziroma z rešitvami, ki uporabljajo veččrtne ali mrežne laserske projektorje oziroma omogočajo premikanje laserske ravnine. Literatura [1 ] H. R. Everett: Sensors for Mobile Robots: Theory and Application; A. K. Peters, Ltd. (June 1995). [2] Stefan Florczyk: Robot Vision: Video-based Indoor Exploration with Autonomous and Mobile Robots; Wiley-VCH (April 22, 2005). [3] S. Soumare, A. Ohya, S. Yuta: Real-Time Obstacle Avoidance by an Autonomous Mobile Robot using an Active Vision Sensor and a Vertically Emitted Laser Slit; Intelligent Autonomous Systems 7, lOS Press, str. 301-308 (2002). [4] S. Klančnik, J. Balič, P. Planinšič: Obstacle Detection with Active Laser Triangulation; Advances in Production Engineering & Management Journal, 2 (2007) 2, str. 79-90. [5] A. Gorkič: Optodinamska ka-rakterizacija in nadzor laserskih obdelovalnih procesov z večvrstnimi laserskimi bliski; doktorsko delo, Fakulteta za strojništvo, Ljubljana, 2007. [6] L. Kuščer: Sistem za detekcijo ovir pri vožnji mobilnega robota na osnovi kamere z vgrajenim slikovnim procesorjem; diplomska naloga, Fakulteta za strojništvo, Ljubljana, 2008. An obstacle-detection system based on a camera with an embedded image processor Abstract: The article presents the development of a sensor system based on laser profilometry, which enables a mobile robot to detect obstacles while moving over flat ground. The system incorporates a laser triangulation measurement module consisting of a laser sheet projector and a digital video camera with an integrated image processor. The module acquires 3D profiles of the surrounding objects, allowing the robot to make a three-dimensional (3D) measurement of the surrounding space with rates of up to 200 measurements per second. The acquired profiles are transferred to a personal computer, where they are analyzed in real time with the aim to identify the obstacles in the robot's way and to guide the robot in such a way that collisions with obstacles are prevented. The article presents the concept and realization of the robot with a special emphasis on its optical and opto-electronic subsystem. The basic characteristics of the employed hardware and the developed software are treated. The algorithm that allows detection of obstacles in real-time is described. The laboratory experiments are presented, and these show the functionality of the robot and its obstacle-detection system. Keywords: mobile robot, obstacle detection, optical triangulation, laser profilometry, image processing