czech english

Průvodce

ABC mobilní robotiky

Texty zde dostupné si kladou za cíl seznámení čtenáře s principy mobilních robotů. Značný důraz je kladen na experimety usnadňují pochopení vysvětlované látky a proto je zpočátku věnován všechen prostor seznámení se základy používaného „hardware”. Po přečtení několika prvních kapitol by si čtenář měl být schopen s minimálními náklady postavit vlastního robota. Pokročilejší kapitoly se věnují lokalizaci, plánování cesty, či mapování. Závěrem je zmíněno i zpracování obrazu či souběžná lokalizace a mapování.


Co je to robot? — svět z pohledu robotů
Jak vypadá svět z pohledu robotů? A co to vlastně je ten robot a jak funguje? Na tyto a další podobné otázky se vám pokusíme dát odpověd. Stručně si popíšeme principy robotického „vnímání” světa. Zmíníme se o jednočipech, které jsou mozkem většiny jednoduchých robotů. Probereme, co všechno může robot použít k získání informací o svém okolí (senzory) nebo jaké možnosti má naopak na něj zpět působit (efektory).

Blikáme LEDkou — první praktické seznámení s jednočipem a elektronikou
Správný robot potřebuje mozek, nějaké senzory a nějaké efektory. Nemusí být ale nijak složitý. Základem může být jednoduchý levný jednočip, senzorem spínač a efektorem třeba LEDka. Takového robota si zvládne postavit každý s trochou času a trpělivosti, ale přitom základní principy, které si při jeho stavbě vysvětlíme, zůstávají stejné i u robotů podstatně složitějších. Naším cílem pro tuto kapitolu je „ošahat” si nějaký jednoduchý hardware a zbavit se „strachu z neznáma”. Odměnou Vám bude blikající LEDka řízená jednočipem.

 
{Připojujeme tlačítko} — jak fungují vstupy jednočipu
Pokud má robot reagovat na své okolí, potřebuje senzory. Nejjednodušším typem senzoru je obyčejné tlačítko, kterým se dá realizovat třeba nárazník. Nárazník byl i jediným senzorem robota Berta, který zvítězil v uklízecí soutěži ve Švýcarsku. Jak tedy fungují vstupy jednočipu a jak k nim připojit tlačítko tak, aby fungovalo spolehlivě, se dozvíte v tomto článku.

Řízení serva — pokročilejší programování jednočipů
Jakkoli užitečné blikání s LEDkou je, tak samo o sobě nám s robotem nepohne. Při výběru pohonné jednotky našimi základními požadavky zůstávají lehká dostupnost a snadné řízení pomocí jenočipu. Těmto požadavkům nejlépe vyhovuje modelářské servo. Na jeho příkladu si ukážeme jak generovat signál (tj. jak měnit napětí na výstupním pinu v závislosti na čase). Při té příležitosti si také ukážeme, k čemu jsou dobré složitější moduly jednočipu jako třeba časovač, a také jak za pomoci přerušení řešit několik úkolů najednou.

 
{Servobot} — robot z jednočipu a dvou serv
Přišel čas zužitkovat znalosti a zkušenosti získané během předcházejících kapitol a postavit si svého prvního autonomního mobilního robota. Stačit nám k tomu budou dvě modelářská serva, tužkové baterky, nepájivé pole a jednočip. Získáme malého robota, který je schopen se náhodně prohánět po místnosti.

Enkodéry — senzory pro detekci pohybu kol
Robot nám vesele náhodně pobíhá po podlaze, ale přitom o tom vůbec neví. Vysvětlíme si tedy, jak může detekovat, zda (a případně jak rychle a na jakou stranu) se mu točí kolečka. Nejčastěji používaným zařízením pro tento účel jsou optické enkodéry. Jak fungují, či jak si takový enkodér postavit doma, se dozvíte právě dnes.

Řízení pohybu — a co je to vlastně ta zpětná vazba
Máme k dispozici informaci z enkodéru zabudovaného do serva, kterému umíme generovat řídící signál. Nyní si vysvětlíme, jak tyto informace využít k jeho řízení. Zajímat se budeme zejména o servo modifikované pro kontinuální otáčení. Popsaný způsob je ale možné aplikovat i pro řízení obyčejného motoru s enkodérem, jaký se hodí pro použití i ve větším robotovi.

Měření rychlosti — jak se vypořádat s nepřesnými daty
Jak kvalitní je informace o rychlosti z enkodérů? Jaké má rozlišení? Toto jsou důležité otázky pro kvalitu řízení, protože jak řekl někdo chytrý: „Co neměříš, to neřídíš.” Jak tedy dostat z daných informací maximum se dozvíte právě v tomto článku.

