czech english

Propeler-team

Opava

Propeler-team se soutěže účastnil již podruhé. Příspěvek do sborníku má spíše charakter dlouhého mailu, ale přesto zde můžete najít nějakou inspiraci. To je také hlavní důvod, proč jsme se ho nakonec rozhodli zveřejnit alespoň zde na webu… p.s. a nezapomínejme, že členové týmu jsou ze všech nejmladší

Tomáš z Propeler-teamu píše... Je to něco málo přes jeden rok, co jsem se dal do sestavování svého prvního robota. Ten se měl vydat na samostatnou cestu po parkových cestičkách Stromovky. V tomto ročníku jsme sice nedojeli jako vítězové, přesto nás obohatil o spoustu nových zkušeností a nápadů nejen na stavbu robotů. Komunikace byla na přátelské úrovni, avšak výměna informací jako mezi pravými vědci. Přestože jsme se domů vraceli dříve, odjížděli jsme s dobrým pocitem.
Můj zájem o roboty už trval nějakou dobu. Mezi kamarády (zejména Petr Dluhoš a Jan Koščák - členové týmu) jsme soutěžili v programování umělých inteligencí, her a jiných programů. Kromě toho jsem se snažil vytvořit programy, které zpracovávají obraz na bitmapách. Poprvé jsme skutečné roboty (miniaturní Khepery) programovali na Slezské Universitě v Opavě. Díky Mgr. Magdaleně Chmelářové jsme se tam dostali do laboratoře robotiky, kde nám hlavně pomáhal Ing. Petr Čermák. Dalším obrovským zdrojem informací byl internet, zejména server robotika.cz, i tištěná literatura.
Pro mě, coby programátora, bylo velice těžké překonat, byla propast mezi softwarem a hardwarem. Jinými slovy vytvořit vlastními silami a znalostmi tělo robota. Doposud jsem byl zvyklý, že v softwarovém světě je (téměř) všechno zadarmo. Investice do stavby tedy byla přelomovým krokem. První věc, kterou jsem zakoupil, byl modul SSC32, který ovládá serva přes RS232. Naučit se napsat program pro sériový port sice nebylo jednoduché, ale to bylo všechno co jsem potřeboval, abych mohl něco řídit počítačem. Dalším úkolem bylo zpracování vstupu obrazu z kamery, ale pro to už se našly patřičné knihovny. Konečně jsem měl vše co potřebuju, abych postavil svého prvního robota.

Software

