Eurobot 2007 - Robot Recycling Rally

Technická specifikace

Cíle soutěže

Eurobot je mezinárodní amatérská robotická soutěž určená pro týmy mladých lidí, kteří se sdružují buď v rámci studentských projektů nebo v nezávislých klubech. Eurobot vzniknul ze soutěže založené ve Francii a nyní se pořádá v celé Evropě, ale vítá i účast týmů z jiných kontinentů.

Eurobot Soutěž Eurobot.

Tématem letošního ročníku soutěže bylo Robot Recycling Rally, tedy recyklace odpadu. Úkolem robotů bylo třídit odpad. Třídily se tři druhy odpadu: lahve, plechovky a baterie. Zápasy probíhají vždy mezi dvěmi týmy a trvají 90 sekund. Každému týmu je přidělena barva, červená nebo modrá. Pro každý tým jsou určeny dva koše: jeden na lahve a druhý na plechovky. Navíc je součástí hřiště jedna společná miska pro baterie. Každý robot se snaží na hřišti hledat odpad, odvézt jej ke správnému koši, tam jej vyhodit a pokračovat v hledání dalších odpadků. Vítězem je robot, který správně roztřídil co největší počet odpadků.

Hardwarová struktura systému

Mechanické části

3D model robotu 3D model robotu.

3D model robotu

Sběrací mechanismus se skládá ze dvou rotujících válců, gumových pásů a zvedací přepážky. Robot může ve svém vestavěném zásobníku pojmout až čtyři kusy odpadu. Vyhazovací mechanismus se skládá z dopravníkového pásu a zadní přepážky. Vyhazovat odpad robot jezdí do košů umístěných v rozích hřiště. Následně používá dopravníkový pás nebo zadní přepážku k vyhození odpadku na správnou stranu, podle toho, jestli jde o lahev nebo o plechovku. Obrázek výše ukazuje detaily robotu.

Robot Robot.

Robot

Elektronické části

Struktura elektroniky Struktura elektroniky.

Struktura elektroniky

Elektronický systém robotu sestává ze čtřech subsystémů.

Prvním subsystémem je řídicí počítač. Jako řídicí počítač byla zvolena deska BOA 5200 od firmy Analogue Micro. Tato deska je založena na procesoru MPC5200, což je procesor s architekturou PowerPC od spoelčnosti Freescale. Deska mimo jiné obsahuje řadič pro 10/100TX Ethernet, 2 x CAN řadič, sériové rozhraní, I2C rozhraní a SPI rozhraní. Především přítomnost řadičů CAN byla velice důležitá při výběru desky, neboť jsme se rozhodli sběrnici CAN použít k propojení všech jednotlivých subsytémů našeho robotu. CAN je diferenční sběrnice používaná především v automobilovém průmyslu.

Druhý subsystém představuje senzorický systém. Všechny senzory jsou připojeny k desce s mikroprocesorem Hitachi/Renesas H8S2638 processor. Mikroprocesor sbírá data ze všech senzorů a posílá hodnoty na řídicí jednotku prostřednictvím sběrnice CAN.

Třetím subsystémem je deska pro řízení motorů. Tato deska je také založena na mikroprocesoru H8S2638 a obsahuje můstky pro řízení motorů. Robot je poháněn dvěmi stejnosměrnými bezkomutátorovými motory od firmy MAXON.

Poslední subsystém provádí sběr naměřených dat z laserového majáku, který je používán pro lokalizaci robotu. Elektronika je založena na modulovaném laserovém vysílači a detektoru s pásmovou propustí. Data jsou sbírána a posílána na sběrnici CAN opět prostřednictvím desky s mikroprocesorem H8S2638.

Robot je vybaven několika IR senzory pro detekci odpadu, rozpoznávání odpadu, detekci oponenta a detekci překážek.

Hlavní řídicí jednotka

Jak již bylo zmíěno, hlavní řídicí jednotka je založena desce procesorem MPC5200 architektury PowerPC. Na desce běží Linux s jádrem verze 2.6.18. Jako souborový systém používáme Journalling Flash File System verze 2 neboli JFFS2. Jde o souborový systém pro použití ve flash paměťových zařízeních. JFFS2 podporuje flash zařízení typu NAND a oproti JFFS podporuje hard links, kompresi a má lepší výkonnost.

Z důvodu malé velikosti paměti flash (16MB) používáme software nazývaný BusyBox. Jde o aplikaci, která v sobě spojuje malé verze mnoha běžných nástrojů systému UNIX, a to ve formě jediného malého spustitelného souboru. Představuje náhradu většiny nástrojů, které jsou obvykle součástí GNU fileutils, shellutils, atd. Nástroje obsažené v BusyBox obvykle mají méně možností, než jejich plnokrevné GNU verze. Nicméně obsažené možnosti zajišťují očekávanou funcionalitu a chovají se téměř stejně, jako jejich GNU protějšky.

Velikost celého kořenového souborového systému je menší, než 5 MB. Redboot, známý boot loader od společnosti eCos, je nainstalován na desce pro usnadnění zavádění jádra operačního systému a k snadnější výměně souborového systému. Komunikace s deskou je realizována přes sériovou linku nebo přes integrovaného řadiče Ethernetu, ke kterému je připojený přístupový bod WiFi.

