Симулятор робототехники

Симулятор робототехники используется для создания приложения для физического робота, не зависящего от фактической машины, что экономит затраты и время. В некоторых случаях эти приложения могут быть перенесены на физический робот (или перестроены) без изменений.

Термин робототехнический симулятор может относиться к нескольким приложениям для моделирования робототехники. Например, в мобильных робототехнических приложениях симуляторы робототехники на основе поведения позволяют пользователям создавать простые миры жестких объектов и источников света и программировать роботы для взаимодействия с этими мирами. Моделирование на основе поведения позволяет осуществлять более биологические действия по сравнению с симуляторами, которые являются более двоичными или вычислительными. Кроме того, симуляторы, основанные на поведении, могут «учиться» на ошибках и способны демонстрировать антропоморфное качество упорства.

Одним из самых популярных приложений для симуляторов робототехники является 3D-моделирование и рендеринг робота и его среды. Этот тип программного обеспечения для робототехники имеет симулятор, который является виртуальным роботом, который способен имитировать движение реального робота в реальной рабочей оболочке. Некоторые робототехнические тренажеры используют физический движок для более реалистичной генерации движения робота. Использование симулятора робототехники для разработки программы управления роботами настоятельно рекомендуется независимо от того, доступен ли настоящий робот или нет. Симулятор позволяет программам роботизирования удобно писать и отлаживать в автономном режиме с окончательной версией программы, проверенной на реальном роботе. Это прежде всего относится только к промышленным роботизированным приложениям,

Действия робота на основе датчиков гораздо сложнее имитировать и / или программировать в автономном режиме, поскольку движение робота зависит от мгновенных показаний датчика в реальном мире.

Особенности
Современные симуляторы, как правило, обеспечивают следующие возможности:

Быстрое прототипирование роботов
Использование собственного симулятора в качестве инструмента создания (платформа виртуального роботизированного эксперимента, Webots, R-Station, Marilou, 4DV-Sim).
Использование внешних инструментов.
Физические двигатели для реалистичных движений. Большинство симуляторов используют ODE (Gazebo, LpzRobots, Marilou, Webots) или PhysX (Microsoft Robotics Studio, 4DV-Sim).
Реалистичная 3d-рендеринг. Для создания сред можно использовать стандартные инструменты 3D-моделирования или инструменты сторонних разработчиков.
Динамические тела роботов со сценариями. C, C ++, Perl, Python, Java, URBI, языки MATLAB, используемые Webots, Python, используемые Gazebo.

Симуляторы
Среди новейших технологий, доступных сегодня для программирования, есть те, которые используют виртуальную симуляцию. Моделирование с использованием виртуальных моделей рабочей среды и самих роботов может предложить преимущества как для компании, так и для программиста. Используя симуляцию, затраты снижаются, а роботы могут быть запрограммированы автономно, что исключает время простоя сборочной линии. Действия робота и детали сборки могут быть визуализированы в трехмерной виртуальной среде за несколько месяцев до того, как будут созданы даже прототипы. Написание кода для моделирования также проще, чем писать код для физического робота. Хотя переход к виртуальным симуляциям для программирования роботов является шагом вперед в дизайне пользовательского интерфейса, многие такие приложения находятся только в зачаточном состоянии.

Основная информация

