Berta
Autor: Martin Dlouhý, přeložil Kamil Řezáč, 2003-03-08
vysavač řízený mikrokontrolérem
Berta je vítězkou soutěže Cleaning contest
2002! To dokazuje, že nejjednodušší řešení je často zároveň to nejlepší.
Porazila totiž konkurenty vybavené laserovými rangefindery, kamerami a spoustou
výpočetní síly, protože prostě fungovala tak jak měla pouze za použití
čelního nárazníku a mikrokontroléru. Až budete příště stavět robota, určitě si
zjistěte, co je to „eXtreme programming”.
Základní informace
Podvozek je vyroben z hliníkových U–profilů. Pro pohon jsou použity
dva motory (1,5A/12V, 5500o/min) s převodovkami 20:1. Mozkem robota je
16tibitový mikrokontrolér Hitachi (14,745 MHz, 4kB RAM, 128kB Flash). Jediným
použitým senzorem je čelní nárazník. Jako uklízecí metoda byla zvolena náhodná
procházka.
Mechanické provedení
Podvozek je vyroben z hliníkových U–profilů. Hliník se
osvědčil pro svoji nízkou hmotnost, relativní pevnost a snadnou obrobitelnost.
Podvozek je trojúhelníkového tvaru. Na základně trojúhelníku jsou namontovány
dva motory s převodovkami. V posledním vrcholu je umístěno podpůrné kolečko.
Motory o rozměrech 60 x 33 x 33mm jsou napájeny dvanácti volty a při odběru
1,5A se točí rychlostí 5500ot/min. Ke každému motoru je připojena převodovka s
převodovým poměrem 1:20.
Vysavač je plastiková krabice vyrobená s pomocí tavného lepidla. Je
odnímatelná (k robotovi je upevněna pomocí hliníkového držáku). Vysávací
mechanizmus je vyroben ze dvou rozebraných autovysavačů. Konstrukce navíc
obsahuje kartáč, který pomáhá sbírat nečistotu předtím, neř je nasáta do
krabice.
Zdrojem napájení pro motory a veškerou elektroniku je
dvanáctivoltový bezúdržbový olověný akumulátor o kapacitě 7Ah/20Ah.
Oba motory jsou buzeny dvojitým H–můstkem. PWM je generována přímo
mikrokontrolérem. Zpětná vazba je zajištěna optickými enkodéry z obyčejné
počítačové myši. Na softwarové úrovni se o řízení rychlosti a směru stará
nelineární PID regulátor.
Palubní počítač
Pro řízení robota slouží šestnáctibitový mikrokontrolér Hitachi H8/3048.
Je taktován na 14,745 MHz, jeho paměť se skládá z 4kB RAM a 128kB ROM (Flash).
Během vývoje se ukázalo, že je výhodnější robota řídit z PC přes sériovou
linku. Mikrokontrolér byl proto naprogramován pro řízení na nejnižší úrovni a
samotný ovládácí program běžel na PC. To umožnilo pohodlné logování a snazší
změny v programu. Ovládací program byl přenesen do mikrokontroléru až po
skončení vývoje.
Senzory
Na robotovi se nachází pouze dva druhy senzorů:
- nárazník s mikrospínači
- virtuální nárazník založený na korespondenci mezi odebíraným proudem a
ujetou vzdáleností naměřenou enkodéry
Mikrospínače jsou velmi spolehlivé a nepotřebují žádnou dodatečnou
filtraci. Jejich stav je kontrolován každou milisekundu v hlavní smyčce
programu.
Virtuální nárazník využívá faktu, že použité motory nejsou příliš výkonné.
Ani na maximální výkon (stoprocentní plnění PWM) se robot po nárazu
nepohybuje (a ani kola nepodkluzují). Pokud je na jednu a půl sekundy nastaven
maximální výkon a robot se přesto nepohybuje, je situace vyhodnocena jako
kolize s překážkou. Tato detekce se s danou platformou ukázala být velmi
spolehlivou. Z pohledu vyšších vrstev řídícího porgramu je tato detekce
nerozpoznatelná od detekce pomocí nárazníků.
Navigace a vyhýbání se překážkám
Vyhýbání se překážkám bylo velmi jednoduché, protože použitý princip
pokrytí plochy (náhodná procházka) nevyžaduje dodržení jakéhokoliv globálního
plánu. V případě detekce kolize se robot pokusí eliminovat poslední akci.
Pokud kolize nastane při jízdě vpřed, robot se vrátí zpět o 25
centimetrů a pootočí se vlevo nebo vpravo o danou hodnotu (hodnoty jsou
předpočítány v tabulce). Pokud dojde ke kolizi při otáčení, robot se otočí
zpět do výchozí pozice (otáčení vždy probíhá kolem osy robota (na místě) a
zacouvá o dalších 25 centimetrů. Poslední možnost (kolize při couvání) je
řešena pokusem o otočení se, ale z praktických zkušeností ze
soutěže v Lausanne) vyplývá, že lepší
by bylo popojet asi o deset centimetrů dopředu a zkusit se otočit o menší
úhel.
Pokrytí plochy
Strategie použitá pro uklízecí soutěž se jmenuje "náhodná"
procházka. Pravidla pro další postup by měla být generována náhodně, ale ve
skutečnosti (z důvodu reprodukovatelnosti při ladění) jsou zapsána v tabulce.
Každé pravidlo definuje, jakou vzdálenost ujet a o jaký úhel (včetně směru)
se otočit. Tato metoda byla zvolena pro svou robustnost a jednoduchost
(i s ohledem na prostředí a použité senzory.
Výkonnost systému
Výkonnost systému byla měřena zvlášť pro uklízení, vyhýbání se překážkám a
pokrytí plochy.
Testovací dráhou pro uklízení byla podlaha z linolea posypaná konfetami a
cukrem. Hubice vysavače i kartáč byly nastaveny na optimální výsledky.
Vyhýbání se překážkám jsme testovali v normálním kancelářském prostředí
— stoly, židle, kabely na podlaze… Ukázalo se, že jednoduchý citlivý
nárazník se dvěma mikrospínači je dostatečný pro danou úlohu. Maximální
rychlost a optimální pozice nárazníku byly zjištěny experimentálně.
Pokrytí jsme testovali pouze v simulaci. Hlavní kontrolní smyčka byla
volána celkem 600 000krát (10 minut, 1ms perioda). Kvalita uklízení se měřila
počtem čtverců navštívených robotem. Není to úplně precizní ohodnocení, ale
stačí pro představu, zda je výkonnost algoritmu při daných parametrech
lepší nebo horší.
Členové týmu
Martin Dlouhý (md) | vedoucí týmu, software, testování |
Jan Hradil (jh) | hardware, kartáč, obal |
Mike Hibbett (mike) | vysavač |
Ludvík Tesař (lt) | hardware, kartáč, obal |
Jana Halgašová (jana) | povrchová úprava, prezentace |
V případě dalšího zájmu o tento projekt, případně pokud máte nějaké
připomínky, kontaktujte nás prosím pomocí
tohoto formuláře.
Pošlete email redakci.
Všechny materiály, které máme k dispozici, jsou již součástí článku, na který reagujete (tj. pokud tam tedy není např. plánek na stavbu, je to proto, že nic takového nemáme).
Vaši zprávu se bohužel nepodařilo odeslat, ale můžete nám napsat sami na adresu webmaster-at-robotika.cz
Vaše zpráva byla úspěšně odeslána
Pro odeslání formulář je třeba mít zapnutý javascript.