Симулятор робототехники используется для создания приложения для физического робота, не зависящего от фактической машины, что экономит затраты и время. В некоторых случаях эти приложения могут быть перенесены на физический робот (или перестроены) без изменений.
Термин робототехнический симулятор может относиться к нескольким приложениям для моделирования робототехники. Например, в мобильных робототехнических приложениях симуляторы робототехники на основе поведения позволяют пользователям создавать простые миры жестких объектов и источников света и программировать роботы для взаимодействия с этими мирами. Моделирование на основе поведения позволяет осуществлять более биологические действия по сравнению с симуляторами, которые являются более двоичными или вычислительными. Кроме того, симуляторы, основанные на поведении, могут «учиться» на ошибках и способны демонстрировать антропоморфное качество упорства.
Одним из самых популярных приложений для симуляторов робототехники является 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.