czech english

Robohemia

Brno

Tým Robohemia soutěž Robotour 2007 vyhrál. Na jakých technologiích byl tedy úspěch postaven? Čím se jinak zabývají studenti z VUT Brno?

Základní info

Názov týmu: Robohemia
Univerzita: VUT v Brně
Fakulta elektrotechniky a komunikačních technológií
Členovia:
  • František Burian
  • Martin Haltuf
  • Martin Javorček
  • Tomáš Madron
Názov robota: U.T.A.R.II

Predstavenie týmu

Celý štvorčlenný tým je zložený zo študentov na Vysokom Učení Technickom v Brně z Fakulty Elektrotechniky a Komunikačních Technológií pod vedením doc. Ing. Luďka Žaluda, Ph.D. ktorý je docentom na fakulte a aktívne sa tiež podieľa na tvorivej činnosti pre CAK (Centrum aplikovanej kybernetiky). CAK prevádza teoretický a aplikačný výskum v oblasti automatického riadenia. Pracovisko na Vysokém učení technickém v Brně je jedným zo štyroch hlavných spolunositeľov projektu.
Menovite sa podieľali na rekonštrukcií súťažného robotu U.T.A.R.II členovia:
  • Ing. František Burian toho času už úspešný absolvent oboru KAM (Kybernetika, automatizace a měření) pôsobí na fakulte aj ako študent PhD. štúdia ale zároveň je aj zamestnancom na fakulte.
  • Martin Haltuf je študentom Bc. programu na ústave automatizace a měřicí techniky a v tomto roku je v 3. ročníku.
  • Bc. Martin Javorček a Bc. Tomáš Madron, študenti 1. ročníka na magisterskom štúdijnom programe KAM (Kybernetika, automatizace a měření).

Robot U.T.A.R.II