Komunikace — předávání informací mezi čipy
Komunikace je základem spolupráce každého společenství, ať už jsou to lidé, buňky nebo čipy. Je to tedy i nepostradatelná schopnost robotů a jejich modulů. Jak lze tedy komunikovat mezi jednotlivými čipy, s PC, případně s jednoduchými senzory a efektory? Podrobněji se podíváme na nejčastěji používanou seriovou komunikaci RS-232 a sběrnici I2C…

Paketová komunikace — po sériové lince
Tento článek se zabývá posíláním příkazů a zpráv mezi počítačem a jednočipem řídícím robota. Důraz bude kladen na obsah a především strukturu posílaných zpráv, nikoli na konkrétní implementaci na vybraném operačním systému a jednočipu. V tomto článku mluvím sice výhradně o sériové lince (myšleno RS232), podobné poznatky a principy však platí i o dalších podobných komunikačních sběrnicích.

Odometrie — modely kolových vozidel
Z enkodérů již náš robot může vědět, jak se mu otáčí kolečka. Jak ale tuto informaci využít k získání určité představy o svém pohybu? Vezmeme si na pomoc odometrii. Odometrie je proces, který popisuje transformaci dat poskytnutých enkodéry na změnu pozice a orientace robota. Vlastní slovo odometrie je složeno ze dvou řeckých slov hodos (cestovat, cesta) a metron (měřit), což nám napovídá, že se této problematice dostává pozornosti již nějakou dobu .

Bug algoritmy — hledání cesty pro jednoduché automaty
V počátcích robotiky se studovaly především problémy, jak naplánovat cestu ve zcela známém prostředí. Příkladem může být piano movers problem, tj. přestěhování klavíru do krápníkové jeskyně (3D prostředí, komplexní tvar překážek i robota). V osmdesátých letech přišel V. Lumelsky s jiným, matematicky dobře definovaným, přístupem: hledání cesty ve zcela neznámém prostředí pro automat s malou pamětí, s dotykovým senzorem a znalostí svých 2D souřadnic.

 
{CleanBug} — algoritmus uklízecí cesty pro jednoduché automaty
Hledání uklízecí cesty, někdy nazývané pokrývací cesty, je poměrně častá úloha pro mobilní roboty. Pokusíme se zde rozšířit základní úlohu pro jednoduché deterministické automaty s omezenou pamětí s tím, že o uklízeném prostoru nebudeme mít žádné předběžné informace.

Lokalizace — Kalmanův filtr, MCL
Sledovnání pozice pomocí jednoduchého akumulování informací o její relativní změně časem vede k tomu, že si robot myslí, že se nachází jinde než ve skutečnosti. Důvodem je akumulace chyby, která není ničím korigována. Jak se s těmito problémy úspěšně vypořádat, se dozvíte v této kapitole.

GPS — systém pro globální lokalizaci
Znalost pozice je velice důležitá nejenom v robotice, ale i např. ve vojenství. Z tohoto důvodu byl americkou armádou před více jak třiceti lety vyvinut systém pro lokalizaci označovaný jako GPS (Global Position System). V dnešní době je informace o pozici volně dostupná každému, kdo má GPS přijímač (nejlevnější jsou tak okolo 2000Kč) a tak se množství GPS aplikací značně rozšířilo…

Exaktní plánování — vektorové mapy, plánování cesty ve známém prostředí
Jak najít cestu, máme-li k dispozici mapu světa? Světem se samozřejmě i tentokrát míní svět robotický, což může být např. pouze jediný pokoj s nábytkem. Mapou rozumíme seznam polygonů tvořících překážky. Zajímá nás, zda existuje cesta z aktuální pozice robota na nějaké jiné konkrétní místo, jak taková cesta vypadá, jak vypadá nejkratší cesta či jak vypadá cesta nejbezpečnější.

Plánování na mřížce — rastrové mapy
Dnes budeme pokračovat v plánování cesty tentokrát ovšem za použití rastrových map či pravděpodobnostních mřízek. Mnoho algoritmů zde popsaných máte příležitost potkat také v počítačové grafice. Jejich podobnost vyplývá z toho, že i na pravděpodobnostní mřížku je možné nahlížet jako na obrázek. Dozvíme se, i co je to potenciálové pole či algoritmus A*. Závěrem si ukážeme jednu z možností, jak plánovací algoritmy vhodně integrovat do řídícího systému robota.

