ARGroup Aleš Ruda

Příprava na Robotem Rovně 2012

by Administrator 9. May 2012 17:36

Prvním testem je ujet 100 metrů před barákem.

[youtube:iqZmswQmyVE]

Dál bych chtěl zkusit 400 metrovou rovinku u Keterinek, ale nevim zda to stihnu.

Tags:

ARBot

Tuhnutí MD23

by Administrator 2. April 2012 20:14

Asi tak rok po pořízení dvou motorových jednotek MD23 se začal projevovat takový záhadný problém. Pár minut po spuštění robota bylo vše OK, ale pak najednou se něco zbabralo a jeden motor se začal točit v opačném směru a výrazně se zpomalila akcelerace motorů. Žádné přeprogramování parametů jednotky nepomáhalo obnovit fuknčnost, jediné co zabralo bylo vypnutí. Problém se s časem projevoval častěji a častěji, postupně se objevil na obou jednotkách, na internetu se mi nepodařilo najít řešení a ani popis podobného chování. Celé trápení vyvrcholilo destrukcí obou jednotek. Koupil jsem dvě nové a vše bylo OK.

Jaké bylo mé překvapení když po nějakém čase opět začaly problémy. Tentokrát se projevovaly výpadky na I2C sběrnici. Po odpojení motorových jednotek problémy přetaly. Takže zase něco s MD23. Pomocí osciloskopu jsem našel nějaké zákmity na SDA a SCL vodičích. Zákmity jsem přes 12V napájení, kde dosahovaly 400 mVpp, vystopoval až za 5V stabilizátor na MD23, kde byly spičky 1.5 Vpp. Což bylo s jistotou za hranicí povoleného napájení PIC procesoru na motorové jednotce. Mimochodem to také znamená, že stabilizátor tyto pulzy zesiluje. Frown Pulzy vznikaly synchronně se spínáním výkonových tranzistoů motorové jednotky.

S postupem času se obtíže stupňovaly a začaly se projevovat stejně jako před rokem. Po čase se opět jednotky odporoučely. Asi nějaká větší spička.

Další dodávka jednotek už obsahovala modernější MD25. Spičky v 12V napájení byly výrazně menší a na 5V zanedbatelné.

Špičky v napájení MD23. Červeně 12V a žlutě 5V. Odfiltrovaná stejnosměrná složka.

Po dvou letech jednotky MD25 stále pracují jak mají. 

Tags:

ARBot

Detekce vozovky

by Administrator 16. January 2012 13:35

Metod jak rozložit obraz na různé oblasti je spousta, problém je najít tu pro náš případ nejúčinější. Nechci se tu rozepisovat o jednotlivých metodách, spíše ukáži co jsem zkoušel a s jakými výsledky.

První volbou je výběr barevného prostoru:

  • YUV – barvu reprezentuje dvěma parametry YU, jas udává Y, nativní formát modulu SRV1
  • RGB – každá ze složek ovlivňuje barvu a jas, nepříliš vhodné pro výpočty
  • HSV – parametr H určuje barvu, na šedé vozovce značně mnění hodnotu, nevhodné

Segmentační metody:

  • Visiir – segmentační metoda vyvinutá Jiřím Išou,
  • YUVBoxFilter – hodnoty YUV pixelů oblasti před robotem ohraničí boxem a všechny pixely s YUV v tomto boxu považuje za sjízdné, má problémy se stínama, neobsahuje znalost jak vypadá sjízdná cesta,
  • YUVSampleHistFilter – spočte pravděpodobnost výskytu hodnoty YUV pixelu oblasti před robotem, kterou pokládá za sjízdnou a všem pixelům obrazu přiřadí pravděpodobnost sjízdnosti na základě YUV, má problémy se stínama, neobsahuje znalost jak vypadá sjízdná cesta,
  • YUVHistFilter – všem pixelům přiřadí pravděpodobnost sjízdnosti na základě YUV, pravděpodobnost sjízdnosti konkrétní hodnoty YUV je určena na základě trénovací množiny z MSRC-v2 image database, tato metoda je implementačně nejjednodušší a zárověň dává velmi dobré výsledky, nikdy nebude považovat trávu za sjízdnou, nevýhodou je, že se neadaptuje měnícím se podmínkám reálného světa,
  • YUVGraphFilter – pomocí grafového algoritmu rozdělí obraz na oblasti s podobnou hodnotou YUV a dle průměrné hodnoty YUV v této oblasti přiřadí pravděpodobnost sjízdnosti obdobným způsobem jako YUVHistFilter, je výpočetně náročná.

 

