Úvod do ROS

ROS-3-yearsROS  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 ako MIT, Stanford, alebo ETH Zurich. V našom prvom článku sa pozrieme ako ROS vznikol, čo to vlastne je a aké sú jeho možnosti.

Čo to je ROS?

ROS je vo svojej podstate 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.

ROS_DESKTOP

Ukážka ROS Enviroment

Architektúra ROS je založená na objektovom princípe a užívateľ si doslova vyskladá svoju aplikáciu z modulov (nodov), 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 (topicy). Je pri tom úplne jedno, či sa zmeriavate 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í.

rqt_graph

Príklad jednoduchej ROS aplikácie

História, Willow Garage a OSRF

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 ktorý daný systém vyvolal, 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ú API dokumentáciu.

 WILLOW_FINALOSRF_FINAL

Najdôležitejšou súčasťou ROS je však komunita vývojárov vytvárajúca väčšinu obsahu celého systému. 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, vrátane gigantov ako sú Google a Microsoft. 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 dokázala  komunita za prvých 5 rokov existencie ROS vytvoriť odporúčame pozrieť nasledujúce video.

              Prehľadové video 5 Years of ROS

Hlavnou filozofiou vývojárov v ROS najlepšie vystihuje motto: „Stand on the shoulders of giants„, čiže 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ú aplikáciu a na vlastný prínos.

Ubuntu

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 Ubuntu a aj napriek tomu, že existuje variant pre použitie s iOS a v minulosti dokonca aj pre Windows, 99% percent vývoja je realizovaného práve pod Ubuntu.

Z hardwarového hľadiska platí, že na čom rozbeháte Ubuntu, na tom rozbeháte aj ROS. Čiže okrem štandardných PC je použiteľný aj na ARM procesoroch a Raspberry PI platforme. Momentálne sa tiež intenzívne pracuje na prepojení ROS s operačným systémom Andrioid, čím sa ešte viac rozširujú možnosti a potenciál využitia aj na oblasť mobilných zariadení.

Open source mentalita

ROS je kompletne open-source a free, licencovaný pod BSD licenciou, čo umožňuje jeho voľné použitie tak pre výskumné ako aj komerčné účely. V praxi to znamená, že všetko čo pod logom ROS nájdete si môžete zadarmo stiahnuť, nainštalovať, používať, upravovať a svoj výsledok aj komerčne predať, bez toho aby od vás niekto pýtal akékoľvek licenčné poplatky. Kombináciou s Ubuntu, ktoré je tiež kompletne free, sa teda viete pustiť do pokročilého robotického vývoja bez akýchkoľvek vstupných nákladov spojených s nákupom softwaru.

Open-source orientácia  navyše prináša podstatnú zmenu do zmýšlania celej komunity. Kým donedávna nebolo bežné, že vývojári zverejňovali svoje zdrojové kódy, s príchodom ROS je mnoho z nich prinútených prehodnotiť svoj postoj.

V prvom rade každý kto v ROS vyvíja, si uvedomuje, že tomu, aby mohol pracovať na svojej aplikácii prechádzalo veľké množstvo práce iných ľudí. Čím viac budete robiť v ROS, tým viac sa bude meniť aj vaše zmýšlanie od „Nikomu nič zadarmo nedám!“ až po „Aj ja chcem svoj vlastný package!“. Po druhé zverejnením svojej práce sa jednak prinútite spraviť si vo vlastnom kóde poriadok a zároveň získate cennú spätnú väzbu od ostatných vývojárov, ktorí nielenže  ochotne odmakajú betatesting ale vám aj poradia kde a čo vylepšiť. A to hlavné – sprístupnenie svojej práce komunite je výborná reklama, nielen samotnému vývojárovi alebo pracovisku ale aj príslušnej publikácii z hľadiska budúcich citácií. Pôvodná publikácia „ROS an open source Robot Operating System“ (Quigley et. all 2009) má podľa posledných údajov už vyše 1200 citácií.

Prečo práve ROS?

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 dneš študuje na univerzitách a v najbližších rokoch sa stane hlavnou vývojárskou silou v robotike bude ROS positive.

Samozrejme že ROS nie je spása robotiky ako takej, ešte stále má mnoho nedostatkov brzdiacich jeho širšie nasadenie do komerčnej oblasti, no hlavný trend vývoja, v kombinácii s dosiahnutými výsledkami a entuziazmom nestále rastúcej kominuty  nám dáva veľa dôvodov na optimizmus.

Dr. Sachin Chitta z Willow Garage o pozadí a možnostiach ROS a MoveIt
František Ďurovský