Aktuální vydání

celé číslo

06

2024

MSV 2024

celé číslo

Mobilní autonomní robot pro soutěž Eurobot 2008

Mobilní robotika je obor, v němž se prolíná mnoho technických disciplín. Práce na projektech v tomto oboru je tedy velmi dobrým způsobem podpory výuky v oborech, jako je řídicí technika anebo kybernetika, neboť se při ní studenti potkají s mnoha problémy běžnými při realizaci komplexních systémů v technické praxi. Článek stručně informuje o projektu realizace mobilního autonomního robotu pro soutěž Eurobot 2008 řešeném v rámci činnosti Centra pro podporu talentovaných studentů (Cepot) na ČVUT v Praze.
 

Soutěž Eurobot

V rámci katedry řídicí techniky na Fakultě elektrotechnické ČVUT v Praze (FEL) existuje studentský tým, který se věnuje vývoji mobilních autonomních robotů pro soutěž Eurobot. Jde o mezinárodní soutěž mobilních autonomních robotů určenou pro týmy mladých lidí, převážně studentů technických univerzit mnoha evropských zemí. Soutěž je specifická tím, že roboty mají v každém ročníku jiný úkol. V minulém ročníku měly za úkol sbírat a třídit odpad, téma letošního ročníku bylo nazváno Mise na Mars. Soutěž je organizována ve formě národních turnajů, z nichž vždy tři nejúspěšnější týmy postupují do mezinárodního finále, které se koná každý rok v jiné evropské zemi. V rámci turnajů probíhají zápasy vždy dvou soupeřících týmů. Zápas trvá 90 sekund a v tomto čase musí roboty podle stanovených pravidel nasbírat co nejvíce bodů. Pravidla soutěže zároveň kladou přísné požadavky na rozměry robotů, na bezpečnost těchto systémů a rovněž na principy fair play.
 
Letošním úkolem robotů bylo sbírat florbalové míčky umístěné jednak na herní ploše a jednak v určených zásobnících po jejím obvodu. Ve hře byly míčky ve třech barvách, přičemž každému týmu byla určena jeho barva (a nesměl sbírat míčky soupeřovy). Zároveň byly součástí hry míčky bílé barvy, které mohly sbírat oba týmy. Po nasbírání musel robot odvézt a vyložit míčky do určené oblasti, přičemž větší bodový zisk získal ten robot, který míčky do cílové oblasti skládal v určené barevné sekvenci. Další informace o soutěži Eurobot lze nalézt např. na http://eurobot.cz (webové stránky organizátorů českého národního kola).
 

Konstrukce robotu

Při vývoji robotu pro soutěž Eurobot 2008 (obr. 1) byl kladen důraz především na největší možnou míru modularity systému ve snaze umožnit použití jednotlivých částí systému i pro následující ročníky soutěže, kdy roboty budou muset plnit jiné úkoly. Tento princip byl uplatňován jak při vývoji hardwaru, tak i softwaru systému.
 
Páteří celého systému je sběrnice CAN, zprostředkovávající výměnu dat, včetně povelů, mezi jednotlivými subsystémy. Použití diferenciální datové sběrnice se v systému, jakým je mobilní robot, jeví jako nutnost, neboť sběrnice je vystavena elektromagnetickému rušení jak z vnitřku, tak z okolí systému. Další výhodou sběrnice CAN je velká flexibilita při rekonfigurování celého systému a možnost definovat priority jednotlivých tříd zpráv.
 
Hlavní řídicí jednotku systému tvoří vložený počítač v podobě průmyslové desky BOA5200 s procesorem PowerPC (Freescale MPC5200B), k níž jsou prostřednictvím sběrnice CAN připojeny veškeré periferie a subsystémy, s jedinou výjimkou. Tou je dotyková obrazovka typu OLED, určená k rychlé a přehledné diagnostice stavu celého systému i jeho jednotlivých částí, která komunikuje s řídicí jednotkou po sériové lince.
 

Hardware