Softwarová struktura

Hlavní řídicí aplikace

Vývoj programů probíhal většinou v jazycích C/C++, za pomocí volných vývojových nástrojů a knihoven. Jedntlivé části byly navrhovány s ohledem na univerzálnost. Hlavní řídicí program robotu byl vytvořen na architektuře stavových automatů. Vyvinuli jsme sofistikované a snadno použitelné API pro implementaci stavových automatů. V současné době využíváme čtyři stavové automaty, běžící paralelně v oddělených vláknech. Hlavní program se skládá z hlavního stavového automatu pro řešení herní strategie, stavového automatu pro pohyb robotu, stavového automatu řídícího zvedací mechanismus a poslední stavový automat je používán pro lokalizaci.

Architektura řízení pohybu robotu se skládá z několika vrstev. Nejnižší vrstvu představuje PID regulátor, který běží na desce pro řízení motorů. Nad ním funguje několik vrstev na hlavní řídicí desce. Vrstva plánování trajektorie se stará o vytváření hladké trajektorie ze sady bodů po cestě a regulátor trajektorie se snaží robot na této trajketorii udržet. Poslední vrstvou je vrstva pro plánování cesty, která se snaží najít optimální cestu bez překážek spojující dva body.

Během vývoje jsme použili několik komponent, které naši práci v mnoha ohledech usnadnily. Některé z těchto částí, jako je ORTE (OCERA Real-Time Ethernet) či OMK (OCERA Make System) jsou popsány v sekci Dokumentace.

Lokalizace

Aby se mohl robot spolehlivě orientovat na herní ploše, musí vědět, kde se zrovna nachází. Spolehlivý odhad pozice představuje klíčový problém pro mobilní robotiku. Jak již bylo zmíněno, lokalizace robota probíhá za pomoci laserového majáku a pasivních reflektorů. Laserový maják je umístěn na horní části robotu. Pasivní reflektory jsou pokryty vysoce odrazivou páskou a jsou umístěny na vyhrazených místech okolo herní plochy. Úhly změřené mezi jednotlivými odrazy laserového paprsku jsou používány pro výpočet pozice robotu. Pomocí vypočtené pozice aktualizuje algoritmus Monte Carlo model odhadu pozice.

Lokalizace Monte Carlo používá metody, které byly vyvinuty v sedmdesátých letech a v poslední době se opět začaly používat například pro sledování cíle, statistiku či strojové vidění. Lokalizační metoda Monte Carlo je částicový filtr, ve kterém je hustota pravděpodobnosti reprezentována pomocí sady vzorků, které jsou s její pomocí náhodně vytvořeny. Za použití reprezentace založené na vzorcích získáváme lokalizační metodu, která dokáže reprezentovat libovolné statistické rozdělení. Tím pádem je metoda schopna lokalizovat robot globálně. Metoda Monte Carlo je schopna provést lokalizaci robotu bez toho, že by znala počáteční pozici, což umožňuje robotu lokalizovat se po nárazu do překážky či oponentova robotu na hrací ploše.

Při lokalizaci nás nejvíce zajímá aktuální odhad stavu robotu. Stavový vektor sestává z pozice a natočení robotu. Funkce hustoty pravděpodobnosti se používá k reprezentaci veškerých znalostí, které o stavu máme, a na jejím základě jsme schopni odhadnout aktuální pozici. K lokalizaci musíme hustotu vypočítat rekurzivně. K tomu dochází ve dvou fázích:

Fáze predikce: V první fázi používáme model pohybu k odhadu aktuální pozice robotu. V našem případě je odhad proveden na základě odometrie. Odometrie je způsob výpočtu pozice na základě informací o otáčení hnacích kol.

Fáze aktualizace: Ve druhé fázi používáme model měření k integraci informací ze senzorů kvůli korekci odhadu pozice. V našem případě je změřená pozice určena výpočtem z úhlů odrazů laserového paprsku od reflektorů.

Schopnost globální lokalizace metodou Monte Carlo je znázorněna na následujících obrázcích. Při prvním průchodu je algoritmus inicializován tím, že vytvoří 5000 vzorků reprezentujících hustotu pravděpodobnosti. Když se robot pohybuje po herní ploše, jsou vzorky koncentrovány okolo odhadnuté pozice.

Inicializace 5000 vzorků. Inicializace 5000 vzorků. Globální lokalizace po prvním průchodu Globální lokalizace po prvním průchodu. Odhad pozice po 15 průchodech Odhad pozice po 15 průchodech.

Inicializace 5000 vzorků.
Globální lokalizace po prvním průchodu.
Odhad pozice po 15 průchodech.

Vizualizace

V rámci tohoto projektu jsme vyvinuli aplikaci pro vizualizaci robotu. Aplikace zobrazuje hodnoty senzorů, pozici robotu a umožňuje ovládat všechny subsystémy robotu.

Vizualizace robotu Vizualizace robotu.

Vizualizace robotu

Navíc umožňuje simulovat chování robotu. Simulace usnadňuje vývoj algoritmů, jako je plánování cesty nebo lokalizace.

Simulace trajektorie Simulace trajektorie.

Simulace trajektorie

Reference