Srovnání segmentačních metod
 Porovnání segmentačních metod, poslední řádek ukazuje vyvažení bíle posunuté směrem k žluté barvě, kde poslední dvě metody ztrácí na kvalitě

Tags:

ARBot

Model smykem řízeného podvozku

by Administrator 7. December 2011 19:37

Robot má 4 nezávisle poháněná kola, která nelze natáčet. Jedná se tedy o smykem řízený podvozek. Budeme-li předpokládat shodnou rychlost kol na levé a pravé straně, můžeme s určitým zanedbáním použít vztahy pro diferenciální podvozek (1) a (2). Problém spočívá ve faktu, že kola se po podložce pouze neodvalují, ale smýkají se. Více o této problematice lze najít zde.

(1)
(2)
  • – úhel otočení
  • – ujetá vzdálenost
  • – ujetá vzdálenost levou stranou
  • – ujetá vzdálenost pravou stranou
  • – rozchod kol
Diferenciální podvozek

Největší problém je určení rozchodu kol. Díky smýkání tento výpočetní údaj neodpovídá mechanickým rozměrům. Krom vlastností povrchu, zatížení kol je také ovlivněn rodíly rychlostí otáčení jednotlivých kol. Naměřené hodnoty rozchodu kol pro různé řídící zásahy na asfaltovém povrchu a hmotnost 3kg uvádí následující tabulka

  dopředná rychlost v m/s
dif. 0,00 0,09 0,17 0,26 0,34 0,43 0,51 0,60 0,69 0,77
0,09 0,36 0,36 0,36 0,36 0,36 0,36 0,37 0,37 0,37 0,37
0,17 0,36 0,36 0,36 0,36 0,36 0,36 0,35 0,36 0,37 0,37
0,26 0,37 0,37 0,36 0,36 0,36 0,36 0,36 0,36 0,36 0,37
0,34 0,37 0,37 0,36 0,37 0,36 0,36 0,36 0,37 0,37 0,37
0,43 0,40 0,38 0,39 0,36 0,38 0,38 0,36 0,37 0,37 0,38
0,51 0,44 0,46 0,38 0,37 0,43 0,39 0,37 0,37 0,37 0,37

 

 

Dalším krokem je výpočet polohy a orientace robotu. Podkladem nám bude ujetá vzdálenost a otočení robotu. Pohyb robotu popisují rovnice ( 3 ), ( 4 ) a ( 5 ).

(3)
(4)
(5)
  • – úhlová rychlost otáčení
  • – dopředná rychlost
  • – orientace robotu
  • – x souřadnice robotu
  • – y souřadnice robotu

Problém jejich řešení spočívá ve faktu, že neznáme funce a . Jediné co známe je orientace robotu v okamžicích vzorkování a ujetá vzdálenost mezi těmito okamžiky. Možných variant je mnoho viz. obrázek Trajektorie robotu. Otázkou je kterou si vybrat.

Trajektorie robotu

Jednoduchá varianta rozumě aproximující skutečnost je varianta konstatní dopředné a úhlové rychlosti, kdy se bude robot pohybovat po kruhových obloucích. V našem obrázku je tento případ vyobrazena pod písmenem b a popisují ho vztahy ( 6 ) a ( 7 ). Dosazením těchto vztahů do pohybových rovnic ( 3 ), ( 4 ) a ( 5 ) postupně získáme ( 8 ) a ( 9 ), který je nepraktický kvůli dělení β.

(6)
(7)
(8)
(9)
  • – počáteční úhel natočení

Protože pootočení je malé lze diferenci nahradit derivací v mezilehlém době jak je naznačeno na obrázku Náhrada diference derivací a výsledný vztah pro polohu robota je pak popsán rovnicemi ( 10 ) a ( 11 ).

Náhrada diference derivací
(10)
(11)

Jak lze interpretovat získané řešení? V první řadě je nutné poznamenat, že robot se už nepohybuje po kruhovém oblouku, jak jsme na počátku přadpokládali, ale po přímce jejíž délka je shodná s délkou oblouku a orientace přimky půlí uhel β. Tento výpočet negeneruje úhlovou chybu a chyba vzdálenosti pro v praxi maximalní je do 1%.

(12)

Tags:

ARBot

Robotour 2011

by Administrator 1. October 2011 08:33

17. září se ve Vídni konal další ročník soutěže Robotour. Po absenci v minulém roce se letos zůčastnil i ARBot. Oproti předchozím ročníkům se podařilo vylepšit detekci překážek z kamery pomocí VFH+ algoritmu a naposlední chvíli doznal úprav i segmentační algoritmus. Jinak vše při starém.