Celý program je napsán v Javě. Hodně lidí by řeklo, že je Java pomalá, ale ve skutečnosti už tomu tak není. Hlavní algoritmus bych alespoň pro zajímavost trochu popsal v následujícím textu.
Z obyčejné webové kamery, s nastavením pro venkovní režim, se sejme obrázek a rozmlží se. Pro jednotlivé pixely se podle barvy určí, jak moc odpovídají barvě cesty. Původně byla zadána napevno nějaká šedá. Později jsme použili jako vstup fotku nejlépe z odpovídajícího místa s označenou cestou, a podle ní se vybírá barva cesty s větší spolehlivostí. Pro různé úseky, pak mohou být různé fotky.
Nový algoritmus pro hledání cesty si na fotku "nakreslil" několik možných budoucích tras a jel po té, která se mu zdála nejdelší. Kupodivu primitivní loňský byl na tom ještě líp tím, že "pouze" našel střed cesty ve vzdálenosti cca 3m, daným směrem jel a dojel dál .
Chtěli jsme sice zapojit i GPS a vyšší inteligenci pro navigaci, vždy ale nějak selhala funkcionalita pevné části robota. Prozatím tedy byl použit pouze algoritmus pro jízdu po cestě.
Oproti minulé koncepci - ackermanovo řízení s jedním hnacím kolem, které bylo neustále poháněné - jsme se letos rozhodli pro diferenční řízení. Výhodou měla být věší manévrovatelnost, včetně schopnosti zastavit se , otáčet se na místě a couvat. Pouze 2 kola (s jedním volným) by měla umožňovat plynulejší pohyb než 2x2 kola nebo 2 pásy, jelikož nevzniká boční tření kol, a zároveň se tak šetří baterie.
Pohon tvořily 2 vrtačky. Na první pohled se to zdálo levné, výhodné a jednoduché řešení. V jedné krabici totiž koupíte motor i s převodovkou, a "spojkou", která původně zabraňuje přílišnému zavrtání šroubu — v našem případě zábrana proti zničení převodovky při náhlé změně směru jízdy. Navíc balení obsahuje akumulační baterie 12V a nabíječku. Vše je sice podstatně nižší kvality, ale odpovídá to nízké ceně.
Vrtačky jako takové vypadaly pěkně. Už tak hezké to ale nebylo, když jsme je rozebrali, a chtěli připevnit na hlavní desku. Motory jsou totiž kulaté, převodovka neurčitého tvaru, zakončení se spojkou a upínací hlavicí. Tudíž jako celek je motor docela dlouhý a není jej za co přichytit. Nakonec přišly ke slovu vodárenské objímky a několik vrstev isolepy pro překonání drobného rozdílu poloměrů mezi motorem a objímkou. V bočních deskách byla navíc vyřezaná díra, ve které přesně seděla široká část.
Ačkoliv se osy pod tlakem trochu vyhýbaly, potíž dělalo nakonec upevnění kol. Kola z kočárku - k vidění i na minulém modelu - byla na šroubu přitažená maticí (celkem logicky se jedno povoluje a druhé utahuje, načež prasklo). Šrouby zjevně taky nebyly koncipovány pro upevnění v hlavě vrtačky. Závit nezabaňuje protáčení ani po utažení kleštěma, a navíc se strhává.
Pro regulaci rychlosti jsme použili PWM (ze stavebnice Typa) regulovaný podle vstupního napětí. Napětí se nastavovalo D/A převodníkem výroby Ing. Petra Koščáka který umožňoval i zpětný chod. Digitální vstup zajišťoval SSC32 (složitě objednaný až z Itálie, než jsem zjistil, že obchody s robotikou jsou i v ČR). Ten umožňuje ovládát 32 serv popř. 32 digitálních výstupů a 4 analogové vstupy - zatím nevyužité.
Toto řešení rozhodně nepatří mezi nejšťastnější. Pokud regulujeme pouze řekněme procentuálně (PWM) přívod energie z baterií do stejnosměrných motorů, dostane se nám různých efektů při různé úrovni nabití baterie, jiném nákladu, sklonu a povrchu cesty. Toto dohromady dělá robota téměř neovladatelným, pokud se odezva řídícího programu navíc blíží, nebo dokonce překračuje vteřinu. Ke konci soutěže jsme udělali krokové řízení - na plno rovně/doprava/doleva, abychom aspoň trochu mohli předpokládat, kam se robot pohne.
Volná kolečka byla původně vzadu (raději 2 kvůli nosnosti a stabilitě), ale robot nedržel vůbec směr - ani při stejných rychlostech motorů - záleželo spíš na zatížení a prokluzování. Navíc se občas zasekly ve špatném směru. Řešením bylo našroubování neotáčivých koleček ve směru jízdy. Někdy to sice bránilo až příliš v otočení, síla motorů se však dala dobře využít ve smyku. V praxi se převážně uplatní jízdá rovně po cestě, než manévrování.
V příští verzi robota budeme směr korigovat pravděpodobně kompasem, a přidáme další převody mezi vrtačky a kola - řetězy by i zvýšily průchodnost. Díváme se i po konstrukci hnacích kol ze sekačky. Zpřevodováním se zvýší i přesnost PWM regulace, která doteď pracovala v několika málo nízkých procentech celkového rozsahu.
Poprvé se taky pokusíme použít místo vypůjčeného notebooku palubní počítač. To uspoří hodně místa na robotu a navíc budeme moci testovat delší dobu. A díky kompaktnosti se snad konečně dostanem i na Eurobota. Bez účasti na Robotouru a výměny informací s ostatními soutěžícími bych se však nic z toho nedozvěděl a nikam dál bych se nedostal.