Pravděpodobnostní plánování — konfigurační prostor, PRM, RRT, RDT
První přednáška z třetí, nejnáročnější, sekce se týká obecného plánování. Co dělat, když robot není konvexní a musí se otáčet? Co když se navíc už pohybuje v 3D světě? Jak řešit problémy robotů s omezeními, např. autíčko, které nemůže jet do strany? Jak plánovat pohyb animovaných postav, které mají hodně „stupňů volnosti”? atd.

Pokusíme se navrhnout jednoduchého robota, který bude schopen plnit některé základní úlohy. Ukážeme si, jak tyto úlohy naprogramovat na úrovni jednočipu.

{Grand Challenge 2} — měření vzdálenosti (laser, sonar), GPS
Již jsme si ukázali, jak se robot může lokalizovat ve známé mapě i jak nad takovou mapou naplánovat cestu. Doposud jsme si ale neukázali žádné senzory, které by robotovi umožnily získat alespoň nějakou informaci o tom, jak vypadá prostředí, ve kterém se nachází. Vysvětlíme si tedy, jaké principy se využívají při konstrukci takových senzorů a zmíníme také ty nejrozšířenější praktické implementace těchto principů. V druhé části této přednášky si vysvětlíme principy funkce systému GPS.

{Grand Challenge 3} — jednoduché použití kamery
Použití kamery pro mobilní roboty sebou často nese velké nároky jak na hardware tak na software. V této přednášce se věnujeme základům, bez kterých se téměř nelze obejít: model štěrbinové kamery, homogenní souřadnice, převod soustav, jednoduché zpracování obrazu, atd. Jako vzorový příklad bude použita navigace pomocí dlaždičkové podlahy.

{Simultaneous Localization and Mapping} — současná (souběžná?) lokalizace a mapování
SLAM je zkratka z anglikého simultaneous localization and mapping neboli konkurentní lokalizace a mapování. Již umíme sledovat pozici robota v rámci známé mapy. Pokud známe přesnou absolutní pozici robota (například z GPS) je možné mapu sestavit poměrně jednoduše. Problém ovšem je, pokud nemáme ani mapu ani přesnou informaci o pozici. Dnes si ukážeme několik algorimů, které tento problém řeší.

{Úvod do mobilní robotiky, zima 2004} — slajdy a poznámky k přednášce
Zde se nalézají slajdy a poznámky k přednášce AIL028 a cvičením z roku 2004. Úvodní přednášky seznamují s pojmy a principy robotů a jejich programováním. Navazuje zpracování vstupních dat a jejich využití pro lokalizaci, plánování cesty, či mapování. Závěrem je zmíněno i zpracování obrazu či konkurentní lokalizace a mapování.

 
{Úvod do mobilní robotiky, zima 2005} — slajdy a poznámky k přednášce
Zde se budou nalézat slajdy a poznámky k přednášce AIL028 a cvičením pro rok 2005. Přednáška se koná vždy v pondělí v 15:40 v učebně S4. Termíny cvičení dohodneme na první přednášce, která bude 10.10.2005. Jedna skupina určitě bude bývat hned po přednášce (první cvičení bude bude ale až 17.10.2005). Odehrávat se budou v Unixové počítačové laboratoři.

 
Zde se budou nalézat odkazy a poznámky k semináři, který se koná každý čtvrtek od 17:20 v učebně S8. Tématem pro letošní rok jsou autonomní auta.

 
{Úvod do mobilní robotiky, zima 2007} — slajdy a poznámky k přednášce
Zde se budou nalézat slajdy a poznámky k přednášce AIL028 a cvičením pro rok 2007. Přednáška se koná vždy ve čtvrtek v 15:40 v učebně S9. Cvičení budou na dvě skupiny, které se budou střídat po 14 dnech, v čase hned po přednášce. Odehrávat se budou v Unixové počítačové laboratoři (SU2).

 
{Úvod do mobilní robotiky, zima 2006} — slajdy a poznámky k přednášce
Zde se budou nalézat slajdy a poznámky k přednášce AIL028 a cvičením pro rok 2006. Přednáška se koná vždy ve čtvrtek v 15:40 v učebně S3. Cvičení budou na dvě skupiny, které se budou střídat po 14 dnech, v čase hned po přednášce. Odehrávat se budou v Unixové počítačové laboratoři.

 
Zde se budou nalézat odkazy a poznámky k semináři, který se koná každý čtvrtek od 17:20 v učebně S11(první patro na MS). Tématem pro letošní rok jsou řídící systémy autonomních outdoor robotů a zpracování obrazové informace v reálném čase.

 
Zde se budou nalézat odkazy a poznámky k semináři, který se koná každý čtvrtek od 17:20 v učebně S11 (první patro na MS). Tématem pro letošní rok jsou SLAM, konfigurovatelné automaty, Robotour 2008 a jiné outdoor robotické soutěže.

 
{Úvod do mobilní robotiky, zima 2008} — slajdy a poznámky k přednášce
Zde se budou nalézat slajdy a poznámky k přednášce NAIL028 a cvičením pro rok 2008. Přednáška se koná vždy ve čtvrtek v 15:40 v učebně S9. Cvičení budou na dvě skupiny, které se budou střídat po 14 dnech, v čase hned po přednášce. Odehrávat se budou v Unixové počítačové laboratoři (SU2).

 
{Úvod do mobilní robotiky} — slajdy a poznámky k přednášce
Zde se budou nalézat slajdy a poznámky k přednášce NAIL028 a cvičením.

 
Zde se budou nalézat odkazy a poznámky k semináři, který se koná každou středu od 17:20 v učebně S10 (první patro na MS). Tématem pro letošní rok jsou multi-roboti.

 
{Úvod do mobilní robotiky, zima 2009} — slajdy a poznámky k přednášce
Zde se budou nalézat slajdy a poznámky k přednášce NAIL028 a cvičením pro rok 2009. Přednáška se koná vždy ve středu v 15:40 v učebně S4. Cvičení budou na dvě skupiny, které se budou střídat po 14 dnech, v čase hned po přednášce. Odehrávat se budou v Unixové počítačové laboratoři (SU2).

