Eurobot 2008 aneb Jak nestavět robota

English version

Na Internetu je o robotech spousta článků a návodů. Tento „antinávod“ spíše shrnuje pro výstrahu a poučení chyby, kterých jsem se dopustil.

Úvod

Na podzim 2007 mi kamarád vyprávěl o soutěži Robotour, konané v Praze, které se zúčastnil. Programováním se zabývám již déle a tak mě nadchla myšlenka postavit a naprogramovat vozítko, které by samostatně plnilo nějakou úlohu. „Vždyť na tom není nic těžkého.“ Dostal jsem se k webu Robotika.cz a jal se studovat. Koupil jsem si jednočip ATmega8, který jsem krátce na to málem spálil, postavil programátor do paralelního portu a po několika večerech a bezesných nocích jsem konečně do jednočipu nahrál program „Hello World“, který blikal ledkou :-)

temp.adamh.cz_robot_foto_deska-detail1.jpg

Řízení mobilem

O robotovi jsem měl jasnou představu. Vezmu podvozek závodního RC auta, takže budu mít vyřešenu mechanickou část, řízení a zdroj proudu, místo přijímače zapojím jednočip s číselným displejem pro ladění, který bude řídit servo a regulátor (tomu se posílají stejné příkazy jako servu) a s jednočipem se bude bavit mobilní telefon, do kterého jednoduše nahraju program v Javě. Mobilní telefon má fotoaparát, takže robot uvidí.

Největším problémem se stala komunikace mezi mobilem a jednočipem - k infraportu mě Java v mobilu nepustila a sériový port telefonu mi připadal moc složitý. Byl jsem přesvědčen o tom, že mi bude stačit jednosměrná komunikace, a rozhodl jsem se pro blikání displejem: K displeji je připevněn fotoodpor a přes A/D převodník jsem schopen zjisti, jestli na displeji svítí bílá nebo černá a z počtu bliknutí získám příkaz. Po nekolika dnech jsem se dostal k verzi, kdy jsem byl schopen mobilem a blikáním displeje ovládat serva. Ovšem přenos byl velice pomalý (u čísla 9 jsem se dostal na necelou sekundu) a nespolehlivý. V lednu 2008 jsem se tedy rozhodl pro komunikaci po sériovém portu. Na Internetu jsem našel zapojení kabelu Siemens, připojil jej k jednočipu a po několika dnech už si mobil s jednočipem vesele a rychle povídal.

temp.adamh.cz_robot_foto_cely1.jpg

Soutěž Eurobot

Přibližně v lednu jsem se dozvěděl o soutěži Eurobot - robot má za úkol posbírat míčky své barvy a dostat je do kontejneru. Na hledání míčků jsem použil fotoaparát v mobilu. Tato metoda byla kvůli proměnlivému osvětlění a „rychlosti“ mobilu (cca 1 snímek za sekundu) zamítnuta a já sháněl jiné senzory. Na Internetu jsem objevil ultrazvukový měřič vzdálenosti SRF02 za příjemnou cenu a tak jsem si jej objednal. Sonar jsem připojil na servo a velmi rychle přišel na jeho neduh - pokud je sonar u překážky moc blízko (méně než 15 cm, což je minimální vzdálenost), posílá mi nesmyslné údaje.

Použití routeru

Mobilní telefon mi přestal jako mozek robota vyhovovat - sice jsem pro něj mohl psát ve své oblíbené Javě, ale s připojeným kabelem se velmi rychle vybíjel a já občas také potřeboval volat. Občas se stalo, že mi někdo volal v době, kdy mobil řídil robota a ten se rozjel plnou rychlostí proti zdi. Na wiki serveru robotika.cz jsem se dočetl o routeru Edimax BR-6104K, do kterého se dá nahrát Linux a který ma dva USB porty, kam můžu připojit Flash disk s řídícím programem a snad i webkamerou (časem jsem zjistil že USB webkamera připojit nejde). Po dvou týdbech bádání jsem získal skvělý robotiký mozek, programy jsem psal v Perlu (skriptovací jazyk) a mohl je pohodlně měnit takřka za běhu přes FTP. S routerem mi velice pomohl pan Jiří Bezstarosti, který vytrvale a ochotně odpovídal na mé často hloupé dotazy.

