Archívy autora: Frantisek Durovsky

The Origin Story of ROS – Fascinujúci príbeh vzniku robotického Linuxu

Skúste sa opýtať ROS developerov na mená ľudí, ktorí stáli pri úplnom zrode najpopulárnejšieho robotického frameworku súčasnosti. Najčastejšie by ste asi počuli odpovede ako Brian Gerkey, Morgan Quigley, Melonne Wise, či, Tooly Foote. Áno všetci títo patria medzi kľúčové postavy vo vyvoji ROS ale skutočným pôvodcom myšlienky vzniku robotického Linux je dvojica vývojárov, ktorá je v ráamci komunity takmer neznáma. Keenan Wyrobek a Eric Berger. A práve Keenan Wyrobek zverejnil v posledný októbrový deň na stránkach IEEE Spectrum článok s názvom „The Origin Story of ROS“, v ktorom podrobne popísal doteraz naznámu históriu a pozadie vývoja ROS v štádiu ďaleko pred Willow Garage. Ak by ste sa chceli dozvedieť o vzniku myšlienky „robotického Linuxu“ a viac, pôvodný článok nájdete na tomto odkaze.

 František Ďurovský

SEF Roboter & Tango Control

V predchádzajúcom článku sme si ukázali ako sa dá Tango technológiou oskenovať okolie robota, získaný point cloud natiahnuť do moveit_configu a použiť pri collision avoidance path planningu. Dnes sa bližšie pozrieme na to ako využiť samotnú Pose Estimation funkcionalitu Tango technológie na priame zadávanie žiadanej polohy efektora. A to tak pri point-to-point riadení ako aj v real-time control móde. Opäť využijeme nášho obľúbeného SEF-Robotera, ovládaného po Profinete prostredníctvom ros_control packageu. Technológia Tango od Googla je známa tým že dokáže veľmi presne estimovať svoju polohu v priestore iba na základe IMU jednotky a Motion kamery na zadnej strane smartfónu. Výsledkom je full 6Dof Pose Estimate čiže úplná poloha a orientácia v 3D priestore a to viac ako 200 krát za sekundu. Pomocou ROS-Tango Streamera dokážeme tieto data dostať priamo do ROS, kde už s nimi dokážeme robiť to čo potrebujeme, v našom prípade ich využiť na zadávanie žiadanej polohy SEF Robotera.

Pokračovať v čítaní

ROS-I 5 years video montage

ROS-Industrial v marci 2017 oslávil 5 výročie od svojho založenia. To je na open source iniciatívu pomerne zrelý vek a zároveň čas na krátku rekapituláciu dosiahnutých míľnikov. ROS-I pôvodne začínal ako súbor niekoľkých repozitárov určených pre komunikáciu s priemyselnými robotmi rôznych značiek, no počas uplynulých 5 rokov sa postupne preklasifikoval na plnohodnotné konzorcium zamerané na podporu pokročilých priemyselných robotických aplikácií zastúpené v USA, Európe ako aj Ázii a podporované 50 členmi vrátane spoločností ako Boeing, Bosch, BMW, Siemens, Cognex a ďalších. ROS-I je v súčasnosti nielen partnerom významných priemyselných hračov ale zároveň poskytuje dôležitú vývojársku platformu pre riešenie rôznych vedeckých projektov, či už v Európe alebo USA vrátane FP7 a Horizon2020. Po organizačnej stránke celú iniciatívu  zastrešujú Southwest Research Instititue, Fraunhofer IPA, TU Delft a Singapore Advanced and Remanufacturing and Technology Centre. A to že títo ľudia vedia čo robia vidieť aj 5-Year ROS-I montage videu, ktoré vzniklo pri tejto príležitosti:

Ak by Vás zaujímali podrobnejšie informácie o dianí v tejto komunite, dávame do pozornosti aktuálny newsletter ktorý sumarizuje vývoj za rok 2016 vrátane prehľadu riešených projektov, vízií na nadchádzajúce obdobie ako aj noviniek o nasledujúcej verzii ROS – ROS 2.0.

František Ďurovský

Sef Roboter & Tango based collision avoidance

 
Pri všetkých pokročilejších robotických aplikáciách s priemyselnými ramenami je CAD model tak robota ako aj jeho bezprostredného okolia nevyhnutným základom úspešnej integrácie. Klasický postup programovania takýchto buniek väčšinou začína offline prípravou modelu, ktorá neraz zaberie viac času ako programovanie samotné. Najnovší vývoj v oblasti 3D sensingu ale umožňuje zjednodusiť už aj tento krok a využiť pri automatickom plánovaní trajektórií model prostredia, ktorý nevznikol CAD modelovaním ale oskenovaním už existujúcej robotickej bunky. V prípade SEF Robotera sme si tento postup vyskúšali s prvým komerčne dostupným smartfónom s integrovanou Tango technológiou – s LenovoPHAB2 Pro.

