Промежуточное ПО для роботизированных приложений - Википедия - Middleware for Robotic Applications
Разработчики) | MetraLabs GmbH, Технологический университет Ильменау |
---|---|
изначальный выпуск | 27 апреля 2012 г. |
Стабильный выпуск | 2020-04-26 / 26 апреля 2020 |
Написано в | C ++ |
Операционная система | Linux, Windows |
Тип | Набор робототехники, ПО промежуточного слоя |
Лицензия | Двойная лицензия: GPL версии 3, Лицензия Professional Edition |
Интернет сайт | www |
Промежуточное ПО для роботизированных приложений (МИРА) является кроссплатформенным, с открытым исходным кодом программная среда написан на C ++, что обеспечивает промежуточное ПО, несколько базовых функций и многочисленные инструменты для разработки и тестирования распределенных программных модулей. Он также ориентирован на легкое создание сложных динамических приложений при повторном использовании этих модулей в качестве подключаемых модулей. Основная цель MIRA - разработка робот приложений, но, поскольку он разработан для обеспечения безопасного обмена данными между программными модулями с использованием внутри- и межпроцессного взаимодействия, он не ограничивается этими видами приложений.[1]
МИРА разработана при сотрудничестве MetraLabs GmbH и Технологический университет Ильменау /Лаборатория нейроинформатики и когнитивной робототехники. Таким образом, MIRA была разработана с учетом требований как коммерческих, так и образовательных целей.
Функции
Общий:
- добавляет самоанализ /отражение и сериализация к C ++ с использованием C ++ только языковые конструкции (метаязык или метакомпиляторы не нужны)
- эффективный обмен данными между программными модулями
- используемая технология связи на основе «каналов» всегда позволяет неблокирующий доступ к передаваемым данным [2]
- для пользователя связь полностью прозрачна, независимо от того, находятся ли программные модули в одном процессе, в разных процессах или на разных машинах, нижележащий транспортный уровень автоматически выберет метод быстрой передачи данных[2]
- Помимо обмена данными по «каналам», МИРА поддерживает Вызов удаленных процедур (RPC) и удаленный вызов метода.
- MIRA полностью децентрализован, поэтому нет центрального сервера или центрального коммуникационного узла, что делает его коммуникацию более надежной и позволяет использовать ее в приложениях с несколькими роботами.
Специально для роботизированного приложения:
- простая настройка программных модулей через файлы конфигурации
- параметры алгоритмов могут быть изменены жить во время выполнения для ускорения процесса отладки и разработки
- огромные объемы данных датчиков робота могут быть записаны в Ленты для последующего воспроизведения здесь можно использовать разные кодеки для сжатия данных
Платформы
MIRA поддерживает и успешно прошла испытания на следующих платформах:
- Linux – Ubuntu и производные, OpenSuse, CentOS, Красная шляпа и Fedora[3]
- Windows - Microsoft Windows XP, Виндоус виста, Windows 7 (32 бит и 64 бит)[4]
Приложения с использованием MIRA
MIRA используется в следующих приложениях:
- Конрад и Сьюз - Роботы-гиды, которые направляют посетителей в здание Цузе Технологический университет Ильменау[5][6]
- Контроль качества воздуха в чистых помещениях в Infineon Technologies с использованием нескольких роботов SCITOS G5[7][8]
и проекты:
- CompanionAble - Интегрированная когнитивная вспомогательная и роботизированная система-компаньон для повышения возможностей и безопасности[9]
- Робот-Эра - Внедрение и интеграция передовых роботизированных систем и интеллектуальных сред в реальных сценариях для стареющего населения[10]
Удобство использования
Отражение / сериализация
учебный класс Данные { int ценить; стандартное::карта<стандартное::нить,стандартное::список<int> > сложный; Фу* ptr; шаблон <typename Отражатель> пустота отражать(Отражатель& р) { р.член("Ценить", ценить, "член типа int"); р.член("Сложный", сложный, "сложный член"); р.член("Указатель", ptr, "указатель указателя"); }};
- произвольные сложные типы данных можно сериализовать, добавив в класс простой метод отражения, как показано выше
- после этих незначительных изменений объекты класса могут транспортироваться посредством межпроцессного взаимодействия, могут использоваться в качестве параметров в файлах конфигурации для программных модулей, могут быть записаны в файлы "ленты" и т. д.
Вызов удаленных процедур
учебный класс Мой класс{ int вычислить(const стандартное::список<плавать>& значения); шаблон <typename Отражатель> пустота отражать(Отражатель& р) { р.метод("вычислить", &Мой класс::вычислить, это, "комментарий"); }};
- произвольные методы можно превратить в методы RPC, добавив одну строку кода в метод Reflect (). Нет необходимости писать обертки вокруг методов или использовать языки мета-описания.
Рекомендации
- ^ «Сайт Проекта МИРА».
- ^ а б Эйнхорн, Эрик; Лангнер, Тим; Стрикер, Ронни; Мартин, Кристиан; Гросс, Хорст-Майкл (2012). «МИРА - промежуточное ПО для робототехнических приложений». 2012 Международная конференция IEEE / RSJ по интеллектуальным роботам и системам. С. 2591–2598. Дои:10.1109 / IROS.2012.6385959. ISBN 978-1-4673-1736-8.
- ^ «Документация MIRA - Поддержка Linux».
- ^ «Документация MIRA - Поддержка Windows».
- ^ "TU Ilmenau: Konrad-Zuse-Bau eröffnet". Thüringer Allgemeine Zeitung.
- ^ Стрикер, Ронни; и другие. (2012). «Конрад и Сьюз, два робота, направляющие посетителей в здание университета». Автономные мобильные системы 2012. Информатик актуэлл. С. 49–58. Дои: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.
- ^ "CompanionAble".
- ^ «Эра роботов».