Při homologaci se ukázal 20-ti sekundový rozdíl v čase ARBotu (odvozený od GPS) a oficíálního času (také GPS). Důvod je mi fak nejasný. Narychlo jsem ještě mněnil startovací proceduru na zpoždění 65 sekund od zmačknutí startovacího tlačítka (pro vysvětlení - podle pravidel se minutu před startem nesmi nukdo robota již dotýkat).

Testovací kolo proběhlo v celkum v pohodě. Robot odstartoval správně až po minutě, sice v místě startu byl spatný signál GPS a tak se nepodařilo určit pozici a robot vyrazil nazdařbůh po cestičce a po cca 40 metrech trefil lavičku. Do prvního kola bylo ještě spousta času a tak jsem šteloval segmentaci, no a abych se nezdržoval tak jsem vypnul 65 sekundovou prodlevu při startu.

1. kolo, roboty byly připraveny na startu, zazněl hvizd minuta do startu, zmačknul jsem startovní tlačítko a robot se rozjej. Ajajaj. Zapoměl jsem zapnout minutovou prodlevu. Následovala samozřejmě diskvalifikace.Frown

2. kolo bylo již vyvedené, ARBot se ujmul rychle vedení, bezpečně projel první křižovatkou a blížil se k odbočení dprava, zde bohužel najel pravým předním kolem do obrubníku, pravé zadní se dostalo do vzduchu a zbylé dva motory již neměly sílu s robotem pohnout. Po dohodě s rozhodčím jsme poukus ukončily. Robot urazil slušných 169 metru.

Do 3. kola jsem vkládal velké naděje, start byl na cestě kousek před křížením s mostem. Start proběhl v pohodě, ale pastí byl tentokrát ten most. Přesně pod mostem se robot prudce otočil doprava a snažil se jet do skály. Kolem tohoto místa se motal dost dlouho než se opět chytil na původní cestu. Pravděpodobně to také dozhodilo odměřování polohy a další křižovatku robot přejel a vyjel mimo cestu.

4. kolo bylo také velmi zajímavé. Robot sice po 30 metrech vyjel mimo cestu (motal se tam jakysi divák a ja do poslední chvíle věřil že se robot vyhne), ale vrátil jsem ho opět na cestu a mimo soutěž jsem to zkusil projet. Potěšil mne bezproblémový průjezd stoupáním, kde ostatní mnohem větší roboty měly problém vyjet. Otázkou zda na to nestačily výkonem a nebo kopec detekovaly jako překážku.

Musím přiznat, že 6. místo bylo trošku zklamáním, ale co člověk může chtít při dvou fatalních chybách.

Chtěl bych poděkovat organizátorům za dobře připravenou soutěž a musím pochválit pěkně vybraný park. To co také potěšilo byl velký zájem diváků. Co dodat? Příští ročník snad dopadnem lépe.

Robotum zdar

Tags:

ARBot

RoboOrienteering 2011

by Administrator 1. July 2011 21:49

První velký úspěch v komorním provedení. Veškeré úpravy HW a SW v minulých letech konečně začínají přinášet ovoce. Robot docela přesně objíděl zadané kontrolní body i když s rostoucí vzdáleností rostla i odchylka a robot postupně začal míjet kontrolní oblasti. Z toho vyplývá, že je nutné zlepšit výpočet pozice robotu, další možností je v blízkosti cílové oblastí začít robota navigovat podle oranžového kuželu. Tím dojde k dosažení cílové oblasti a také k synchronizaci robota s mapou.

Robot předvedl ve všech kolech stabilní vykon a narozdíl od ostatních týmů se nepotýkal s žádnými zásadními problémy. První dvě kola obsadil 1. místo a v třetím kole 2. místo. Celkově první. Hurááááá. Tento úspěch je trošku zkalen tím, že ostatním týmům roboty postupně přetaly jezdit, ale nebuďme detailisté.

Tags:

ARBot

Robotem Rovně 2011

by Administrator 1. June 2011 20:50
Robotem rovně 2011
Trajektorie robotu (modře), údaje z GPS (zeleně)

Tak další ročník soutěže autonomních robotů Robotem Rovně je za náma. Musím se přinat, že výsledek byl trošku zklamáním, ale to předbíhám.

Přes zimu se podařilo dotáhnout algoritmy pro fůzy dat z odometrie, AHRS a GPS, ambice byly veliké.