V laboratóriu FEI TUKE v Košiciach sme nasimulovali jednoduchý use case so zásobníkom súčiastok umiestneným priamo v pracovnom priestore robota. 

Pokračovať v čítaní

Microsoft AirSim

Microsoft sa pohráva s myšlienkou participovania na roboickom vývoji už dlhšie. V roku 2006, ešte pred vznikom ROS, vydal prvý release svojho nie veľmi vydareného Microsoft Robotic Studia, ktorý udržiaval až do roku 2012. Vtedy sa už ROS začínal presadzovať do takej miery ze aj chlapici z Redmondu si povedali že s ROS nemá zmysel súperiť a vývoj tohto produktu pozastavili. Prešlo 5 rokov a a máme tu ďalší robotický počin zastrešený logom Microsoftu. Tento by ale mohol dopadnúť úspešnejsie aj vďaka tomu že Microsoft ho pojal z opačného konca ako sme v jeho prípade zvyknutí a releasol ho ako multiplatformový open-source projekt. Ide o AirSim, simulátor určený primárne pre dronistov využívajúci známy Unreal Engine. Zámerom autorov bolo vytvoriť platformu pre  stále sa rozširujúcu komunitu vývojárov v oblasti artificial intelligence, ktorá by umožnila zber „big data“ počas cvičných letov v simulátore a ich následne využitie pre deep learning algoritmy, samozrejme s cieľom vývoja autonómne lietajúcich bezpilotných prostriedkov. 

Aktuálna verzia simulátora podporuje hardware-in-loop prepojenie s obľúbenými PixHawk controllermi, ktoré umožňujú priamu interakciu s prostredím simulátora. Projekt je stále „under heavy development“ viac informácií sa dá nájsť v oficiálnom článku od autorov z Microsoft Research. Každopádne pre robotikov zvyknutých na Gazebo a VRep je AirSim s pokročilou Unreal grafikou veľmi príjemným prekvapením, nehovoriac o tom že pochádza z dielne Microsoftu a je zadarmo! V kombinácii s ROS interfacom ktorého vývoj je záležitosťou pár dní až týždňov by robotická komunita mohla získať ďalší pokročilý nástroj pre ďalší vývoj.  

František Ďurovský

ROS PlotJuggler

Plotjuggler_titleZačiatkom roka 2017 bol na ROS blogu ohlásený nový package pre prácu s grafmi pod názvom PlotJuggler. Možno vás tiež pri pohľade na PlotJuggler napadne načo je nám potrebný ďalší nástroj na vykresľovanie grafov ked máme k dispozícii starý známy rqt_plot. Áno rqt_plot je síce použiteľný ale každý kto sa už z neho snažil vytiahnuť nejaké rozumne vyzerajúce priebehy, veľmi dobre vie že jeho použiteľnosť končí pri orientačnom sledovaní priebehov pri runtime. Na akúkoľvek pokročilejšiu prácu s grafmi sme doteraz vždy museli preklápať dáta z ROS do Matlabu, Excelu a podobných nástrojov. PlotJuggler má ambíciu ukončiť toto naše trápenie a poskytnúť všetko potrebné priamo v ROS.

Na jeho vývoji sa podieľal najmä Davide Faconti, ktorý odviedol naozaj kus poctivej práce. PlotJuggler je vo svojom jadre QT based aplikácia  ktorá okrem základnej funkcionality poskytuje aj podporu pre vykresľovnie multiplotov, či už v jednom alebo viacerých oknách, konečne chýbajúcu Zoom funkcionalitu, support pre CTRL-Z ktorá v Linuxe dodnes nie je štandardom a pluginy pre nahrávanie streamovanie a publishovanie dát. Pre lepšiu predstavu o tom čo všetko tento nástroj dokáže odporúčame nasledujúce video:

Pokračovať v čítaní

OpenEASE – budúcnosť cloudovej robotiky?

openease-logoPamätáte si ešte na legendárne video „Beer me robot“ od Willow Garage z roku 2010? PR2 v ňom na základe objednávky z webového rozhrania našiel a otvoril chladničku, identifikoval a uchopil objednané pivo a doručil ho konkrétnej osobe na pracovisku. V roku 2010 išlo najmä o demonštráciu aktuálnych možností systému ROS na ktorom Willow Garage v tých časoch intenzívne pracoval. A prečo bolo toto video tak fascinujúce? Lebo správanie robota v ňom pripomínalo správanie ľudí, PR2 konal ako keby rozumel kontextu úlohy, ako keby chápal čo je chladnička, načo sa používa, ako sa otvára, že sa v nej nachádza viacero druhov pív, že má nájsť a vybrať konkrétne pivo podľa objednávky, zavrieť chladničku a doručiť ho správnej osobe. Aj napriek tomu, že značná časť pohybov bola predprogramovaných, PR2 pôsobil dojmom ako keby išlo o skutočné, ľuďom podobné vnímanie, uvažovanie a konanie.