Letos se bude opět konat seminář z mobilní robotiky v budově Matematicko Fyzikální Fakulty, Malostrannské náměstí 25, Praha 1. Seminář se bude konat každý čtvrtek od 17:20 v učebně S10. Na těchto stránkách se budou nalézat odkazy a poznámky k semináři, včetně programu a aktuálních informací. Tématem pro letošní rok jsou létající roboti. (p.s. seminář je veřejnosti přístupný…)

 
Po delší době bych obnovil seminář z mobilní robotiky. Tentokrát ale na půdě České zěmědělské university. Seminář se bude konat každé úterý od 17h v knihovně TF. Na těchto stránkách se budou nalézat odkazy a poznámky k semináři, včetně programu a aktuálních informací.

 
Vidění je jeden z nejdůležitějších lidských senzorických systémů. Jak je tomu u robotů? Jaké jsou jeho jednoduché aplikace a jaké jsou hlavní problémy?

{Cvičení 1} — zapojení potenciometru a řízení serva
Na předchazejících přednáškách jsme si ukázali, jak vypadá takový jednoduchý robot. Srdcem je jednočip a k němu připojených pár senzorů a serva nebo krokové motory. Naším úkolem bude nyní postavit něco, co se dá za takové srdce považovat. Použijeme PIC 12F675, ke kterému připojíme potenciometer na A/D převodník a pomocí timeru budeme generovat řídící signál pro servo v závislosti na natočení potentiometru.

{Cvičení 2} — vývojové postupy
Teď již teoreticky víte, jak naprogramovat jednoduchého robota, který umí spočítat svoji pozici, naplánovat cestu ve známé mapě a řídit motory pomocí jednoduchého PID kontroleru. Není nad praxi a tak na tyto pokusy bude obětován již funkční robot Daisy s naprogramovaným jednočipem a komunikací po RS-232. Základem bude SPA architektura a postupy z eXtrémního Programování.

{Cvičení 3} — Augmented realita snadno a rychle
Augmented (rozšířená) realita patří spíše do high-tech filmových studii nebo vědeckých pracovišť, ale to neznamená, že normální člověk si s ní nemůže pohrát . Toto cvičení vám možná dá trochu inspirace…

Robotour HowTo — jak začít v náročné soutěži?
„Robotour --- robotika.cz outdoor challenge” je velmi náročná soutěž. Při přípravě finálních pravidel pro rok 2013 byla vznesena námitka, proč se pravidla stále komplikuji, když týmy zatím nezvládají ani úlohu z předešlých let? Myslím si, že je to i problém týmů, které by se nejprve měly soustředit na základ a teprve pak řešit „novinky”. Ale všichni známe, jak to dopadne, tak proto tento článek …

Pošlete email redakci.
Všechny materiály, které máme k dispozici, jsou již součástí článku, na který reagujete (tj. pokud tam tedy není např. plánek na stavbu, je to proto, že nic takového nemáme).

Vaši zprávu se bohužel nepodařilo odeslat, ale můžete nám napsat sami na adresu

Vaše zpráva byla úspěšně odeslána

Pro odeslání formulář je třeba mít zapnutý javascript.