Základ robotu je vytvořen z hliníkové desky a rámu ze stavebnicového systému ITEM od firmy Ulmer, podporujícího modulární mechanické uspořádání systému. Na tento základ jsou postupně montovány další subsystémy robotu. Pohon robotu obstarávají dva 60W bezkomutátorové stejnosměrné motory od firmy Maxon Motor s inkrementálními snímači natočení hřídele a Halovými senzory polohy. Převod od motoru ke kolu je zajištěn dvěma převodovkami s celkovým převodovým poměrem 1 : 28. Dále je robot vybaven systémem pro sběr míčků, složeným ze dvou ramen, která se vysouvají před robot. Tento systém je osazen dvěma modelářskými servomotory, které zajišťují vysouvání sběračů, a dvěma komutátorovými stejnosměrnými motory s převodovkou s převodem 1 : 50 pro nabírání míčků. Nabraný míček postupuje na šikmý uzavřený dopravníkový pás, který jej dopraví do otočného karuselu.
 
Na cestě do karuselu je komerční digitální kamerou typu CMUcam3 s vestavěnou elektronikou rozpoznána barva míčku (rozklad RGB). Předností kamery je firmware dodávaný výrobcem, který již obsahuje základní algoritmy pro zpracování obrazu. Kamera komunikuje po sériové lince.
 
Karusel je v robotu orientován vertikálně tak, aby zabíral co nejméně místa a mohl pojmout pět míčků. Je vybaven komutátorovým motorem a dekodérem natočení, zajišťujícím patřičnou souosost dopravníku a karuselu. Míček se vypouští zadními posunovacími dveřmi. Pro detekci herních prvků a oponenta je robot vybaven analogovými infračervenými (IR) dálkoměry (měřicí rozsahy 10 až 80 cm a 4 až 20 cm).
 
Robot tedy obsahuje celkem dva bezkomutátorové a čtyři komutátorové stejnosměrné motory, kameru s rozkladem RGB a osm analogových infračervených snímačů vzdálenosti.
 
Pro řízení snímačů a akčních členů byla autory projektu vyvinuta vlastní elektronika, jejíž základní deska s názvem LPCeurobot je vytvořena tak, aby splňovala požadavky na univerzalitu. Deska LPCeurobot obsahuje procesor s jádrem ARM7 LPC2129 od firmy Philips (dnes již NXP), budiče sběrnice CAN, převodník z USB na RS-232 pro programování při použití USB, informační LED a vývod všech pozic rozhraní GPIO na rozšiřující konektory. Tato deska je koncipována tak, aby mohla být použita samostatně, bez další podpůrné elektroniky.
 
Pro řízení motorů a komunikaci s dalšími snímači byla vyvinuta rozšiřující deska ebBoard s dvojitým budičem komutátorového motoru, budičem tří modelářských servomotorů, rozšiřujícím rozhraním (RS-232, I2C, SPI, EXT INT), osmi sadami vývodů GPIO a čtyřmi A/D převodníky s dolní propustí druhého řádu, která eliminuje rušení. Rozšiřující deska je navržena tak, aby jí bylo možné ovládat kteroukoliv část robotu.
 
K řízení výkonných bezkomutátorových (Brushless Direct Current – BLDC) a s úpravou i komutátorových stejnosměrných motorů o špičkovém výkonu až 250 W byla sestrojena deska BLDCdriver a je využita knihovna programů PXMC (PSD regulátor), vyvinutá na katedře řídicí techniky FEL. Tyto programy řídí podle údajů z inkrementálních snímačů a Halových senzorů motory tak, aby pracovaly plynule a v optimálním režimu. Řídicí algoritmus je implementován v mikroprocesoru Hitachi H8S2638.
 
Hardware robotu jako celek je koncipován univerzálně podle konceptu hot-plug. Díky tomu lze při poruše jedné části systému přesunout řízení na jiné systémy nebo přímo za běhu robotu vyměnit některou jeho část. Při výměně pouze na krátkou dobu přestane fungovat sběrnice CAN.
 
