Robotické frameworky (Robotics suite)
Robotikou se zabývá spousta lidí a do dnešních dnů vzniklo velké množství podpůrných projektů pro usnadnění řešení základních problémů. Spousta z nich se nějakou částí překrývají či jsou cíleny na jiný druh problému nebo pouze vytvářejí sjednocující prostředí pro znovuvyužití a sdílení kódu mezi více lidmi.
Tyto projekty se dají rozdělit do dvou skupin podle způsobu typu programování a to na vizuální a textové. Vizuální je založeno na grafickém prostředí kde se většinou propojují krabičky s přesně definovanými rozhraními a následně po namodelování celého řešení se grafická podoba automaticky převede na spustitelný kód s možností psát i některé části textovou formou. Textové je naopak celé založené pouze na textovém programování v nějakém běžném vyšším jazyce jako například C/C++, Python, Java, Lisp atd., kde projekty pouze poskytují knihovny pro základní ovládání a řešení některých problémů.
Vizuální
Zaměřeno na neprogramátory a spíše pro vědecké pracovníky nebo děti podle typu grafického rozhraní. Rychlé naučení základů kde uživatel používá vyšší úroveň abstrakce. Roboti jsou již připraveni pro dané grafické prostředí a uživatel se nemusí vůbec starat jak nahrát vytvořený kód do robota ani o nízko úrovňové ovládání robota jako takového. Prostředí již obsahuje knihovny pro tuto činnost a zavádí určitou míru abstrakce takže lze stejný kód používat na více typech robotů. Grafická forma programu nemusí být uplně přehledná a vyžaduje větší dispej.
NI LabVIEW
- Grafická programovací platforma vhodná pro vyšší míru abstrakce a odstínění od nízkoúrovňových věcí
- Knihovny pro finální kód psány v C/C++ a optimalizovány pro různé platformy
- Rychlejší vývoj aplikací s důrazem na testování
- Od začátku kladen důraz na paralelní zpracování a realtime aplikace
- Velká podpora zpracování signálů, matematických funkcí atd.
- Jiný způsob programování více funkcionální
- Lze vytvářet simulace zařízení a na nich testovat program
- NI poskytuje i robotický HW přímo pro LabView
- Musí se koupit licence, která je drahá 24 000Kč základní (podporuje pouze Windows) a 64 000Kč plná verze (Windows,Linux, Mac)
- Více na oficiálních stránkách [3]
MATLAB a Simulink
- Grafická programovací platforma vhodná pro vyšší míru abstrakce a odstínění od nízkoúrovňových věcí
- Umožňuje tvorbu modelu, simulaci tohoto modelu, analýzu výsledků simulace a následný připojení k HW
- Automatické generování kódu (C/C++, HDL) s možností testování a verifikace vestavěného systému
- Snadné zobrazení dat pro analýzu
- Podpora pro lineární i nelineární systémy případně hybridní
- Možnost rozšířit o různé algoritmy pro zpracování obrazu, signálů atd. pomocí toolboxů
- Licence pro studenty stojí 89USD ~ 1680Kč
- Podpora HW platforem jako Raspberry PI, BeagleBoard, Arduino, Lego Mindstorms NXT atd.
- Lze spustit na Windows, Linux i Mac
- Více na oficiálních stránkách [4]
Založené na knihovnách a textovém programování
Počítá s programátorskými znalostmi a pouze usnadňuje psaní programů, protože zavádí jednotné rozhraní pro různé typy senzorů a věcí na robotovi. Se současným řešením základních problémů robotiky jako komunikace mezi procesy jednoduché asynchronní posílání zpráv nebo vyřešení základních věcí jako ovládání serv, displeje, motorů atd.
ROBOTC
- Robotický programovací jazyk založený na jazyku C s rozšířením pro snadné robotické použití
- Obsahuje již funkce pro ovládání motorů, čtení enkodérů atd.
- Prostředí pro psaní a ladění kódu na platformě Windows s pokročilímy funkcemi jako dokončování názvů atd.
- Velké množství ukázkových programů s dokumentací
- Existují semináře na webu, video návody
- Lze psát programy pro Lego Mindstorms NXT, Lego Mindstorms EV3, VEX Cortex, VEX PIC a Arduina
- Robot Virtual Worlds [5] pro simulaci robota a světa okolo
- Musí se koupit pro danou hw platformu za 79USD ~ 1 500Kč případně za 89USD ~ 1 680Kč s RVW
- Více na officiálních stránkách [6]
Arduino
- IDE založené na projektu processing [7] s jazykem C a rozšiřujícími knihovnami pro snadnější používání HW
- IDE obsahuje ukázkové kódy pro nejběžnější použití
- Snadné nahrávání vytvořeného kódu přímo do HW desky rovnou z IDE
- Neobsahuje debugovací nástroj
- Velký počet knihoven pro ovládání nejběžnější elektroniky jako jsou displeje, krokové motory atd.
- Slouží pouze pro Arduino desky a kompatibilní jako Intel Galileo [8]
- Více na oficiálních stránkách [9]
ROS
- Framework pro vývoj robotického softwaru poskytující funkcionalitu podobnou operačnímu systému na heterogenní množině počítačů
- Poskytuje základní komunikační mechanizmy jako služby, asynchronní a synchronní komunikaci
- Založený na grafové architektuře kde uzly zpracovávají informace a můžou posílat, přijímat a multiplexovat zprávy z ostatních uzlů
- Hlavní programovací jazyk je C/C++ a Python
- Hlavně vyvýjen pod Linuxem není úplně funkční pod Windows
- Systém instalace balíčků, který usnadňuje znovu použití jednotlivých částí robota
- Open source projekt
- Velké množství vytvořených balíčků pro řešení různých robotických problémů
- Integrace s Gazebo [10] simulátorem
- Více na oficiálních stránkách [11]
URBI
- Open source platforma pro ovládání robotů a komplexních systémů
- Založeno na C++ komponentové knihovně UObject a standardním API popisující motory, senzory a algoritmy
- Poskytuje urbiscript skriptovací jazyk pro možnost slepování komponent a popis chování na vyšší úrovni podobný Pythonu s podporou paralelního zpracování a událostmi řízenou sémantikou. Dále základní komunikační mechanizmy s možností rozložení UObjectů na různé počítače propojené sítí.
- Možnost propojení s ROS
- UObjecty pro různé typy robotů jako například Aibo, AR Drone, Wifibot, Mindstorm NXT, Pioneer atd.
- Lze používat na Windows, Linux i Mac
- Více na oficiálních stránkách [12]
Microsoft Robotics Developer Studio
- Prostředí založeno na Windows pro řízení robota a simulaci
- Využívá .NET knihovnu pro asynchronní paralelní úkoly (tasks) s posíláním zpráv a servis-oriented runtime
- Primární programovací jazyk je C#
- Lze použít i vizuální programování
- Propojený se simulátorem a některými skutečnými roboty
- Více na oficiálních stránkách [13]
Simulátory
Gazebo
- Open source simulátor pro více typů robotů a venkovní prostředí v 3D
- Generuje realistickou odezvu senzorů i fyzikální interakci mezi objekty
- Vytvořeno spousta senzorů a typů robotů
- Propojení s ROS
- Možnost zobrazovat Gazebo z browseru s tím, že simulace běží na serveru
- Více na oficiálních stránkách [14]
Stage
- Open source simulátor pro více typů robotů v 2D bitmapovém prostředí
- Poskytuje jednoduché a výpočetně málo náročné modely robotů
- Lze použít samostatně s kompilací řídícího kódu za běhu a připojení k libovolnému robotovi nebo s projektem Player [15] případně jako knihovna C++ simulující robota přímo v uživatelském kódu
- Více na oficiálních stránkách [16]
Webots
- Komerční simulátor s 3D prostředím
- Spousta volně použitelných modelů robotů s možností vytvoření vlastního typu modelu
- Obsahuje velkou množinu typů senzorů často používaných v robotice jako světelné senzory, dotykové, GPS, akcelerometr, motory atd.
- Ovládání robota lze psát v C/C++, Java, Python a MATLAB
- Možnost nahrávání simulace jako mpeg či avi video
- Používaný pro několik online programovacích soutěží
- Cena EDU licence je 320CHF ~ 6 700Kč
- Více na oficiálních stránkách [17]
AnyKode Marilou
- Komerční 3D prostředí pro tvorbu robotických modelů a následnou simulaci
- Editační nástroj je plně grafický na způsob CADu se snadným použitím
- Hierarchický systém pro tvorbu složitějších modelů s možností znovupoužití částí modelu
- Spousta volně použitelných modelů robotů s možností vytvoření vlastního typu modelu
- Obsahuje velkou množinu typů senzorů často používaných v robotice jako světelné senzory, dotykové, GPS, akcelerometr, motory atd.
- Ovládání robota lze psát v C/C++, C++ CLI, C#, J# a VB#
- Cena EDU licence je 199EUR ~ 5 200Kč
- Více na oficiálních stránkách [18]
Simbad
- Java 3D simulátor robotů pro umělou inteligenci a strojové učení
- Není zamýšleno poskytovat simulaci skutečného světa
- Málo senzorů jen barevná kamera, IR dálkové senzory, sonar a dotykové senzory
- Simulace jednoho či více robotů
- Poskytuje knihovny pro evoluční algoritmy a neuronové sítě
- Více na oficiálních stránkách [19]