#01 Úvod do ROS

ROSV júni 2015 sa v Pomone v Kalifornii konala DARPA Robotics Challenge - súťaž humanoidných robotov záchranárov organizovaná legendárnou organizáciou amerického ministerstva obrany. Robotics-Challenge bol prehliadkou aktuálnych možností robotiky a zúčastnili sa ho špičkové robotické tímy z celého sveta, vrátane velikánov ako MIT či viacerých nemeckých, kórejských a japonských univerzít.  Tímy mali na prípravu a experimentovanie takmer 3 roky času a väčšina humanoidných robotov bola doslova nabitá pokročilou robotickou a senzorickou technikou. Úlohou bolo v časovom limite 60 minút splniť 8 úloh - od šoférovania vozidla, cez otváranie dverí, manipuláciu s otočným ventilom, používanie ručného náradia až po chôdzu po nerovnom teréne a schodoch. Z robotického hľadiska skutočná výzva, ktorá si vyžadovala nasadenie zbraní najťahšieho robotického kalibru. Aj preto 18 z 23 robotov bežalo na ROS.

Prečo ROS?

Robot Operating System  je v súčasnosti najpoužívanejšia platforma pre vývoj robotického softwaru na svete, ktorú využíva široké spektrum vývojárov od amatérov, cez komerčné spoločnosti, až po špičkové univerzity a výskumné ústavy. ROS je ideálny nástroj pre vývoj inovatívnych riešení a nových produktov v oblasti robotiky. Podľa štatistík nedávno uverejnených na IEEE Spectrum dosiahla hodnota venture kapitálu investovaného do startupov využívajúcich ROS v roku 2015 sumu 150M $, nehovoriac o tom, že veľké množstvo súčasného robotického výskumu zastrešovaného programami ako Horizon 2020 je založeného práve na ROS. Na trhu sa už objavujú prvé produkty, ktoré boli vyvíjané na tejto platforme, nedávno sa dokonca aj BMW priznalo, že v rámci vývoja autonómnych vozidiel sa do značnej miery spolieha práve na Robot Operating System. ROS sa čím ďalej tým viac presadzuje ako univerzálny nástroj robotického vývoja, ideálny na riešenie problémov, ktoré sú za hranicami možností štandardnej aizačnej a robotickej techniky.

Čo to je ROS?

V úplnom jadre je ROS "publish-subscribe middleware" vytvorený pre použitie v robotike. Z užívateľského hľadiska sa javí ako sada open-source softwarových nástrojov, knižníc a drivrerov vytvorená za účelom zrýchlenia a zjednodušenia vývoja robotických aplikácií. V ROS máte k dispozícii všetky základné prvky, ktoré pri tvorbe robotických aplikácii potrebujete, od ovládačov pre rôzne typy senzorov a hardwaru, cez knižnice na spracovanie obrazu, pointcloudov, kalibráciu senzorov, riešenie kinematických úloh, plánovanie trajektórií či mapovanie priestorov až po vizualizáciu, ukladanie dát a networking. Architektúra ROS je založená na moduláronom princípe - užívateľ si vyskladá svoju aplikáciu z modulov, ktoré si buď naprogramuje sám alebo použije už hotové komponenty, s tým že si len prispôsobí príslušné komunikačné kanály. Je pri tom úplne jedno, či sa zmeriava na servisnú, humanoidnú alebo priemyselnú robotiku, ROS je možné vďaka modulárnej architektúre využiť pre široké spektrum robotických aplikácií. V nasledujúcich príspevkoch sa môžete dočítať viac o základných pojmoch ROS alebo štruktúre a  základnom princípe ROS.

ROS_logo_OSRF

História ROS

História ROS siaha do roku 2007 na Stanfordovu univerzitu, kde v rámci projektu STAIR (STanford AI Robot) Morgan Quigley napísal jadro Switchyard, ktoré dodnes tvorí základ ROS. Po prvotnom úspechu a ohlase zastrešoval ďalší vývoj kalifornský robotický startup Willow Garage. Ten stojí aj za projektmi ako sú OpenCV, PCL Library či simulátor Gazebo. V materiáloch a videách o ROS často uvidíte odkazy práve na Willow Garage, keďže sa najväčšou mierou pričinil o úspech celej platformy. V súčasnosti už  vývoj ROS prešiel pod značku OSRF (Open Source Robotics Foundation), kde pôsobí väčšina kľúčových vývojárov pôvodného systému a nájdete ich v tesnom susedstve Stanfordovej Univerzity v Palo Alto. Vývojári v OSRF sú chrbtovou kosťou celého ROS, zabezpečujú vývoj hlavných komponentov systému, v pravidelných odstupoch vydávajú jednotlivé releasy a udržujú dokumentáciu. Najdôležitejšou súčasťou ROS je však komunita vývojárov vytvárajúca väčšinu obsahu. V súčasnosti je publikovaných viac ako 3000 packagov, ktoré si môžete ako užívateľ stiahnuť a začať okamžite používať. Práve vďaka komunite  sa ROS v priebehu pár rokov rozrástol do miery ďaleko presahujúcej možnosti vývoja akejkoľvek spoločnosti na svete. Dá sa povedať, že ROS je akýmsi “softwarovým socializmom” do ktorého každý prispieva podľa svojich možností ale profitujú z neho všetci. Pre lepšiu predstavu o aktuálnych možnostiach ROS odporúčame pozrieť nasledujúce video:

http://vimeo.com/146183080

Hlavnú filozofiu ROS vystihuje známy výrok: “Stand on the shoulders of giants“, aplikované na oblasť vývoja robotického vývoja - nesnažiť sa vyvíjať kompletne celú aplikáciu od najnižšej úrovne až po najvyššiu ale naopak používať to, čo už bolo vytvorené, otestované a sústrediť sa na vlastný prínos. Nebolo by to vôbec jednoduché bez mimoriadne dôležitej zmeny, ktorú ROS priniesol – bez zjednotenia vývojovej platformy. Robotická komunita dlhé roky trpela tým, že vývojári využívali rôzne operačné systémy pre vývoj softwaru, jednoducho každý robil v čom mu vyhovovalo a výsledkom bolo komplikované zdieľanie kódu, krátka životnosť riešení a problematický prenos na iné platformy. ROS je optimalizovaný pre použitie s operačným systémom Linux, najčastejšie sa používa Ubuntu, no je možné použiť aj iné distribúcie. Z hardwarového hľadiska platí, že na čom rozbeháte Linux, na tom rozbeháte aj ROS. Čiže okrem štandardných PC je použiteľný aj na ARM procesoroch, Raspberry PI či BeagleBone platforme a taktiež na zariadeniach s Androidom.

ROS_bannerROS vs iné technológie?

Existujú aj iné open-source robotické frameworky ako napríklad MOOS, YARP, MORSE, ORCOS, URBI, Player/Stage či Microsoft Robotics Studio. ROS síce nie je dokonalý ale je ďaleko vyspelejší, rozsiahlejší a oveľa lepšie zdokumentovaný ako všetko ostatné. Istú dobu trvalo kým sa ROS v konkurencii presadil, ale približne od roku 2010 sa najmä vďaka úsiliu Willow Garage stal lídrom a rozhodnutia jednotlivých špičkových svetových univerzít pridať sa ku ROS komunite potvrdzujú narastajúcu dominanciu tohto frameworku. V súčasnosti sa čím ďalej tým viac inštitúcii pôsobiacich v robotike fixuje na ROS a čo je najdôležitejšie – celá nadchádzajúca generácia robotických vývojárov ktorá ešte dnes študuje na univerzitách a v najbližších rokoch sa stane hlavnou vývojárskou silou v robotike bude ROS positive.

Budúcnosť a ROS 2.0

ROS bol pôvodne vyvíjaný pre robota PR2 z dielne Willow garage, čiže primárnym cieľom bolo vytvoriť robotický operačný systém pre samostaného robota disponujúceho množstvom výpočtového výkonu, bez potreby vykonávania operácií prebiehajúcich v reálnom čase, fungujúceho v prostredí s excelentnou konektivitou a určeného najmä pre výskumnú oblasť robotiky. No tým, že ROS sa mimoriadne uchytil a posutpne začal používať pre riadenie množstva značne odlišných robotov od priemyselných manipulátorov, cez drony, humanoidy až po autonómne vozidlá, pôvodný koncept nedokázal pokryť všetky požiadavky rozširujúcej sa komunity. Išlo najmä o podporu milti-robotických sytémov, embedded platforiem, operácií v reálnom čase a najmä schopnosť zaručiť stabilitu ROS pre použitie vo výrobných sférach. Niektoré z týchto nedostatkov bolo možné obísť aj v existujúcom systéme no vzhľadom na množstvo nových dostupných techhnológií a rozširujúce sa požiadavky sa v roku 2014 rozhodlo o spustení prác na vývoji novej generácie ROS 2.0

PR2

Kompletným prepracovaním jadra pôvodného ROS a najmä využitím osvedčených IT technológí ako Zeroconf, Protocol buffrov, ZeroMQ, Redisu, WebSocketov a DDS (Data Distribution Service) je hlavným cieľom povýšiť ROS zo súčasnej úrovne na univerzálne použiteľný robotický framework akceptovaný aj v produkčnej sfére. Ak ste o ROS ešte v vo svete priemyselnej aizácie doteraz nepočuli, v nasledujúcich rokoch sa to určite zmení.

SPOLUAUTOR VAŠICH VEDOMOSTÍ JE:

SRS_logo