Na místo jsme dorazili za 5 minut 12, homologace a za chvilku na start 1. kola. 3, 2, 1, start robot se rozjel, ale místo aby jel poslusně směrem k cíli udělal oblouček a zamíril doprava. Objel keřík, projel znovu startem a zamířil k Neumětelum. Bylo to hrozné sklamání. Do startu dalšího kola jsem se snažil odhalit problém, ale žádný výsledek, robot stále táhnul doprava. Nadešel čas pro další kolo. Robot tentokrát opět jel doprava, ale udržel se na cestě, jenže první odbočkou vpravo zas vyrazil k Neumětelum. Ach jooo, co se to děje. Najednou mi svitlo. Robot jezdi podle mapy a svou pozici na startu odvozuje z GPS. Zapomel jsem tam mapu z Prahy a robot poslušně jel na hřiště u nas před barákem. Chybka byla opravena a v posledním kole slušných 170 metrů. Celkové 9. místo bylo zklamáním, ale za chyby se platí.

Každopádně RoRo 2011 bylo dobře zorganizové a velmi příjemné klání. Diky organizátorům a příští ročník dopadnem snad lépe. 

Tags:

ARBot

RoboOrienteering 2010

by Administrator 1. July 2010 20:43

Letos jsem se zůčastnil soutěže RoboOrienteering. Po přestavbě robotu to byla první soutěž a podle toho to také vypadlo. Hned večer před soutěží při testování v Rychnovském parku se projevil první netriviální problém. Začaly se projevovat výpadky na sběrnici I2C, která propojuje většinu periferií. Otázkou bylo proč to a jak to vyřešit. Možná robot v podvečer navlhnul, možná nebyly nakloněni elemtálové. Problém se podařilo částečně omezit odpojením jedné motorové jednotky.

V prvním kole robot získal 48 bodů což stačilo jen na předposlení místo.

V druhém kole se robot rozjel úplně blbým směr a získal pohých 5 bodů. Analýzou jsem zjistil, že došlo k výpadku na I2C sběrnici a z enkoderů byl načten nesmyslný údaj, který robota posunul o kilometry blbě. Následovaly úpravy SW, které měly za úkol omezit nepříznivý vliv výpadků na sběrnici.

V třetím kole na travnatých drnech pro změnu začal robot předvádět pozoruhodné baletní číslo, motal se jak opilej. Tentokrát byla na vině AHRS jednotka, kde velký důraz na gyroskop a vybrace způsobily roztočení kompasu podle svislé osy.

Celkové 6. místo odpovídalo nedobré přípravě.

 

Tags:

ARBot

Robotem Rovně 2010

by Administrator 12. June 2010 22:26
Pohled z robotu
Pohled z robotu

Robot prošel po minulém ročníku Robotour významnou přestavbou. Nová citlivější GPS, místo kompasu AHRS, nová optika na kameře, přepsání částí SW do asembleru, nosič na sud a spousta dalších drobností. Bohužel se začal projevovat problém tuhnutí motorových jednotek MD23. Postupně jsem zjistil, že pachatelem jsou značné napěťové špičky v 5V větvi napájení. Dvouměsíční trápení ukončila počátkem května nějaká větší špička. Nové jednotky MD25 již tento problém nevykazovaly. V pátek před soutěží se robot konečně rozjel, byly opraveny některé chyby v SW, projeta rovná i klikatá cesta u baráku a ráno hurá do Písku.

Času málo, na hrdinství není prostor. Strategie byla jednoduchá kamera udrží robota na cestě a s překážkami pomohou sonary. Na Robotour to také fungovalo.

Robota lehce otestovat v místních podmínkách a rychle na start 1. kola. 3, 2, 1, start. Robot se rozjel, sice místo aby se držel uprostřed cesty tak divně opilecky kličkoval od kraje cestičky ke kraji, ale dojel tak až do cíle. Supeeeeeer. Ale proč to kličkuje? Jejda zapomněl jsem krytku na kameře.

V pauze mezi koly jsem zkoušel jízdu s kameru, ale výsledky nebyly dobré. Robot rychle končil mimo cestu. Algoritmus detekce cesty se mi nepodařilo opravit. Dalším pokusem bylo zapojit AHRS s nevalným výsledkem. Takže, když to jednou vyšlo tak proč ne ještě dvakrát? Robot pojede na sonary. V dalších kolech 90 a 184 metrů. Slušný výkon oceněný 2. místem. Kdyby mi to někdo vyprávěl asi bych nevěřil, ale je to pravda. Viděl jsem to na vlastní oči. Smile