Программного обеспечения Разработчики Статус разработки Лицензия 3D-рендеринг Физический двигатель 3D-модельер Поддерживаемые платформы
актин Энергичные технологии активный патентованный OpenGL патентованный патентованный Windows, MacOS, Linux, RTLinux, VxWorks, RTOS-32 и RTX.(Планируется QNX)
ARS RAL Неактивный BSD ВТК ОДА Никто Linux, macOS, Windows
AUTOMAPPPS Конвергентные информационные технологии активный патентованный OpenGL неизвестный внутренний Linux, Windows
бельведер Фонд Open Source Robotics Foundation (OSRF) активный Apache 2.0 OGRE ОДА / Пуля / Simbody / DART внутренний Linux
Морзе Академическое сообщество активный BSD Игровой движок Blender пуля смеситель Linux, BSD *, macOS
OpenHRP АИСТ активный Затмение Java3D ОДА / Внутренняя внутренний Linux, Windows
RoboDK RoboDK активный патентованный OpenGL никто внутренний Linux, MacOS, Windows, Android
SimSpark O. Obst et al. (+26) активный GNU GPL (v2) внутренний ОДА Никто Linux, macOS, Windows
V-Rep Робототехника Coppelia активный Собственность / GNU GPL внутренний ОДА / Пуля / Vortex / Ньютон внутренний Linux, macOS, Windows
Webots Cyberbotics Ltd. активный патентованный патентованный патентованный(на основе ODE) патентованный Linux, macOS, Windows
4DV-Sim 4D Virtualiz активный патентованный OGRE PhysX внутренний Linux
OpenRAVE Сообщество OpenRAVE активный GNU LGPL Coin3D / OpenSceneGraph ОДА / Пуля внутренний Linux, macOS, Windows
Программного обеспечения Разработчики Статус разработки Лицензия 3D-рендеринг Физический двигатель 3D-модельер Поддерживаемые платформы

Техническая информация

Программного обеспечения Основной язык программирования Поддержка форматов растяжимость Внешние API Поддержка промежуточного программного обеспечения Robotics Первичный пользовательский интерфейс Безголовое моделирование
актин C ++ SLDPRT, SLDASM, STEP, OBJ, STL, 3DS, Collada, VRML, URDF, XML, ECD, ECP, ECW, ECX, ECZ, Плагины (C ++), API неизвестный ROS графический интерфейс пользователя Да (ActinRT)
ARS питон неизвестный питон неизвестный Никто неизвестный неизвестный
AUTOMAPPPS C ++, Python STEP, IGES, STL Плагины (C), API XML, C Разъем графический интерфейс пользователя да
бельведер C ++ SDF / URDF, OBJ, STL, Collada Плагины (C ++) C ++ ROS, Player, сокеты (сообщения protobuf) графический интерфейс пользователя да
Морзе питон неизвестный питон питон Розетки, YARP, ROS, Pocolibs, MOOS Командная строка да
OpenHRP C ++ VRML Плагины (C ++), API C / C ++, Python, Java OpenRTM-AIST графический интерфейс пользователя неизвестный
RoboDK питон STEP, IGES, STL, WRML Плагины (C ++), API C / C ++, Python, Matlab Разъем графический интерфейс пользователя неизвестный
SimSpark C ++, Ruby Графики графики Ruby Моды (C ++) Сеть (секспр) Розетки (sexpr) GUI, гнезда неизвестный
V-Rep LUA OBJ, STL, DXF, 3DS, Collada, URDF API, надстройки, плагины C / C ++, Python, Java, Urbi, Matlab / Octave Розетки, ROS графический интерфейс пользователя да
Webots C ++ WBT, VRML, X3D API, PROTO, плагины (C / C ++) C, C ++, Python, Java, Matlab, ROS Розетки, ROS, NaoQI графический интерфейс пользователя да
4DV-Sim C ++ 3DS, OBJ, Mesh Плагины (C ++), API FMI / FMU, Matlab Интерфейсы ROS, Sockets, Plug & Play графический интерфейс пользователя да
OpenRAVE C ++, Python XML, VRML, OBJ, Collada Плагины (C ++), API C / C ++, Python, Matlab Розетки, ROS, YARP GUI, гнезда да
Программного обеспечения Основной язык программирования Поддержка форматов растяжимость Внешние API Поддержка роботизированного промежуточного программного обеспечения Первичный пользовательский интерфейс Безголовое моделирование

Поддержка инфраструктуры

Программного обеспечения Список рассылки Документация API Общественный форум / справочная система Руководство пользователя Отслеживание проблем Wiki
актин нет да нет да Да (Внутренний) нет
ARS неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный
AUTOMAPPPS да да нет да да нет
бельведер да да да да да да
Морзе да да нет да да нет
OpenHRP да да нет да да нет
RoboDK да да нет да нет нет
SimSpark да да нет да да да
V-Rep нет да да да неизвестный нет
Webots нет да да да да да
4DV-Sim да нет да да да нет
OpenRAVE да да да да да да
Программного обеспечения Список рассылки Документация API Общественный форум / справочная система Руководство пользователя Отслеживание проблем Wiki

