URPI FEI STU Bratislava
Bratislava
Tento tým z Bratislavy předvedl, že i během celodenního klání je možné na robotu pracovat a že existují výjimky, kdy se dá něco vylepšit. To bylo vidět na stále lepších výsledcích z jednotlivých kol, kdy poslední, nejlepší, kolo zajistilo týmu URPI FEI STU Bratislava druhé místo.
Súťaž mobilných robotov ROBOTOUR 2007
Marian Kľúčik, Roman Murár, Ľubomír Petrovič, František Duchoň
Abstrakt
Príspevok pojednáva o prístupe autorov, k riešeniu problematiky riadenia
mobilného robota na súťaži ROBOTOUR 2007. V príspevku je popísaný hardvér
robota – jeho senzory, pohonný systém, napájanie a tiež riadiaci systém. V
ďalších častiach je popísaný prístup k riadeniu robota v podmienkach súťaže a
tiež je popísané využitie hardvéru robota.
Úvod
Sme zamestnanci a doktorandi Ústavu riadenia a priemyselnej informatiky Fakulty
elektrotechniky a informatiky STU v Bratislave. Na našom oddelení sa zaoberáme
robotikou a umelou inteligenciou. V súčasnosti sú na našom pracovisku k
dispozícii dva výkonnejšie mobilné robotické systémy – jeden pre indoor
(vnútorné) priestory [1], ktorý je vyobrazený na obr. 1. a jeden pre outdoor
(vonkajšie) priestory, s ktorým sme sa zúčastnili súťaže a predstavíme ho
neskôr.
Mobilná robotika je v súčasnosti dynamicky sa rozvíjajúcim priemyselným
odvetvím. Mobilné roboty vytvárajú nové možnosti automatizácie rôznych
činností, využívajú sa pri činnostiach v nebezpečnom prostredí, alebo pri
plnení úloh v náročných fyzikálnych podmienkach napr. na dne mora pri hľadaní
nerastných surovín, v prieskume kráterov sopiek, čiže v prostrediach
nebezpečných, alebo z iného dôvodu neprístupných človeku a samozrejme tiež pre
uľahčenie práce v rôznych odvetviach. V bežnom použití sa dnes už vyskytujú
roboty, ktoré pomáhajú v domácnosti – automatické vysávače, automatické kosačky
alebo tiež ako „obsluhujúci personál“ v nemocniciach. Čoraz častejšie sa
objavujú mobilné roboty s komplexnejším správaním, zatiaľ len s použitím v
armáde alebo na súťažiach. Súťaž je menej agresívna metóda zmerať schopnosti a
možnosti rôznych pracovísk a ľudí. Myšlienka zúčastniť sa na súťaži ROBOTOUR
vznikla niekedy pred letnými prázdninami tohto roku – ale v tomto období nebol
ešte k dispozícii vhodný mobilný robot. Vhodný hardvér bol získaný približne
mesiac pred súťažou. V nasledujúcich častiach je celkovo predstavený mobilný
robot a naznačený prístup k riešeniu riadiaceho systému.
Vybavenie robota MRVK-01
Robot, ktorý bol predvedený na súťaži dala naša fakulta v rámci programu VEGA
[2] vyrobiť v ZŤS VVÚ Košice, a. s. Vzhľadom na to, že pracovisko sa zaoberá
prevažne riadením, vždy bol problém vyrobiť mechanický podvozok, ktorý by
podliehal náročným kritériám. Robot MRVK-01 zobrazený na obr. 2, tieto náročné
kritériá spĺňa. Robot má štvorkolesový podvozok s diferenčným spôsobom
riadenia pohybu, ktorý je schopný prejazdu členitejším terénom. Základom
pohonného systému sú dva jednosmerné motory.
Prevod krútiaceho momentu z motorov na kolesá je riešený dvojstupňovými
prevodovkami. Prevodový pomer teda možno meniť v troch stupňoch: 1:1, 1:2 a
neutrál. Na výstupných hriadeľoch dvojstupňovej prevodovky sú umiestnené
prevodovky SPINEA [3] s pevným prevodovým pomerom. Otáčky hriadeľa motora a
otáčky výstupného hriadeľa sú snímané rotačnými inkrementálnymi snímačmi, ktoré
sa dajú využiť na odometriu. Robot je napájaný z dvoch akumulátorových paketov,
z ktorých jeden je tvorený jedenástimi NiMH článkami, každý s nominálnym
napätím 1,2 V. Kapacita jednej sady batérií je 15Ah.
Jedným z hlavných senzorov, ktoré máme na robote k dispozícii je farebná
kamera FCB-IX11AP (1/4" super HAD CCD, 40x ZOOM (10x optický / 4x digitálny),
460 TVr)[4]. Kamera je polohovaná dvojicou servopohonov. Je ju možné polohovať
v horizontálnej rovine v rozsahu -120° až +180° a vo vertikálnej rovine v
rozsahu -30° až +90°. Ďalším senzorom je laserový skener Hokuyo URG-04LX [5].
Skener sníma len vo vodorovnej rovine, s dosahom takmer 4m, s rozlíšením 1mm,
uhlovým rozlíšením 0.36° a rozsahom skenovania 260°. Dôležitým prístrojom
(hlavne pre súťaž) je GPS prijímač GARMIN GPS 18-5Hz [6]. Robot je vybavený
snímačmi pre sledovanie pohybu a orientácie robota v priestore: gyroskopy
ADIS16250, dvojosový inklinometer/akcelerometer ADIS16201, jednoosové
akcelerometre ADXL103, jednoosový inklinometer ADIS16203 [7], elektronický
kompas CMPS03 [8] a potenciometer snímajúci vzájomný uhol natočenia ramien, na
ktorých sú upevnené kolesá robota. Medzi bezpečnostné senzory patrí šesť
ultrazvukových snímačov vzdialenosti MaxSonar EZ-1 a tiež po bokoch sú ďalšie
ultrazvukové snímače vzdialenosti SRF08.
Základným riadiacim systémom je priemyselný počítač od firmy Advantech.
Procesor má taktovaciu frekvenciu 400MHz, operačnú pamäť 256 MB RAM a 1GB HDD
typu Compact Flash. Okrem rozhraní pre myš, klávesnicu, SVGA, 2xUSB, LAN, tento
počítač disponuje aj štyrmi komunikačnými portami - RS232, RS422 alebo RS485 a
jedným PCMCIA slotom. K počítaču je tiež pripojený 54 Mbps multifunkčný
bezdrôtový 2,4GHz access point WL-5460AP pre bezdrôtovú komunikáciu robota s
prípadným operátorským počítačom. Osobitne je možný prenos aj videosignálu – je
to zabezpečené pomocou bezdrôtového 5.8 GHz video vysielača VideoComm TX-5808.
Príjem videosignálu je možný prijímačom VideoComm RX-5808 [9].
Implementácia riadenia
Robot bol dodaný len so základnými procedúrami, ktoré vývojári nevyhnutne
potrebovali pre otestovanie jednotlivých subsystémov robota. Takáto bola aj
požiadavka na robota. Z pohľadu vybavenia a zaručenej funkčnosti jednotlivých
podsystémov mal náš tím na prvý pohľad „jednoduchú“ úlohu, zložitejšie bolo, že
na túto „jednoduchú“ úlohu bol k dispozícii len jeden mesiac. Na to, aby sa
robot stal autonómnym, bolo treba vyriešiť nasledujúce základné problémy:
- určiť a implementovať riadiaci systém – potenciálny hardvér aj softvér,
- napísať podprogramy pre získavanie a posielanie údajov zo/do všetkých podsystémov robota v rámci jednej aplikácie
- implementovať autonómne riadenie robota t. j. určitú inteligenciu robota
Základom pre akékoľvek práce na robote bolo vyriešenie problému určenia
hardvéru a operačného systému riadiaceho systému robota. Základná idea pre
riadenie robota v súťaži bola kamera – v počiatočných fázach sme považovali
kameru za hlavný prístroj. Od tohto sa odvíjali aj požiadavky na riadiaci
systém. Faktom bolo, že základný riadiaci systém nebude mať dostatočný
výpočtový výkon na spracovanie obrazu a súčasne aj na riadenie jednotlivých
súčastí robota. Bolo treba určiť hardvér hlavného riadiaceho počítača.
Uvažovalo sa nad dvomi variantmi – laptop alebo malý počítač VIA EPIA. Výhody
laptopu sú jasné – dá sa jednoducho umiestniť na robota, má vlastné napájanie a
je na ňom k dispozícii vhodné rozhranie pre programovanie. Nevýhoda tohto
riešenia bola, že nebol k dispozícii vhodný hardvér pre laptop na digitalizáciu
obrazu z kamery. Výhoda počítača VIA EPIA bola, že bol k dispozícii vhodný
hardvér pre získavanie obrazu. Ako grabber bola použitá televízna karta do PCI
slotu. Ďalšou výhodou tohto riešenia bolo, že počas prevádzky robota nemusel
bežať užívateľský interfejs – šetril sa výpočtový výkon. Nevýhodou tohto
počítača bolo, že ako zdroj energie museli slúžiť batérie robota. To, že ktorý
systém sa použije ako riadiaci systém sa nakoniec rozhodlo až v noci pred
hlavnou súťažou. Operačný systém pre hlavný riadiaci počítač bol vlastne
preddefinovaný – na základnom počítači bol Linux Debian. Ako programovací jazyk
bol určený jazyk C++, konkrétne vývojové prostredie KDevelop.
Po vyriešení problematiky základnej koncepcie riadiaceho systému robota sa
mohla začať fáza sprístupňovania údajov do vytváranej aplikácie. Samozrejme
tiež v tejto fáze bolo riešené aj posielanie príkazov do robota – príkazy pre
pohybový systém a tiež pre senzory. Táto fáza bola najzaujímavejšia a zároveň
aj najviac časovo náročná. Počas tejto fázy bolo predmetom diskusií riešenie
hlavnej aplikácie – počas jedného mesiaca príprav na súťaž vznikli a zavrhli sa
tri riadiace aplikácie. Základom všetkých vytvorených aplikácií bolo riešenie
komunikácie medzi oboma počítačmi. Komunikácia bola riešená pomocou socketov –
takto bol zabezpečený prístup k údajom, ktoré získaval základný počítač a tiež
boli zabezpečené možnosti pre posielanie príkazov na jednotlivé zariadenia
robota. Získavanie údajov zo senzorov pozostávalo v parsovaní údajov, ktoré
permanentne posielal základný počítač na príslušné porty (v prípade
jednoduchých prístrojov). Pri zložitejších prístrojoch, ako v prípade
laserového skenera, bolo treba riešiť komunikačné protokoly priamo od výrobcov
zariadení a následne ich parsovať do podoby prijateľnej pre naše aplikácie.
Počas príprav na súťaž boli sprístupnené údaje zo všetkých senzorov a
prístrojov na palube robota. Na obr. 3 je znázornená vizualizácia údajov z
laserového skenera a tiež obraz z kamery. Môžeme si všimnúť, že na vizualizácii
z laserového skenera je zreteľne vidieť roh skrine.
Jedna stránka problému bola v sprístupnení údajov zo senzorov, druhá bola v
správnosti poskytovaných údajov. Toto bol prípad GPS snímača – bol zrejme
problém s fixovaním snímača na satelity. Do súťaže ostával jeden týždeň, nebola
implementovaná žiadna inteligencia ani rozvinuté spracovanie obrazu. Obraz mal
byť základom autonómneho riadenia a navyše GPS zariadenie, ktoré malo byť v
podstate druhým základným senzorom, nefungovalo správne.
Počas celého obdobia programovania robota sa uvažovalo nad rôznymi koncepciami
riadiaceho systému. Týždeň pred súťažou nebola v konečnom dôsledku
implementovaná žiadna komplexná koncepcia. Má to súvis najmä s faktom, že bolo
dosť iných problémov, ktoré bolo treba nutne vyriešiť a naprogramovať (napr.
sprístupňovanie údajov, testovanie atď.), ďalej aj s tým, že nebolo isté či
budú fungovať základné senzory. Problémom pri kamere bolo rozpoznávanie cesty a
problémom GPS, už spomínaná fixácia na satelity. Na nasledujúcich riadkoch sú
opísané jednotlivé uvažované stratégie:
Stratégia č. 1: Hlavným senzorom je kamera, prídavný resp. hlavný riadiaci
počítač slúži ako hlavná inteligencia t. j. spracuje obraz a na základe tohto
spracovania sa vykonáva pohyb robota. Rozpoznávanie predpokladanej cesty robota
malo byť založené na rozpoznávaní okrajov chodníka – segmentácia obrazu,
identifikácia čiar. Táto koncepcia sa ukázala do určitej miery problematická.
Bola implementovaná identifikácia čiary, ktorá fungovala pomerne rýchlo (na
základe Houghovej transformácie implementovanej v OpenCV knižnici [10]), aj
pomerne spoľahlivo za stabilných svetelných podmienok a správne nastavených
parametrov. Práve toto bolo kameňom úrazu – stabilné svetelné podmienky a
správne nastavené parametre – nebol dostatok času na uskutočnenie dostatočne
veľkého množstva experimentov a optimalizácie rozpoznávania. Napriek týmto
problémom bola snaha o spojazdnenie tohto variantu riešenia.
Stratégia č. 2: Táto stratégia predpokladala funkčnosť všetkých senzorov.
Hlavným senzorom, ktorý mal určovať globálnu stratégiu pohybu, bolo GPS.
Kontrolu mal zabezpečovať kompas. Pri pokusoch počas príprav bolo zistené, že
tento prístroj má nelineárny priebeh a výstup je silne rozkmitaný v rozsahu ±6
stupňov. Bolo rozhodnuté, že na kontrolu otáčania, hlavne na križovatkách, sa
bude využívať gyroskop. Kamera mala slúžiť ako kontrolný nástroj pre zotrvanie
na chodníku. Ostatné snímače ako laserový skener a ultrazvuky mali plniť
bezpečnostnú úlohu – mali zabrániť kolíziám. Objavila sa úvaha, že laserový
skener by bolo možné využiť tiež ako senzor, ktorý by zabránil tomu, že robot
zíde z chodníka (podľa stromov, lavičiek a. p.). Pri experimentoch vykonaných
vo vonkajšom prostredí sa však ukázalo, že laserový skener je do značnej miery
ovplyvňovaný poveternostnými podmienkami (prach, vietor). Na záver predstavenia
tejto stratégie musíme konštatovať, že túto stratégiu sme nestihli a vlastne
ani nemohli vôbec implementovať – dôvodom bol už spomínaný problém fixácie GPS
a tiež spracovanie obrazu z kamery.
Stratégia č. 3: Táto stratégia predpokladala ako hlavný senzor kompas, na
základe ktorého by bolo riadené smerovanie robota a na základe odometrie
určované miesta zmeny kurzu. Žiadaná hodnota natočenia robota mala byť
generovaná pomocou RNDF. Táto stratégia bola v podstate od počiatku zavrhovaná
z dôvodu už spomínanej nelinearity a príliš rozkmitaných údajov z kompasu –
pred súťažou nebola vôbec implementovaná.
Stratégia č. 4: Táto stratégia mala byť založená na podobnom princípe ako
predchádzajúca, len hlavným prístrojom mal byť gyroskop. Gyroskop spôsoboval
nestabilné držanie smeru z dôvodu meniaceho sa driftu a zakmitanej výstupnej
veličiny. Počas pohybu sa chyba integrovala.
Boli uvažované mnohé stratégie, ale v súťaži to napokon dopadlo úplne inak.
Stav robota deň pred odchodom na súťaž by sa dal označiť za minimálne
„zaujímavý“. Ako autonómne riadenie boli implementované len jednoduché
procedúry, ktoré neboli veľmi použiteľné v súťaži (napr. pohyb po chodbe na
základe laserového skenera). Deň pred odchodom na súťaž ešte nebol vyriešený
ani problém GPS a ani problém kamery, kompas bol chápaný ako nespoľahlivý.
Očakávali sme aj problém s batériami.
Súťaž ROBOTOUR 2007
Po príchode na miesto súťaže, sa začalo s prípravami na homologizáciu. Príprava
pozostávala v príprave stop tlačítka, nalepenia majáku a v naprogramovaní
stratégie pohybu počas homologizácie. Logicky bola použitá čiastočne odskúšaná
stratégia pomocou kompasu a odometrie. Bolo odhadnuté, že na vzdialenosť, ktorá
sa vyžadovala pri homologizácii stačí využiť aj pomerne nepresný kompas. Do
riadiaceho systému bol implementovaný určitý počet bodov, v ktorých sa vždy po
určitej prejdenej vzdialenosti mal korigovať smer podľa kompasu. Stratégia sa
ukázala ako funkčná – homologizácia bola úspešná.
Na druhý deň bola hlavná súťaž. Úlohou v súťaži bolo prejsť trasu dlhú
približne 1 km, ktorá sa skladala z rôznych úsekov. Úseky boli rôznorodé, od
križovatiek cez rovné úseky, od úsekov s dlaždicami po asfaltové úseky a od
úsekov bez prekážok až po úseky so statickými prekážkami. Za prejdenie jedného
úseku bolo možné získať jeden bod, pri prejdení úseku s nejakou užitočnou
záťažou 2 body. Na samotnú súťaž bol robot už lepšie pripravený – počas noci sa
podarilo upevniť a spojazdniť v dovtedy nevyskúšanej konfigurácii pôvodne
zamýšľaný hlavný počítač VIA EPIA a tiež esteticky upraviť robota. V prvom kole
bol úmysel nastúpiť s tým istým algoritmom ako pri homologizácii – nepodarilo
sa však spustiť riadiaci program na hlavnom počítači. Prvé kolo sme teda ani
nenastúpili. Druhé kolo dopadlo trochu lepšie – podarilo sa spustiť riadiaci
program – bohužiaľ robot zišiel z dráhy už v prvom úseku. V druhom úseku sa
stalo to isté a pokus bol v tomto kole ukončený bez bodov. Pred tretím kolom
bol zmenený algoritmus riadenia a robot bol naučený časť trate. Bola uplatnená
záchranná stratégia, ktorej účelom bolo bodovať. Stratégia sa ukázala ako
účinná – robot prešiel dostatočnú vzdialenosť so ziskom 22 bodov (robot niesol
tiež užitočný náklad). S prekvapením sme tiež zistili, že to vyzerá aj na pekné
umiestnenie. V ďalších kolách sa podarilo úspech zopakovať a bol získaný
dostatok bodov na druhé miesto. Pôvodne zavrhovaná stratégia pomocou kompasu a
odometrie sa ukázala ako veľmi jednoduchá a veľmi účinná, dôkazom úspešnosti
tejto stratégie boli aj výsledky iných tímov.
Záver
Z nášho pohľadu možno účasť na súťaži ROBOTOUR 2007 zhodnotiť ako veľmi
úspešnú. Čas, ktorý bol k dispozícii sa maximálne využil. Bolo vykonané
množstvo programátorskej práce na robote a bolo získaných množstvo skúseností.
Náš výsledok a nielen náš ukázal, že jednoduchý algoritmus riadenia robota môže
mať naozaj dobré výsledky. Základom úspechu bol kvalitný hardvér – väčšia
hmotnosť a robustnosť mechanizmu zabezpečili dostatočnú stabilitu riadenia
robota týmto jednoduchým algoritmom (kompas a odometria). Kvalita použitého
stroja sa ukázala aj pri samotnom programovaní – po odladení obslužných
procedúr, čo sa robotovi prikázalo to spravil. Zámerom do budúcnosti je urobiť
robota inteligentnejším – okrem jednoduchého prejdenia trate by mal byť schopný
obchádzať prekážky na trati, určovať náhradné trasy v prípade znemožneného
prejazdu a. pod. Robot by mal vyžívať pri svojom prejazde terénom celú škálu
senzorov. Dúfame, že v budúcom ročníku sa zúčastníme súťaže práve s takto
inteligentným robotom, ktorý bude schopný prejsť celú dráhu a aj s tým, že by
bol schopný sa vyhýbať potenciálnym náhodným prekážkam.
Poďakovanie
Tento príspevok vznikol za podpory grantovej agentúry Ministerstva školstva SR
VEGA 1/3120/06
Literatúra
[1] Murár, R. –– Kľúčik, M. ― Jurišica, L.: Mechatronické vyhodnotenie trakčného systému mobilného robota, AT&P journal PLUS 2007, č. 2, ISSN 1336-5110
[2] Vedecká grantová agentúra MŠ SR a SAV (VEGA), http://www.minedu.sk/index.php?rootId=416, 31. 10. 2007
[3] http://www.spinea.sk/, 31. 10. 2007
[4] http://bssc.sel.sony.com/BroadcastandBusiness/DisplayModel?m=10005&p=2&sp=10&id=77866, 31. 10. 2007
[5] http://www.hokuyo-aut.jp/02sensor/07scanner/urg.html, 31. 10. 2007
[6] https://buy.garmin.com/shop/shop.do?pID=8631, 31. 10. 2007
[7] http://www.analog.com/, 31. 10. 2007
[8] http://www.robot-electronics.co.uk/shop/Compass_CMPS032004.htm, 31. 10. 2007
[9] Jurišica, L. – Murár, R. – Duchoň, F. – Kľúčik, M. – Petrovič, Ľ.: Roboty do vonkajšieho prostredia, AT&P journal 11/2007, ISSN 1335-2237
[10] OpenCV Library: http://www.intel.com/technology/computing/opencv/, 31. 10. 2007
Ing. Marian Kľúčik
Ing. Roman Murár, PhD.
Ing. Ľubomír Petrovič,
Ing. František Duchoň,
FEI STU
Ústav riadenia a priemyselnej informatiky
Ilkovičova 3
812 19 Bratislava