Middleware pro robotické aplikace - Middleware for Robotic Applications - Wikipedia
Vývojáři | MetraLabs GmbH, Technologická univerzita v Ilmenau |
---|---|
První vydání | 27.dubna 2012 |
Stabilní uvolnění | 2020-04-26 / 26 dubna 2020 |
Napsáno | C ++ |
Operační systém | Linux, Okna |
Typ | Robotická sada, Middleware |
Licence | Duální licence: GPL verze 3, Licence Professional Edition |
webová stránka | www |
Middleware pro robotické aplikace (MIRA) je multiplatformní open-source softwarový rámec napsaný v C ++, který poskytuje middleware, několik základních funkcí a mnoho nástrojů pro vývoj a testování distribuovaných softwarových modulů. Zaměřuje se také na snadné vytváření složitých, dynamických aplikací, přičemž tyto moduly znovu využívá jako pluginy. Hlavním účelem MIRA je vývoj robotické aplikace, ale protože je navržen tak, aby umožňoval typově bezpečnou výměnu dat mezi softwarovými moduly pomocí komunikace uvnitř a mezi procesy, není omezen na tyto druhy aplikací.[1]
MIRA je vyvíjen ve spolupráci MetraLabs GmbH a Technologická univerzita v Ilmenau /Laboratoř neuroinformatiky a kognitivní robotiky. Proto byl MIRA navržen tak, aby splňoval požadavky komerčních i vzdělávacích účelů.
Funkce
Všeobecné:
- dodává introspekce /odraz a serializace na C ++ s použitím C ++ pouze jazykové konstrukce (metajazyk nebo metakompilery nejsou nutné)
- efektivní výměna dat mezi softwarovými moduly
- použitá komunikační technika založená na „kanálech“ vždy umožňuje neblokující přístup k přeneseným datům [2]
- pro uživatele je komunikace plně transparentní bez ohledu na to, zda jsou softwarové moduly umístěny ve stejném procesu, v různých procesech nebo na různých strojích, podkladová transportní vrstva automaticky zvolí způsob přenosu dat nalačno[2]
- kromě výměny dat prostřednictvím „kanálů“ podporuje MIRA Vzdálená volání procedur (RPC) a vzdálené vyvolání metody.
- MIRA je plně decentralizovaná, a proto zde není žádný centrální server ani centrální komunikační rozbočovač, díky čemuž je jeho komunikace robustnější a umožňuje jeho použití v aplikacích s více roboty
![](http://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/MiraCenterScreenshot.png/220px-MiraCenterScreenshot.png)
Specifické pro robotické aplikace:
- snadná konfigurace softwarových modulů pomocí konfiguračních souborů
- parametry algoritmů lze upravit žít za běhu, aby se urychlil proces ladění a vývoje
- lze zaznamenat obrovské množství dat ze senzorů robota Pásky pro pozdější přehrávání lze zde ke kompresi dat použít různé kodeky
Platformy
MIRA podporuje a byl úspěšně testován na následujících platformách:
- Linux – Ubuntu a deriváty, OpenSuse, CentOS, červená čepice a Fedora[3]
- Okna - Microsoft Windows XP, Windows Vista, Windows 7 (32bit a 64bit)[4]
Aplikace využívající MIRA
MIRA se používá v následujících aplikacích:
- Konrad and Suse - Guide Robots, které vedou návštěvníky v budově Zuse v Technologická univerzita v Ilmenau[5][6]
- Monitorování kvality vzduchu v čistých prostorách na Infineon Technologies pomocí několika robotů SCITOS G5[7][8]
a projekty:
- Družný - Integrovaný kognitivní asistenční a domotický doprovodný robotický systém pro schopnost a bezpečnost[9]
- Robot-Era - Implementace a integrace pokročilých robotických systémů a inteligentních prostředí v reálných scénářích pro stárnoucí populaci[10]
Použitelnost
Reflexe / Serializace
třída Data { int hodnota; std::mapa<std::tětiva,std::seznam<int> > komplex; Foo* ptr; šablona <typename Reflektor> prázdnota odrážet(Reflektor& r) { r.člen("Hodnota", hodnota, "int člen"); r.člen("Komplex", komplex, "komplexní člen"); r.člen("Ukazatel", ptr, "ukazatel ukazatel"); }};
- libovolné komplexní datové typy lze serializovat přidáním metody jednoduchého odrážení do třídy, jak je znázorněno výše
- po těchto drobných změnách lze objekty třídy přenášet meziprocesovou komunikací, lze je použít jako parametry v konfiguračních souborech pro softwarové moduly, lze je zaznamenat do souborů „Tape“ atd.
Vzdálená volání procedur
třída Moje třída{ int vypočítat(konst std::seznam<plovák>& hodnoty); šablona <typename Reflektor> prázdnota odrážet(Reflektor& r) { r.metoda("vypočítat", &Moje třída::vypočítat, tento, "komentář"); }};
- libovolné metody lze změnit na metody RPC přidáním jednoho řádku kódu do metody reflect (). Není nutné psát obálky kolem metod nebo používat meta description jazyky.
Reference
- ^ „Web projektu MIRA“.
- ^ A b Einhorn, Erik; Langner, Tim; Stricker, Ronny; Martin, Christian; Gross, Horst-Michael (2012). "MIRA - middleware pro robotické aplikace". 2012 Mezinárodní konference IEEE / RSJ o inteligentních robotech a systémech. 2591–2598. doi:10.1109 / IROS.2012.6385959. ISBN 978-1-4673-1736-8.
- ^ „Dokumentace MIRA - podpora Linuxu“.
- ^ „Dokumentace MIRA - podpora Windows“.
- ^ „TU Ilmenau: Konrad-Zuse-Bau eröffnet“. Thüringer Allgemeine Zeitung.
- ^ Stricker, Ronny; et al. (2012). „Konrad a Suse, dva roboti provázející návštěvníky v univerzitní budově“. Autonomní mobilní systémy 2012. Informatik aktuell. str. 49–58. doi:10.1007/978-3-642-32217-4_6. ISBN 978-3-642-32216-7.
- ^ „Ilmenauer Oberbürgermeister ließ sich von Roboter den Weg zeigen“. Thüringer Allgemeine Zeitung.
- ^ „Der Markt bietet hohe Potenziale für mobile Robotik“. TRIA.
- ^ "Družný".
- ^ "Robot-Era".