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čí.