Průvodce
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.
|
{Seminář z mobilní robotiky, LS 2006} — odkazy a poznámky
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.
|
{Seminář z mobilní robotiky, LS 2007} — odkazy a poznámky
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.
|
{Seminář z mobilní robotiky, LS 2008} — odkazy a poznámky
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.
|
{Seminář z mobilní robotiky, LS 2009} — odkazy a poznámky
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).
|
Seminář z mobilní robotiky, LS 2011 — odkazy a poznámky
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ý…)
|
{Seminář z mobilní robotiky, ZS 2014} — odkazy a poznámky
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í.
|
{Počítačové/robotické vidění} — zpracovní obrazu
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 webmaster-at-robotika.cz
Vaše zpráva byla úspěšně odeslána
Pro odeslání formulář je třeba mít zapnutý javascript.