Myslím, že tato soutěž byla ideálním startem do sezóny outdoor závodů robotů. Díky organizátorům za nasazení.

Tags:

ARBot

Robotour 2009

by Administrator 1. October 2009 11:36
ARBot
ARBot

Koncem září jsem se zůčastnil soutěže autonomních robotů Robotour 2009. Byla to, co se soutěží týče, premiéra. Pravisla jsem měl nastudovaná, co šlo odzkoušené na domácí půdě, ale přeci jen neznámé prostředí může je velkou neznámou. Navíc se nepodařilo rozchodit vše co jsem zamýšlel. GPS pracuje na 1.5 GHz a tak byla silně rušena DSP procesorem BF537 taktovaném 500 MHz a o kvalitě kompasu CMPS03 se rozepíšu někdy příště, ale vězte, že svou přesností se můře úspěšně srovnávat s lišejníkem. Smile

Povídám co nefungovalo, ale spíš jsem měl začít tím jak byl robot vybaven. Robot má čtyřkolový smykem řízený podvozek, který má hnané každé kolo s enkodérem (4xEMG+2xMD23). Robot je řízen modulem SRV1 na bázi procesoru BlackFin BF537. Jako senzory používá kameru, 3 sonary SRF08, kompas CMPS03 a GPS DG08. Disponuje WiFi konektivitou.

Vzhledem k již dříve řečeným problémům s HW a hlavně nejasné představě jak řešit programovou stránku věci jsem se rozhodl celé řešení zjednodušit - udržet se na cestě a doufat, že s trochou stěstí cesta povede k cíli.

Sonary budou použity na vyhýbání se překážkám. Podle minima vzdálenosti ze sonarů se umeze dopředná rychlost robotu a pokud klesne měřenáá vzdálenost na levém či právém sonaru pod určenou mez, začne se robot otáčet na stranu kde je více prostoru.

Kamera slouží pro udržení robota na cestě. Z trojúhelníkového prostoru před robotem v obrázku se určí krychle v YUV prostoru, jejiž barvy jsou považovány za cestu. Obarví se celý obrázek. Postupně od spodního řádku se nalezne prostředek cesty a tyto body se proloží přímkou. Od směrníce přímky se pomocí magické konstanty odvodí požadovaný úhel otočení robotu.
Tento postup má hned několik vevýhod:

  • Algoritmus je citlivý na střídání světla a stínu na cestě.
  • Nebere v úvahu projekci kamery.
  • Algoritmus dobře nefunguje v mezních situacích. Pokud robot stojí na kraji cesty a je orientován v jením směru, ukazuje smernice k této straně a tím místo vrácení robotu k prostrředku cesty dojde naopak k jeho výjetí. Frown

A jak to probíhalo?

První dvě kola proběhla dle předpokladů. Robot se držel uprostřed cesty a až stín ho vytlačil mimo cestu, nedostal se ani ke křižovatce takže nuda, šeď, šeď. Zajímavé bylo až 3. kolo, kdy ARBot startoval kousek od křižovatky A3. První zádrhel nastal hned po pár metrech kdy robot chybně odbočil do segmentu Z, který nebyl vůbec na trase, naštěstí se tam motala rodinka se psem a tak se robot otočil zpátky, ale to bylo v protisměru. Na obzoru se rýsoval další šťastná náhoda - další robot v protisměru a sním sposta diváků, kterí blokovali cestu. Roboty se vyhnuly, ale diváci se začali rozestupoval. "Nebojte, on se vám vyhne" a lidičky poslusně uzavřeli cestu a ARBot se otočil do správného směru.  Jenže další úkrytické místo bylo už na obzoru. Robot, kterého jsem před chvilkou minul se začal na kulaťáku u odbočky do 3 přetlačovat s lavičkou k velkému zájmu lidiček. Bál jsem se, že se opět otočí a pojede do kotěhůlek. V tuch chvilku přišel spásný nápad. "Prosím vás, udělejte nám prostor jedem doleva." Dav se rozestoupil a udelal nám špalír do segmentu 3 a tak se podařilo krásně odbočit na uzkou klikatou cestu, kde po cca 10 metrech vyjel. Poslení kolo bylo podobné prvním dvoum, široká mírně zatáčející cesta. Pokus opět ukončil stín.

Celkových 33 bodů a 6. místo považuji za úspěch zejména s přihlédnutím k tomu, že robot získával jen polovičku bodů, protože nevezl soudek píva. 

Tags:

ARBot

Month List