MATLAB podporuje robotiku pomocou Robotics System Toolboxu

Robotika je jednou z významných oblastí priemyslu, čo dokazuje aj jej neustály a dynamický rozvoj. Na zjednodušenie tvorby robotických aplikácií bola vytvorená skupina nástrojov, knižníc a software, ktorý sa všeobecne označuje ako Robot Operating System (ROS). Spoločnosť MathWorks vytvorila nadstavbu výpočtového prostredia MATLAB a Simulink, ktorá sprístupňuje možnosti ROSu pre vývojárov robotických aplikácií – Robotics System Toolbox.

Robotics System Toolbox poskytuje rozhranie medzi ROSom a umožňuje využívať jeho funkcionalitu v MATLABe a Simulinku (obr. 1). Napríklad pomocou funkcie rosinit() sa vieme pripojiť do siete ROS, kde je simulačné prostredie alebo pripojený reálny robot, a začať s nimi pracovať. MATLAB tiež umožňuje vytvoriť vlastnú sieť ROS. Na výmenu informácií medzi jednotlivými uzlami siete sa využívajú služby a správy. Robotics System Toolbox umožňuje vytvoriť server a klienta na prácu so službami. Funkcia call() je vytvorená na volanie služby v uzle a spracovanie odpovede zo služby. Aby sme sa prihlásili na odber správy, využívame funkciu rossubscriber(). Posielať správy zariadeniam v sieti môžeme pomocou funkcie rospublisher().

Rozhrania Robotics System Toolboxu
Obr. 1 Rozhrania Robotics System Toolboxu

MATLAB obsahuje značnú podporu pre viaceré typy správ v systéme ROS. Zoznam všetkých aktuálne podporovaných správ nájdete v dokumentácii alebo pomocou príkazu rosmsg list v príkazovom riadku MATLABu. Správy ROS sú v MATLABe podobné štruktúram a ich obsah závisí od typu správy. Pri manipulácii so správami je preto nutné dodržiavať ich štruktúru. Niektoré správy ROS obsahujú dáta vo formáte, ktorý vyžaduje transformácie. MATLAB poskytuje niekoľko funkcií na transformáciu formátu dát, napríklad pre obrázky alebo body v priestore. Definovanie vlastnej správy je podporované cez doplnky roboticsAddons. Simulink tiež obsahuje knižnicu blokov, ktoré pomáhajú pri komunikácii v sieti ROS.

V ROSe možno ukladať záznam zo správ do súboru, ktorý sa označuje ako rosbag. Tieto súbory sa vytvárajú prihlásením na ROS topic a ukladaním prijatých dát v definovanom formáte. Pomocou Robotics System Toolboxu možno pracovať s týmito súbormi. V MATLABe sa súbor načíta ako objekt. Pomocou objektu sa dajú uložené správy preskúmať a zistiť dostupné informácie, ako je čas začiatku záznamu, čas konca záznamu, dostupné správy a podobne. Správy môžeme filtrovať podľa zvolených kritérií a následne ich vybrať na hlbšiu analýzu. Získané údaje možno analyzovať využitím ďalších zabudovaných funkcií MATLABu, ako je napríklad ich zobrazenie v grafe alebo štatistická analýza.

Okrem funkcií, ktoré umožňujú Robotics System Toolboxu prácu s ROSom obsahuje toolbox aj funkcie na transformáciu súradníc a jednotiek. V robotických aplikáciách sa využívajú viaceré súradnicové systémy na lokalizáciu robotov, senzorov a iných objektov. Keďže súradnicových reprezentácií existuje niekoľko, MATLAB podporuje transformácie často využívané v robotike. Robotics System Toolbox predpokladá, že poloha a natočenie sú definované v pravouhlom karteziánskom súradnicovom systéme.

Algoritmy Robotics System Toolboxu sú zamerané na aplikácie mobilnej robotiky. Obsahuje triedy, ktoré pomáhajú pri vývoji týchto aplikácií. Mapu prostredia môžeme zadať pomocou mriežky obsadenosti a následne ju vizualizovať. S využitím mapy sa dá naplánovať cesta, ktorú má robot prejsť, aby sa dostal z počiatočného do koncového bodu. Následne možno vytvoriť objekt riadenia a vypočítať lineárnu a uhlovú rýchlosť s rôznymi nastaveniami. Toolbox poskytuje aj ďalšie triedy na obchádzanie prekážok alebo lokalizáciu polohy a orientáciu robota (obr. 2).

Simulácia vizualizácia vyhýbanie sa prekážkam
Obr. 2 Simulácia vizualizácia vyhýbanie sa prekážkam

Vlastný algoritmus v MATLABe alebo Simulinku určený na robotickú aplikáciu je vhodné otestovať v simulačnom prostredí, prípadne na skutočnom robotovi. MATLAB sa dokáže pomocou rozhrania ROSu pripojiť na simulačné prostredie Gazebo, ktoré umožňuje simulovať fyzikálne scenáre. V prostredí možno príkazmi zastaviť simuláciu a prečítať informácie o objektoch vrátane ich fyzikálnych vlastností. Funkcie tiež umožňujú vytvárať v simulačnom prostredí rôzne objekty a prepojenia medzi nimi. Objektom sme schopní aplikovať sily a momenty. Robotics System Toolbox podporuje robota TurtleBot pomocou podporného balíčka, takže používateľ môže čítať dáta zo senzorov a posielať riadiace príkazy aj bez nutnosti volania správ ROS.

V praktických aplikáciách je veľkým prínosom výpočtového prostredia MATLAB a Simulink možnosť generovania kódu. Robotics System Toolbox netvorí výnimku a umožňuje generovanie kódu C/C++. Pomocou nástroja MATLAB Coder môžete vygenerovať kód z podporovaných funkcií toolboxu a s využitím nástroja Embedded Coder vykonávať software-in-the-loop (SIL) alebo processor-in-the-loop (PIL) testy. Z modelu v Simulinku možno vygenerovať kód C++ pomocou nástroja Simulink Coder pre uzol ROS. Vygenerovaný uzol sa jednoducho prenesie do prostredia ROSu v Linuxe, kde pobeží nezávisle na Simulinku.

Robotics System Toolbox Vám zjednoduší prácu pri tvorbe robotickej aplikácie. Dáta zo snímačov robota sa dajú skúmať interaktívne. Navrhnuté algoritmy môžeme testovať v simulácii alebo na skutočnom robotovi. Pomocou ďalších užitočných funkcií MATLABu sa dajú uložené správy analyzovať a vyhodnocovať efektívnejšie ako v ktoromkoľvek inom prostredí. Generovanie kódu z modelov zasa zrýchli jednotlivé fázy vývoja aplikácie. Potvrdili to aj výskumníci z NAIST, ktorí dokázali pomocou MATLABu a Robotics System Toolboxu plne zrýchliť vývoj rozpoznávania objektu dotykom. Čas, ktorý strávili ručným písaním kódu C/C++, teraz využívajú na zdokonaľovanie svojich algoritmov.

 

Distribútor spoločnosti MathWorks pre Českú a Slovenskú republiku::
HUMUSOFT s. r. o.
http://www.humusoft.cz

humusoft-logo

mathworks-logo

Klonování psího miláčka: jak a proč?

Ve střední Evropě máme prvního naklonovaného psa. Aristocrat II Korec Corso se stal mediální hvězdou …

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *