Autonomní dvouprocesorové vozidlo s naváděcím systémem a analýzou obrazu Adam Ligocki, Zbigniew Opioł
ABSTRAKT Projekt se zabývá vytvořením autonomního vozidla řízeného dvěma kooperujícími procesory, z nichž každý má své předem dané úlohy. Vedle 2 procesorů (ARM a AVR), je vozidlo vybaveno ultrazvukovými senzory vzdálenosti, elektronickým kompasem, GPS přijímačem a kamerou. Data získaná těmito zařízeními jsou dále zpracována a zaslána do počítače po sériovém kanálu tvořeném bluetooth modulem, nebo po TCP/IP protokolu pomocí wi-fi modulu. V počítači je vytvořeno grafické prostředí pro snadnou vizualizaci a čtení dat. Chování robota je rozděleno do několika režimů, ve kterých robot využívá různá čidla a aplikuje různé algoritmy pro vytvoření autonomního pohybu v prostoru, kterému je daný režim určen
CÍLE NAŠÍ PRÁCE Cílem je vytvořit „inteligentního“ robota schopného samostatného pohybu v prostoru pomocí celé řady čidel. Při realizaci projektu očekáváme velkou škálu jak elektrotechnických, tak informatických problémů, jejichž řešením získáme mnoho nových zkušeností, a obohatíme tak své znalosti v oblasti vestavěných (embedded) systémů, umělé inteligence, mechaniky a konstrukce robotů. Pro prvotní vizi jsme si vytvořili funkční diagram použitých prvků
1
Každý procesor provádí přesně dané úlohy, jimiž získává data, která buďto obratem zpracovává, nebo přepošle do jiné části systému, či do PC. Na začátku projektu jsme si stanovili tyto cíle: •
Vytvořit spolehlivou konstrukci robota
•
Nastudovat problematiku použitých procesorů a čidel
•
Vytvořit komunikační most mezi robotem a PC
•
Realizovat grafické prostředí (GUI) v PC
•
Pochopit problematiku analýzy obrazu
•
„Naučit“ robota těmto schopnostem: –
Autonomní vyhýbání se překážkám s použitím mealyho automatu
–
Navigace podle GPS přijímače a kompasu
–
Pohybování po stanovené trase pomocí signalizačních značek
VÝZKUM, METODY A REALIZACE Autonomie je vlastnost jakéhokoliv systému (živá buňka, nebo celá společnost) řídit se vlastními pravidly, být samostatný, svébytný, samosprávný. Autonomní systém nepotřebuje vnější interakci pro své správné fungování. Systémově lze tohoto robota zařadit do skupiny tzv. „embedded“, neboli vestavěných systémů. Tyto systémy jsou specifické svým logickým uspořádáním a svou jednoúčelovostí. Od klasického PC se očekává provádění velmi obecných výpočetních operací. Naproti tomu embedded systém je konstruován a optimalizován tak, aby výborně zvládal jen jednu konkrétní činnost, pro kterou byl vytvořen. V našem případě je jednoznačným cílem konstrukce aplikace autonomních algoritmů. Hlavním zástupcem vestavěných systémů je mikrokontrolér (procesor). Jedná se o složitý sekvenční logický obvod využívající vlastnosti elektronických součástek k provádění matematických operací. Embedded procesory jsou specifické svou škálou integrovaných periférií. Na rozdíl od univerzálních procesorů, které nalezneme v PC, mají vestavěné procesory podporu sériové komunikace, různých sběrnic, několik interruptů, časovačů, a mají k dispozici velkou RAM paměť. Mikrokontrolér provádí sekvencí příkazů zapsaných ve strojovém kódu (assembleru). Nejčastěji vytváříme strojový kód kompilací vyššího programovacího jazyka. Hlavní zástupcem této sekce je jazyk C. Vyjma se svou velmi dobře čitelnou syntaxí, logickým uspořádáním a výbornou prácí s pamětí. Díky své rychlosti a široké podpoře se hodí pro většinu programátorských řešení. Pro zobrazování dat z vozidla PC byly vytvořeny dvě aplikace, každá pro jeden datový tok.První slouží jako řídicí aplikace, pomoci ní se zobrazují údaje ze senzorů, v manuálním modu je možno auto ovládat.
2
Druhá aplikace je pouze doplňková, slouží pro zobrazení dat z kamery.
Vozidlo se skládá s dvou mikroprocesorů. O zpracování obrazu se stará mikroprocesor řady Cortex M4 s FPU firmy ST. Procesor pracuje na taktu 168 Mhz a disponuje 192 kB RAM. Obraz do počítače je posílán pomocí Wi - Fi.
3
O obsluhu periférí zajištuje mikroprocesor rodiny AVR, ATmega128 firmy ATMEL, kerý běží na 16 Mhz. AVR se stará o komunikaci s veškerýmí perifériemi a ovládá motory. Má k dispozici přímé spojení s PC pomocí bluetooth. Procesory mezi sebou komunikují pomocí sériové sběrnice. Další zajímavou přidanou hodnotou je DPS pro procesor ARM
Základní schopností robota je vyhýbání se překážkám. K tomu slouží 3 ultrazvuková čidla umístěná v přední části konstrukce. Procesory získávají data o svém okolí a s aplikací algoritmů splňujících
4
principy Mealyho automatu (výstup systému je dán jeho vstupem a posledním stavem) volí nejlepší možnou příští cestu. Další schopností robota je orientace podle GPS dat. Zadáme stroji cílové souřadnice, a on samostatně s použitím GPS přijímače zjistí svou aktuální polohu, vypočítá vektor mezi body a převede jej na azimut. Pomocí kompasu pak řídí svůj pohyb a neustále se přibližuje ke stanovenému cíli. Při módu rozpoznání obrazu se načte snímek z kamery, provede se detekce hran. Po zdetekování hran se detekují rohy. Poté postupnou kombinaci rohů se hledá čtverec. tento čtverec je s vysokou pravděpodobnistí hledaná značka. Dále se obsah čtverce porovná z maskami uloženými v FLASH paměti procesoru. Je-li nalezena shoda, procesor odešle znamení druhému procesoru. Není-li nalezena schoda, nebo je velmi malá, značka je uznána jako falešně
VÝSLEDKY Vytvořili jsme konstrukci robota připomínající tank. Je velmi pevná a dobře odolává vnějším silám. Poměrně dobře zvládá i pohyb v náročnějším terénu. Cele vozidlo váží asi 1,2 kg. Pro napájení robota jsme použili 2 baterie Ni-Mh 7,2V s kapacitou 3300mAh pro elektroniku a 1600mAh pro motory. Zprovozníme-li pak všechny nainstalované systémy, robot odebírá proud 0,7A, což představuje ztrátový výkon téměř 6W pouze na elektronice. Motory v zátěži odebírají průměrně 0,6A každý jeden. Vozidlo je schopné plně autonomního pohybu po místnosti, v manuálním módu spolehlivě poslouchá příkazy obsluhy. V režimu rozpoznávání značek pracuje s vysokou úspěšností. Protože je rozpoznání matematicky náročné a obraz za jízdy je neostrý, vozidlo dojede na určenou vzdálenost k značce a chvíli vyhodnocuje výsledek, poté se vydá správným směrem.
Obrázek ilustruje nejzajímavější režim, ve kterém robot díky kameře, Cannyho detekci hran ,a analýze obrazu rozpoznává značky. Je možné vytvořit prakticky jakoukoliv značku a provádět jakékoliv pohybové úlohy. Další zajímavou přidanou hodnotou je DPS pro procesor ARM. Má připravené vývody pro 2 kamery, a je tak možnost vytvořit strojovou stereo vizi. Díky tomu by robot byl schopen
5
„3D vidění“. Dále je zde připraven konektor pro grafické LCD, a je aplikovaná velmi zajímavá FRAM technologie Pro vizualizaci všech vnitřních pochodů robota jsme vytvořili 2 aplikace v jazyce C# na platformě Windows .NET. První aplikace zobrazuje všechna data z čidel a umožňuje ovládání vozidla. Druhá pak slouží k přenosu velkého množství dat v podobě obrazu po TCP/IP protokolu.
ZÁVĚR Vytvořili jsme funkčního robota splňujícího všechny cíle, které jsme si na začátku stanovili.
V současné době se otevírá možnost vytváření dalších režimů, ve kterých bude vozidlo využívat senzory jinými způsoby, nebo je možnost přidat další zařízení. Aktuálně pracujeme na připojení druhé kamery, a vytvoření stereo vize. V průběhu vývoje tohoto robota jsme získali mnoho zkušeností s aplikací embedded systémů a naučili jsme se pracovat s celou řadou zajímavých technologií.
6
REFERENCE Obecně jsme použili více jak 20 různých pramenů. Převážně se jedná o internetová fóra a webové portály zabývající se vždy specifickou tématikou. Na tyto internetové stránky vkládají své příspěvky a komentují různé problémy velmi zkušení lidé z oboru. Nepostradatelným zdrojem jsou datasheety, referenční manuály a popisy komunikačních protokolů všech použitých zařízení. Taktéž jsou velmi užitečným prvkem výrobci předpřipravené ukázkové programy prezentující funkčnost jejich produktů. Kompletní seznam všech použitých zdrojů a referencí se nachází v protokolu o projektu v sekci „Použitá literatura“.
PODĚKOVÁNÍ Děkujeme panu Ing. Ladislavu Opiołovi za pomoc při vedení projektu a za jeho cenné rady při aplikaci naších znalostí na tento projekt. Děkujeme paní Bc. Libuši Hrejsemnou za pomoc při vytváření desek plošných spojů.
KONTAKTY Střední průmyslová škola elektrotechnická Havířov Havířov – Město Makarenkova 1 736 01 Adam Ligocki
[email protected] Zbigniew Opioł
[email protected]
7