Качество кода

Программного обеспечения Проверка статического кода Проверка стиля Испытательная система (ы) Покрытие тестовой функции Покрытие тестового филиала Строки кода Строки комментариев Непрерывная интеграция
актин неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный Дженкинс
ARS неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный
AUTOMAPPPS неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный
бельведер cppcheck cpplint gtest и qtest 46,1% 34,3% 190.7k 60.45k Дженкинс
Морзе N / A pylint Python unittests неизвестный неизвестный 31.4k 9.0k Дженкинс, Трэвис
OpenHRP неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный
RoboDK неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный
SimSpark неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный
V-Rep неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный
Webots неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный
4DV-Sim неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный
OpenRAVE неизвестный неизвестный Нос Питона неизвестный неизвестный неизвестный неизвестный Дженкинс
Программного обеспечения Проверка статического кода Проверка стиля Испытательная система (ы) Покрытие тестовой функции Покрытие тестового филиала Строки кода Строки комментариев Непрерывная интеграция

Характеристики

Программного обеспечения CAD для движения Динамическое предотвращение столкновений Относительные конечные эффекты Внелинейное программирование В реальном времени потоковое управление оборудованием
актин Да (Пути инструментов) да да да да
ARS неизвестный нет неизвестный нет нет
бельведер неизвестный да да да да
Морзе неизвестный нет неизвестный нет нет
OpenHRP неизвестный нет неизвестный нет нет
RoboDK неизвестный нет неизвестный да нет
SimSpark неизвестный нет неизвестный нет нет
V-Rep неизвестный нет неизвестный нет нет
Webots неизвестный да да да да
4DV-Sim неизвестный нет неизвестный нет нет
OpenRAVE неизвестный нет неизвестный нет нет
Программного обеспечения CAD для движения Динамическое предотвращение столкновений Относительные конечные эффекты Офф-лайн программирование Управление потоковым потоком в реальном времени

Семьи роботов

Программного обеспечения UGV (наземный мобильный робот) БПЛА (воздушные роботы) AUV (подводные роботы) Роботизированное оружие Роботизированные руки (захватывающая симуляция) Гуманоидные роботы Человеческие аватары Полный список
актин Да (может включать манипуляторы) Да (может включать манипуляторы) Да (может включать манипуляторы) да да да да
ARS неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный
бельведер да да да да да да да
Морзе да да частичный Немного нет нет да
OpenHRP да нет нет да да да да
RoboDK нет нет нет да нет нет нет
SimSpark да нет нет Может быть Может быть да нет
V-Rep да да нет да да да да
Webots да да да да да да да Модели роботов Webots
4DV-Sim да да нет да Может быть нет да
OpenRAVE да неизвестный неизвестный да да да да
Программного обеспечения UGV (наземный мобильный робот) БПЛА (воздушные роботы) AUV (подводные роботы) Роботизированное оружие Роботизированные руки (захватывающая симуляция) Гуманоидные роботы Человеческие аватары Полный список

Поддерживаемые приводы

Программного обеспечения Общие кинематические цепи Движение с принудительным управлением Полный список Круговые кинематические цепи Кинематически избыточные цепи Бифурцированные кинематические цепи
актин да да Ограничения движения да да да
ARS неизвестный неизвестный неизвестный неизвестный неизвестный
бельведер да да да да да
Морзе да да Приводы MORSE неизвестный неизвестный неизвестный
OpenHRP да да неизвестный неизвестный неизвестный
RoboDK неизвестный неизвестный неизвестный неизвестный неизвестный
SimSpark да нет Эффекты SimSpark неизвестный неизвестный неизвестный
V-Rep да да неизвестный неизвестный неизвестный
Webots да да Приводы Webots да да да
4DV-Sim да да неизвестный неизвестный неизвестный
OpenRAVE да да Соединения, дополнительные приводы да да да
Программного обеспечения Общие кинематические цепи Движение с принудительным управлением Полный список Круговые кинематические цепи Кинематически избыточные цепи Бифурцированные кинематические цепи

