czech english

Berta

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.