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.