Guide
ABC of Mobile Robotics
Texty zde dostupné si kladou za cíl seznámit čtenáře s elementárními 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 poží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 konkurentní 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 …
|
Send email to the editors
Your message could not be sent
but you can also reach us at webmaster-at-robotika.cz
Your message was successfully sent.
You need to turn on javascript to submit this form.