Router se s jednočipem bavil zase po sériovém portu, takže program v jednočipu mohl zůstat zachován. Začal jsem řešit zásadní problém - co s bateriemi? Podvozek měl baterii svou, ze které byl napájen i jednočip, ale router jsem měl zapojený v 12 V trafu. Baterie se stejným napětím mi přišla poměrně drahá a tak jsem připojil dvě 9 V baterie, protože jsem byl přesvědčen o tom, že vstupní stabilizátor unese 24 V. Zmýlil jsem se a router po připojení baterie pouze blikl a přestal fungovat. Spolu s routerem jsem spálil i Flash disk, se kterým jsem ztratil řídící programy (zálohy jsou důležité :-) ). Po překonání návalu zlosti jsem začal přemýšlet, co teď. Neměl jsem dost peněz ani náladu na koupi a přestavbu nového routeru a tak jsem si prohlédl desku plošných spojů toho spáleného. Zjistil jsem, že z regulátoru jdou dvě větve - 5 V pro USB a 3,3 V pro čipy. Zkusmo jsem připojil 3,3 V na větev s čipy a ejhle - ono to jede! Od té doby jsem robota provozoval s třemi tužkovými bateriemi připojenými na 3,3 V větvi.

temp.adamh.cz_robot_foto_router.jpg

Použití optické myši

Občas se mi stalo, že robot překážku nepoznal nebo se jedním kolem zasekl. Z toho důvodu jsem se rozhodl použít optickou myš, o které jsem si bláhově myslel, že půjde použít i místo odometrie. Implementací protokolu PS/2 jsem ztratil spoustu času a nakonec jsem byl schopen pouze určit směr, kterým se robot pohybuje. Navíc myš musela téměř „šoupat“ po zemi, maximální výška nad povrchem byla jen několik mlimetrů. Ale aspoň něco.

temp.adamh.cz_robot_foto_mys-detail.jpg

Závěr

Soutěž se blížila a robot se zatím uměl pouze vyhýbat řekážkám a to na něj nesměla být nastražena žádná kulišárna (překážka pod úhlem, kdy se signál ze sonaru odrazí do prostoru a nevrátí se zpátky). Potřeboval jsem vymyslet, jak bude robot detekovat míček. Sbírání jsem zatím neřešil, spoléhal jsem na to, že se to „nějak udělá“ (celkem zásadní chyba). Myslel jsem si, že bude stačit sonarem připevněným k servu sledovat prostor před sebou, ale takováto detekce míčku byla velice nespolehlivá.

Nakonec jsem se rozhodl, že robot bude míčky vybírat ze svislých zásobníků na stěnách hřiště a pak je vysype do společnéh kontejneru. Když jsem se dostal k veri, která byla schopna míčky sebrat a vysypat, do soutěžě zbývalo už asi pět dní. Navíc to, že bez odometrie, kterou jsem v začátcích zavrhnul a s podvozkem auta, se kterým se velmi špatně manévruje, nejsem schopen udělat zatáčku o 90 stupňů, aby se robot dostal ke kontejneru. Poslední úpravy na robotovi jsem dodělával pár hodin před Homologací, kterou nakonec prošla asi jen polovina přihlášených robotů, mezi které ten můj samozřejmě nepatřil.

temp.adamh.cz_robot_foto_sber-micku1.jpg

Svého snažení a účasti na Eurobotovi rozhodně nelituji, protože jsem se poučil a vím, do čeho se příště pouštět nebudu :-)

…Postupem času vzniká nová, hezčí a funkčnější verze, více na Robot2 :-)

Videa

Odkazy

 
eurobot2008.txt · Poslední úprava: 2017/10/10 17:32 (upraveno mimo DokuWiki)
 
Driven by DokuWiki

© 2008-2012 Adam Heinrich, adamh.cz, adam@adamh.cz