Vzhledem k většímu počtu elektronických modulů v robotu a nutnosti napájet robot z jedné baterie je třeba používat pulzní měniče napětí, které mají větší účinnost než běžné lineární stabilizátory. Pro tyto účely byla vyvinuta deska PowerBoard se třemi pulzními měniči (8 V, 5 V, 3,3 V DC), řízená z desky LPCeurobot. Díky modernímu způsobu řízení je pravidelně kontrolováno napětí baterie a napětí v jednotlivých napájecích větvích. Při nebezpečném poklesu napětí v některé větvi je okamžitě indikována chyba a daná větev se automaticky odpojí. Napětí baterie je hlídáno v několika úrovních tak, aby byla zajištěna dlouhá výdrž baterie a nedocházelo k jejímu nadměrnému vybití. Celý robot napájí jedna baterie 13,2 V/4,6 A·h typu LiFe A123. Baterie tohoto typu snáší velké vybíjecí proudy lépe než baterie LiPol a je možné ji bezpečně nabíjet proudem odpovídajícím až čtyřnásobku její kapacity (asi 20 A).
 

Software

V rámci projektu robotu bylo vyvinuto mnoho původních programových komponent a současně byly také využity některé již hotové komponenty, které vznikly v rámci různých projektů především na katedře řídicí techniky FEL. Při vývoji programové části projektu byl výhradně využíván volně dostupný software. V programové výbavě robotu lze rozlišit několik úrovní.
 
Na nejnižší úrovni jde o firmware jednotlivých desek s elektronikou. Veškeré programy pro použité mikroprocesory (LPC 2129, Hitachi H8S) jsou napsány v jazyce C s použitím volně dostupných vývojových prostředků.
 
Další úroveň programové výbavy tvoří uživatelský program běžící v hlavní řídicí jednotce robotu. Na tomto řídicím počítači je použit operační systém GNU/Linux s jádrem verze 2.6.18. Vzhledem k omezeným systémovým prostředkům nebyla použita žádná hotová distribuce tohoto operačního systému a zvolený systém byl vytvořen na míru s použitím pouze nezbytně nutných programových komponent.
 
Řídicí program má architekturu stavových automatů. Pro zavedení těchto stavových automatů bylo vytvořeno vlastní aplikační rozhraní v jazyce C, které tvorbu stavových automatů značně usnadňuje a zpřehledňuje. Zároveň toto rozhraní obsahuje i mechanismy pro kontrolu základní logické struktury automatů. Hlavní program se skládá z několika paralelně fungujících stavových automatů, které navzájem komunikují prostřednictvím zasílání událostí. Jeden hlavní stavový automat má na starosti herní strategii. Další automaty samostatně řídí jednotlivé mechanismy robotu podle pokynů z hlavního řídicího automatu.
 
Poslední uživatelskou vrstvu vyvinutou v rámci projektu tvoří pomocné aplikační programy, které lze spouštět na osobním počítači a které pomáhají ve fázi ladění celého systému i jeho jednotlivých součástí. Jde především o grafický vizualizační program, který dokáže zobrazovat údaje ze všech senzorů a další stavové informace ze systému, např. odhadovanou polohu robotu na herní ploše. Poloha robotu je znázorněna jak v textové podobě, tak graficky zobrazením herní plochy a robotu. Vizualizační program byl vytvořen při použití grafické knihovny Qt společnosti Trolltech a je určen pro operační systém Linux.
 
Mezi další pomocné programy fungující na osobním počítači patří např. program umožňující ovládat veškeré mechanismy robotu prostřednictvím páčkového ovladače (joystick).
 
Při vývoji aplikačních programů bylo použito mj. rozhraní ORTE (OCERA Real-Time Ethernet). Jde o middleware, který umožňuje sdílet data mezi procesy, a to jak v rámci jednoho systému, tak mezi oddělenými systémy prostřednictvím síťového rozhraní s použitím protokolu UDP. Komponenta ORTE byla vyvinuta v rámci projektu OCERA (Open Components for Embedded Real-time Applications, [2]) na katedře řídicí techniky FEL. Jde o realizaci protokolu RTPS (Real-Time Publisher Subscriber), vycházejícího z modelu komunikace označovaného jako publisher-subscriber, v prostředí open-source. Uvedený model sdílení dat stanovuje zdroj dat (publisher) a příjemce dat (subscriber), přičemž tyto dvě entity jsou na sobě zcela nezávislé. To znamená, že zdroj dat nemá žádné informace o příjemcích, a ti se pouze přihlašují k odběru datových proudů na základě dvou identifikátorů (typ dat a téma). O navázání komunikace mezi zdrojem a příjemci se stará samostatný program aplikace, tzv. správce.
 