Pokračovať v čítaní

Sef Roboter & ros_control

ros_controlSEF Roboter je svojím spôsobom symbolický projekt, ktorý sprevádzal uplynulých 5 rokov nášho robotického bádania. Jeho počiatky siahajú ešte do obdobia predtým ako sme sa vôbec začali ROS zaoberať, čiastočne boli motiváciou k štúdiu ROS ako takého, nehovoriac o tom, že potreba riadenia Siemens pohonov SEFka viedla k realizácii úspešného GSoC projektu a vzniku siemens_cp1616 wrappera. Počas uplynulých 5 rokov sme sa teda etapu po etape postupne posúvali k hlavnému cieľu tohto projektu – otvorenému robotickému riadiacemu systému umožňujúcemu ovplyvňovať riadenie robota na rôznych úrovniach. A minulý týždeň sme implementáciou hardwarového interfacu pre ros_control doplnili posledný chýbajúci diel do našej skladačky…

Pokračovať v čítaní

HTC Vive & ROS

HTC_VIVETak sa nám to na poli rozšírenej a virtuálnej reality pekne rozbieha. V septembri náš čaká celosvetový release prvého smartfónu s technológiu Tango, v októbri príde na trh nový Oculus Rift HD, už dlhšie sa hovorí o novej RealSense technológii od Intelu a v posledných dňoch sa o slovo prihlásilo aj HTC a Valve s ich headsetom pre virtuálnu realitu známym pod názvom HTC Vive. A vyvolalo značnú pozornosť…

Čo je to HTC Vive?

Vive je súprava pre virtuálnu realitu, ktorú HTC vyvíjal v spolupráci s so známou vývojárskou spoločnosťou Valve. Na trh bola uvedená 5. Apríla 2016 a dnes je už k dispozícii aj v našich eshopoch za približne 950€. Súprava pozostáva z headsetu, dvoch senzorových staníc a dvoch ručných ovládačov pre interakciu s virtuálnym prostredím. V headsete sú zabudované dva zobrazovacie panely s rozlíšením 1 080 × 1 200 pixlov, pričom na vytvorenie čo najplynulejšieho obrazu virtuálnej reality je video streamované s obnovovacou frekvenciou 90 Hz. Základové stanice, ktoré sa umiestňujú do rohov miestnosti vysielajú laserové lúče smerom ku 32 senzorom na headsete a 48 senzorom na ovládačoch, vďaka čomu dokážu určiť presnú polohu zariadení v priestore s presnosťou 0.3mm 60 krát za sekundu. Ako to vyzerá v praxi a čo všetko je možné v s touto súpravou zažiť v hernom svete, lepšie napovie nasledujúce demo video:

Pokračovať v čítaní

SEF Roboter & Gazebo & MoveIt

gazebo_titlePo dlhšom čase sme sa opäť vrátili k projektu SEF Robotera a jeho prepojenia s ROS. História tohto projektu siaha ešte do roku 2012, kedy pôvodné SEFko prešlo kompletnou rekonštrukciou a jeho zastaraný riadiaci systém bol nahradený frekvenčnými meničmi Siemens SINAMICS S120. V roku 2014 sme v rámci experimentovania s možnosťami ROS doplnili CAD model robota a vygenerovali MoveIt package umožňujúci riešiť inverznú kinematiku a plánovanie trajektórií. V lete 2015 pribudol ROS-PROFINET Interface vyvíjaný ako Google Summer of Code projekt, vďaka čomu dnes dokážeme komunikovať s pohonmi SINAMICS priamo z ROS. Hlavným problémom, ktorý v tejto etape projektu potrebujeme vyriešiť je nájsť spôsob ako všetky tieto komponenty prepojiť do jedného funkčného celku tak, aby sme dokázali SEFko ovládať podobne ako Motomana SDA10F priamo z Motion Planning Pluginu v RVize.

Pre podobné úlohy je v súčasnosti najschodnejšou cestou využitie packageu ros_control. ROS Control je generická verzia pôvodných controllerov robota PR2 a je reakciou na prirodzený dopyt v ROS komunite, ktorý vznikol tým, že ROS sa začal používať na riadenie rôznych typov robotov. ros_control poskytuje všetko potrebné nato aby ste dokázali podstatnú časť riadenia robota vykonávať na strane Linuxu. K detailom riadenia SEFka cez ros_control sa bližšie dostaneme v ďalšom článku, každopádne pri prvých pokusoch s implementáciou ROS regulátorov sa mimoriadne hodí simulátor Gazebo.

Pokračovať v čítaní