Původní robot
Původní robot
Robot UTARII vznikol ako pokračovanie úspešného projektu UTAR. Bližšie informácie o robotovi UTAR sú k dispozícií na nasledujúcej stránke: http://www.uamt.feec.vutbr.cz/robotics/index.html Robot UTAR prešiel niekoľkými stupňami vývoja od analógového jadra elektroniky až ku kompletne zdigitalizovanému riadeniu.
V minulom roku, keď bolo prvé konanie súťaže Robotour`06, bol UTAR poskytnutý nášmu týmu s cieľom upraviť elektroniku a mechaniku tak, aby sa mohol zúčastniť tejto súťaže.
UTAR
UTAR
Pre názornú ukážku sú v prílohe uvedené obrázky pôvodného robota UTAR a aj aktuálne obrázky po rekonštrukcii. Rekonštrukcia spočívala hlavne vo výmene riadiaceho počítača, výmenu drivera pre riadenie motorov, mechanické úpravy pre nové snímače, demontáž pôvodných komunikačných zariadení a kamerového bloku.

Technické parametre

  • riadiaci počítač: priemyselný počítač s procesorom Intel Mobile 1,6GHz
  • operačný systém MS WinXP Professional SP2
  • programové vybavenie v MS Visual Studio 2005
  • diferenciálny podvozok poháňaný dvomi motormi Maxon 250W/24V
  • napájanie 2x12V gélový akumulátor o kapacite 18Ah
  • max. rýchlosť cca 1,5ms
  • hmotnosť cca 65kg
  • nosnosť robota sme nezisťovali, ale nemal najmenší problém uviesť po rovnom teréne osobu ktorá mala hmotnosť 65kg.
  • Dojazd na jedno nabitie akumulátoru cca 6km

Naša stratégia v súťaži

Minulý rok sme sa spolu s celým týmom pripravovali do súťaže s myšlienkou: „osadiť robota maximálnym množstvom senzorov“ aby nás nemohla zaskočiť žiadna nečakaná udalosť, ktorá by mohla narušiť náš cieľ prebojovať sa medzi tých najlepších a paradoxne to sa nám stalo osudným, pretože ako väčšina z vás vie, minulý rok sme nemohli ani odštartovať.
Keďže sme mali veľké množstvo senzorov, je pochopiteľné, že na každý senzor je potrebné venovať dostatočný čas na jeho odladenie a jeho následné zakomponovanie do riadiaceho SW. Nakoľko sme nemali veľa času tak sme nemohli vykonať veľa testov na ktorých by sa odhalili slabiny robota. Stala sa nám totiž taká vec, že pár hodín pred samotnou súťažou nám začal robiť problémy jeden s driverov ktorý ovládal jednu stranu kolies na podvozku. Tento chybný driver mal malú chybu vo svojom firmwari resp. nebol symetrický s opačnou stranou čo sme ale nemohli vedieť keďže firmware do tohto driveru vyvíjala „tretia“ osoba. Túto nesymetriu ale hlavne zvýraznila aj malá porucha z hľadiska obcasného výpadku pulzov na optickom enkódery zabudovanom v motore.
Fakt, prečo sme minulý rok zvolili takú stratégiu ako sme zvolili (maximum senzorov) spočíval hlavne v tom, že sme nevedeli čo konkrétne náš čaká. Boli sme veľmi prekvapený keď sme zistili, že na súťažnej trati sa nenachádzajú žiadne prekážky a teda prekvapila nás jednoduchosť pravidiel súťaže s čím sme teda vôbec nepočítali. Naša predstava o tom bola taká, že dostať sa do cieľa, pričom sme si boli takmer istý že cesta bude náročná s veľkým počom prekážok a terénnych nerovností keďže sa jedná o súťaž autonómnych robotov. Najviac času stráveného na príprave do prvého ročníka robotour patrilo jednoznačne odlaďovaniu algoritmov, ktoré by sa dokázali veľmi inteligentne vyhýbať prekážkam a následne sa pohybovať ďalej v ceste bez straty orientácie. V tom čase bolo jednou z našich hlavných „zbraní“ hlavne laserový skener SICK ktorým sme detekovali prítomnosť prekážky na ceste resp. rozlišovanie presnej polohy prekážky na ceste. Pokúšali sme sa pomocou tohto skeneru aj rozlišovať trávu a betónový chodník ale neboli sme schopný urobiť kombináciu detekcie trávy a prekážky pretože sme nepracovali v 3D režime keďže skener na detekciu prekážky potreboval iný uhol náklonu ako na detekciu trávy. Nakoniec sme sa rozhodli iba pre detekciu prekážky a detekciu trávy sme vypustili pretože sme sa spoliehali na „presnost“ GPS ktorá by nás dokázala presne navigovať až do cieľa. Je teda úplne jasné, že keby sme aj nemali poruchu v drivery, tak by náš robot s istou pravdepodobnosťou skončil mimo trate aj keď je možné že nejaké body by sme nazbierali aspoň za nejaký prejdený úsek.
Po minuloročnej skúsenosti sme sa teda rozhodli pre úplne inú stratégiu ktorú niektoré tými ktoré súťažili odcudzovali. Z konkurenčných tímov boli ohlasy na náš tým asi v takom znení že „ako je možné, že robot ktorý sa nedokáže vyhnúť prekážke mohol vyhrať súťaž a s veľkým náskokom“ a podobné pripomienky zazneli aj v emailoch od Vás kolegov. Tak aby som oficiálne uviedol každého z Vás ktorý ma pochybnosti o našej výhre do správnej mieri tak tu je naša stratégia:
V prvom rade chcem povedať to, že je úplne jasné, že každý ide do súťaže s cieľom aj vyhrať a nie iba zúčastniť sa – teda je prirodzené keď sa snažíme uspieť čo najlepšie. A presne o tom aj nám išlo. Keďže sme boli poučený z minulého roku (čo sa týka jednoduchosti trate) a vykonali sme niekoľko testov, tak sme prišli na algoritmus riadenia ktorý bol dosť presný a jednoduchý (algoritmus bude ďalej presne popísaný). Ak niekto spochybňoval našu výhru z dôvodu nie uplnej autonómnosti robota, tak musím iba konštatovať fakt, že je to jeho vec. Aj keď možno z istého hľadiska je pravda, že robot sa mal vyhnúť prekážke (lavička v parku) a nie iba pred ňou zastaviť ale o tom pravidla neboli. Celý náš plán bol založený na tom, že ak sa objaví problém a robot prejde za trať, tak sa iba jednoducho vloží na miesto z ktorého vyšiel a bude pokracovať ďalej – čo podľa pravidiel bolo možné. A tak chcem iba poukázať na fakt, že naša stratégia sa iba prispôsobila pravidlám súťaže. To je možno inšpirácia pre organizátorov do ďalších ročníkov súťaže robotour aby zlepšili pravidlá a urobili túto súťaž ešte atraktívnejšou.
Čo sa týka nášho algoritmu tak bol založený na nasledovnom princípe:
Pred súťažou sme dostali presnú mapku po ktorej robot musí prejsť až k cieľu. Keď sme mali túto mapku tak sme si celú trať spolu s robotom navigovaným pomocou joysticku prešli, pričom robot si presne zaznamenával na časovú os rýchlosť otáčania kolies a tiež aj zmenu natočenia pomocou elektronického kompasu. A pri súťažnom štarte robot iba jednoducho „vyťahoval z pamäte informácie ako išiel prvý krát“ Je jasné, že takýto algoritmus sa nedokáže vyhýbať stretom s prekážkami a aj to, že sa integruje neustále chyba, ktorá vzniká pri nepresnej rekonštrukcií zaznamenaného priebehu – prešmyky kolies na piesku, tráve a vode a podobne a tiež aj fakt, že WinXP ako operačný systém nie je systémom reálneho času. S týmto všetkým sme aj počítali a vedeli sme že je malá náhoda že prejdeme až do cieľa ale vedeli sme aj to, že aspoň nejaké body získame za to, že prejdeme nejakými úsekmi. Čo sa týka naintegrovanej chyby, tak sme si poradili jednoducho, keď robot vyšiel z trate tak sme ho posunuli na stred cesty čím sme vlastne takmer vynulovali naintegrovanú chybu čo podľa pravidiel možné bolo ;)
Finálna verzia teda bola taká, že sme použili iba kompas a vhodne upravili riadenie motorov na to, aby sme získali body. Tejto finálnej verzii ale predchádzala verzia robotu, ktorý používal iba odometriu respektíve iba záznam smeru a rýchlosti na časovej osy z naučenej dráhy bez použitia kompasu. Ale tento spôsob bol veľmi nepresný v miestach kde sa musel robot otáčať, pretože pri otáčani vznikali prešmyky pneumatik a najhoršie to bolo v tom, že prešmyky na tom istom povrchu boli vždy iné a tým sa až prudko integrovala chyba. Po týchto testoch sme prišli na nápad použiť kompas pre meranie okamžitého smeru natočenia. Tento spôsob je ale využiteľný iba tam, kde nie sú zmagnetizované kovové predmety ktoré by mohli ovplyvňovať kompas. Je úplne jasné, že najlepšie by bolo, keby robot dokáže riadiť pomocou GPS a výjazd z dráhy by kontroloval napríklad kamerou, respektíve všeobecne by výjazdy z trate kontroloval nejakým senzorom alebo sústavou senzorických systémov. Práca na takomto robotovi je ale príliš zložitá a my sme na to nemali čas ale do budúcej súťaže by sme chceli na podobnom princípe zapracovať.

Problémy s GPS

Najväčšou výzvou pre každého bolo využitie GPS pre orientáciu v zadanej mapke. Ako som už na začiatku spomenul, keď sme šli do prvého ročníka súťaže, tak sme si až priveľa sľubovali od GPS. Ale opak bol pravdou. Klasická GPS vás nedokáže navigovať presne na konkrétny bod a nulovou odchýlkou. Táto odchýlka má v skutočnosti hodnotu cca 10m s tým že občas aj oveľa viac a tu vzniká problém
UTAR Robotour 2007
UTAR Robotour 2007
využitia GPS rozlohovo malej oblasti. Musel by byť vytvorený algoritmus ktorý dokáže robota navigovať po bodoch na ktoré sa robot v mnohých prípadoch ani nedostane (waypoint mimo trate) a podobne. Rovnako dôležité je aj to, akou kvalitnou GPS bola premeraná súťažná mapa. Pre tieto účely by bolo vhodné použiť takzvanú diferenciálnu GPS (DGPS) jedná sa o zložitý systém dvoch GPS čo by bolo pre väčšinu tímov nepoužiteľné z hľadiska ceny alebo by mohla byť použitá armádna GPS ale problém je znovu v cene. Tým ale nechcem povedať že klasická GPS je nepoužiteľná v súťaži! Možné to je ale chce to veľmi dobre premyslieť algoritmus navádzania a myslím si, že v najbližších ročníkoch tým ktorý toto zvládne tak, si zaslúži bonusové body na viac ;).
Ešte by som mal doplniť jednu informáciu o GPS a to, že zadané body sme si previedli do UTM formátu a tie sme si graficky vykreslili mapy a tam sme zistili, že body majú na segmentoch ofsety podľa ktorých sa nedá správne navigovať a práve na tejto skutočnosti stroskotali naši kolegovia z Red Team Brno.
Je potrebné si tiež uvedomiť, že park stromovka je dosť zalesnený terén, teda v parku sa nachádza veľa stromových porastov, ktoré znižujú kvalitu príjmu z družice GPS. Preto by som ostatným tímom odporučil, keby sa v budúcnosti zameriavali na GPS prijímače, ktoré majú v sebe rádiový modul SirfStarIII ktorý má výborné vlastnosti v náročnom teréne.

Kompas

Dá sa teda povedať že najdôležitejšou súčasťou nášho robota bol elektronický kompas. Ten sme použili konkrétne od firmy Honeywell. Jedná sa o vysoko presný kompas a navyše s automatickým kompenzovaním náklonu do +-60°. Táto kompenzácia ako tvrdí výrobca, je uskutočnená pomocou akcelerometra zabudovaného priamo na doske kompasu. Dôležitým faktom tohto kompasu je to, že pri zrýchlení alebo spomalení ukazuje akcelerometer chybný smer (zvisle dolu) a za základe tohto chybného smeru zle koriguje uhol a preto musí pre následné riedenie byť použitý rovnaký rýchlostný profil ako pri zázname.
Kompas má dve rôzne zbernice RS-232 a SPI. Menší problém nastal ako u každého kto používal kompas vtedy, keď sme zistili že kompas je veľmi silno citlivý na kovové časti skrinky robota. Problém sme riešili tým, že sme kompas umiestnili do PVC „komínku“ pričom dôsledku tejto mechanickej úpravy vznikol iný problém. Pri malých otrasoch robota sa silno otriasal PVC trubka v ktorej bol kompas a to spôsobovalo malé nepresnosti v údajoch ktoré posielal kompas a tak sme boli nútený vzťažnými lankami uchytiť konce PVC trubky a tým znížit chvenie pri otrasoch. Jediná nevýhoda takejto kompenzácie spočívala v estetike ale tá nemala našťastie vplyv na bodovanie.
Chvenie v PVC trubke v ktorej bol kompas sa nám podarilo znížiť aj použitím kvalitnejšej PI regulácie pri pohybe ale hlavne pri otáčaní podvozku.

Riadenie podvozku

Ako som už na začiatku povedal, robot mal diferenciálny podvozok poháňaný dvomi motormi. Motory sú riadene driverom, ktorý je pre každý motor samostatný. Jedná sa o systém s mikrokontrolérom riadiaci samotný driver ktorý riadi výkonný H mostík. Ako spätná väzba pre reguláciu sa používa inkrementálny senzor od frmy HP ktorý je ale súčasťou motoru. Komunikácia dosky driveru s riadiacim PC je vytvorená prostredníctvom RS-232. Predné a zadné kolesá boli reťazovo navzájom prepojené čím vznikla veľmi dobrá schopnosť pohybu po nerovnomernom teréne ktorá sa nám osvedčila keď robot vyšiel dvomi kolesami na obrubník pričom nerobilo mu to najmenší problém.
Dva akumulátory 12V o kapacite 18Ah mu dokázali dať dostatočné množstvo energie potrebnej na prekonanie cca 6x súťažnej dráhy (1x skúšobne a 5x súťažne) pričom medzi dvomi súťažnými kolami mal asi hodinu na dobíjanie akumulátorov ale tie boli dobíjané iba nízkym prúdom cca 1,5A.