Naše první soutěž v terénu – Svinaře 2012
Soutěž RORO už náš robot zvládá celkem dobře a tak co dál. Je tu RoboOrienteering,
který nás velmi láká a Robotour, na který naprosto nemáme. Volba byla jednoduchá.
Jdeme do terénu. Původní záměr, že si vystačíme pouze s odometrií se rychle
rozplynul. Přesný gyroskop s rozlišením desetin úhlových stupňů, na který
jsme sázeli se ukázal v terénu jako nepoužitelný, propracované odměřovací
kolečko na měření ujeté vzdálenosti také nic moc. Prostě půl roku práce
v ….. Tak tudy cesta nevede. Bylo jasné, že bez GPS a kamery se neobejdeme.
Pořídili jme si v té době velice slušnou a né příliš drahou GPS BT-Q1000XT
s čipem Mediatek II. Můžu vřele doporučit. Velice citlivý čip a výrobce
poskytuje velmi dobrou technickou podporu jak v podobě konfiguračních programů
tak i podrobného manuálu se všemi funkcemi, kterých je opravdu dost. (
v současné době je již k dostání verze čipu Mediatek III s dalším vylepšením
) Výstup z GPS je klasický 5V UART s NMEA větami. Lze si nakonfigurovat
jaké přesně chcete. Základ navigace tedy máme. Struktura celého systému
byla navržena tak, aby spolupracovala se stávajícím, postaveném na procesorech
Picaxe. Ty řídí dva stejnosměrné motory – stěračové, z vozu Š120 a vyhodnocují
sonary pomocí kterých se robot vyhýbá překážkám. Jako programovací jazyk
je použit C# , a robot doplněn počítačem PC. Dali jsme dohromady komunikaci
přes sériák mezi PC a Picaxe a zvolila se následující taktika: pomocí GPS
se přiblížíme k cílovému bodu a pomocí kamery zkusíme najít červený kužel.
GPS tam dovede robota s přesností tak zhruba ne 2 – 5 m a zbytek musí obstarat
kamera. Ta má za úkol najít kužel. Jako program pro vyhodnocení obrazu
byl použit CamTracking. (obr. 14) Na robota byly přidány ultrazvukové
sonary, aby se dokázal vyhnout překážkám a přední nárazník pro případ,
že by překážku neviděl. V případě nárazu do nárazníku si couvne a potočí,
aby se nestalo, že bude stále jezdit sem a tam a narážet do překážky. Nárazník
je též použit na naražení do kuželu (pokud ho najde), neboť tady se musí
ultrazvuky vypnout. Braly by kužel jako překážku a robot by se mu vyhnul.
A hurá do psaní programu. Pro hlavního programátora, v té době 14-letého
Dana Borna to byl jeho první program!! A začalo opět období pokusů a omylů.
Aby dokázal pochopit systém výpočtů azimutů a souřadnic, muset zvládnout
goniometrické funkce a na rozdíl od školní výuky je i umět použít v praxi.
Nutno podotknout, že to zvládl celkem bez problémů. Po mnoha verzích programu
se nakonec podařilo robota přimět k tomu, aby dělal, co je od něho požadováno.
Poslední úpravy programu byly ukončeny po půlnoci před závodem (jezdili
jme po dvoře osvětleném halogenovými reflektory). Pár hodin spánku a jedem
na závod. Deštivá noc a chladné ráno dalo tušit, že to nebude zrovna bez
problémů. A když jsme viděli tu vysokou trávu ve Svinařích, kde se závod
měl odehrávat… Nakonec ale organizátoři zajistili perfektní zázemí i počasí,
a tak mohl závod začít. S nejistým pocitem s neúplně vychytaným programem
jsme se postavili na start. Rozjezd dobrý, ke kuželu si robot dojel celkem
přesně, a začal se otáčet a hledat červený kužel. A byl tu první problém.
Nikdy by jsme nevěřili, kolik je kolem červených věcí. A diváci - asi s
tím počítali a každý si na sebe vzal alespoň kousek červeného oblečení.
Robot pokud viděl červenou, bral to jako jeho cíl a hurá za ní. Jediná
šance jak eliminovat tyto nedostatky, bylo postavit se mezi robota a falešný
červený cíl a tím mu tuto červenou schovat. Asi to nebylo tak úplně čité
jednání, ale pravidla to nezakazují a naše vzdálenost od něho byla vždy
alespoň cca 2m. Další problém, který se vyskytl, byl jiný kužel, než který
jsme používali při jízdách doma. Byl o mnoho lehčí, a aby aktivoval přední
nárazník bylo ho potřeba zatížit. To nám ale organizátor soutěže povolil
a tak jsme si vždy kužel těsně před nárazem lehce z hora zatížili rukou.
Až na pár zaseknutí programu, které pravděpodobně způsobily špatně postavené
podmínky a která se nám nepodařilo při testech doma na malém prostoru odhalit,
nakonec projel všemi kontrolními body a dokonce trefil i všechny kužely.
Druhé kolo po drobné úpravě programu proběhlo se stejným výsledkem. Ve
třetím kole se projevil ale velký nedostatek GPS. Kousek před koncem trati
GPS ztratila pod stromem signál a byl konec. Jelikož program používá pro
výpočet azimut z NMEA věty GPS, poslední azimut byl ostře vpravo, a tak
se robot vesele točil kolem do kola. Aby se GPS chytla, potřeboval by jet
kousek rovně mimo strom. No a to nastat nemohlo. A tak se točil a točil
dokud neuplynula nastavená půl hodinka a program se zastavil. I tak to
stačilo na první místo. (obr. 15) A závěr: je co vylepšovat. V první řadě
přidat kompas – azimut z GPS není nejlepší, nenaznamená otáčení na místě
(pokud nemá GPS kompas v sobě), vylepšit rozpoznání, zda jde o kužel nebo
jinou červenou překážku, a vyměnit motory za silnější. Naše stěračové při
50 kg hmotnosti robota na točení se v trávě nestačí.
Obrázek 14
Obrázek 15