Поддерживаемые датчики

Программного обеспечения одометрии ИДУ коллизия GPS Монокулярные камеры Стереокамеры Глубокие камеры Всенаправленные камеры 2D лазерные сканеры 3D лазерные сканеры Полный список
актин да да да неизвестный да да да да да да
ARS неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный
AUTOMAPPPS неизвестный неизвестный неизвестный неизвестный да да да неизвестный да да
бельведер да да да да да да да да да да
Морзе да да да да да неизвестный да неизвестный да да Датчики MORSE
OpenHRP неизвестный да да неизвестный да неизвестный да неизвестный да да Датчики OpenHRP
RoboDK неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный неизвестный
SimSpark да да да частичный да частичный неизвестный неизвестный нет нет SimSpark perceptors
V-Rep неизвестный да да да да да да неизвестный да да
Webots да да да да да да да да да да Сенсоры Webots
4DV-Sim да да да да да да да да да да
OpenRAVE да да да да да да да неизвестный да да
Программного обеспечения одометрии ИДУ коллизия GPS Монокулярные камеры Стереокамеры Глубокие камеры Всенаправленные камеры 2D лазерные сканеры 3D лазерные сканеры Полный список

Другие тренажеры

Симуляторы с открытым исходным кодом
breve: трехмерный мультиагентный симулятор в Python.
EZPhysics: Комбинация физики Ogre3D и ODE, графический интерфейс предоставляет все данные объектов ODE, дистанционное управление с замкнутым циклом сети, возможно, через Matlab / Simulink.
Khepera Simulator — симулятор Windows с открытым исходным кодом для роботов-роботов Khepera.
Klamp’t: симулятор, представленный в 2013 году, специализирующийся на стабильном контакте в триместре. Поддерживает леговое передвижение и манипуляции.
LpzRobots: симулятор роботов 3D-физики, разработанный в Лейпцигском университете.
miniBloq: Это программное обеспечение для программирования роботов для плат Arduino имеет новый симулятор.
Moby: библиотека динамики твердого тела, написанная на C ++.
OpenSim Simulator для шарнирных и колесных роботов с широким спектром характеристик. Дальнейшее развитие прекратилось в 2006 году.
Robotics Toolbox для MATLAB — это бесплатное программное обеспечение, которое обеспечивает функциональность для представления позы (однородные преобразования, углы Эйлера и РПИ, кватернионы), ручные роботы (вперед / назад кинематика, динамика, симуляция, анимация) и мобильные роботы (контроль, локализация, планирование и анимация).
ARTE A Robotics Toolbox for Education (ARTE) — это образовательный инструмент для свободного программного обеспечения, основанный на Matlab. Он предоставляет функции для представления позиции и ориентации. Также включает функции для имитации роботизированных рукавов (прямая / обратная кинематика, динамика, планирование пути и многое другое). Набор инструментов включает большой набор 3D-роботизированных моделей, которые можно просматривать и моделировать внутри роботизированной ячейки.
Simbad 3D Robot Simulator Java-симулятор
SimRobot: пакет программного обеспечения для симулятора робота, разработанный в Университете Бремена и Немецком исследовательском центре искусственного интеллекта.
Этап: симулятор 2.5D часто используется с игроком для формирования системы Player / Stage. Часть проекта игрока
STDR Simulator Простой, гибкий и масштабируемый 2D мульти-робот-симулятор для использования в операционной системе Robot.
UCHILSIM: основанный на физике тренажер для роботов AIBO, представленный в RoboCup 2004.
UWSim: подсистема UnderWater для морских исследований и разработок в области робототехники, которая включает в себя сенсорное, динамическое и физическое моделирование.

Закрытые и проприетарные симуляторы
anyKode Marilou
ORCA-Sim: a (Windows) 3D-робот-симулятор с использованием движка физики Newton Game Dynamics.