Abychom si to zjednodušili, berme za prokázané, že vaše domácnost usoudila, že bez robotického vysavače se neobejdete, protože to tak moc ušetří práci. Mohla tak usoudit žena, matka či přítelkyně, které uzřely toto dílko u přátel, ale správný geek, programátor nebo ředitel IT oddělení by se neměl nechat při hlasování o robotický vysavač zahanbit. Protože se s ním dá užít spousta legrace hodné geeků. Mluvím z osobní zkušenosti.
Nejdříve fakta. Robotických vysavačů je na trhu celá řada v cenových relacích od cca pěti do patnácti tisíc korun. Pro nás je zásadní získat výrobek firmy iRobot, který se jmenuje Roomba, pokud jde o vysavač a Scooba, pokud jde o vytírač podlahy, který se pohybuje spíše v horní části cenového spektra (základní model začíná někde u 8 tisíc), jenže je také jediný, ke kterému existuje možnost hackování a softwarového rozšíření, protože k němu existuje docela dobře dokumentované API. Což je pro hackování rozhodující.
Čím se uklízecí roboti liší, když nesmíme mluvit o API
Hloupé je, že ženy nemají pro položku API v technických specifikacích patřičné pochopení a mohou namítnout, že u nás je velmi populárním produktem CleanMate společnosti Infinuvo, který je levnější (kolem 5 tisíc Kč). Takže něco prodejních argumentů, které pomohou rozhodnutí zvrátit a jsou zcela relevantní. CleanMate má proti Roombě (všechny modely) několik základních nevýhod. Především nemá senzor přiblížení, takže zatímco Roomba před překážkou většinou zpomalí (pokud není moc malá) a jemně do ní ťukne, CleanMate do ní narazí v plné rychlosti a teprve nárazem překážku pozná. Může vám to připadat jako drobnost, ale až uslyšíte CleanMate, jak zoufale mlátí do zavřených dveří, argument pochopíte, nehledě k riziku rozbití váz či sošek stojících na zemi. Druhou podstatnou výhodou Roomby je, že umí kopírovat zdi, protože si do určité míry mapuje pokoj. Tím dobře vysaje prach podél zdí. CleanMate jezdí vysloveně náhodně, nemá žádnou inteligenci a od zdí se jen odráží, nekopíruje je, prachu mu tedy podél zdí zůstane mnohem více. Je prostě méně pečlivý, protože je hloupější. A do třetice, Roomba se umí vypořádat s problémy při pohybu, například zamotáním do kabelů elektriky, chlupů koberce a dalších překážek. Má terénní zdvihací kolečka a „cloumací“ inteligenci, opakovaným pokusem o změnu směru a zpětným chodem či nadzdvihnutím na kolečkách se pokusí dostat z kabelu nebo jiné překážky. To CleanMate neumí. Jakmile se zadrhne, přeruší program, zapípá a zdechne. Totéž udělá, když se zasekne pod příliš nízkým nábytkem nebo třeba trubkou běžící po zdi. CleanMate totiž má ťukací čelo oblé, snadno se pod nízkým profilem zasekne. Ostré „ťukací“ čelo Roomby se odrazí (nezaklíní se obloukem) a Roomba spolehlivě vycouvá. Je to rozdíl? Nu, je. Přijdete domů, těšíte se na robotem uklizený pokoj a zjistíte, že CleanMate chcípnul zamotaný v prodlužovačce na zemi, zatímco Roomba zvládla poklidit. Kromě toho na CleanMate nepoznáte, zda douklidil, nebo z nějakého důvodu chcípnul, zatímco Roomba to výstražně indikuje diodou i hlasovým výstupem. To jsou prodejní argumenty, které pomohou vyrovnat třílitrový rozdíl a investovat do robota s API a berte je jako výsledky mého dlouhodobého porovnávání (rozdíl výkonu za ten rozdíl cenový podle mne stojí).
Hackujeme Roombu
Základním zdrojem pro hackování Roomby je web Hacking Roomba, kde můžete zakoupit i stejnojmennou knihu a především se podívat po návodech na výrobu konektoru a kabelu pro Roombu – ta používá miniDIN konektor a je vhodné ho převést na něco, co má váš počítač. Potřebujete totiž v prvé řadě propojit Roombu s počítačem. Osobně jsem zbabělec a patřičný kabel zakoupil, nepájel, dostatek tipů tamtéž, doporučuji Roomba USB Bridge, zapátrat můžete také na webu iRobota, kde se prodávají kabely určené pro iRobot Create, což je nevysavačová verze Roomby určená pro blbnutí (tu ale doma asi neprosadíte a u nás se neprodává). Pokročilejší variantou je Bluetooth Modul, díky němuž se můžete k Roombě připojovat bezdrátově, za hotovou verzi dáte kolem 100 USD (najdete více výrobců) a opět ji připojujete na interní konektor a páskou je nejlépe jej přilepit na tělo Roomby. Základní FAQ ke sborce/rozborce Roomby najdete zde a tu je diskusní fórum iRobotu.
Konečně správně ohackovaný vysavač… (v tomto případě rozšířený o programátor)
Další hackování je už na vaší fantazii. Z webu iRoomby si stáhněte popis SCI (Serial Command Interface) a můžete se dát do programování vlastních scriptů. Pokud máte zkušenosti s programováním pro sériovou linku, nebude to pro vás nic neobvyklého. Můžete číst senzory, posílat příkazy kolečkům, zjišťovat stavy jako teplota baterie, stav nabíjení, ujeté vzdálenosti atd. Pokud chcete experimentovat od začátku s vytvořenými příklady, vyzkoušejte toto – repozitáře projektů pro Roombu. Je tu například ovládání Roomby mobilem, ovšem přes javový midlet a bluetooth, je s tím hezké pohrání a i když to v praxi na nic není, dobře to dokumentuje možnosti.
Zahájit experimenty s bluetooth můžete potom s Wii Fit podložkou, díky níž můžete Roombu navigovat při uklízení a ještě si při tom zacvičíte. Škarohlíd by řekl, že možná bude prospěšnější, když budete luxovat ručně…
V tomto režimu ovládáte Roombu pomocí Wii Fit podložky tím, jak se na ní nakláníte. Omezením je ovšem krátká vzdálenost bluetooth připojení.
Roomba a Linux
Roomba není postavená na Linuxu, má vlastní jednoduchý real-time operační systém, ale pokud byste chtěli, můžete si pohrát s OpenWrt Linuxem. Ten existuje jako hack pro řadu domácích routerů a linuxáři s ním budou obeznámeni, ve spojení s SCI jim umožní řadu experimentů. Variantou pro zkušené je portace Contiki, jenž se prosazuje jako operační systém pro „Internet věcí“.
Až doposud jsme si nemohli s Roombou udělat nic pořádného a praktičtějšího, než ji řídit mobilem nebo naučit povídat jiné příkazy, s OpenWrt už je více legrace. K tomu je dobré Roombu rozšířit o WiFi, které má větší dosah než Bluetooth a můžete Roombu plynule zařadit do domácí sítě. Vyšší dívčí je to už také proto, že se dostáváme do problémů s převáděním napětí a také vysokým proudovým odběrem modulu – zúčastnit se WiFi experimentů s Roombou můžete například v téhle diskusi. Ve výsledku se ale můžete dočkat pohodlnějšího ovládání Roomby s dalekým dosahem a také s webkamerou, která snímá průběh úklidu a okolí.
Jestli vám vyšší proudový odběr Roomby s Linuxem a WiFi vadí a pracujete se ZigBee, můžete vyzkoušet integraci s touto nízkospotřebovou bezdrátovou technologií, patřičné vlákno diskuse najdete zde.
A pokud už jste všechno zvládli, můžete se dát na hraní hry Roomba Pacman, což je zábava hodná ueber-geeků, například Sheldona Coopera. Nejde o nic jiného, než o hru Pacman hranou v reálném světě a s pomocí přeprogramovaných Roomba robotů. Vezmete svoji Roombu, ovládáte ji v bludišti zakresleném na podlaze a snažíte se, aby vyluxovala co nejvíce papírů dříve než soupeři. V tom jí brání duch, který pobíhá tímtéž bludištěm a může Roombu vyřadit z provozu.
Roomba Pacman – černé čáry ignorujte, červené jsou pro vaši představu a hypotetická zeď pro Roomby, které luxují papírky. Ducha poznáte podle papírové ikonky ducha přilepené na zádech…
Mapování
Pokud vás nebaví vytváření vlastních robotických aplikací, můžete algoritmicky ověřit kvalitu mapovacího software v Roombě oproti random modelu úklidu CleanMate. Zatímco CleanMate uklízí náhodně a dobrého úklidu docílí tím, že náhodně projíždí všechna možná místa odrazem o překážky a počítá s tím, že alespoň jednou snad projede všechna, Roomba používá virtuální mapu založenou na metodě Monte Carlo Localization (MCL). Ověřte přínos této metody vůči náhodnému projíždění, podklady najdete u Sebastiana Thruna – opravdu je Roomba schopná vyluxovat rychleji a lépe než CleanMate a je přínos odůvodnitelný zvýšenými výpočetními kapacitami, které se promítají do vyšší ceny? To je skoro otázka do reklamního letáku, ale metoda MCL pro stanovení virtuální mapy neviděného prostoru, identifikaci rizikových míst a jejich následné projetí, je zajímavým špílcem robotické algoritmizace.
Na co to? Základy robotiky přece…
Možná se ptáte, k čemu to všechno (pak je otázka, jak jste ze serveru Vitalia zabloudili na Lupu…), nebo na totéž budete muset časem odpovědět své lepší polovičce. Důvod je jednoduchý, je to velmi realistická a praktická ukázka základů robotiky. Roomba je plně vybavený robot, kterého můžete k ledasčemu donutit a ve zvídavých ratolestech rozvinout zájem o to s roboty pracovat. Bohužel Roomba není vhodná pro dětské experimenty, přeci jen programování sériového interface není pro děti příliš intuitivní (=vůbec) a lepší je v tomhle ohledu jen iRobot Create, k němuž lze řadu modulů dokoupit a software stáhnout, jenže ten zase neluxuje.
iRobot Create je robotický kit, který nevysává…
Značnou výhodou Create ovšem je, že jej podporuje jak Microsoft Robotics Developer Studio (RDS), tak opensource projekt PlayerStage, oba umožňují pokročilejší programování robotů a senzorických aplikací.
Roboti, kteří opravdu fungují a něco smysluplného dělají, jsou zajímavá možnost, jak děti i ty větší přivést k robotice. U dětí je vhodné záležitost zkombinovat s výukou Karla, jenž má i svoji webovou verzi, dalším vánočním dárkem může být Mindstorm od Lega nebo jiné specializované „dětské“ robotické stavebnice. Jenže toho budete pořizovat za stejnou cenu jako Roombu, která vám uklidí a ještě při tom můžete zjistit, jestli by robotika vaše děti bavila.
Mnoho štěstí a do příštího boje s Sheldonem Cooperem v RoboPackmanovi mi držte palce.
A poněkud vážněji: pokud vás robotika zaujala, má svůj specializovaný český server Robotika.cz, RobotRevue i své mistrovství Evropy, letos ve sběru ovoce (samozřejmě roboty) a také sérii pořadů na Českém rozhlase Leonardo.