VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV AUTOMATIZACE A INFORMATIKY FACULTY OF MECHANICAL ENGINEERING INSTITUTE OF AUTOMATION AND COMPUTER SCIENCE
ŘÍDICÍ SYSTÉM PRO MOBILNÍ KOLOVÉ ROBOTY CONTROL SYSTEM FOR WHEELED MOBILE ROBOTS
DIPLOMOVÁ PRÁCE DIPLOMA THESIS
AUTOR PRÁCE
ONDŘEJ ANDRŠ
AUTHOR
VEDOUCÍ PRÁCE SUPERVISOR
BRNO 2007
Ing. PAVEL HOUŠKA, Ph.D.
PODĚKOVÁNÍ Za odbornou pomoc při řešení problémů, získání cenných informací a zkušeností děkuji vedoucímu diplomové práce Ing. Pavlu Houškovi Ph.D. Dále chci tímto poděkovat svým rodičům za vytrvalou podporu během celého mého studia.
ABSTRAKT Tato diplomová práce se zabývá možností návrhu a realizace řídicího systému nižší úrovně pro mobilní roboty. Pro možnosti odladění a ověření byl zvolen mobilní robot OMR III. V práci je provedena analýza stávají úrovně problematiky, z níž vyplynula vhodná koncepce řídicího systému. Na základě zvolené koncepce a periferií mobilního robotu OMR III byla provedena volba vhodného mikrořadiče pro řídicí systém. Pro tento mikrořadič byl proveden návrh a realizace desky centrální jednotky systému. Dále je proveden popis návrhu struktury řídicího systému a jeho realizace. Poslední část práce se zabývá návrhem a realizací software uživatelského rozhraní, který umožňuje zadávat systému konkrétní vyšší cíle.
ABSTRACT This diploma thesis deals with the possibility of design and implementation of lower layer control system for wheeled mobile robot. Mobile robot OMR III is suitable platform for control system testing. There are discussed some examples and implementation of common used control systems in the first part. Next part describes peripheries of the OMR III and their capability of connection to the platform. The choice of suitable microcontroller depends on peripheries and a structure of the system. The central unit board with microcontroller and necessary electronics has been designed. To enable communication with upper layer and to handle peripheries the control system has been programmed. Final part of this thesis describes the design of the user interface, which allows robot to be controlled.
KLÍČOVÁ SLOVA Mobilní robot, řídicí systém pro autonomní mobilní robot, LPC 2148
KEYWORDS Mobile robot, Control system for autonomous mobile robot, LPC 2148
OBSAH 1
ÚVOD...................................................................................................... 13
2
MOBILNÍ ROBOTIKA .......................................................................... 15 2.1 Historie mobilní robotiky .................................................................................... 15 2.2 Rozdělení mobilních robotů ................................................................................ 17 2.3 Mobilní robotika v České republice .................................................................... 19 2.3.1 Fakulta strojního inženýrství, VUT Brno ........................................................ 19 2.3.2 Fakulta elektrotechniky a komunikačních technologií, VUT Brno................. 20 2.3.3 Katedra mechaniky, VA Brno ......................................................................... 21 2.3.4 Katedra mechaniky, FS, ČVUT v Praze.......................................................... 21 2.3.5 Skupina mobilní robotiky, MRG, FEL, ČVUT v Praze .................................. 21 2.3.6 Katedra robotechniky VŠB-TU Ostrava.......................................................... 21
3
ŘÍDICÍ SYSTÉMY MOBILNÍCH KOLOVÝCH ROBOTŮ ................ 23 3.1 Architektury založené na funkční dekompozici .................................................. 25 3.2 Reaktivní systémy................................................................................................ 27 3.3 Hybridní systémy................................................................................................. 29 3.3.1 Robot na Katedře kybernetiky FEL ČVUT v Praze ........................................ 29 3.3.2 Robot MVR23 na VŠB-TU Ostrava................................................................ 30
4
AUTONOMNÍ LOKOMOČNÍ ROBOT OMR III ................................. 35 4.1 Podvozek robotu OMR III ................................................................................... 35 4.1.1 Kinematický model podvozku......................................................................... 37 4.1.2 Základní kinematické rovnice.......................................................................... 38 4.1.3 Pohonná jednotka............................................................................................. 39 4.2 Scénové snímače pro mobilní robot OMR III ..................................................... 41 4.2.1 Ultrazvukový snímač vzdálenosti.................................................................... 41 4.2.2 Infračervený snímač vzdálenosti ..................................................................... 42 4.2.3 Laserový dálkoměr .......................................................................................... 43 4.3 Inerciální snímače ................................................................................................ 45
5
KOMUNIKAČNÍ KANÁLY V ROBOTICKÝCH SYSTÉMECH ....... 47 5.1 Hardwarová úroveň komunikace ......................................................................... 47 5.1.1 Sériové sběrnice............................................................................................... 47 5.2 Softwarová úroveň komunikace .......................................................................... 48 5.3 Typy komunikace ................................................................................................ 48 5.3.1 UART (Universal Asynchronous Receiver/Transmitter) ................................ 48 5.3.2 I2C-bus ............................................................................................................. 48 5.3.3 SMBus ............................................................................................................. 49
5.3.4 SPI (Serial Peripheral Interface bus) ............................................................... 49 5.3.5 USB (Universal Serial Bus) ............................................................................ 50 5.4 Volba propojení mezi jednotlivými uzly distribuovaného systému řízení.......... 50 5.5 Použitý komunikační protokol pro distribuovaný systém robotu........................ 50 5.6 Strategie zpracování a šíření dat v distribuovaném systému řízení..................... 51
6
ŘÍDICÍ SYSTÉM MOBILNÍHO KOLOVÉHO ROBOTU OMR III .... 53 6.1 Požadavky na HW řídicího systému.................................................................... 53 6.2 Volba MCU ......................................................................................................... 54 6.3 Návrh zapojení..................................................................................................... 56 6.4 Centrální jednotka řídicího systému.................................................................... 57 6.5 Programovací jednotka........................................................................................ 58 6.6 Koncepce SW ...................................................................................................... 59 6.7 Realizace SW....................................................................................................... 60 6.7.1 První vlákno .................................................................................................... 60 6.7.2 Druhé vlákno ................................................................................................... 63 6.7.3 Ovládací rutiny mikrořadiče............................................................................ 64 6.7.4 Hlavní smyčka programu ................................................................................ 64 6.8 Uživatelské rozhraní na PC ................................................................................. 64 6.9 Program operátor ................................................................................................. 65 6.10 Použité vývojové prostředky ............................................................................... 66
7
ZÁVĚR .................................................................................................... 67
POUŽITÁ LITERATURA.............................................................................. 69 SEZNAM PŘÍLOH ......................................................................................... 71
Strana 13
1
ÚVOD
Světový vývoj v moderním průmyslu zvyšuje poptávku po nasazení stále většího množství specializovaných technologií. Společně s postupnou automatizací výroby se jeví jako účelné nasazení mobilních robotů. Tyto roboty jsou postupně vybavovány prvky jisté inteligence, což jim umožňuje určitou míru autonomnosti. Dosavadní zkušenosti s navrhováním a konstrukcí mobilních robotů naznačují, že se zřejmě prosadí vysoce účelné konstrukce, které nahradí lidské zdroje. Kromě nasazení v nebezpečném a pro lidi nepřijatelném prostředí najdou uplatnění i ve zvláštních případech (vesmír, podvodní prostředí). Ztráta lidského zdraví a života je nenahraditelná, nechť nás lidi, jako obyvatele této planety, ve zvláště nevýhodných situacích nahradí automaticky pracující stroje. Těžištěm aplikace mobilních robotů nezůstává jen průmysl, v poslední době se objevují snahy zavést mobilní robotiku i do oblastí služeb a zábavy. Jako velmi perspektivní se jeví využití v medicíně. Rovněž FSI nezůstává ve vývojových trendech bokem dění a soustřeďuje svoji kapacitu do perspektivních směrů výzkumu a vývoje, mezi které z hlediska dlouhodobého záměru fakulty patří automatizace a robotizace výrobních procesů. V rámci těchto snah jsou na půdě fakulty realizovány projekty zaměřené na vývoj mobilních robotů. Jedním z nich je autonomní lokomoční robot, elektronikou řízený systém, schopný adaptivně se přizpůsobit měnícímu se prostředí. Robot má být schopen prostorového, nebo rovinného pohybu v okolním prostředí pomocí lokomočního mechanismu včetně plánované interakce s tímto proměnlivým okolním prostředím. Při tom využívá algoritmů umělé inteligence. Pohyb je uskutečněn v souladu s instrukcemi nadřazeného systému, nejčastěji člověka. Je tedy zřejmé, že autonomní lokomoční robot představuje typický mechatronický systém s řadou dílčích, obvykle též mechatronických podsystémů. Projekt autonomního lokomočního robotu OMR III vzniká již několik let v laboratořích FSI VUT v Brně a jeho návrh vychází ze zkušeností z projektu MOBIL II, který vznikl v týchž laboratořích. Cílem projektu je realizace autonomního lokomočního robotu určeného pro pohyb v částečně známém, případně neznámém prostředí. Robot musí být schopen reagovat na statické i dynamicky se měnící překážky. Projekt byl rozdělen do několika etap. První etapou bylo postavení podvozku robotu a jeho oživení, druhou etapou vytvoření navigačních modulů pro pohyb v částečně známém prostředí a třetí etapou bude vybavení robotu systémem technického vidění a výzkum metod lokální a globální navigace. Úkolem mé diplomové práce je prostudovat problematiku řídicích systémů mobilních robotů, prostudovat již vyrobené periferie a navrhnout unifikovaný způsob jejich ovládaní. Dále má být navrženo rozhraní pro přídavné softwarové moduly a komunikační rozhraní s nadřazenou úrovní přes USB. Navržený řídicí systém nižší úrovně má být realizován a odzkoušen.
Strana 15
2
MOBILNÍ ROBOTIKA
Mobilní robotika je vědní disciplína zabývající se vývojem mobilních robotů. Mobilní roboty se mohou pohybovat v prostředí, nebo jej i částečně měnit. Autonomnost jejich chování je způsobena jistým stupněm inteligence. Podle úrovně samostatného chování rozlišujeme roboty autonomní (schopny samostatného chování) a neautonomní (bez schopnosti samostatného chování). V této kapitole bych chtěl nastínit historický vývoj mobilní robotiky a základní rozdělení mobilních robotů. Dále uvedu příklady některých projektů mobilních robotů na našich vysokých školách. Při psaní této kapitoly jsem vycházel z literatury [1], [2], [3], [4], [5], [6] a [7].
2.1
Historie mobilní robotiky
Záznamy o touze a pokusech vytvořit umělou bytost, umělého jedince, doprovázejí dějiny lidstva snad od nepaměti. Jako příklad mohou posloužit nejrůznější pověsti a legendy o vytvoření „umělého člověka“. Pověst „O pražském Golemovi“ patří k nejzmámenějším u nás. Ve třicátých letech minulého století pak na základě slavné hry Karla Čapka „R.U.R.“, vzniká slovo „robot“, označující automatické zařízení. V roce 1941 sci-fi spisovatel Issac Asimov poprvé použil slovo robotika k popisu technologie robotů a předpověděl velký rozvoj robotnického průmyslu. Jeho předpověď se stala pravdou. V poslední době probíhá exploze ve vývoji a nasazování robotů. Robotika je nyní chápána jako věda, která zahrnuje všechny technologie spojené s roboty. V roce 1964 byly otevřeny laboratoře umělé inteligence na Massachutess Institute of Technology (MIT), Stanford Research Institute (SRI) a dalších institucích v USA. Zabývají se mimo jiné využitím umělé inteligence v robotice. K dalším průkopníkům patří robot Shakey (1969), vyvinutý výzkumným ústavem Standford Research Institute, Artificial Intelligence Group, v Californii. Tento robot se dokázal pohybovat v prostředí vytvořeném z několika místností, v nichž se nacházely krabice různých rozměrů. Shakey (obr. 1) byl schopen vyhýbat se překážkám a přesunovat krabice podle zadaného plánu. Robot měl kognitivní řídicí systém (ŘS) s klasickým uspořádáním. Dalším příkladem realizovaného mobilního robotu je mobilní autonomní robot IPAMAR (IPA Mobile Autonomous Robot) realizovaný firmou IPA ze Stuttgartu v SRN. Robot byl určen pro převážení nákladů po tovární hale. Z toho důvodu pro něj byla vyvinuta nová řídicí architektura nazvaná integrated sensor action planning (plánování pomocí integrace senzorů a akcí).
Strana 16
2 MOBILNÍ ROBOTIKA
Obr. 1 Robot SHAKEY. Významnou skupinou zabývající se od 80. let minulého století výzkumem robotů je laboratoř UI při MIT, v Californii, USA. Zde byly realizovány úspěšné kolové roboty Allen a Herbert, jejichž úkolem bylo mechanickou rukou sbírat pohozené plechovky od Coca-Coly a shromažďovat je na jednom místě. Dále zde bylo vytvořeno několik menších kolových robotů např. Tom a Jerry, jejichž úkolem bylo pohybovat se rychle v neznámém prostředí bez vytváření map světa, vyhýbat se překážkám. Úlohou Toma bylo navíc sledovat Jerryho. V poslední době laboratoř zkonstruovala ještě několik šestinohých robotů tzv. hexapodů (např. GENGHIS). Všechny zmíněné roboty jsou vybaveny ŘS na bázi vrstvené architektury. V roce 1997 je na Marsu vysazen robot Sojourner. Zhruba ve stejném období jsou položeny základy mezinárodním organizacím Federation of International Robot-soccer Association (FIRA) a RoboCup které organizují soutěže robotů ve fotbale. Cílem těchto organizací je především urychlení výzkumu v robotice. RoboCup má dokonce ve své preambuli za cíl, aby robotický tým porazil lidský tým – mistra světa v roce 2050 v regulérním fotbalovém zápase. V roce 2000 předvádí fy Honda svůj humanoidní robot ASIMO a SONY předvádí své zooidy AIBO. V České republice se výzkum v oblasti robotiky provádí především na vysokých školách. Na VUT v Brně je prováděn výzkum na Fakultě strojního inženýrství (FSI) a na Fakultě elektrotechniky a komunikačních technologií (FEKT). Samostatnou oblastí vývoje jsou automatická zařízení používaná v automatických kosmických stanicích určených pro výzkum vesmíru. Ty jsou používány pro získávání údajů o Zemi a dalších planetách-automatické sondy. Jedním z typů těchto automatů jsou
2 MOBILNÍ ROBOTIKA
Strana 17
také samohybná zařízení určená pro výzkum povrchu planet. Jedním z nejznámějších je Lunochod. Exkurzi do historie uzavřu citováním základních zákonů robotiky, tak jak je definoval spisovatel Issac Asimov již v roce 1950 v knize Já robot (I, Robot). 1. Robot nesmí ublížit člověku nebo svou nečinností dopustit, aby člověku bylo ublíženo. 2. Robot musí uposlechnout příkazů člověka, kromě případů, kdy tyto příkazy jsou v rozporu s prvním zákonem. 3. Robot musí chránit sám sebe před zničením, kromě případů, kdy tato ochrana je v rozporu s prvním nebo druhým zákonem. Tyto zákony, i když jsou definovány spisovatelem sci-fi literatury, by měl ctít každý výzkumník v oboru robotiky.
2.2
Rozdělení mobilních robotů
Základní rozdělení mobilních robotů můžeme udělat podle několika kritérií. Jedním z charakteristických rysu je často jejich jedinečná konstrukce (prototypy). Přesto se dají definovat společné požadavky a vlastnosti. K těmto charakteristikám mimo jiné náleží: • zabezpečení mobility (tedy schopnosti pohybu) • volba vhodného lokomoční ústrojí (tedy technického prostředku, umožňujícího pohyb) • použití navigačních podsystémů (lokální a globální navigace) • přítomnost dalších podsystémů: • senzorický • řídicí • palubní napájení (energetická síť) • zdroje energie (např. akumulátory) • nástavba (manipulační rameno apod.) Jiné dělení dle charakteristických vlastností: • řídicí systém (reaktivní, neuronové sítě, neuro-fuzzy, genetické alg.) • způsob navigace (lokální okolí, globální mapa) • senzorický systém (kontaktní čidla, IR čidla, sonar, kamera) • stupeň inteligence (manuální řízení, inteligentní řízení s plánováním pohybu) • způsob pohybu (nohy, kola, pásy, vrtule) • morfologie (tvar, velikost) • prostředí (vnější-vnitřní, vzduch-země-voda), • řešení úlohy (samostatné, skupinové-multiagentní systém) • …
Strana 18
2 MOBILNÍ ROBOTIKA
Zjednodušené rozdělení mobilních robotů podle podvozků, které používají, je na obr. 2.
Rozdělení mobilních robotů podle druhů podvozku Biologický inspirované soustavy
1,2,3,4,6, 7,8- nohé
Kráčející
Kulhavé
Šplhající
Plazivé Speciální
Létací Hladinové
Plovoucí Podhladinové
Hybridní soustavy Kolo - pás
Pás - noha
Kolo - noha
Pásové
Kolové
1,2,3,4,6 - kolové
Umělé soustavy
Vícekolové
Obr. 2 Rozdělení mobilních robotů podle podvozků. Biologické systémy vycházejí z historie, člověk se při konstrukci pohybového ústrojí nechal inspirovat přírodou. Umělé (nebiologické) soustavy navazují na objev a aplikaci jednoduchých strojů. Kolové robotické soustavy tvoří z hlediska možnosti použití podstatnou část v praxi nasazovaných robotů. Biologicky inspirované soustavy se zatím nasazují pro speciální aplikace, kde kolové čí pásové podvozky nelze z nějakého důvodu použít. Nanorobotika a biorobotika jsou kombinace robotiky, elektrotechniky a medicíny, které mají s mobilní robotikou spojitost v některých případech. Jednotlivé mechanické konstrukce se liší v kinematických a dynamických parametrech tj. manévrovatelnosti, nosnosti, maximální možné dosahované rychlosti, statické a dynamické stabilitě, apod. Typ podvozku se volí na základě požadavků, pro jaký terén je robot určen. Od zvoleného typu podvozku se pak významně odvíjí provozní
2 MOBILNÍ ROBOTIKA
Strana 19
parametry robotu, zejména jeho manévrovatelnost a spotřeba energie s tímto pohybem spojená. Dělení podle oblasti využití: • autonomní dopravní prostředky (auta, lodě, vlaky, letadla) • průmysl (zemědělství, výroba, doprava, zábava) • nebezpečná prostředí nebo těžko přístupná prostředí (manipulace s radioaktivním materiálem, chemikáliemi, výbušninami, průzkum potrubí) • … Dělení dle specifické aplikace: • úklidové práce (letiště, nádraží, nemocnice) • doručovatelské služby (zdravotní materiál, jídlo, pošta) • zemědělství (setí, sklízení, plení, hnojení) • manipulace s nebezpečnými materiály (výbušniny, chemikálie) • stavby (domy, silnice) • armáda (manipulace s výbušninami, boj, špionáž) • zábava (inteligentní hračky) • … Jistě by se dala najít i další kritéria dělení mobilních robotů. Výše uvedená dělení jsou nástinem komplexních pohledů.
2.3
Mobilní robotika v České republice
V České Republice působí několik vývojových týmů v oblasti mobilní robotiky. Jsou soustředěny především kolem odborných pracovišť na našich vysokých školách. 2.3.1
Fakulta strojního inženýrství, VUT Brno
Na Fakultě strojního inženýrství je problematika mobilních robotů řešena na více ústavech. Výsledkem aplikovaného vývoje a výzkumu na Ústavu výrobních strojů, systémů a robotiky, bylo zkonstruování a sestavení mobilních robotů MOBIL I a MOBIL II, VUTBOT 1 a VUTBOT 2. Počátky jsou datovány do roku 1993, kdy byl přijat grantový projekt GAČR. Na základě etap jeho řešení, byly vyvinuty celkem 3 prototypy. Posledním vývojovým modelem je zcela nový autonomní lokomoční robot, vyvíjený pod jménem VUTBOT 2 (obr. 3). Tento robot je určen pro mezioperační dopravu a automatickou manipulaci. Konstrukce mobilního robotu vychází ze čtyřkolového podvozku s řiditelnou zadní nápravou a poháněnými předními koly. Robot je osazen multisenzorickým systémem pro automatickou navigaci v prostředí a identifikaci překážek a kolizních situací. Cílem projektu je zhotovení plně funkčního a provozuschopného prototypu, který pracuje v plně automatickém cyklu se snadno přeprogramovatelným algoritmem jízdních drah a koncových bodů.
Strana 20
2 MOBILNÍ ROBOTIKA
Obr. 3 Robot VUTBOT 2. Na Ústavu informatiky a automatizace bylo v rámci výzkumného záměru realizováno několik variant mobilních robotů OMR (Omnidirectional Mobile Robot). Mobilní robot se třemi všesměrovými koly (obr. 4) je použitelný všude tam, kde se vyžaduje větší manévrovací schopnost, tj. pohyb po libovolné trajektorii se současným otáčením. Pohybové možnosti robotů s tímto uspořádáním podvozku jsou zvláště výhodné pro týmovou spolupráci více robotů.
Obr. 4 Mobilní robot OMR III. 2.3.2
Fakulta elektrotechniky a komunikačních technologií, VUT Brno
Výzkumný tým Ústavu automatizace a měřicí techniky (ÚAMT) vyvinul v krátké době robot UTAR pro výzkum kombinovaného autonomního a teleprezenčního řízení. Jeho současným následovníkem je robot ORPHEUS pro průzkum okolního terénu.
2 MOBILNÍ ROBOTIKA
Strana 21
Fotbalový tým RoBohemia tohoto ústavu je dvojnásobným držitelem titulu mistra Evropy v kategorii MiroSot – FIRA. 2.3.3
Katedra mechaniky, VA Brno
Jedním z předních pracovišť u nás, které se zabývá vývojem kráčivých robotů, je katedra mechaniky na Vojenské akademii v Brně. Toto pracoviště se orientuje především na výzkum dynamiky pohybu těla a nohou robotu. Cílovou aplikací výzkumu má být realizace kráčivého robotu. Předpokládaná realizace má mít podobu šestinohého robotu, 1,5 m vysokého, schopného pohybu v reálných přírodních podmínkách a plnícího další požadované úkoly (např. přenos břemen). 2.3.4
Katedra mechaniky, FS, ČVUT v Praze
Katedra mechaniky na Fakultě strojní, ČVUT v Praze, je pracoviště zabývající se analýzou a vývojem mechanických dynamických systémů. Specializuje se na návrh a vylepšování konstrukcí nohou a těl robotů. 2.3.5
Skupina mobilní robotiky, MRG, FEL, ČVUT v Praze
Skupina mobilní robotiky byla založena na Katedře řídicí techniky ČVUT FEL v roce 1991 Doc. Pavlem Nahodilem. Jedním ze směrů vývoje robotů skupiny MRG byly na začátku 90 let kráčivé mechanismy. Výsledkem vývoje v tomto směru je kráčivý hexapod MARVIN. Návrh tohoto šestinohého robotu byl inspirován živou přírodou. Bylo pro něj navrženo několik algoritmů pro pohyb a celkové řízení. Robot byl plně autonomní jak z hlediska napájení tak řízení. Díky palubnímu řídicímu systému v těle robotu a bateriím je MARVIN schopen plně autonomní činnosti. Byla na něm otestována chůze vpřed / vzad, krabí chůze a několik typů zatáčení, a to na různých druzích povrchu. Dále byl výzkum v katedrálních robotických laboratořích zaměřen na kooperaci chování uvnitř společenství mobilních robotů. Pro ověřování reálných experimentů byla navržena a realizována platforma čtyř malých mobilních robotů. 2.3.6
Katedra robotechniky VŠB-TU Ostrava
V roce 2004 byl na katedře robotechniky přepracován mobilní všesměrový robot mvr23. Byly provedeny úpravy podvozkové části robotu a řídicího software. Dále se tato katedra zabývá vývojem servisních robotů. Na VŠB-TU také vznikl tým robotího fotbalu.
Strana 23
3
ŘÍDICÍ SYSTÉMY MOBILNÍCH KOLOVÝCH ROBOTŮ
V této kapitole nastíním základní rozdělení architektur řídicích systémů a příklady konkrétních aplikací. Při psaní této kapitoly jsem vycházel z literatury [3], [8], [9], [10] a [11]. Autonomní mobilní robot je systém se schopností fyzicky ovlivňovat prostředí, ve kterém se nachází, a v tomto prostředí se také pohybovat. Rozšířené schopnosti robotů o možnost pohybu v proměnlivém prostředí vedou k novým požadavkům na řídicí systém. Objekty v prostředí mohou měnit svoji polohu v závislosti na čase. K částečným změnám může docházet i u statických objektů (například posun překážky, odstranění předmětu, vytvoření nové překážky). Obecné schéma robotu (obr. 5) je možné rozdělit do několika funkčních podsystémů. Vnější cíle Plánování činnosti
ký ic or tém nz ys Se ubs s
Lo su kom bs oč ys ní tém
Řízení činnosti
Prostředí Speciální moduly
Obr. 5 Obecné schéma robotu. Podsystém řízení činnosti představuje nadřazenou úroveň řízení. Tento blok provádí hlubší analýzu informace přicházející ze senzorického subsystému. Analyzované informace dále podle zadaného programu sdílí nadřazeným softwarovým modulům a vydává výkonové povely pro řízení vlastního robotu, či jemu podřízených částí řízeného procesu. Prostřednictvím řízení robot vykonává cílenou činnost, což je právě vlastnost, která nás na robotech jako takových nejvíce zajímá. Řízení činnosti tak uzavírá smyčku zpětné vazby, která je potřebná pro inteligentní chování robotu. Lokomoční subsystém zajišťuje pohyb robotu v prostoru a pomocí efektorů ovlivňuje vnější prostředí. Robot musí být schopen nějakým způsobem reagovat na
Strana 24
3 ŘÍDICÍ SYSTÉMY MOBILNÍCH KOLOVÝCH ROBOTŮ
prostředí a jeho změny. To zajišťuje senzorický subsystém. Dále je robot opatřen speciálními moduly, které rozšiřují jeho možnosti (nadstavby). Nad těmito systémy je nadřazen systém řízení činnosti, ve kterém probíhá hlavní řídicí činnost. Tomuto systému je nadřazeno plánování činnosti, které obsahují funkce vyššího plánování. V tomto subsystému je ukryta inteligence robotu. Senzorický subsystém se dá rozdělit na dvě části, receptory, které snímají fyzikální signály z prostředí a převádí je na vhodné vnitřní signály, druhou část tvoří systém zpracování a výběru dat, který vybírá z takových signálů informace důležité pro robot. Lokomoční subsystém je rovněž rozdělen na dvě části, aktuátory, které realizují zásahy do prostředí a realizátor činnosti, podle kterého jsou aktuátory řízeny. Moduly plánování činnosti jsou speciální programové bloky obsahující algoritmy navigace a složitého chování. V těchto modulech je schovaná „opravdová inteligence“ robotu. Zpracovávají upravená data poskytnutá řízením a plánují činnosti robotu. Řízení posílají nazpět povely, co má být provedeno. Naopak ze strany nadřazené úrovně získávají vnější cíle. Toto je nejčastěji realizováno prostřednictvím komunikace s obsluhou. Většina mobilních robotů musí komunikovat s obsluhou (operátorem) a to přinejmenším z toho důvodu, aby operátor mohl zadat úkol, který má robot plnit. Tato činnost by se dala nazvat jako zadávání vnějších cílů. V mnoha aplikacích operátor zadává apriorní mapu okolí robotu a další informace o prostředí, ve kterém se robot pohybuje. Můžeme se též robotu tázat na vlastnosti prostředí, jeho polohu v tomto prostředí a sledovat vnitřní stavy a plány činností, které má robot vykonat. Naopak robotu by mělo být umožněno, aby kladl operátoru dotazy, potřebuje-li si doplnit informace, které mu k řešení dané úlohy chybí. Je tedy zřejmé, že komunikace mezi obsluhou a robotem není pouze jednostranná, ale má charakter dialogu. Technická řešení takového dialogu jsou rozlišná a vyznačují se různým stupněm složitosti. Základním prostředkem pro komunikaci mezi mobilním robotem a člověkem se stal počítač. Dialog většinou probíhá prostřednictvím grafického uživatelského prostředí. Složitější systémy umožňují vést dialog prostřednictvím textového okna, ve kterém operátor píše v přirozeném jazyce jednoduché povely a dotazy a robot odpovídá. Další možností komunikace (pro člověka přirozenější) je použití přirozeného jazyka. Problematika zpracování a porozumění mluvené řeči se zatím jeví jako příliš složitá na to, aby konverzace mezi člověkem a robotem mohla probíhat bez omezení. V současné době se proto využívá přirozeného jazyka spíše ve formě jednoduchých povelů vybraných z předem definovaného slovníku [12]. V textu výše byl popsán mobilní robot, plně schopný samostatného chování. Možnost samostatného chování je však vykoupena mohutností výpočetních operací, které kladou zvýšené požadavky na hardware řídicího systému robotu. V poslední době se rozvíjejí řízení mobilních robotů na dálku pomocí teleoperátoru. V zásadě se dají rozlišit dva způsoby ovládání na dálku. První způsob se nazývá teleprezence. Zde operátor ovládá přímo nejnižší funkce robotu. Jde vlastně o jakési řízení těla robotu na dálku. Robot má potlačeno vlastní rozhodování jen na kontrolu provádění vlastních akcí, případně zastavení činnosti v kritickém případě. Obecnou snahou je vytvořit takové uživatelské prostředí, aby se operátor cítil jako na místě, kde je robot. Proto se používají nejrůznější prvky virtuální reality. Operátor má na hlavě helmu virtuální reality se speciálním senzorem snímajícím pohyby hlavy ve dvou, případně třech osách. Data odpovídající pohybům hlavy jsou přenášena k robotu, kde způsobí vychýlení pohyblivého kamerového systému, který napodobuje pohyb hlavy operátora [13]. Obrazová data z kamery jsou přenášena z robotu
3 ŘÍDICÍ SYSTÉMY MOBILNÍCH KOLOVÝCH ROBOTŮ
Strana 25
k operátorovi a zobrazena v jeho helmě. Jako velmi účelné se jeví nasazení takto ovládaných robotů v nebezpečných nebo nepřístupných prostředích (jaderné elektrárny, odstraňování výbušnin). Dále je výhodné doplnit stroj alespoň o základní umělou inteligenci pro případ ztráty signálu. Druhý způsob ovládání se nazývá telerobotický. V tomto případě jsou robotu zasílány cíle, které má splnit, případně rady, jak zadané cíle nejlépe splnit. Generování řešení je již autonomní. Teleoperátor má pouze možnost zasáhnout do prováděné akce, takovouto akci zrušit, nebo zadat jinou. Tento způsob řízení se hlavně rozvíjí u aplikací, kde není nutná stálá kontrola operátora a je pouze nezbytné občas zkontrolovat plnění úkolu a zadat úkoly nové. Příkladem těchto aplikací může být rozvoz materiálu v továrnách nebo nemocnicích, úklidové služby a jiné. Jinou oblast aplikace tvoří systémy, kde je velká časová odezva na signál (vesmírné sondy). Rané řídicí systémy autonomních mobilních robotů se soustředily více na získání prvotních reálných dat z experimentálních robotů, než na zjištění omezení architektur řídicích systémů a jejich efektivnost. Na základě pozdějšího vývoje vzniklo mnoho druhů řídicích systémů, které lze rozdělit do následujících skupin: • Architektury založené na funkční dekompozici • Reaktivní systémy • Hybridní systémy
3.1
Architektury založené na funkční dekompozici
Funkční dekompozice, nebo také horizontální dekompozice, je klasická metoda analýzy shora dolů, používaná v mnoha aplikacích nejenom v oblasti mobilní robotiky. Řízení je rozděleno na diskrétní množinu akcí a událostí, které na sebe navazují. Základní rozdělení těchto akcí by mohlo být následující: • Vnímání: Moduly zodpovědné za ovládání senzorů, čtení a transformaci dat. • Modelování prostředí: Moduly vytvářející model prostředí na základě dat přijatých ze senzorů. • Plánování: Moduly, které plánují akce robotu tak, aby byl splněn cíl zadaný operátorem. • Realizace plánu: Moduly zodpovědné za vykonávání plánu. Moduly rovněž ověřují, zda je vytvořený plán realizovatelný. • Řízení pohybu: Moduly, které provádějí nízkoúrovňové řízení pohybu robotu a jsou zodpovědné za pohyb po naplánované trajektorii. Vzájemné provázání použitých modulů je možné několika způsoby. Nejjednodušší způsob, který se objevil u prvních experimentálních autonomních robotů, je sekvenční propojení modulů do cyklu snímání-plánování-akce, nebo snímání-modelování-plánováníakce. Graficky je struktura těchto řídicích systému znázorněna na obr. 6. Tento způsob má však mnoho nevýhod. Základním nedostatkem je přesně stanovený tok dat, což vede k situaci, kdy při chybě jednoho modulu se chyba projeví v celém řídicím systému. Další nevýhodou je pomalá reakce na některé kritické události, jako nečekaná pohyblivá překážka před robotem. Proto většina řídicích systémů tohoto druhu předpokládá neměnnost světa mezi dvěma cykly řídicího programu. Dalším možným přístupem k funkční dekompozici je použití hierarchického systému. Hierarchický systém se skládá z více vrstev, kdy každá vrstva reprezentuje jeden
Strana 26
3 ŘÍDICÍ SYSTÉMY MOBILNÍCH KOLOVÝCH ROBOTŮ
cyklus snímání-modelování-plánování-akce. Jednotlivé vrstvy se liší stupněm abstrakce dat a tím i časem potřebným k provedení řídicího cyklu.
Vnímání
Modelování prostředí
Plánování
Realizace plánu
Řízení pohybu
Motorická část
Senzory Prostředí
Obr. 6 Řídicí systém založený na funkční dekompozici. Posledním možným řešením koordinace modulů vytvořených funkční dekompozicí řídicího systému je použití tabule. Tabule je místo, kde si všechny moduly řídicího systému vyměňují informace. Moduly vnímání zapisují na předem určené místo tabule aktuální informace ze senzorů. Moduly, které modelují prostředí, vybírají z tabule informace ze senzorů a vytvářejí na tabuli model prostředí. Plánovací moduly mohou vytvářet plán činnosti na základě přímých měření ze senzorů, nebo využívat již vytvořené modely prostředí. Realizátor plánu vybírá z navržených plánů činností robotu ten, který je bezkonfliktní s aktuálním měřením. Zvolený plán je většinou již přímo, někdy však také pomocí tabule, předán modulům řízení pohybu robotu po vybrané trajektorii. Hierarchický systém pro řízení telerobotických aplikací je standardizován společností NASA/NBS pod jménem NASREM. Tento standard rozděluje řídicí systém na tři články, které jsou obsluhovány komunikačním subsystémem a globální pamětí, a šest submodulových vrstev (obr. 7). Modul rozkladu úloh zajišťuje real-time plánování a funkce monitorování úloh. Časově a prostorově rozkládá cíle úloh podél časové osy a do příslušných submodulů. Modul senzorického zpracování filtruje, harmonizuje, detekuje a spojuje informace ze signálů, aby bylo možno rozpoznat obraz vnějšího světa včetně jeho objektů, událostí a vlastností mezi nimi. Modul modelování zodpovídá otázky, činí předpovědi a počítá hodnotící funkce ve stavovém prostoru definovaném informacemi v globální paměti. Globální paměť je databáze obsahující nejlepší systémový odhad stavu vnějšího světa [14]. Submodulové vrstvy jsou: • Coordinate Transform-Servo (Převod souřadnic a výstup). Provádí transformaci informace ze senzorů do souřadného systému vnitřní reprezentace robotu. Tato vrstva je zodpovědná také za výstup a ovládání akcí robotu. • Primitive (Prvotní). Počítá dynamiku systému a je zodpovědná za ovládání rychlosti pohybu. • E-Move (Bezpečný pohyb). Detekuje a vyhýbá se překážkám. • Task (Příkazová vrstva). Převádí plán do posloupnosti proveditelných příkazů. • Service Bay (Plánovací vrstva). Plánuje činnosti a rozhodování.
3 ŘÍDICÍ SYSTÉMY MOBILNÍCH KOLOVÝCH ROBOTŮ •
Strana 27
Service Mission (Úkolová vrstva). Rozhoduje o proveditelnosti cílového úkolu.
Obr. 7 Základní schéma architektury NASREM.
3.2
Reaktivní systémy
Reaktivní systémy se opírají o model chování zvířat, kdy akce robotu je určena schématy chování spíše než procesem porozumění dané situaci. Oproti systémům založeným na funkční dekompozici, které akce robotu plánují, jsou reaktivní systémy založeny na tom, že jednotlivé moduly přímo ovládají senzory i lokomoční systém robotu podle vlastních schémat. Každému vstupu a vnitřnímu stavu robotu odpovídá konkrétní akce. Typická struktura reaktivního systému je zobrazena na obr. 8. Výhodou reaktivních systémů je, že cíle nemusí být explicitně vyjádřeny. Reaktivní systémy byly vytvořeny k vyřešení problémů, které mají klasické plánovací metody s ovládáním nízkých úrovní řídicího systému. Vzorce chování jsou vhodné k rychlé reakci na vstupní podněty, ale přinášejí s sebou nové obtíže. Každý reaktivní systém musí vyřešit následující otázky: • Více cílů. Klasické plánovací metody jsou založeny na plánování akce, která má končit jedním cílem, nebo množinou cílů, které splňují jednu cílovou podmínku. Řídicí systém na nízké úrovni musí být schopen splnit více rozdílných cílů současně. Řídicí systém musí kontrolovat bezpečnost prováděného příkazu, musí obsluhovat vstupní čidla a komunikační služby. Každý z těchto úkolů je kriticky náročný na čas výpočtu, deterministické diskrétní modely nejsou vhodné k plnění více cílů současně. • Více senzorů. Senzory robotu mají také své časové omezení. Data musí být zpracována, jinak jsou nahrazena následujícím měřením. Měření je provedeno z určitého místa prostoru a je třeba ho zpracovat včas, aby nedošlo k jeho špatné interpretaci. Různé senzory mají odlišné časové nároky, které je nutné zohlednit při zpracování a následném rozhodování o akci robotu.
Strana 28 • •
3 ŘÍDICÍ SYSTÉMY MOBILNÍCH KOLOVÝCH ROBOTŮ
Robustnost. Řídicí systém na nízké úrovni musí být schopen správně pracovat i při výpadku, nebo chybě senzorů. Rozšiřitelnost. Systém musí být schopen změny typů senzorů, úkolu, nebo konfigurace robotu.
Stavba světa Průzkum prostředí Sledování cíle Vyhýbání se překážkám Motorická část
Senzory
Prostředí Obr. 8 Reaktivní systém pro řízení robotu. Reaktivní systémy je možné rozdělit do následujících skupin podle implementovaných architektur: • Architektura podřízenosti. Jedná se o nejrozšířenější architekturu reaktivních systémů. Řídicí systém robotu se skládá z více vrstev, které reprezentují různé druhy chování a jsou řazeny hierarchicky. Nižší vrstvy řídicího systému se starají o ovládání senzorů a lokomoční části robotu, vyšší vrstvy jsou zodpovědné za komplikovanější chování robotu. Celková struktura je podobná struktuře pohybových vzorů používaných v etologii. Tato architektura zavádí rozdělování zodpovědnosti do stupňů podle odpovídajících vrstev. Pro celkové chování je použita statická hierarchie, kdy nižší vrstvy mají větší prioritu než vrstvy vyšší. Tyto reaktivní systémy umožňují postupné vytváření řídicího systému. Nejnižší vrstvy jsou vytvořeny nejdříve a složitější chování je možno přidávat postupně. Z toho plyne, že každá vyšší vrstva obohacuje chování robotu o nové cíle a zachovává již definované chování. Obecnou nevýhodou této architektury je nedeterminičnost chování robotu, neboť každá vrstva je spouštěna příchodem události (nové měření). Proto je velmi obtížná analýza a ladění konkrétního reaktivního systému, kdy pořadí příchodů události nelze předem nikdy přesně zaručit. • Architektura vzorců chování. Vzorce chování jsou předem definované reakce na vstupní podněty. Reakce se definuje pomocí směru a rychlosti, kam by se robot měl pohybovat při daném podnětu. Jednotlivé vzorce mohou mít tvar např.: • Dopředu-robot se pohybuje vpřed. • K cíli-robot směřuje k cílovému bodu v pracovním prostředí.
3 ŘÍDICÍ SYSTÉMY MOBILNÍCH KOLOVÝCH ROBOTŮ
Strana 29
• Zabránění kolize-robot se vyhýbá detekované překážce. • Po cestě-robot sleduje naplánovanou cestu. Většina vzorců chování je velmi jednoduchá na výpočetní náročnost a robot tedy může rychle reagovat na vnější podněty. V každém okamžiku jsou některé vzorce chování aktivní a výsledný pohyb robotu je určen vektorovým součtem všech navrhovaných pohybů. To je rozdíl oproti architektuře založené na podřízenosti, kdy je vybrané chování určeno pouze jednou vrstvou. Nevýhodou tohoto přístupu je opět nedeterminičnost chování robotu, kdy výsledný pohyb určený vektorovým součtem aktivních vzorců chování se může lišit od všech naplánovaných pohybů a může vést ke kolizi robotu s překážkou.
3.3
Hybridní systémy
V praxi je řídicí systém robotu většinou kombinací výše uvedených přístupů. Řídicí systém je rozdělen do vrstev, stejně jako je tomu u systémů založených na funkční dekompozici, přičemž k řešení jednotlivých vrstev je možno použít různé druhy architektur. Pro řízení na nízké úrovni, které vyžaduje rychlou reakci na omezenou množinu podnětů ze světa, je výhodné použít architekturu reaktivních systémů. Pro plánování jednotlivých cest, kdy je potřeba analyzovat stav světa a plánovat cestu s ohledem na pohyblivé objekty, jsou využívány metody funkční dekompozice. Pro plánování akcí robotu, které povedou ke splnění cíle zadaného operátorem, jsou velmi vhodné metody plánování na vyšší abstraktní úrovni. 3.3.1
Robot na Katedře kybernetiky FEL ČVUT v Praze
Jako typický příklad hybridního systému lze označit řídicí systém robotu na katedře kybernetiky FEL ČVUT v Praze. Nejdříve byl tento systém vybaven pouze ultrazvukovými dálkoměry a řídicí systém se podobal řídicím systémům prvních robotů. Řízení probíhalo pomocí jediného cyklu: snímání-modelování-akce [9]. Později byl robot rozšířen o laserový dálkoměr, který již umožňoval přesnější a rychlejší měření překážek. Z přidání tohoto senzoru vyplynula řada dalších úkolů, jako syntéza dat z laserových a sonarových hloubkoměrů, upřesnění polohy robotu a tvorba a úprava vnitřní mapy robotu. Zmíněný vývoj si vyžádal přepracování řídicího systému, přičemž byl použit řídicí systém založený na funkční dekompozici úloh na základě standardu NASREM. Pro komunikaci jednotlivých plánovacích algoritmů byl zvolen systém tabule. Bylo vytvořeno několik vrstev řízení zodpovědných za dílčí úkoly navigace. Základní schéma řídicího systému autonomního mobilního robotů je uvedeno na obr. 9. Řídicí systém zmíněného robotu se skládá ze čtyř vrstev: • Řízení-tato vrstva kontroluje pohyb robotu po trajektorii zadané posloupností orientovaných bodů a požadovaných rychlostí. Body jsou prokládány hladkou křivkou a je řízen pohyb a dynamika pohybu robotu po vypočtené trajektorii. Tato vrstva odpovídá vrstvám převodu souřadnic a prvotní vrstvě podle specifikace NASREM. • Senzorická-tato vrstva zpracovává senzorické informace a tvoří senzorický model prostředí. Dále obsahuje několik plánovacích metod pro bezkolizní splnění naplánované cesty. Modul přepínání strategií rozhoduje podle dané situace, který plánovací algoritmus bude použit. Tato vrstva odpovídá vrstvě bezpečného pohybu podle NASREM.
Strana 30
3 ŘÍDICÍ SYSTÉMY MOBILNÍCH KOLOVÝCH ROBOTŮ
•
Geometrická-tato vrstva plánuje cestu robotu v geometrické mapě. Obsahuje také modul, který provádí kontrolu a případné úpravy geometrické mapy zadané uživatelem. V této vrstvě se plánuje přesun robotu pro splnění zadaného cíle, což odpovídá příkazové vrstvě podle NASREM. • Symbolická-tato vrstva je zodpovědná za komunikaci s uživatelem, příjem a analýzu příkazů. Dále obsahuje modul tvorby symbolického modelu světa a modul plánování na symbolické úrovni, který vytváří cíle pro nižší vrstvy řízení. Data mezi jednotlivými vrstvami se předávají prostřednictvím tabule. Každý modul má vyhrazeno místo na tabuli, kam zapisuje své výstupní informace. Z tohoto místa pak mohou ostatní moduly brát nejaktuálnější informace o stavu robotu. Použití tabule je výhodné z hlediska rozšiřitelnosti řídicího systému, neboť umožňuje vyvíjet dynamicky konfigurovatelný systém. Tvorba symbolického modelu prostředí
Symbolické plánování akcí robotu
Tvorba geometrického modelu prostředí
Plánování cesty v grafu
Symbolická vrstva Geometrická vrstva
Plánování (Potenciální pole)
Tvorba senzorického modelu prostředí
Plánování (Detekce kolizí)
Výběr plánovací strategie
Senzorická vrstva
Plánování (Visbug algoritmus)
Vrstva řízení
Řízení pohybu robotu po trajektorii
Motorická část
Senzory Prostředí
Obr. 9 Architektura řídicího systému robotu na FEL ČVUT. 3.3.2
Robot MVR23 na VŠB-TU Ostrava
Dalším příkladem může být mobilní všesměrový robot mvr23 na katedře robotechniky VŠB-TU Ostrava [10]. Tento robot má řídicí systém založený na distributivní struktuře s reakčními i plánovacími úrovněmi řízení. Senzorický subsystém robotu je tvořen šesti ultrazvukovými sonary, elektromagnetickým kompasem, digitální kamerou a třemi inkrementálními snímači.
3 ŘÍDICÍ SYSTÉMY MOBILNÍCH KOLOVÝCH ROBOTŮ
Strana 31
Lokomoční subsystém robotu je tvořen třemi poháněnými všesměrovými koly s roztečí 120°. Řídicí systém robotu je postaven na mikroprocesorovém systému osazeném jednočipovým osmibitovým mikrořadičem. Komunikace mezi komponentami robotu probíhá po sériové sběrnici I2C, RS232 nebo prostřednictvím vývodů mikrořadiče. Struktura řídicího systému je tvořena několika úrovněmi s různými pravomocemi a funkcemi. Na nejnižších úrovních jsou definovány prvky reakční a na úrovních vyšších prvky plánovací. Toto dovoluje provádět náročné a dlouhodobé činnosti vyžadující přemýšlení a vybírání z možných variant postupu i rychlou reakci na neočekávané události, které by mohly způsobit zranění člověka nebo poškození okolního prostředí, zařízení nebo robotu samotného. Hybridní hierarchická struktura umožňuje také jistý stupeň učení, kdy si může řídicí systém uložit provedenou činnost jako nový blok jednání či proces nebo zanést nový údaj do mapy. Hierarchická struktura se vyznačuje odstupňovanými úrovněmi příkazů dle úrovně, ve které se zpracovávají. Digram navržené struktury (obr. 10) představuje vnitřní uspořádání komponent a softwarových bloků robotu. Ukazuje jejich vzájemnou napojitelnost a informační tok mezi nimi. Funkční struktura je tvořena třemi hladinami: úrovní uvažování, sekvenční úrovní a akční úrovní.
Úroveň uvažování Úkol
Vysokoúrovňová konfigurace
Plánovač
HMI
Procesy
Sekvenční úroveň Dozorce procesů Navigační modul
Manipulační modul
Mapy
Nízkoúrovňová konfigurace
Polohovač
Generátor trajektorie
Plánovač cesty Akční úroveň Zdroje
Jednání
Moduly jednání
Pohony
Vnitřní a vnější okolí robotu
Obr. 10 Struktura hybridního řídicího systému.
Strana 32 •
3 ŘÍDICÍ SYSTÉMY MOBILNÍCH KOLOVÝCH ROBOTŮ
Úroveň uvažování představuje pozici s nejvyšší rozhodovací pravomocí. Je složena z plánovače a HMI-rozhraní, člověk-robot (human machine interface). Hlavní úlohou HMI je komunikace s operátorem. HMI získává informace od uživatele a informuje jej o právě probíhajícím výkonu nebo stavu robotu. Úloha zadaná pomocí HMI je zpracovávána v plánovači. Plánovač rozloží zadaný úkol do následujících nebo paralelních vnitřních procesů a jejich posloupnost zasílá do dozorce procesů v sekvenční úrovni. Pro zpracování zadané úlohy využívá vysokoúrovňovou konfiguraci, databázi mapující úlohy robotu, posloupnost procesů a logiku odstraňování chyb. V případě výskytu chyby (nenadálá překážka v cestě, změna zadaného úkolu) je plánovač schopen překonfigurovat stávající posloupnost procesů, přizpůsobit ji nové situaci a zaslat dozorci procesů. • Sekvenční úroveň má základ v dozorci procesů, který realizuje jednotlivé procesy z posloupnosti obdržené z nadřazené úrovně. Tyto procesy rozloží na jednotlivé bloky jednání, získá pro ně nezbytné informace a odešle do bloků moduly jednání v akční úrovni. Pro svou činnost využívá tři podřízené moduly: navigační modul, manipulační modul a nízkoúrovňovou konfiguraci. Navigační modul ovládá moduly související s navigací a komunikuje s ostatními moduly. Stanovuje orientaci a polohu robotu v prostoru a plánuje příští trajektorii pohybu. Pro svoji činnost využívá následující moduly: • Polohovač, který stanovuje polohu a orientaci robotu. • Mapy obsahující několik druhů modelů prostředí. Hrubá mapa celého pracovního prostoru robotu sloužící pro nalezení cesty, detailní mapy jednotlivých uzlů pro vykonávání cílové úlohy popř. další mapy vyplývající z činnosti robotu (termální, topologické, …). • Plánovač cesty, který porovnává údaje dvou sousedních modulů a generuje trajektorii pro splnění zadaného vnitřního procesu. Manipulační modul obsahuje algoritmy pro práci s manipulátorem a efektorem. Využívá modul generátor trajektorie pro stanovování typu polohování – kontinuální nebo point-to-point a provádí výpočet trajektorie koncového bodu efektoru. Nízkoúrovňová konfigurace obsahuje databázi vztahů mezi procesy a bloky jednání, informace potřebné pro jednotlivé procesy a obdobně jako Vysokoúrovňová konfigurace obsahuje postupy pro odstraňování případných chyb. • Akční úroveň provádí řízení robotu na nejnižší úrovni. Provádí výpočet akčních veličin a získává údaje z vnitřních a vnějších snímačů. Pro tyto operace využívá moduly zdroje a modul jednání. Zdroje jsou prostředky pro získávání informací nezbytných pro práci robotu. Jedná se o hardwarové prvky jako ultrazvukové snímače, laserové scannery, digitální kamery, kompas a prvky softwarové jako jsou algoritmy pro obsluhu hardwaru nebo pro zpracování obdržených dat. Modul jednání obsahuje databázi základních postupů, akcí, principů a algoritmů, které představují nejnižší úroveň řídicího systému robotu. Zahrnuje příkazy typu „30 cm doprava“ nebo „30° vlevo.“ V tomto modulu je také vykonávána reakční složka řízení hybridního způsobu řízení. • Vysoko a nízkoúrovňová konfigurace jsou softwarové moduly sloužící jako databáze vzorců chování robotů, popř. skupin robotů. Zatímco vysokoúrovňová konfigurace podporuje nejvyšší úroveň řízení (modul plánovač) a definuje vztahy mezi úlohami a vnitřními procesy, nízkoúrovňová konfigurace jedná s procesy
3 ŘÍDICÍ SYSTÉMY MOBILNÍCH KOLOVÝCH ROBOTŮ
•
Strana 33
a jednáními a podporuje práci dozorce procesů. Princip uchování postupů je v obou konfiguracích stejný, využívá pouze jiné úrovně jednání a chování robotu. Procesy a bloky jednání jsou používány dozorcem procesů nebo přímo plánovačem. Tyto bloky jednání mohou být definovány jako úplně základní, přímo počítající rychlosti akčních členů, polohu servomotorů nebo mohou být složené z těchto primitivních bloků a vytvářet tak složená jednání.
Strana 35
4
AUTONOMNÍ LOKOMOČNÍ ROBOT OMR III
V této kapitole popíši hardwarové a softwarové vybavení robotu OMR III, pro něhož mám navrhnout řídicí systém. Podkladem k této části mi byla zvláště literatura [3], [7], [9], [12], [15] a [16]. Projekt autonomního lokomočního robotu OMR III vzniká již několik let v laboratořích FSI VUT v Brně a jeho návrh vychází ze zkušeností z projektu MOBIL II, který vznikl v týchž laboratořích. Cílem projektu je realizace autonomního lokomočního robotu určeného pro pohyb v částečně známém, případně neznámém prostředí. Robot musí být schopen reagovat na statické i dynamicky se měnící překážky. Projekt byl rozdělen do několika etap. V současné době je již zrealizována mechanická konstrukce podvozku s řízením jednotlivých pohonů a soustava scénových snímačů. Úkolem této práce je návrh modulárního řídicího systému nižší úrovně, který zajistí sjednocení obsluhy senzorické a lokomoční části a poskytne užité periférie nadřazené vrstvě „inteligentního řízení“. Ta bude obsahovat moduly navigace, plánování a komunikace s obsluhou. OMR III má být schopen prostorového, nebo rovinného pohybu v okolním prostředí pomocí lokomočního mechanismu včetně plánované interakce s tímto proměnlivým prostředím pomocí algoritmů umělé inteligence. Pohyb je uskutečněn v souladu s instrukcemi nadřazeného systému, nejčastěji člověka. Je tedy zřejmé, že autonomní lokomoční robot představuje typický mechatronický systém s řadou dílčích, obvykle též mechatronických podsystémů. Robot OMR III je vhodná platforma pro testování senzorických soustav a navigací mobilních robotů. Díky navrhované modularitě řídicího systému robotu lze předpokládat snadné začlenění snímačů i navigace.
4.1
Podvozek robotu OMR III
Pro podvozek bylo zvoleno použití kol vybavených po obvodě valivými členy. Použití tzv. „všesměrových kol“ umožňuje robotu pohyb po libovolné rovinné křivce. Konstrukční schéma všesměrového kola je uvedeno na obr. 11. Tato kola umožňují jak pohyb kolmý, tak zároveň rovnoběžný s osou rotace. Podvozek konstruovaný tímto způsobem můžeme označit za všesměrový. Podvozek jako celek je tvořen trojicí všesměrových kol s pohonnými jednotkami a vlastním rámem, ke kterému jsou pohonné jednotky připojeny (obr. 12). Jednotky mezi sebou svírají úhel 120° , základna má kruhový půdorys o průměru 750 mm. Průměr základny je zvolen tak, aby byl robot schopen projet dveřmi. Hlavní výhodou takto navrženého podvozku je jeho všesměrovost. Navržený podvozek má výborné pohybové vlastnosti. Při řízení pohybu tohoto podvozku lze použít výrazné zjednodušení a řídit pouze pohyb jeho těžiště a natočení směru jízdy vůči zvolenému souřadnému systému. Tento návrh zjednoduší řízení podvozku. Vlastní řízení pak spočívá pouze na řízení rychlosti otáčení jednotlivých kol a jejich vzájemné synchronizaci.
Strana 36
4 AUTONOMNÍ LOKOMOČNÍ ROBOT OMR III
Obr. 11 Všesměrové kolo.
Obr. 12 Základní schéma podvozku OMRIII.
4 AUTONOMNÍ LOKOMOČNÍ ROBOT OMR III 4.1.1
Strana 37
Kinematický model podvozku
Kinematický model robotu vychází z výše uvedených požadavků na řízení jednotlivých kol. Řídí se úhlová rychlost otáčení každého samostatného kola tak, aby bylo dosaženo požadované rychlosti a směru pohybu těžiště robotu a rychlosti rotace okolo těžiště. Schéma podvozku robotu s absolutním a relativním souřadným systémem a směry rychlostí je zobrazen na obr. 13.
x
v1
ω
v2t
x1
vT v2
ϕ
v1t
v1r
2
1
v2r
y1
y2
x2 y
T l
v3t
120°
y3
v3 v3r 3
x3
r
Obr. 13 Kinematické schéma podvozku robotu. Vstupy modelu jsou: • Konstrukční parametry podvozku robotu • Poloměr kola robotu r • Vzdálenost kola od těžiště robotu l • Maximální navržená úhlová rychlost ωMAX • Požadavky na pohyb robotu: • Absolutní hodnota translační rychlosti robotu vt • Absolutní hodnota translačního zrychlení robotu at • Absolutní hodnota úhlu otočení robotu φ • Absolutní hodnota úhlové rychlosti robotu ω • Absolutní hodnota úhlového zrychlení robotu α.
Strana 38 4.1.2
4 AUTONOMNÍ LOKOMOČNÍ ROBOT OMR III
Základní kinematické rovnice Rychlost těžiště robotu je dána maticí ⎡cos ϕ ⎤ r vT = vt ⎢ ⎥, ⎣ sin ϕ ⎦
(1)
kde vt je absolutní hodnota translační rychlosti a φ je úhel natočení. r r r Rychlost kola je dána součtem rotační a translační rychlosti vi = vit + vir pro i = 1,2,3 (obr. 13). Rovnice pro rychlost na jednotlivých kolech pro daný souřadný sytém je vyjádřena: ⎡cos (ϕ − π6 ) ⎤ ⎡l ⎤ r v1 = vt ⎢ +ω ⎢ ⎥ , π ⎥ ⎣0⎦ ⎣ sin (ϕ − 6 ) ⎦
⎡ − cos (ϕ + π6 ) ⎤ ⎡l ⎤ r v2 = vt ⎢ +ω ⎢ ⎥ , π ⎥ ⎣0⎦ ⎣ − sin (ϕ + 6 ) ⎦ ⎡ − sin (ϕ ) ⎤ ⎡l ⎤ r v3 = vt ⎢ ⎥ +ω ⎢ ⎥ , ⎣0⎦ ⎣ cos (ϕ ) ⎦
(2)
kde ω je úhlová rychlost otáčení. Rovnice sestavené bez uvažovaného zrychlení
V těchto rovnicích se hodnoty zrychlení rovnají nule (α = 0, at = 0 ) a aspoň jedna hodnota rychlosti je různá od nuly ( vt 0 ≠ 0 or ω 0 ≠ 0 ) . Rychlost translace je vyjádřená jako vt = vt 0 , úhlová rychlost rotace je vyjádřená jako ω = ω0 , a úhel natočení je vyjádřený jako ϕ = ω 0t + ϕ 0 .
(3) (4) (5)
Úhlové rychlosti jednotlivých kol (ω1,2,3 ) jsou užité pro kontrolu nad pohybem
robotu. Rovnice jsou získané pomocí rovnic (2), které jsou podělené poloměrem kola r a jednotlivé proměnné jsou nahrazeny ze vztahů (3), (4) a (5). 1 ω1 = vt 0 cos ( (ω 0t + ϕ 0 ) − π6 ) + ω 0l , r 1 ω 2 = −vt 0 cos ( (ω 0t + ϕ 0 ) + π6 ) + ω 0l , (6) r 1 ω3 = ( vt 0 sin (ω 0t + ϕ 0 ) + ω 0l ) , r
(
(
)
)
Rovnice sestavené s uvažovaným zrychlením
Nenulové zrychlení je uvažováno ve více případech. Při řízení pohybu musí být aspoň jedna složka zrychlení nenulová. Rychlost translace je vyjádřená jako (7) vt = at t + vt 0 , úhlová rychlost rotace je vyjádřená jako
4 AUTONOMNÍ LOKOMOČNÍ ROBOT OMR III
Strana 39
ω = α t + ω0
(8)
ϕ = 12 α t 2 + ω 0t + ϕ 0 .
(9)
a úhel natočení je vyjádřený jako Rovnice pro řízení robotu jsou získané stejný způsobem jako rovnice (5) s náhradou rovnic (7), (8) a (9). 1 ω1 = ( at t + vt 0 ) cos ( 12 α t 2 + ω 0t + ϕ 0 ) − π6 + (α t + ω 0 ) l , r 1 ω 2 = − ( at t + vt 0 ) cos ( 12 α t 2 + ω 0t + ϕ 0 ) + π6 + (α t + ω 0 ) l , (10) r 1 ω3 = ( at t + vt 0 ) sin ( 12 α t 2 + ω 0t + ϕ 0 ) + (α t + ω 0 ) l , r
( (
(
)
)
(
)
)
(
)
Aktuální hodnoty potřebné pro řízení r r Aktuální hodnota vTact rychlosti ze středu těžiště vT se vypočítají jako
r ⎡ 3 (ω m1 − ω m 2 ) ⎤ r vTact = ⎢ ⎥, 3 ⎣ω m1 + ω m 2 − 2ω m3 ⎦ kde ω m1,2,3 jsou naměřené úhlové rychlosti. r Ze známé hodnoty vTact můžeme dopočítat zbývající hodnoty:
(11)
Aktuální hodnota rychlosti translace vt se vypočítá jako
vtact =
(v
Tact ( x )
) + (v 2
Tact ( y )
)
2
.
(12)
Aktuální hodnota úhlu natočení ϕ se vypočítá jako
⎛ vTact ( y ) ⎞ . (13) ⎜ vT ( x ) ⎟⎟ ⎝ act ⎠ Aktuální hodnota úhlové rychlosti rotace ω se vypočítá jako (14) 2 (ϕ act − ϕ 0 ) ω act = − ω0 . t Rovnice (6) až (10) jsou užívány podle požadavků pro kontrolní výpočty. Z těchto rovnic vyplývá nerovnostní podmínka (15) ωi ≤ ω MAX pro všechny i = 1, 2,3 ,
ϕ act = arctg ⎜
kde ω MAX je maximální úhlová rychlost jednotlivých pohonů. Tato hodnota představuje maximální možnou navrženou rychlost, která nemůže být překročena. Rovnice (11) až (15) jsou užívány pro řízení. 4.1.3
Pohonná jednotka
Základem autonomního lokomočního robotu OMR III je podvozek osazený třemi nezávislými pohonnými jednotkami. Pohonná jednotka je tvořena stejnosměrným motorem s permanentními magnety, tříkanálovým inkrementálním snímačem, převodovou skříní, všesměrovým kolem a řídicí jednotkou s univerzálním rozhraním. Takto realizovaný podvozek se může pohybovat po libovolné rovinné křivce. Tato vlastnost klade vyšší nároky na řízení podvozku. Při řešení řízení pohybu podvozku je důležité uvažovat i nad smysluplností jednotlivých možných pohybů.
Strana 40
4 AUTONOMNÍ LOKOMOČNÍ ROBOT OMR III
DC motor
Stejnosměrný motor s permanentním magnetem je často používaným typem motoru v oblasti pohonu mobilních robotů. Na obr. 14 je fotografie stejnosměrného motoru PITTMAN použitého na robotu OMR III. Mezi jeho výhody patří zejména velice příznivý poměr výkon/hmotnost, relativně snadné řízení otáček, u běžných typů pak také cena, dostupnost a široká nabídka. Mezi nevýhody patří složitější a tedy dražší rychlostní a zejména polohové řízení v porovnání například s krokovým motorem, dále díky komutátoru je pak tento motor zdrojem elektromagnetického rušení a také není bezúdržbový (např. v porovnání s krokovými motory). Stejnosměrný motor obvykle pracuje na relativně vysokých otáčkách a nízkém momentu, což je pro potřebu pohonů mobilních robotů nevýhodné. Řešením je použití převodovky, která je již součástí daného motoru. Spolu s převodovkou se motor dodává se senzorem polohy nebo rychlosti. Tímto senzorem je inkrementální snímač. Na obr. 15 je fotografie tříkanálového inkrementálního snímače HEDS použitého na robotu OMR III. Výhodou takového pohonu je jeho celková kompaktnost.
Obr. 14 Stejnosměrný motor PITTMAN použitý na robotu OMR III.
Obr. 15 Tříkanálový inkrementální snímač HEDS použitý na robotu OMR III. Většina stejnosměrných motorů má dva elektrické kontakty. Po připojení jmenovitého napětí (s ohledem na katalogové údaje motoru) na tyto svorky se rotor nezatíženého motoru roztočí a jeho otáčky se ustálí na jmenovitých. • Změnou polarity tohoto napětí se docílí změna směru otáčení. • Změnou velikosti tohoto napětí se docílí změna rychlosti otáčení.
4 AUTONOMNÍ LOKOMOČNÍ ROBOT OMR III
Strana 41
Inkrementální snímač otáček
Pro snímání otáček byl použit tříkanálový enkoder HEDS 9140 (kanál A, kanál B, kanál I) od firmy Agilent Technologies. Tříkanálová konfigurace umožňuje rozlišení směru otáčení a určení polohy. Rozlišení inkrementálního snímače bylo voleno jako kompromis mezi rychlostí vzorkování a minimální rozlišovanou rychlostí. Řídicí jednotka pohonu
Každá pohonná jednotka robotu OMRIII je vybavena mikrořadičem, který zajišťuje řízení kola resp. motorů v závislosti na požadované úloze, kterou má robot vykonávat. Každý mikrořadič náleží pouze jednomu motoru, který řídí prostřednictvím výkonového obvodu a zpětně sleduje jeho polohu, rychlost, proud a teplotu. Pomocí sériové komunikace (UART nebo I2C) komunikuje mikrořadič s nadřazenou úrovní.
4.2
Scénové snímače pro mobilní robot OMR III
Většina snímačů sloužících pro účely tvorby lokální mapy prostředí pracuje na principu měření vzdálenosti. Existují tři rozdílné přístupy k měření vzdálenosti: • snímače založené na principu měření doby letu (time of flight) pulzu vyzářené energie k překážce (objektu) a zpět k přijímači; • měření fázového posuvu pulzu vyzářené energie, které na rozdíl od měření doby letu pulzu vyžaduje nepřetržité vysílání (vln) energie; • snímače založené na frekvenční modulaci – radary, tato metoda využívá fázový posun a amplitudovou modulaci. Mnoho typů snímačů používaných v robotice využívá právě metody měření doby letu. Energetický pulz většinou je buď z ultrazvukového, radiového, nebo optického zdroje. 4.2.1
Ultrazvukový snímač vzdálenosti
Jako ultrazvuk jsou označovány mechanické kmity částic v prostředí kolem rovnovážné polohy s frekvencí vyšší než 20 kHz. Maximální frekvence je určena fyzikální podstatou existence pružných vln, která je při normálním tlaku okolního prostředí 109 Hz v plynech, 1012 Hz v kapalinách a 1013 Hz v pevných látkách. Pro šíření ultrazvuku platí stejné zákonitosti jako pro šíření akustických vln. Ultrazvukové vlny se tak stejně jako vlny akustické šíří dvěma způsoby, podélně a příčně. Pro naše účely však uvažujeme vlny podélné, kdy částice kmitají v podélném směru šíření vlny. Tím vzniká střídavé zhušťování a zředění prostředí, která se šíří jako postupná vlna prostředím rychlostí zvuku c. S tímto zhuštěním a zředěním prostředí souvisí změny tlaku, které se od barometrického tlaku p0 liší o střídavou složku p, nazývanou akustický tlak. Jedná-li se o harmonickou vlnu, pak má akustický tlak sinusový průběh. Princip ultrazvukového snímače vzdálenosti (sonaru) je založen na měření doby mezi vysláním akustického signálu a přijetím jeho odrazu od překážky – echa. Nejběžnější frekvence tohoto akustického signálu je 40 kHz, a proto je takový snímač vzdálenosti označován jako ultrazvukový sonar. Díky relativně nízké rychlosti zvuku ve vzduchu je doba mezi odesláním a přijetím signálu výrazně vyšší než u radarových, laserových, či infračervených snímačů. Důsledkem měření delší doby lze dosáhnout poměrně velké přesnosti měření bez extrémních nároků na měřící a vyhodnocovací obvody. Nevýhodou je vysoké tlumení ultrazvukového signálu, což omezuje praktický dosah na desítky metrů. Další nevýhodou je značný rozptyl, který mnohdy znemožňuje detekovat překážku přesně.
Strana 42 4.2.2
4 AUTONOMNÍ LOKOMOČNÍ ROBOT OMR III
Infračervený snímač vzdálenosti
IR-snímač vzdálenosti je určen k měření vzdálenosti k překážce ve směru daném jeho natočením. Výsledkem je tedy vždy jedna hodnota výstupního napětí, kterou lze přepočítat na vzdálenost. Funkce snímače je založena na triangulační metodě, vyhodnocuje se úhel dopadu paprsku infračerveného záření odražených od překážky (obr. 16). Výhodou této metody je, že výstup téměř nezávisí na intenzitě paprsků odražených na čidlo snímače. To znamená podobný výsledek měření pro překážky s různou odrazivostí (odlišná barva a poréznost).
Obr. 16 Triangulační metoda. Senzorická věž robotu OMR III
Senzorická věž (obr. 17) je tvořena základnou tvaru poloviny šestiúhelníku, na jehož hranách jsou umístěny snímače. Trojice snímačů mezi sebou svírá úhel 120˚. Průsečík kolmic k hranám základny tvoří bod, ve kterém je základna připojena k hřídeli modelářského servomotoru. Ultrazvukový sonar je samostatná měřící a řídicí jednotka, která poskytuje mapu naměřených vzdáleností přes sériová rozhraní (UART, SPI). Jejím řídicím členem je mikrořadič C8051F007, který generuje ultrazvukový signál, měří dobu, za kterou se signál vrátí na přijímač, přepíná měřené kanály a svým A/D převodníkem měří vzdálenosti z infračervených snímačů vzdálenosti a teplotu prostředí. Servomotor natáčející věž je řízen řídicí jednotkou, která je běžně používána v rámci laboratoří mechatroniky na FSI VUT v Brně. Řízení natáčení je k měřící a řídicí jednotce věže připojeno přes I2C sběrnici.
4 AUTONOMNÍ LOKOMOČNÍ ROBOT OMR III
Strana 43
Obr. 17 Senzorická věž. 4.2.3
Laserový dálkoměr
Měření vzdálenosti k překážkám pomocí laserového paprsku patří k základní výbavě autonomních robotů již od jejich vzniku. První laserové dálkoměry pracovaly na principu měření tvaru laserového paprsku rozmítaného do poloroviny. Průnik této poloroviny s prostředím byl snímán kamerou a triangulací byla určena vzdálenost k překážce. V pozdější době se vyvinuly další dva způsoby, jak pomocí laseru měřit vzdálenost k překážce. První způsob je založen na měření doby letu světla od snímače k překážce a zpět, druhý princip využívá detekci fázového posuvu mezi přijímaným a vysílaným paprskem. Laserový dálkoměr měřící dobu letu paprsku se ukazuje jako přesnější a zařadil se k novějším snímačům běžně používaným v robotice. Odezva u těchto systému je závislá na počtu měření a způsobu vyhodnocení signálu. Laserový dálkoměr pracuje asi 1000krát rychleji než ultrazvukový. Je zřejmé, že měření laserem je oproti ultrazvuku méně ovlivněno parametry prostředí, jako je proudění vzduchu, vlhkost a teplota. Obdobně jako u sonarů je třeba zjistit parametry systémů, které ovlivňují přesnost měření. Situace u laserového dálkoměru je jednodušší, protože vzdálenost je měřena pomocí laserového paprsku, který pro použitý rozsah měření můžeme nahradit přímkou. Měření je závislé na rychlosti světla, která se v běžných podmínkách téměř nemění, takže tyto chyby je možno zanedbat, u ultrazvuku je potřeba kompenzovat vliv teploty na
Strana 44
4 AUTONOMNÍ LOKOMOČNÍ ROBOT OMR III
rychlost šíření zvuku. Zdrojem největších chyb na straně snímače je detekční elektronika, která měří čas od vyslaného pulsu k přijaté odezvě. Podobně jako u sonaru, tak i u laserového dálkoměru jsou největším zdrojem chyb vlastnosti měřeného prostředí. S rostoucí měřenou vzdáleností prudce rostou nároky na odrazivost povrchu překážek. Principiální nevýhodou obecně používaných laserových dálkoměrů je rozmítání paprsku v jedné rovině a tedy nemožnost detekce překážek, jejichž tvar se mění s výškou. Toto se však dá odstranit vhodným naklápěním snímače. Nejen na české, ale i světové úrovni patří mezi nejpoužívanější laserové snímače produkty firmy SICK. Také robot OMR III bude v budoucnu vybaven laserovým snímačem SICK LMS 291 (obr. 18), jehož technické parametry jsou v tabulce 1 níže [17]. Tab. 1 Technická specifikace snímače SICK LMS 291. Vlastnost Typ: Úhel zorného pole: Úhlové rozlišení: Doba odezvy: Rozlišení: Systematická chyba: Statistická chyba (1 Sigma): Třída laseru: Krytí: Provozní teplota: Dosah: Datové rozhraní: Datová přenosová rychlost: Spínací výstupy: Napájecí napětí: Příkon: Skladovací teplota: Hmotnost: Rozměry (D x V x H):
Hodnota LMS 291 180 ° 1 ... 0,25 ° 13 ... 53 ms 10 mm +/- 35 mm, +/- 5 cm 10 mm 1 IP 65 0 °C ... +50 °C 80 m RS 232, RS 422 9,6 / 19,2 / 38,4 / 500 kBaud 3 x PNP 24 V DC +/- 15% 20 W -30 °C ... +70 °C 4,5 kg 156 x 155 x 210 mm
4 AUTONOMNÍ LOKOMOČNÍ ROBOT OMR III
Strana 45
Obr. 18 Laserový scénový snímač SICK LMS 291.
4.3
Inerciální snímače
Metoda zvaná inerciální navigace (inercial navigation) se používá u tzv. inerciálních snímačů, jako jsou gyroskopy a akcelerometry pro měření rychlosti pohybu a následné pozice, přičemž primární měřenou veličinou je zpravidla zrychlení. Celý princip tedy spočívá v efektu, že známe-li startovní pozici objektu a zaznamenáme-li změny zrychlení ve všech osách, které jsou pro měření podstatné, jsme schopni vypočítat současnou rychlost a pozici. Princip metody je jednoduchý, ale praktická realizace je velmi obtížná, protože s integrací užitečného signálu je integrována i chyba [18]. Tato technologie byla patentována roku 1910 v Německu a byla poprvé použita ve druhé světové válce v bojových raketách V-1 a V-2. Snímače používané v inerciálních navigačních systémech je možno rozdělit na dvě základní skupiny: snímače otočení a snímače posunutí, tedy akcelerometry.
Strana 47
5
KOMUNIKAČNÍ KANÁLY V ROBOTICKÝCH SYSTÉMECH
V této kapitole bych chtěl probrat základní možnosti komunikace mezi jednotlivými moduly robotu a na závěr vybrat vhodné řešení komunikace pro mobilní robot OMR III. V této kapitole jsem čerpal převážně z literatury [20]. Hardware robotu OMR III je řešeno distribuovaným způsobem, proto je potřeba posílat data mezi jednotlivými moduly prostřednictvím vnějších přenosových cest. Vnější přenosové cesty jsou propojení mezi jednotlivými moduly s mikrořadiči. Komunikace je prováděna zvoleným komunikačním protokolem po komunikační sběrnici (lince), splňující hardwarové požadavky komunikačního protokolu. To znamená, že každá komunikace má dvě základní úrovně. Hardwarovou, kterou představuje sběrnice a softwarovou, kterou představuje komunikační protokol. Softwarová úroveň bývá dělena na několik vrstev, které umožňují rozdělit vlastní komunikaci na jednodušší operace.
5.1
Hardwarová úroveň komunikace
Hardwarová úroveň je tvořena sběrnicí a definicí průběhů jednotlivých signálů na sběrnici. Základní rozdělení sběrnic je na paralelní a sériovou. Pro spojování jednotlivých periferií se v současnosti upřednostňují sériové sběrnice. Upřednostňování je motivováno hlavně nižšími náklady, jednodušším ošetření sběrnice proti rušivým vlivům a jednodušší instalací a údržbou sběrnice. Dále se už budu zabývat jen sériovými sběrnicemi. 5.1.1
Sériové sběrnice
Sériové sběrnice můžeme dělit podle směru komunikace a podle způsobu synchronizace přenosu. Podle směru komunikace: • Jednostranná – na lince jsou připojena zařízení, která mohou pouze data vysílat nebo pouze přijímat. Nejčastější použití je u jednoduchých zařízení. Hlavní nevýhodou je nemožnost vysílacího zařízení kontrolovat stav zařízení, které pracuje jako přijímací. • Oboustranná • halfduplex (jednočinná) – zařízení mohou komunikovat jedním směrem; směr komunikace řídí jedno zařízení, které řídí komunikaci; používá se pouze jedna linka; je lacinější • fullduplex (plný duplex, dvojčinná) – zařízení mohou komunikovat součastně oběma směry, tzn. zařízení může součastně data vysílat i přijímat. Podle synchronizace: • Synchronní sběrnice – obsahuje linku přenášející synchronizační signál. Výhodou je, že zařízení, které řídí komunikaci, zároveň řídí rychlost generování synchronizačního signálu, a tudíž může sběrnice pracovat proměnnou rychlostí podle potřeby přenosu. • Asynchronní sběrnice – je bez synchronizačního signálu. Sběrnice je synchronizována pomocí „času“ jednotlivých zařízení. Nevýhodou je nutnost, aby všechna zařízení na sběrnici měla přesný zdroj času, který slouží k synchronizaci. Výhodou je ušetřený synchronizační signál. Jednotlivé konfigurace sběrnic jsou popsány u odpovídajících typů.
Strana 48
5.2
5 KOMUNIKAČNÍ KANÁLY V ROBOTICKÝCH SYSTÉMECH
Softwarová úroveň komunikace
V rámci moji práce je používán komunikační protokol používaný zařízeními vyvinutými v rámci laboratoří mechatroniky. Tento protokol je definován pouze na softwarové úrovni. Hardwarová úroveň protokolu je přebírána z hardwarové úrovně použité sběrnice. Důraz je kladen na robustnost komunikace a identifikaci připojeného zařízení. Podle identifikace lze určit skupinu a podskupinu připojeného zařízení. Pro jednotlivé skupiny a podskupiny zařízení jsou definovány obecné příkazy, pomocí nichž lze připojené zařízení ovládat bez ohledu na jeho hardwarovou a softwarovou strukturu. Komunikační protokol je rozdělen do tří vrstev. První vrstva zajišťuje adresování, prostřední vrstva implementuje kontrolní mechanismy a nejvyšší implementuje příkazy a přenášená data. U sériových sběrnic, které mají vyřešenu problematiku adresování (I2C, SPI) nejnižší vrstva odpadá.
5.3
Typy komunikace
V průběhu předešlých let postupně vzniklo velké množství komunikačních protokolů (definují jak hardwarovou, tak softwarovou úroveň). Dále jsem vybral několik z nich, které se vyskytují v běžných mikrořadičích. V rámci práce budou využity následující typy komunikací. 5.3.1
UART (Universal Asynchronous Receiver/Transmitter)
Nejedná se v žádném případě o komunikační protokol, jedná se o typ komunikace. Základní hardwarová úroveň (často označována 5-ti voltová) může být převáděna pomocí speciálních obvodů na další komunikační rozhraní RS232C, RS422, RS485. Základní 5-ti voltová HW úroveň používá tři vodiče – zem (GND), přijímaná data (RX), vysílaná data (TX). Napěťová úroveň mezi zemí a daty je 5V nebo 3,3V u 3,3V systémů, maximální vzdálenost, na kterou jsou zařízení schopna spolehlivě komunikovat je 3 m, rozhraní RS232C prodlužuje tuto vzdálenost na 12 m, RS422 a RS485 až na vzdálenost 1200 m. Na softwarové úrovni má UART definovánu pouze první vrstvu, která definuje start bit, délku přenášeného slova a počet stop bitů. Délka přenášeného slova je 4 až 9 bitů, poslední bit slova může být tzv. paritní – může obsahovat kontrolní součet přenášeného slova. Jako kontrolní součet se používá buď lichá, nebo sudá příčná parita. 5.3.2
I2C-bus
Sběrnice I2C byla definována v roce 1992 firmou Philips Semiconductor, v roce 1998 byla provedena její revize a byla definována verze 2.0, která vylepšuje a rozšiřuje především adresovací schopnosti použitého protokolu [21], [22]. Jedná se o synchronní, obousměrnou halfduplex sběrnici, používající tři vodiče – zem (GND), synchronizační signál (SCL), přenášená data (SDA). Maximální komunikační rychlost v režimu standard je 100kb/s, v režimu fast je povolena rychlosti až 400kb/s. Verze 2.0 doplňuje třetí režim – high-speed, který umožňuje používat rychlost až 3,4Mb/s. Velkou výhodou této sběrnice je její jednoduchost a jednoduchost propojení jednotlivých komunikujících zařízení (obr. 19). Další výhoda je možnost připojení zařízení s rozdílným napájecím napětím na jednu sběrnici, bez nutnosti přizpůsobovacích obvodů, protože se používají V/V svorky s otevřeným kolektorem.
5 KOMUNIKAČNÍ KANÁLY V ROBOTICKÝCH SYSTÉMECH
Strana 49
Vdd
Rp
SDA SCL uC Master
ADC Slave
DAC Slave
uC Slave
Obr. 19 Připojení zařízení na I2C sběrnici. Na sběrnici je připojeno jedno zařízení master, které řídí komunikaci a 1 až 127 zařízení slave. Pro adresování slave zařízení se používá 7-bitová adresa (ve verzi 1), informace je přenášena po 8-bitech, devátý bit je potvrzovací. Obecně není doporučeno používat více jak jedno zařízení master na jedné sběrnici. 5.3.3
SMBus
Sběrnice SMBus je rozšířením I2C sběrnice, řeší především problém chyb při komunikaci, definuje zotavovací doby a řeší kolize komunikace při provozu více master zařízení na sběrnici. 5.3.4
SPI (Serial Peripheral Interface bus)
Je to synchronní obousměrná fulldupexní sběrnice, která má definovánu pouze hardwarovou vrstvu [21]. Sběrnice je typu „master-slave“, adresování jednotlivých slave zařízení je realizováno hardwarově pomocí signálů slave select (SS), pro každý slave jeden samostatný SS signál (obr. 20).
SPI Master
SCLK MOSI MISO SS1 SS2
SCLK MOSI MISO SS
SPI Slave 1
SCLK MOSI MISO SS
SPI Slave 2
Obr. 20 Připojení zařízení na SPI sběrnici. Pro každé slave zařízení je použito pět signálů s následujícími funkcemi: přístrojová zem (GND), synchronizační signál (CLK), data přenášená směrem master -> slave (MOSI), data přenášená směrem slave -> master (MISO), výběr slave zařízení (SS).
Strana 50
5 KOMUNIKAČNÍ KANÁLY V ROBOTICKÝCH SYSTÉMECH
Sběrnice se používá u nejjednodušších zařízení, její nevýhody jsou vysoký počet vodičů a absence softwarové vrstvy (absence pravidel pro komunikaci). 5.3.5
USB (Universal Serial Bus)
USB představuje sériovou asynchronní oboustrannou halfduplex komunikaci. Je to velmi přesně definovaná sběrnice s robustně a flexibilně navrženým protokolem a definovaným odpojováním a připojováním jednotek za běhu (podporuje princip plugand-play). Byla společně navržena firmami Compaq, Intel, Microsoft a NEC. V současnosti se používají revize sběrnice 1.1 a revize 2.0 z roku 2000 [23]. Používá čtyř vodičů, jejich zapojení je na obr. 21.
Obr. 21 Zapojení USB kabelu. Vodič GND je zem, vodič VBUS je napájecí napětí, D+ a D- jsou datové vodiče. Mezi mnoho výhod této sběrnice patří i možnost použít napájecího napětí VBUS pro napájení připojených zařízení při splnění pravidel pro napájení ze sběrnice. Pro komunikace jsou definovány tři komunikační rychlosti (módy): 1,5Mb/s • low-speed 12Mb/s • full-speed • high-speed 480Mb/s (definováno v revizi 2.0) Mezi nevýhody této sběrnice patří nutnost dodržovat přísná pravidla daná specifikační normou, hlavní výhodou je ovšem vysoká rychlost komunikace a dobře navržený protokol.
5.4
Volba propojení mezi jednotlivými uzly distribuovaného systému řízení
Propojení jednotlivých uzlů je realizováno s využitím dostupných hardwarových prostředků použitých mikrořadičů. Při návrhu propojení jednotlivých uzlů byla vedena maximální snaha vyhnout se softwarové emulaci komunikace. Při použití hardwarových komunikačních jednotek mikrořadičů probíhá komunikace paralelně s během programu, při emulaci se o zajištění komunikace stará obslužný software čímž dochází k zbytečnému plýtvání výpočetním výkonem mikrořadiče. Volba propojení mezi moduly je znázorněna na obr. 23. K centrální jednotce s mikrořadičem jsou připojeny ostatní moduly systému podle předpokládaného zatížení komunikačních linek. Na desku centrální jednotky byl navíc ještě umístěn slot pro SD kartu a sériová paměť EEPROM.
5.5
Použitý komunikační protokol pro distribuovaný systém robotu
V robotu OMR III je použit standardní komunikační protokol používaný v rámci laboratoří mechatroniky FSI VUT v Brně [20]. Komunikační protokol je definován pouze na softwarové úrovni. Hardwarová úroveň protokolu je přebírána z hardwarové úrovně
5 KOMUNIKAČNÍ KANÁLY V ROBOTICKÝCH SYSTÉMECH
Strana 51
použité sběrnice. Důraz je kladen na robustnost komunikace a identifikaci připojeného zařízení. Podle identifikace lze určit skupinu a podskupinu připojeného zařízení. Pro jednotlivé skupiny a podskupiny zařízení jsou definovány obecné příkazy, pomocí nichž lze připojené zařízení ovládat bez ohledu na jeho hardwarovou a softwarovou strukturu. Robustnost komunikace je převážně zajišťována: na sběrnici je vždy připojena pouze jedna jednotka v režimu master, která řídí komunikaci; jednotky slave vždy potvrzují přijetí zprávy (paketu), není-li příkaz potvrzen, master provádí jeho opakování; počet opakování jednoho příkazu je omezen; každá jednotka má svou jedinečnou adresu v rámci sítě; zpráva má implementován mechanizmus detekce poškození obsahu, poškozená zpráva je ignorována, musí se opakovat přenos. Protokol je rozdělen na tři vrstvy. Kompozice a dekompozice paketu zprávy je řešena na úrovni ovladače komunikačního kanálu. Programátor přijímá a odesílá data na všech použitých komunikačních rozhraních stejně, bez nutnosti znalosti struktury protokolu.
5.6
Strategie zpracování a šíření dat v distribuovaném systému řízení
Základní myšlenkou distribuovaného řízení je vhodné rozdělení úloh mezi jednotlivé uzly systému. Každý uzel systému musí zpracovat maximum informací o svém stavu, které získal ze svých podřízených systémů, sám vlastními prostředky a ve vlastní režii, a na základě nich řídit svoje chování. Následují některé z důvodů proč je tato strategie výhodná: • snižuje se množství řídicích příkazů z vyšších úrovní řízení a tím možné dopravní zpoždění většiny zásahů, způsobené přesunem informace přes několik úrovní řízení systému; • snižuje se zatížení jak komunikačních kanálů, tak nadřazených systémů; • nadřazený systém nemusí vědět nic o struktuře ani způsobu činnosti podřízených zařízení. Stačí, aby pouze znal obecné rozhraní řízeného zařízení nebo skupiny či podskupiny, do které zařízení patří; • používání obecného rozhraní skupiny či podskupiny zařízení umožňuje jednoduchou záměnu různých zařízení se stejnou nebo podobnou funkcí. Nevýhodu distribuovaného systému lze spatřovat v prodlužování dopravního zpoždění příkazů, které je nutno generovat na vyšších úrovních řízení. Problém se projevuje potřebou z jedné úrovně přijmout data, zpracovat je a následně je distribuovat na jinou úroveň.
Strana 53
6
ŘÍDICÍ SYSTÉM MOBILNÍHO KOLOVÉHO ROBOTU OMR III
Cílem této práce je návrh řídicího systému nižší úrovně pro mobilní kolový robot a jeho implementace pro konkrétní mikrořadič. Úkolem řídicího systému nižší úrovně je globální obsluha všech připojených periferií, sběr dat, řízení pohybu podvozku a komplexní diagnostika stavu a činnosti robotu i periferií. Řídicí systém dále poskytuje rozhraní pro vyšší úrovně řízení, mezi něž mohou patřit aplikace operátora, navigační a plánovací aplikace. Pro zvýšení robustnosti je systém rozdělen do dvou vláken, kde jedno vlákno zajišťuje obsluhu periferií a diagnostiku, druhé vlákno zajišťuje běh ostatních aplikací. Dalším požadavkem, kladeným na řídicí systém je jeho modularita, která umožní jednoduché připojování různých periferií potřebných pro zajištění požadavků kladených na daný mobilní robot. Modularita je řešena pomocí návrhu základních abstraktních tříd, které jednoznačně definují rozhraní periferií. Kód obsluhy jednotlivých periferií je pak řešen pomocí tříd, které jsou potomky základních tříd a implementují předepsané metody. Pro mobilní robot OMR III byla vybrána hybridní architektura distribuovaného řídicího systému s centrálním zpracováním dat. Schéma zapojení jednotlivých modulů robotu OMR III je na obr. 23. Jednotlivé periferie implementují komunikační rozhraní, která jsou pro dané typy standardizovány v rámci laboratoří Mechatroniky. Obsluha těchto periferií je řešena pomocí implementací tříd, které ovládají tyto periferie přes zvolené komunikační rozhraní.
6.1
Požadavky na HW řídicího systému
Hybridní architektura s centrálním zpracováním dat klade zvýšené výpočetní nároky na centrální jednotku. Centrální jednotka musí obsluhovat připojené periferie nižších vrstev v reálném čase a zároveň poskytovat jejich data do vyšší úrovně řídicího systému. Následující dvě tabulky 1 a 2 obsahují přehled periferií, které mají být k centrální jednotce připojeny: Tab. 2 Přehled periferií realizovaných v laboratořích Mechatroniky. Název periférie Pohonné jednotky Senzorická věž Inerciální snímač polohy Programátor mikrořadiče Nadřazená úroveň
Dostupná komunikační rozhraní UART, I2C UART, I2C, SPI UART, I2C, SPI UART UART, USB
Tab. 3 Použité komerčně dostupné periferie. Název periférie Dostupná komunikační rozhraní Sick LMS 291 RS 232, RS 422 EEPROM 24LC512 I2 C SD karta SPI Při volbě mikrořadiče pro řídicí systém je nutné zohlednit vytěžování komunikačních kanálů jednotlivými periferiemi, tak aby nedocházelo k problémům při komunikaci. Výhodou periferií vyrobených v laboratoři je existence několika typů sériových sběrnic, při zachování stejné nejvyšší softwarové vrstvy komunikačního protokolu, což umožňuje jednoduchou volbu použité sběrnice podle potřeby aplikace, která
Strana 54
6 ŘÍDICÍ SYSTÉM MOBILNÍHO KOLOVÉHO ROBOTU OMR III
periferii využívá. Tím je podstatně zvýšena variabilita systému. Komunikační rozhraní budou na desce centrální jednotky připojeny pomocí konektorů standardizovaných v rámci laboratoře. Komerčně vyráběný laserový skener LMS 291 používá komunikační rozhraní RS 232 nebo RS 422. Pro jeho připojení k centrální jednotce je potřeba použít převodník z úrovní 3.3V UART sběrnice na RS 232. Toto zajistí napájecí deska s převodníkem, která je taktéž standardizována v rámci laboratoře. Nevýhodou laserového skeneru je vysoká spotřeba (příkon 20W) a velké rozměry, výhodou je vysoká přesnost měřených vzdáleností. Mezi další požadavky na desku centrální jednotky patří umístění slotu pro SD kartu pro záznamy provozních dat. Externí EEPROM paměť je určena pro bezpečné ukládání nastavení. Hledaný mikrořadič musí disponovat dostatečnou velikostí paměti. Paměti používané v mikrořadičových systémech dělíme na ty, které zachovávají data po vypnutí napájení (ROM, EEPROM, OTP, FLASH) a paměti s opačným chováním (RAM). Poměr pamětí RAM ku ROM se v dnešní době pohybuje zhruba okolo 1:16 (trend směřuje k nižším poměrům 1:8). Více paměti RAM umožňuje použít při vývoji perspektivnějších vyšších programovacích jazyků. Pro obsluhu všech periferií a zásuvných modulů (lokalizace, navigace, plánování) by měl mít hledaný mikrořadič víc než 4kB paměti RAM a 40 kB paměti FLASH. Přítomnost většího počtu „chytrých“ integrovaných periferií klade vyšší nároky na jejich hardwarovou obsluhu, to je vyřešeno přítomností pokročilého zpracování přerušení, tím se vyhneme softwarové emulaci a celý proces ovládání komunikačních rozhraní se tudíž zrychlí. Pro ladění programu a samotné programování je vhodná možnost připojení speciálních vývojových prostředků a funkce programování přímo v aplikaci (ISP/IAP).
6.2
Volba MCU
Na základě předchozí analýzy byl zvolen mikrořadič LPC 2148 firmy NXP (dříve Philips semiconductor). Mikrořadič [24] je postaven na 32 bitovém jádře ARM7TDMI-S firmy ARM. Toto jádro poskytuje vysoký výpočetní výkon při velmi nízké spotřebě. ARM7TDMI-S používá instrukční sadu ARMv4T, vektorový řadič přerušení a 4GB adresový prostor. Výhodou použití mikrořadiče LPC 2148 je především použitá instrukční sada ARMv4T, pro kterou existuje velké množství vývojových nástrojů jak v oblasti komerční, tak v oblasti „Open Source“ (OS). Mikrořadiče a mikroprocesory využívající ARM architektur jsou vyráběny velkým množstvím firem a v současnosti patří mezi komerčně nejrozšířenější 32 bitové architektury. Mikrořadič LPC 2148 má následující vlastnosti: • 16/32-bitový ARM7TDMI-S mikrořadič v malém LQFP64 pouzdře. • 4 GB adresový prostor. • Instrukční sada ARMv4T. • 40 kB on-chip statické RAM a 512 kB flash programové paměti. • 128 bitů sběrnice s akcelerátorem dovolující rychlost 60 MHz. • In-System/In-Application Programming (ISP/IAP) pomocí boot-loader software. • Vestavěný Trace interface pro real-time ladění. • USB 2.0 Full Speed Device Controller s 2 kB endpoint RAM paměti.
6 ŘÍDICÍ SYSTÉM MOBILNÍHO KOLOVÉHO ROBOTU OMR III • • • • • • • •
Strana 55
Dva vícekanálové ADC, DAC převodník. Dva 32-bitové časovače/čítače, každý se čtyřmi kanály, PWM a watchdog. Nezávislé hodiny reálného času. Dvě sériová rozhraní UART, dvě I2C-bus, SPI a SSP s proměnlivou délkou dat. Vektorované přerušení s volitelnou prioritou. 45 IO linek, které akceptují 5-ti voltovou logiku. Vstupy externího přerušení. 60 MHz maximální rychlost CPU s využitím PLL. Blokové schéma vnitřního zapojení mikrořadiče je na obr. 22. Pro řídicí systém robotu OMR III jsou využívány převážně komunikační periferie, analogového zpracování signálu není na této úrovni řízení zapotřebí.
Strana 56
6 ŘÍDICÍ SYSTÉM MOBILNÍHO KOLOVÉHO ROBOTU OMR III
Obr. 22 Schéma vnitřního zapojení mikrořadiče LPC 2148.
6.3
Návrh zapojení
Návrh zapojení periferních jednotek k centrální jednotce je motivován snahou o rovnoměrné zatížení komunikačních linek. SD karta je připojena samostatně na sériovou sběrnici SPI1. Na sběrnici UART1 bude připojena senzorická věž, která bude případně zaměněna za laserovým snímačem LMS 291. Pro komunikaci s nadřazenou úrovní jsou rezervovány sběrnice UART0 a USB. Na UART0 je rovněž možno připojit programovací adaptér (programátor), který využívá možnosti sériového ISP/IAP programování
6 ŘÍDICÍ SYSTÉM MOBILNÍHO KOLOVÉHO ROBOTU OMR III
Strana 57
mikrořadiče. Programátor používá dva datové a dva řídící signály, konstrukce programátoru je popsána v textu níže. V průběhu ladění programu bude vyšší úroveň zastávat PC připojené právě přes programovací adaptér. K I2C1 sběrnici je připojena sériová EEPROM paměť (24LC512 od firmy Microchip [25]) a inerciální snímač polohy. K I2C0 sběrnici jsou připojeny pohonné jednotky, kdy je pro zajištění spolehlivosti řízení a dynamiky pohybu podvozku potřeba obsloužit každou jednotku cca 100x za sekundu. Vyvedení sběrnice SPI0 není na centrální jednotce prozatímně zapojeno, počítá se s ním pro budoucí rozšiřující snímače a efektory. Blokové schéma zapojení centrální jednotky je na obr. 23.
Programátor LMS 291 Senzorická věž Nadřazená úroveň Inerciální snímač polohy
Centrální jednotka
Pohon 1
LPC 2148
Pohon 2
UART 0
I2C 0
UART 1 USB
SPI 0
I2 C 1
SPI 1
EEPROM
SD karta
Pohon 3 Rezerva pro další snímače
Nadřazená úroveň
Obr. 23 Schéma zapojení periferních jednotek.
6.4
Centrální jednotka řídicího systému
Na základě požadavků a doporučení z literatury výrobce mikrořadiče, jsem navrhnul schéma zapojení centrální jednotky pomocí programu Eagle Layout Editor firmy CadSoft. Podle navrženého schématu jsem sestavil zkušební obvod. Jak už bylo zmíněno výše, jádrem této jednotky je mikrořadič LPC 2148. Dalšími částmi jednotky jsou podpůrné obvody a komponenty zajišťující správný chod vlastního mikrořadiče. Hodinová frekvence mikrořadiče 60MHz je odvozena pomocí PLL od krystalu s frekvencí 14,7456MHz, který dovoluje nejvyšší komunikační rychlosti pro programování. Pro odvození kmitočtu reálných hodiny byl zvolen standardní krystal s frekvencí 32,768kHz. Na horní straně desky plošných spojů jsou vyvedeny konektory pro komunikaci. Na spodní straně desky se nachází vlastní mikrořadič, EEPROM paměť, SD slot a indikační LED. Napájení všech obvodů je realizováno pomocí komunikačního kabelu z rozvodné desky, která je standardizována pro projekty v laboratoři. Schéma zapojení centrální jednotky je v příloze. Obr. 24 znázorňuje zhotovenou desku centrální jednotky.
Strana 58
6 ŘÍDICÍ SYSTÉM MOBILNÍHO KOLOVÉHO ROBOTU OMR III
Obr. 24 Deska centrální jednotky.
6.5
Programovací jednotka
Pro programování mikrořadiče je možno použít speciální programátor, který je možné připojit přes rozhraní JTAG, nebo programátor ISP/IAP a boot-loader software. Pro tento případ jsem navrhnul desku programovacího prostředku, který propojuje sériový port PC (RS 232) a UART0 port mikrořadiče („3,3 voltová logika“). Pro převod napěťových
6 ŘÍDICÍ SYSTÉM MOBILNÍHO KOLOVÉHO ROBOTU OMR III
Strana 59
a logických úrovní byl použit obvod MAX3221 firmy Texas Instruments [26] doplněný podpůrnými komponentami. Tento obvod převádí dva datové signály TX a RX (z RS 232). Pro programování mikrořadiče jsou ještě požadovány dva řídicí signály RTS a DTR z rozhraní RS 232. Pro jejich převod je použito přizpůsobení pomocí diskrétních součástek. Schéma programovacího prostředku je v příloze. Zhotovená deska je na obr. 25.
Obr. 25 Deska programovacího prostředku.
6.6
Koncepce SW
Možnosti a vlastnosti použitého mikrořadiče dovolují použít objektové programování, které zjednodušuje a zpřehledňuje vlastní návrh a realizaci. Struktura řídicího programu je koncipována tak, aby bylo jednoduše možné s využitím objektového přístupu přidávat další moduly (objekty). Pro jednotlivé skupiny zařízení byly navrženy bázové třídy, od kterých jsou odvozena jednotlivá zařízení. Řídicí systém je rozdělen do vrstev podle funkčních závislostí. Je použita koncepce „ovladač-rozhraní-modul užívající službu“. Tato koncepce se vyznačuje tím, že je minimum kódu závislého na hardware zařízení a zbytek kódu, řešící jednotlivé úlohy se zařízením, komunikuje přes rozhraní ovladače. To umožňuje jednoduchou výměnu nebo přidávání zařízení dle aktuálních požadavků. Dále je tímto umožněno jednoduché ladění a testování jednotlivých modulů (tříd). Pro většinu zařízení jsou realizovány i simulační moduly, které umožňují testovat software bez závislosti na hardware a tím výrazně zjednodušit a urychlit vývoj. Dále je tímto zajištěna velmi jednoduchá přenositelnost řídicího systému na jiné mikrořadiče. Pro konkrétní mikrořadič jsou zpracovány jen ovladače nejnižší vrstvy, nad kterými pracuje zbytek systému, nezávislý na hardware. Pro zajištění robustnosti a spolehlivosti je řídicí systém rozdělen do dvou vláken. Jedno vlákno zajišťuje obsluhu zařízení a druhé obsluhuje zbytek programového kódu (obr. 26). Pravidelnost obsluhy zařízení je vysoce důležitá pro zajištění spolehlivosti systému, má proto nejvyšší prioritu.
Strana 60
6 ŘÍDICÍ SYSTÉM MOBILNÍHO KOLOVÉHO ROBOTU OMR III
Obr. 26 Časový průběh programu.
6.7
Realizace SW
Software ŘS je rozdělen do dvou vláken (threads), vlákno obsluhy zařízení není děleno na další vrstvy, protože veškerá komunikace má „stejnou“ důležitost. Software druhého vlákna je rozdělen na více procesů s různou prioritou. Nejvyšší prioritu mají lokomoční výpočty společně s korekcí polohy. Tyto procesy jsou časově kritické vzhledem k real-time provozu robotu. Ostatní procesy nejsou tak časově kritické, proto jsou provozovány s nižší prioritou. Přepínání mezi vlákny je děláno pravidelně na základě systémového času. Většinu času je mikrořadič přidělen druhému vláknu. Po pravidelných intervalech je přepínán prvnímu vláknu, kde obsluhuje komunikační sběrnice. Po jejich obsluze se opět vrací k druhému vláknu. Systémový čas definuje časovou základnu pro celý program. Od této základny jsou odvozeny čekací smyčky, přepínání vláken a prioritní rozdělení přístupů k zařízením. 6.7.1
První vlákno
V této části systému je řešena problematika obsluhy připojených zařízení a zajišťována časová posloupnost provádění těchto operací. Pro většinu zařízení je vytvořena mezivrstva takovým způsobem, aby software běžící ve druhém vláknu měl vždy k dispozici aktuální data a zbytečně nespotřebovával systémový čas a nezatěžoval
6 ŘÍDICÍ SYSTÉM MOBILNÍHO KOLOVÉHO ROBOTU OMR III
Strana 61
komunikační kanál žádostmi a přenosem těchto dat. Pro ladění systému je v tomto vláknu realizováno jednoduché uživatelské rozhraní, které umožňuje ladění systému na osobním počítači bez potřeby připojení zařízení. V tomto případě je činnost zařízení simulována a ovládána přes toto uživatelské rozhraní. Připojení jednotlivých zařízení
Každé zařízení připojované do systému (obr. 27) je odvozeno od abstraktní třídy CDeviceBase umístněné ve jmenném prostoru MechatronicLabBrno.Devices. Tato třída definuje základní rozhraní pro obsluhu zařízení a obsahuje ukazatel na instanci třídy CCommunicationChannel, umístněnou ve jmenném prostoru MechatronicLabBrno. Communication.Interface. CCommunicationChannel řeší problematiku komunikace s připojeným zařízením. Implementuje komunikační protokol používaný zařízeními vyvinutými v rámci laboratoří Mechatroniky. Tento komunikační protokol je rozdělen do tří vrstev, jak bylo popsáno v kap. 5.2, CCommunicationChannel realizuje zpracování druhé a třetí vrstvy komunikačního protokolu a řeší problematiku kódování více bytových proměnných (problematika endiánů). Pro ostatní zařízení musí být realizována třída odvozená od CCommunicationChannel, která bude řešit problematiku komunikačního protokolu odpovídajícího zařízení. Tato třída obsahuje dva prvky – adresu zařízení a ukazatel na instanci třídy CInterfaceAbstract, definovanou ve stejném jmenném prostoru. CInterfaceAbstract definuje základní funkčnost komunikačního prostředku (linky) a jsou od něho odvozeny další třídy řešící komunikaci přes konkrétní sériové linky. Třídy jednotlivých zařízení odvozených od třídy CDeviceBase obsahují základní metody zajišťující identifikaci, nastavení základní konfigurace zařízení a nastavení komunikace. Při připojení k danému zařízení je nejdříve odeslán požadavek na identifikaci zařízení, připojené dotázané zařízení reaguje na tento dotaz odesláním identifikačních informací. Identifikace obsahuje informace o způsobu kódování (endián) více bytových prvků, verzi zařízení a verzi komunikačního rozhraní, které zařízení používá. Pokud dotazované zařízení neodpovídá, diagnostika systému musí řešit vzniklou situaci. Podobným způsobem je zjišťována i základní konfigurace zařízení (definován určitý základní stav zařízení) a nastavení komunikace. Univerzální řídicí jednotka pohonu
Třídy a struktury používané pro ovládání pohonů jsou soustředěny ve jmenném prostoru MechatronicLabBrno.Devices.Controllers.UMCU. Třída CDeviceUniversalMotor Controller je potomkem třídy CDeviceBase a zajištuje veškeré ovládání řídicí jednotky pohonu. Jednotlivé požadavky jsou odesílány a přijímány pomocí struktur definovaných v témže jmenném prostoru. Mezi nejdůležitější patří struktura SInputs_AllStates obsahující základní charakteristiky popisující stav zařízení (rychlost otáčení a poloha kola motoru, aktuální stav motoru, režim používání motoru). Nízkoúrovňová lokomoce a korekce polohy
Instance třídy CDeviceUniversalMotor jsou drženy v třídě CRobotLocomotion, která řeší základní kinematické přepočty pohybu motoru na pohony a zpět. Zároveň provádí všechny komunikace s motory a kontrolu rychlosti a polohy robotu, jestli odpovídá zadaným požadavkům z druhého vlákna prostřednictvím třídy CRobotKinematics. V případě rozdílů skutečné polohy od požadované, informuje blok diagnostiky o vniklém problému a žádá o jeho řešení.
Strana 62
6 ŘÍDICÍ SYSTÉM MOBILNÍHO KOLOVÉHO ROBOTU OMR III
Proces korekce polohy zajišťuje správnost pohybu po vypočtené trajektorii. V případě odchylky z požadovaného směru upraví korekce natočení a dráhu robotu. Vypočtená korekční data jsou držená ve struktuře stateCor. CPortSettings PortNumber
bPortNumber
Interface type
interfaceType
iAddress
Cinterface Abstract
Ccommunication Channel
*pSettings
iAddress
Open ()
*pcPort
Read ()
Endian_set ()
Write ()
Open ()
Send_msg ()
Close ()
Close ()
CDeviceBase
*pChannel DeviceIsValid ()
CDeviceUniversal MotorController CDeviceInercial Sensor CDeviceScanning Tower
DeviceVersion_Get () DeviceConfiguration_Get () CommunicationSettings_Get () Close ()
Obr. 27 Schéma vytvoření zařízení a připojení komunikačního kanálu. Senzorická věž
Třída obsluhující senzorickou věž CDeviceScanningTower je umístěná ve jmenném prostoru MechatronicLabBrno.Devices.Sensors. Je odvozena od třídy CDeviceBase a implementuje metody obsluhující funkci senzorické věže. Senzorická věž poskytuje data o okolí robotu ve struktuře SScanningTower_Inputs_State umístněné ve jmenném prostoru MechatronicLabBrno.Devices.Sensors.ScanningTower. Tato struktura obsahuje pole vzdáleností od překážek, které jsou uloženy v polárních souřadnicích se středem v ose otáčení věže, dále je součástí těchto dat hodnota úhlu mezi dvěma vzdálenostmi a další pomocné informace. Podobně jako u ostatních zařízení je instanci této třídy definován komunikační kanál, pomocí kterého je zařízení připojeno. Inerciální senzory
Třída inerciálních senzorů CDeviceInercialSensor umístěná ve jmenném prostoru MechatronicLabBrno.Devices.Sensors je odvozena ze základní třídy CDeviceBase, ve které je jí přidělen komunikační kanál. Stejně jako třída CDeviceScanningTower implementuje metody, které slouží ke zjištění aktuálního stavu. Aktuální stav měřených hodnot ze senzoru je předáván ve struktuře SInercialSensor_InputContinuous_State obsahující hodnotu a směr aktuální rychlosti a zrychlení.
6 ŘÍDICÍ SYSTÉM MOBILNÍHO KOLOVÉHO ROBOTU OMR III
Strana 63
Blok diagnostiky
Pro správný a spolehlivý chod řídicího systému jsou důležité pravidelné kontroly integrity dat, činnosti připojených zařízení a úspěšnosti provádění zadaných úkolů. Přítomnost zařízení v systému je spolehlivě identifikovatelná pomocí odezvy v komunikaci. Každé připojené zařízení má v sobě zabudované diagnostické prvky (např. pohony hlídají teplotu motoru i jednotky, proudový odběr a další veličiny). Pomocí těchto prvků je možné monitorovat případné chyby a na základě jejích vývoje a trvání se musí rozhodovat o dalším chování systému. Informace o stavu jednotlivých zařízení a jejich částí jsou získávány ve struktuře CComErrors, která je zpřístupněná také vyšší úrovni. Blok diagnostiky je zajišťován instancí třídy CSystemDiagnostics, umístěné ve jmenném prostoru MechatronicLabBrno.Devices.RobotSystem,a zajišťuje výše popsané úkoly. 6.7.2
Druhé vlákno
Druhé vlákno je rozděleno na více procesů: lokomoční výpočty, zpracování vnějších cílů, mapování a ovládání speciálních modulů (nadstaveb). Jednotlivé procesy jsou volány s různou časovou prioritou, procesy s vyšší prioritou jsou volány častěji než ty s nižší. Procesy tohoto vlákna zpracovávají informace získané ze zařízení. Všechny definice tříd a struktur toho vlákna se nachází ve jmenném prostoru MechatronicLabBrno. Devices.RobotSystem a prostorech v něm vnořených. Proces lokomočních výpočtů
Proces lokomočních výpočtů zajišťuje vzájemnou synchronizaci pohonů. Byla pro něj zavedena třída CRobotKinematics, která obsahuje mimo jiné strukturu SRobotKinematicsState, která sdružuje aktuální informace o pohybu robotu. Tato struktura je pravidelně plněna aktuálními daty z prvního vlákna (nízkoúrovňová lokomoce) v okamžiku vzorkování jednotlivých pohonů. Dále jsou v této třídě implementovány metody pro nastavování jízdních parametrů jednotlivých pohonů a metody pro přepočet požadované rychlosti a polohy těžiště robotu na rychlosti a ujeté vzdálenosti jednotlivých kol (rovnice 6 až 15). Transformace opačným směrem definuje aktuální pozici a rychlost robotu. Výsledný obecný pohyb robotu je vždy rozložen na posloupnost rotace a translace. Tento přístup zjednodušuje výpočetní operace a zachovává natočení čela robotu ve směru pohybu (výhodné pro další snímače umístěné na nadstavbě robotu). Proces ovládání speciálních modulů
Na podvozek robotu OMR III mohou být umístěny speciální moduly (nadstavby). Úlohou řídicího systému bude zpřístupnit tyto moduly vyšším vrstvám. V tomto procesu budou implementovány řídicí rutiny těchto nadstaveb. Proces zadávání vnějších cílů
Proces zadávání vnějších cílů vyhodnocuje povely příchozí z vyšších úrovní. Tyto povely mohou mít charakter příkazů ke konání konkrétní činnosti, nebo to mohou být dotazy na vlastnosti prostředí, polohu robotu v tomto prostředí, vnitřní stavy robotu a plány činností, které má robot vykonat. Robot musí být schopen plnit úkoly zadávané operátorem. Operátor plánuje jednotlivé činnosti robotu a přídavných modulů. Požadavky na komunikaci opačným směrem jsou řešeny v rámci procesu diagnostiky. Řídicí systém nastaví příslušný chybový stav, který je obsloužen při pravidelném přístupu vyšší úrovně. V současné době je zadávání vnějších cílu realizováno pomocí uživatelského rozhraní na PC.
Strana 64
6 ŘÍDICÍ SYSTÉM MOBILNÍHO KOLOVÉHO ROBOTU OMR III
Proces tvorby map prostředí a navigace robotu
V systému jsou připravena rozhraní poskytující informace o vzdálenostech od překážek a o relativní poloze robotu. Tato rozhraní jsou určena pro moduly tvorby lokálních a globálních map a navigace, jejich návrh ani implementace nejsou předmětem této práce. V současnosti jsou tato rozhraní přístupná přes program operátora na PC. 6.7.3
Ovládací rutiny mikrořadiče
Ovládací rutiny mikrořadiče zajišťují přizpůsobení programu vlastnímu mikrořadiči. Zde jsou provedeny implementace ovladačů zařízení, a potřebných periferií mikrořadiče, včetně plánování a přepínání vláken. 6.7.4
Hlavní smyčka programu
Hlavní smyčka programu je nejdůležitější částí kódu. Propojuje a zastřešuje ostatní části kódu. Hlavní program probíhá ve dvou částech. Po spuštění systému jsou nejprve provedeny inicializace zařízení. Po uplynutí cca dvou sekund od prvotní inicializace je systém opětovně zinicializován. Tento čas je vyhrazen na rozběh připojených zařízení a k potlačení nežádoucího efektu kolísání napětí po zapnutí zařízení. Tím je zvýšena robustnost systému. Poté je provedeno připojení a nastavení zařízení. Druhou částí hlavního programu je nekonečná smyčka, ve které se cyklicky zpracovává druhé vlákno. Běh prvního vlákna je řízen přepínačem vláken v pravidelných intervalech.
6.8
Uživatelské rozhraní na PC
Ladění software na mikrořadiči je zatíženo mnoha problémy, které výrazně prodlužují dobu vývoje. Prvním problémem je nutnost fyzického připojení všech zařízení k systému a jejich uvádění do nejrůznějších stavů, což může být velmi problematické. Dále vzniká problém s nahráváním (upload) programového kódu do mikrořadiče. Podle velikosti kódu může tato operace zabrat až několik minut. Proto jsou ovladače pro jednotlivé periférie realizovány tak, aby bylo možné simulovat jejich činnost na PC a jejich stav byl zobrazován a měněn programátorem při ladění programu. Z tohoto důvodu bylo při vývoji programu řídicího systému přidáno do prvního vlákna uživatelské rozhraní pro simulaci činnosti vybraných zařízení a modulů na PC (obr. 28). Kód rozhraní je držen ve třech funkcích ve jmenném prostoru MechatronicLabBrno.Communication.Interface. Pro uchovávání nastavovacích dat jsou použity struktury motKbState, devKbState a Stav_pohybuRobotu. Při překladu kódu řídicího systému pro mikrořadič se toto rozhraní nepřekládá, proto ani není zobrazeno ve schématech systému. Nadřazená úroveň je realizována terminálem, který umožňuje zadávat parametry pohybu robotu a monitoruje jeho průběh. V horní části okna jsou zobrazeny nastavovací hodnoty (směr pohybu, délka dráhy, rychlost natáčení a velikost rychlosti). Znaky v hranatých závorkách definují ovládací klávesy jednotlivých veličin. V prostřední části terminálového okna je zobrazeno poslední nastavení parametrů. Ve spodní části je zobrazován aktuální stav pohybu robotu. Prvním pohybem prováděným robotem je vždy rotace, která je následována translací. Na spodních řádcích jsou zobrazeny informace o právě prováděném typu pohybu a možný zdroj chyby. U spodního okraje terminálového okna jsou zobrazeny impulzní změny úhlových zrychlení kol jednotlivých pohonných jednotek. Pomocí těchto impulzů je možné simulovat chyby v jízdě robotu (zaseknutí kola, prokluz), jejich výsledkem je vychylování robotu ze směru jízdy. Robot na tyto poruchy reaguje korekcí dráhy.
6 ŘÍDICÍ SYSTÉM MOBILNÍHO KOLOVÉHO ROBOTU OMR III
Strana 65
Časová základna simulačního modelu je zobrazována na řádce uprostřed. Výhodou simulací je možnost řídit „rychlost“ systémového času. Pro většinu simulací byl systémový čas 10x zpomalen.
Obr. 28 Okno terminálu na PC.
6.9
Program operátor
Program operátor je realizován na PC a jeho úkolem je zadávání vyšších cílů robotu a případná vizualizace stavu robotu. Program realizuje uživatelské rozhraní pro zobrazování, nastavování a záznam ovládacích dat. Program byl realizován v programovacím jazyku C# v prostředí Microsoft Visual Studio 2005. Komunikace s řídicím systémem robotu je realizována v dll knihovně napsané v C++, která plně řeší rozhraní robotu. Operátor umožňuje zobrazovat data z jednotlivých zařízení. Na obr. 29 je vidět zobrazení mapy vzdáleností poskytované senzorickou věží. Kromě zobrazování dat ze snímačů a ovládání program umožňuje provádět uživatelská nastavení systému robotu.
Strana 66
6 ŘÍDICÍ SYSTÉM MOBILNÍHO KOLOVÉHO ROBOTU OMR III
Obr. 29 Okno programu operátor.
6.10 Použité vývojové prostředky Velkou výhodou ARM architektury je existence množství vývojových prostředků od různých výrobců nebo ze strany Open Source komunit. V rámci této práce byla vyzkoušena dvě komerční vývojová prostředí µVision3 – fy KEIL, CrossWorks – fy Rowley. µVision3 používá vlastní překladač jazyka C/C++, CrossWorks používá Open Source překladač jazyka C/C++ GCC. Testována byla omezená verze prostředí µVision3, dodaná s JTAG programátorem, který využívá „TEST/DEBUG Interface“ integrované v mikrořadiči. Toto prostředí bylo použito pro vývoj jednotlivých ovladačů periferií mikrořadiče. Systém byl napsán a odladěn v jazyce C++ v prostředí Microsoft Visual Studio 2005 na operačním systému Microsoft Windows XP. Překlad pro mikrořadič byl realizován pomocí překladače GCC 4.1.1. Microsoft Visual Studio 2005 bylo použito, protože poskytuje vysoký komfort jak pro zápis programového kódu, tak pro ladění a výrazně urychluje a zefektivňuje proces vývoje.
Strana 67
7
ZÁVĚR
Cílem této práce bylo navrhnout a implementovat řídicí systém nižší úrovně pro mobilní kolový robot. V teoretickém úvodu byla probrána problematika řídicích systémů s příklady jejich konkrétních aplikací. Po analýze vlastností jednotlivých architektur byla vybrána koncepce řídicího systému, který je založený na hybridní distribuované architektuře. Jedním z hlavních požadavků na tento systém byla vysoká modularita a nezávislost na provozní platformě. Pro odzkoušení řídicího systému byl vybrán všesměrový mobilní robot OMR III, který je díky svým kinematickým a dynamickým vlastnostem vhodným kandidátem pro testování případných speciálních modulů (nadstavby). V další části práce byly popsány existující periferní moduly, které jsou postupně konstruovány v rámci laboratoří mechatroniky FSI VUT v Brně. Při jejich popisu byl kladen důraz na jejich vlastnosti a na možnost jejich unifikovaného připojení k řídicímu systému. Na základě výše zjištěných vlastností periferií a obecných požadavků na centrální jednotku řídicího systému, byl vybrán mikrořadič LPC 2148 firmy NXP. Tento mikrořadič je postaven na 32 bitovém jádře ARM7TDMI-S. Pro tento mikrořadič byla navrhnuta a vyrobena deska centrální jednotky, ke které je možno modulárně připojovat periferie. Dále byl proveden návrh a realizace řídicího systému. Možnosti a vlastnosti použitého mikrořadiče dovolují použít objektové programování, které výrazně zjednodušilo vlastní návrh a realizaci řídicího systému včetně návrhu a realizace rozhraní pro jednoduché přidávání dalších modulů do systému. Pro komunikaci s nadřazenými úrovněmi bylo vyvinuto rozhraní, které lze jednoduše připojit k různým nadřazeným úrovním, včetně PC, pomocí něhož byl řídicí systém odladěn. Simulační moduly jednotlivých zařízení výrazně zjednodušily a zkrátily vývoj systému. Vlastní implementace komunikace po USB sběrnici není provedena, protože zatím neproběhlo zpracování ovladačů sběrnice USB, kterým se měla zabývat jiná souběžná diplomová práce. Řídicí systém je realizován, vzhledem k celkovému objemu práce byl systém ověřen pouze v simulačním režimu, na hardware jsou ověřeny ovladače jednotlivých zařízení. Jelikož společně s vývojem systému probíhá vývoj senzorické věže a inerciálních snímačů nebylo možné provést kompletní odladění celkového systému.
PODĚKOVÁNÍ Práce byla provedena za podpory projektu MSM 0021630518 „Simulační modelování mechatronických soustav“.
Strana 69
POUŽITÁ LITERATURA [1] [2] [3] [4] [5] [6] [7] [8]
[9] [10] [11] [12] [13] [14]
[15] [16] [17]
KOČÍ, J. Motivace akcí mobotů. Diplomová práce. Praha: České vysoké učení technické, fakulta elektrotechnická, katedra kybernetiky, 2000. 59 s. 23 s. příloh. Vedoucí diplomové práce Doc. Ing. Nahodil Pavel CSc. FLIEGER, J. Zhodnocení současného stavu v oblasti kráčejících mobilních robotů. Ostrava, 2003. Seminář Servisní robotika. ŠOLC, F.; ŽALUD, L. Robotika. [pdf]. Brno, 2002. Studijní text FEKT VUT Brno. NAHODIL, P.; KADLEČEK, D.; KOHOUT, K.; SVRČEK, A. Teorie a robotické aplikace umělého života. Praha, 2003. Učební text, Fakulta elektrotechnická Katedra kybernetiky ČVUT Praha. PAVLÍČEK, J. Kooperace skupiny mobotů při řešení úloh. Diplomová práce. Praha: České vysoké učení technické, fakulta elektrotechnická, katedra kybernetiky, 2000. Vedoucí diplomové práce Doc. Ing. Nahodil Pavel CSc. KNOFLÍČEK, R.; kol. Současný stav ve vývoji mobilních robotů na ÚVSSAR. [doc dokument]. Konference „Setkání ústavů a kateder oboru výrobní stroje a robotika“. Ostrava 2004 [cit. 9. 2. 2007]
. MACEK, J. Řízení pohybu podvozku mobilního robotu OMR III. Diplomová práce. Brno. FSI VUT Brno, Ústav mechaniky těles, mechatroniky a biomechaniky, 2006. Vedoucí diplomové práce Ing. Pavel Houška, Ph.D. PETRUS, M. Rozšiřující SW mobotů vycházející z poznatků etologie a genetiky (MODEL ADAPTACE CHOVÁNÍ). Diplomová práce. Praha: České vysoké učení technické, fakulta elektrotechnická, katedra kybernetiky, 1997. Vedoucí diplomové práce Doc. Ing. Nahodil Pavel CSc. ŠTĚPÁN, P. Vnitřní prezentace prostředí pro autonomní mobilní roboty. Disertační práce. Praha 2001. ČVUT FEL, Katedra kybernetiky. NOVÁK, P.; KRÁLÍČEK, L. Hybridní řídicí systém mobilního robotu. [doc dokument]. Konference „Setkání ústavů a kateder oboru výrobní stroje a robotika“. Ostrava 2004 [cit. 9. 2. 2007] . EHRENBERGER, Z.; KOLÍBAL, Z. Průmyslové roboty III, Robotické systémy vyšších generací. Nakladatelství VUT Brno. Brno 1993. ISBN 80-214-0530-0. KULICH, M. Lokalizace a tvorba modelu prostředí v inteligentní robotice. Disertační práce. Praha 2003. ČVUT FEL, Katedra kybernetiky. ŽALUD, L. Teleprezenční metoda při ovládání robotnického systému. Automatizace, 2005, roč. 48, č. 7-8, s 454-455, (www.automatizace.cz). ALBUS, J. S.; LUMIA, R.; FIALA, J.; WAVERING, A. NASREM The NASA/NBS Standard Reference Model for Telerobot Control System Architekture. [pdf dokument]. Robot Systems Division National Institute of Standards and Technology, Gaithersburg USA [cit. 9. 2. 2007] Dostupný z: . BORENSTEIN, J.; EVERETT, H., R.; FENG, L. 'Where am I?' Sensors and Methods for Mobile Robot Positioning. Technical Report, The University of Michigan. 1996. PODLUCKÝ, J. Soustava scénových snímačů pro mobilní robot OMR III. Diplomová práce. Brno. FSI VUT Brno, Ústav mechaniky těles, mechatroniky a biomechaniky, 2006. Vedoucí diplomové práce Ing. Pavel Houška, Ph.D. Sick – firemní stránky. Produkt LMS 291. [online].[cit. 8. 5. 2007]. Dostupné z .
Strana 70 [18] [19] [20] [21] [22] [23] [24] [25] [26]
POUŽITÁ LITERATURA
RobotWiki – stránky o robotice. [online].[cit. 8. 5. 2007]. Dostupné z . MEMSIC – firemní stránky. [online].[cit. 10. 5. 2007]. Dostupné z . HOUŠKA, P. Distribuovaný systém řízení kráčivého robotu. Disertační práce. Brno: UMTBM FSI VUT Brno, 2004. Vedoucí disertační práce Doc. RNDr. Ing. Tomáš Březina, CSc. IRAZABAL, J., M.; BLOZIS, S., AN10216-01 I2C MANUAL. [pdf dokument]. Philips Semiconductors. 2003. [cit. 27. 2. 2007]. . THE I2C-BUS SPECIFICATION, VERSION 2.1, JANUARY 2000. [pdf dokument]. Philips Semiconductors. [cit. 27. 2. 2007]. . Compaq; Hewlett-Packard; Intel; Lucent; Microsoft; NEC; Philips, Universal Serial Bus Specification, Revision 2.0, 2000. [pdf dokument]. [cit. 27. 2. 2007]. . LPC214x User Manual, Rev. 02-25 July 2006. [pdf dokument]. NXP. [cit. 8. 5. 2007]. Dostupný z . 24AA512/24LC512/24FC512. 512K I2C™ CMOS Serial EEPROM Datasheet. [pdf dokument]. [cit. 8. 5. 2007]. Dostupné z . MAX3221 Datasheet. Texas Instruments. [pdf dokument]. [cit. 8. 5. 2007]. Dostupné z .
Strana 71
SEZNAM PŘÍLOH Příloha 1. Schéma zapojení programovacího prostředku. Příloha 2. Schéma zapojení centrální jednotky. Příloha 3. Disk CD-ROM s obsahem: • Textový soubor s informacemi o umístnění jednotlivých programů na disku (Instrukce.txt) • Elektronická podoba této práce (DP_ANDRS.pdf) • Software pro řídicí jednotku (alfaverze)
PŘÍLOHA 1. SCHÉMA ZAPOJENÍ PROGRAMOVACÍHO PROSTŘEDKU.
PŘÍLOHA 2. SCHÉMA ZAPOJENÍ CENTRÁLNÍ JEDNOTKY.