Použití komunikační komponenty ORTE umožňuje efektivně sdílet data jak mezi aplikačními programy spuštěnými na jednom (např. řídicím) počítači, tak i mezi několika počítači. Na řídicím počítači je spolu s hlavním řídicím programem spuštěn další program, který má za úkol zprostředkovávat komunikaci na sběrnici CAN oběma směry. Tento program sbírá veškerá data, která po sběrnici CAN obdrží (např. data ze senzorů), a ta poté publikuje prostřednictvím ORTE. K odběru těchto dat se může přihlásit jak řídicí program, tak i grafický vizualizační program spuštěný na osobním počítači připojeném k řídicímu počítači prostřednictvím bezdrátové sítě Ethernet. Stejným způsobem lze předávat jednotlivým subsystémům povely jak z řídicího, tak z osobního počítače (z vizualizačního programu nebo z řídicího programu přeloženého pro architekturu x86). Tento způsob sdílení dat značně zjednodušuje ladění celého systému.
 
Pro řízení motorů je tedy využit systém PXMC a multiplatformní knihovna pro řízení motorů vyvinutá taktéž pracovníky a studenty katedry řídicí techniky FEL.
 

Lokalizace

Pro úspěch v soutěži je nezbytné, aby byl robot schopen určit svou polohu na herní ploše, neboť musí být způsobilý najít důležité herní prvky (zásobníky s míčky apod.). Každý ze soutěžních týmů má možnost umístit si na definovaná místa okolo herního hřiště majáky daných rozměrů.
 
Pro lokalizování byl vyvinut systém skládající se z otočného laserového vysílače a optického přijímače, přičemž laserový paprsek se odráží od majáků v podobě válců potažených fólií s velkou odrazivostí. Získané údaje se zpracovávají statisticky metodou Monte Carlo, která má jako další vstup zavedenu informaci o poloze vypočítané z odometrie (měření ujeté dráhy z inkrementálních a Hallových senzorů na motorech pohonů kol). Metoda poskytuje poměrně uspokojivé výsledky. Přesnost odhadu polohy je v centimetrech, což je pro účely soutěže dostačující.
 
Pro vývoj výpočetních algoritmů bylo použito simulační prostředí Matlab-Simulink (obr. 4), přičemž za zmínku stojí skutečnost, že výsledky získané simulací a výsledky získané z reálného provozu systému se téměř shodovaly.
 

Závěr

Tým působící v rámci katedry řídicí techniky FEL pod názvem CTU Dragons se letos soutěže Eurobot účastnil již podruhé, přičemž vyvinuté roboty mají širší využití než jen účast v soutěži. Projekt se stal východiskem pro několik diplomových prací a tým zároveň reprezentuje ČVUT při akcích jako den otevřených dveří na Fakultě elektrotechnické nebo akce Věda v ulicích, pořádané v rámci projektu Česká hlava. Členové týmu se také zúčastnili mezinárodní konference věnované využití operačního systému Linux ve vestavných systémech reálného času. Rovněž je třeba zmínit účast v soutěži North Star v roce
2007 v ruském Petrohradu, kde se týmu podařilo v mezinárodní konkurenci obsadit páté místo. Další informace o robotech a akcích, kterých se tým zúčastnil, lze nalézt na jeho webových stránkách (http://rtime.felk.cvut.cz/dragons).
 
Poděkování
Článek vznikl za podpory projektu Cepot (Centrum podpory talentů, registrační číslo projektu CZ.04.3.07/4.2.01.1/0045) na katedře řídicí techniky Fakulty elektrotechnické ČVUT v Praze, spolufinancovaným Evropským sociálním fondem a státním rozpočtem České republiky.
 
Odkazy na internet:
 
Bc. Martin Žídek,
Bc. Jiří Kubias,
katedra řídicí techniky Fakulta
elektrotechnická ČVUT v Praze, Cepot
Obr. 1. Robot pro soutěž Eurobot v roce 2008
Obr. 2. Blokové schéma hardwaru robotu
Obr. 3. Použití komponenty ORTE pro distribuci dat
Obr. 4. Simulace robotu v prostředí Matlab