Симулятор робототехники
![]() | Эта статья , возможно, содержит оригинальные исследования . ( Август 2014 г. ) |
Симулятор робототехники — это симулятор, используемый для создания приложения для физического робота без зависимости от физической машины, что позволяет экономить средства и время. В некоторых случаях такие приложения можно перенести на физического робота (или пересобрать) без изменений.
Термин «симулятор робототехники» может относиться к нескольким различным приложениям моделирования робототехники. Например, в мобильных робототехнических приложениях симуляторы робототехники, основанные на поведении, позволяют пользователям создавать простые миры жестких объектов и источников света и программировать роботов для взаимодействия с этими мирами. Моделирование на основе поведения позволяет выполнять действия, которые носят более биотический характер по сравнению с симуляторами, которые являются более бинарными или вычислительными. Кроме того, симуляторы, основанные на поведении, могут учиться на ошибках и демонстрировать антропоморфное качество упорства.

Одним из самых популярных приложений для симуляторов робототехники является 3D-моделирование и рендеринг робота и его окружения. Этот тип программного обеспечения для робототехники имеет симулятор виртуального робота, который может имитировать движение физического робота в реальной рабочей среде. Некоторые симуляторы робототехники используют физический движок для более реалистичного создания движений робота. Использование симулятора робототехники для разработки программы управления робототехникой настоятельно рекомендуется независимо от того, доступен ли физический робот или нет. Симулятор позволяет удобно писать и отлаживать программы робототехники в автономном режиме, а окончательную версию программы тестировать на физическом роботе. Это относится главным образом к приложениям промышленной робототехники , поскольку успех автономного программирования зависит от того, насколько физическая среда робота похожа на моделируемую среду.
Действия робота , основанные на датчиках, гораздо сложнее моделировать и/или программировать в автономном режиме, поскольку движение робота зависит от мгновенных показаний датчиков в реальном мире.
Функции
[ редактировать ]Современные симуляторы, как правило, предоставляют следующие возможности:
- Быстрое прототипирование роботов:
- Использование собственного симулятора в качестве инструмента создания
- Использование внешних инструментов
- Физические движки для реалистичных движений: Большинство симуляторов используют Bullet , ODE или PhysX .
- Реалистичная 3D-рендеринг. Для создания сред можно использовать стандартные инструменты 3D-моделирования или сторонние инструменты.
- Динамические тела роботов со сценариями: языки C , C++ , Perl , Python , Java , URBI и MATLAB , используемые веб-ботами; C++, используемый Gazebo .
Симуляторы
[ редактировать ]Среди новейших технологий, доступных сегодня для программирования, есть те, которые используют виртуальное моделирование. Моделирование с использованием виртуальных моделей рабочей среды и самих роботов может дать преимущества как компании, так и программисту. Использование моделирования позволяет снизить затраты, а роботов можно программировать в автономном режиме, что исключает простои сборочной линии. Действия робота и сборочные детали можно визуализировать в трехмерной виртуальной среде за несколько месяцев до того, как будут созданы прототипы. Написание кода для моделирования также проще, чем для физического робота. Хотя переход к виртуальному моделированию программирующих роботов является шагом вперед в разработке пользовательского интерфейса, многие такие приложения находятся только в зачаточном состоянии.
Общая информация
[ редактировать ]Программное обеспечение | Разработчики | Статус разработки | Лицензия | Механизм 3D-рендеринга | Физический движок | 3D modeller | Поддерживаемые платформы |
---|---|---|---|---|---|---|---|
Беседка | Фонд робототехники с открытым исходным кодом (OSRF) | Активный | Апач 2.0 | ОГРЕ | ОДА , Пуля , Симбоди , ДАРТ | Внутренний | Linux, macOS, Windows |
РобоДК | РобоДК | Активный | Собственный | OpenGL | Гравитационный плагин | Внутренний | Linux, macOS, Windows, Android, iOS, Debian |
СимСпарк | О. Обст и др. (+26) | Активный | GNU GPL (v2) | Внутренний | ОДА | Никто | Linux, macOS, Windows |
Вебботы | ООО "Киберботика" | Активный | Апач 2.0 | Внутренний (ВРЕН) | Форк ODE | Внутренний | Linux, macOS, Windows |
OpenRAVE | Сообщество OpenRAVE | Активный | ГНУ ЛГПЛ | Coin3D , OpenSceneGraph | ОДА , Пуля | Внутренний | Linux, macOS, Windows |
КоппелияСим | Коппелия Робототехника | Активный | Двойной: коммерческая, GNU GPL. | Внутренний | MuJoCo, Bullet , ODE , Vortex , Ньютон | Внутренний | Linux, macOS, Windows |
Программное обеспечение | Разработчики | Статус разработки | Лицензия | Механизм 3D-рендеринга | Физический движок | 3D modeller | Поддерживаемые платформы |
Техническая информация
[ редактировать ]Программное обеспечение | Основной язык программирования | Поддержка форматов | Расширяемость | Внешние API | промежуточного программного обеспечения для робототехники Поддержка | Основной пользовательский интерфейс | Безголовое моделирование |
---|---|---|---|---|---|---|---|
Беседка | С++ | СДС [ 1 ] /URDF, [ 2 ] OBJ , STL , СБОРКА | Плагины (C++) | С++ | ROS, плеер, сокеты (сообщения protobuf) | графический интерфейс | Да |
РобоДК | Питон | SLDPRT , SLDASM , STEP , OBJ , STL , 3DS , COLLADA , VRML , Операционная система робота URDF , Rhinoceros 3D , ... | API, [ 3 ] Подключаемый интерфейс [ 4 ] | Python, C/C++, C#, Matlab,... | Розетка | графический интерфейс | Да |
СимСпарк | С++, Руби | Графики Ruby-сцен | Моды (С++) | Сеть ( секспр ) | Розетки ( секпр ) | Графический интерфейс, сокеты | Unknown |
Вебботы | С++ | WBT, VRML , X3D , 3DS , Blender , BVH , COLLADA , FBX , STL , OBJ , URDF | API, PROTO, плагины (C/C++) | C, C++, Python, Java, Matlab, ROS | Розетки, ROS, NaoQI | графический интерфейс | Да [ 5 ] |
OpenRAVE | С++, Питон | XML , VRML , OBJ , КОЛЛАДА | Плагины (C++), API | Си/С++, Питон, Матлаб | Розетки, РОС, ЯРП | Графический интерфейс, сокеты | Да |
КоппелияСим | С++, Питон, Луа | 3DS , Blender , COLLADA , STL , OBJ , URDF, SDF, GLTF, XML | Плагины (C/C++), встроенные скрипты (Python, Lua), удаленный API (C, C++, Python, Java, MATLAB, Octave), надстройки (Python, Lua) | C, C++, Python, Java, MATLAB, Octave, ROS, ROS 2.0 | Сокеты, ROS, ROS 2.0, ZeroMQ | графический интерфейс | Да |
Программное обеспечение | Основной язык программирования | Поддержка форматов | Расширяемость | Внешние API | Поддержка роботизированного промежуточного программного обеспечения | Основной пользовательский интерфейс | Безголовое моделирование |
Инфраструктура
[ редактировать ]Поддерживать
[ редактировать ]Программное обеспечение | Список рассылки | Документация по API | Общественный форум, справочная система | Руководство пользователя | Трекер проблем | Неделя | Чат |
---|---|---|---|---|---|---|---|
Беседка | Да [ 6 ] | Да [ 7 ] | Да [ 8 ] | Да [ 9 ] | Да [ 10 ] | Нет | |
РобоДК | Да [ 11 ] | Да [ 12 ] | Да [ 13 ] | Да [ 14 ] | Да [ 15 ] | Нет | Unknown |
СимСпарк | Да [ 16 ] | Да [ 17 ] | Нет | Да [ 18 ] | Да [ 19 ] | Да [ 20 ] | Unknown |
Вебботы | Нет | Да [ 21 ] | Да [ 22 ] | Да [ 23 ] | Да [ 24 ] | Да [ 25 ] | Да [ 26 ] |
OpenRAVE | Да [ 27 ] | Да [ 28 ] | Да [ 29 ] | Да [ 30 ] | Да [ 29 ] | Да [ 31 ] | Unknown |
КоппелияСим | Нет | Да [ 32 ] | Да [ 33 ] | Да [ 34 ] | Да [ 35 ] | Unknown | Нет |
Программное обеспечение | Список рассылки | Документация по API | Общественный форум, справочная система | Руководство пользователя | Трекер проблем | Неделя |
Качество кода
[ редактировать ]Программное обеспечение | Статическая проверка кода | Проверка стиля | Тестовая система(ы) | Покрытие тестовых функций | Тестовое покрытие филиалов | Строки кода | Строки комментариев | Непрерывная интеграция |
---|---|---|---|---|---|---|---|---|
Беседка | cppcheck [ 36 ] | cpplint [ 36 ] | gtest и qtest [ 36 ] | 77.0% [ 36 ] | 53.3% [ 36 ] | 320 тыс. [ 36 ] | 106 тыс. [ 36 ] | Дженкинс [ 36 ] |
РобоДК | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
СимСпарк | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
Вебботы | cppcheck [ 37 ] | clang-формат [ 38 ] | модульные тесты [ 39 ] | 100% функций API [ 40 ] | владелец, [ 41 ] развивать [ 42 ] | ~200 тыс. | ~50 тыс. | Действия GitHub |
OpenRAVE | Unknown | Unknown | Нос питона | Unknown | Unknown | Unknown | Unknown | Дженкинс [ 43 ] |
КоппелияСим | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
Программное обеспечение | Статическая проверка кода | Проверка стиля | Тестовая система(ы) | Покрытие тестовых функций | Тестовое покрытие филиалов | Строки кода | Строки комментариев | Непрерывная интеграция |
Функции
[ редактировать ]Программное обеспечение | САПР для движения | Динамическое предотвращение столкновений | Относительные конечные эффекторы | Оффлайн программирование | Потоковое управление оборудованием в режиме реального времени |
---|---|---|---|---|---|
Беседка | Unknown | Да | Да | Да | Да |
РобоДК | Да | Да | Да | Да | Да |
СимСпарк | Unknown | Нет | Unknown | Нет | Нет |
Вебботы | Unknown | Да | Да | Да | Да |
OpenRAVE | Unknown | Нет | Unknown | Нет | Нет |
КоппелияСим | Unknown | Да | Да | Да | Да |
Программное обеспечение | САПР для движения | Динамическое предотвращение столкновений | Относительные конечные эффекторы | Оффлайн программирование | Управление потоковой передачей в реальном времени |
Семейства роботов
[ редактировать ]Программное обеспечение | УГВ (наземный мобильный робот) | БПЛА (воздушные роботы) | АНПА (подводные роботы) | Роботизированное оружие | Роботизированные руки (имитация хватания) | Гуманоидные роботы | человеческие аватары | Полный список |
---|---|---|---|---|---|---|---|---|
Беседка | Да [ 44 ] | Да [ 45 ] | Да [ 46 ] | Да [ 47 ] | Да [ 48 ] | Да [ 49 ] | Да [ 50 ] | |
РобоДК | Нет | Нет | Нет | Да [ 51 ] | Нет | Нет | Нет | Да [ 51 ] |
СимСпарк | Да | Нет | Нет | Может быть | Может быть | Да | Нет | |
Вебботы | Да | Да | Да [ 52 ] | Да | Да | Да [ 53 ] | Да | Да [ 54 ] |
OpenRAVE | Да | Unknown | Unknown | Да | Да | Да | Да | |
КоппелияСим | Да | Да | Да | Да | Да | Да | Да | Да [ 55 ] |
Программное обеспечение | УГВ (наземный мобильный робот) | БПЛА (воздушные роботы) | АНПА (подводные роботы) | Роботизированное оружие | Роботизированные руки (имитация хватания) | Гуманоидные роботы | человеческие аватары | Полный список |
Поддерживаемые приводы
[ редактировать ]Программное обеспечение | Типовые кинематические цепи | Движение, управляемое силой | Полный список | Круговые кинематические цепи | Кинематически резервированные цепи | Раздвоенные кинематические цепи |
---|---|---|---|---|---|---|
Беседка | Да | Да | Да | Да | Да | |
РобоДК | Unknown | Unknown | Unknown | Unknown | Unknown | |
СимСпарк | Да | Нет | Эффекторы SimSpark | Unknown | Unknown | Unknown |
Вебботы | Да | Да | Исполнительные механизмы вебботов | Да | Да | Да |
OpenRAVE | Да | Да | Соединения , Дополнительные приводы | Да [ 56 ] | Да | Да [ 57 ] |
КоппелияСим | Да | Да | Да | Да | Да | |
Программное обеспечение | Типовые кинематические цепи | Движение, управляемое силой | Полный список | Круговые кинематические цепи | Кинематически резервированные цепи | Раздвоенные кинематические цепи |
Поддерживаемые датчики
[ редактировать ]Программное обеспечение | Одометрия | НОС | Столкновение | GPS | Монокулярные камеры | Стереокамеры | Камеры глубины | Всенаправленные камеры | 2D лазерные сканеры | 3D лазерные сканеры | Полный список |
---|---|---|---|---|---|---|---|---|---|---|---|
Беседка | Да | Да | Да [ 58 ] | Да | Да [ 59 ] | Да | Да | Да | Да [ 60 ] | Да [ 60 ] | |
РобоДК | Unknown | Unknown | Unknown | Unknown | Unknown | Да | Да | Да | Да | Да | |
СимСпарк | Да | Да | Да [ 61 ] | Частичный [ 62 ] | Да | Частичный | Unknown | Unknown | Нет | Нет | СимСпарк Перцепторы |
Вебботы | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Датчики вебботов |
OpenRAVE | Да | Да | Да | Да | Да | Да | Да | Unknown | Да | Да | |
КоппелияСим | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | |
Программное обеспечение | Одометрия | НОС | Столкновение | GPS | Монокулярные камеры | Стереокамеры | Камеры глубины | Всенаправленные камеры | 2D лазерные сканеры | 3D лазерные сканеры | Полный список |
Ссылки
[ редактировать ]- ^ ОСРФ. «СДФ» . sdformat.org . Проверено 27 апреля 2019 г.
- ^ «urdf — ROS Wiki» . Wiki.ros.org . Проверено 6 октября 2017 г.
- ^ «API РобоДК» . Гитхаб . 22 октября 2021 г.
- ^ «Интерфейс плагина RoboDK» . Гитхаб . 16 октября 2021 г.
- ^ Однако для 3D-рендеринга требуется подключение к X-серверу.
- ^ «Сообщество беседок» . Проверено 27 апреля 2019 г.
- ^ «API беседки» . Сообщество беседок . Проверено 27 апреля 2019 г.
- ^ «Ответы беседки» . Сообщество беседок . Проверено 27 апреля 2019 г.
- ^ «Уроки беседки» . Сообщество беседок . Проверено 27 апреля 2019 г.
- ^ «Отслеживание проблем с беседками» . Сообщество беседок . Проверено 27 апреля 2019 г.
- ^ Список рассылки RoboDK
- ^ Документация по API RoboDK
- ^ Форум РобоДК
- ^ Документация РобоДК
- ^ RoboDK Трекер ошибок
- ^ Списки рассылки SimSpark
- ^ «Клиентские протоколы SimSpark» . Архивировано из оригинала 25 февраля 2016 г. Проверено 8 апреля 2015 г.
- ^ «Руководство пользователя SimSpark (Вики)» . Архивировано из оригинала 25 февраля 2015 г. Проверено 8 апреля 2015 г.
- ^ SimSpark Трекер
- ^ SimSpark Wiki [ постоянная мертвая ссылка ]
- ^ Справочное руководство по веб-ботам
- ^ «Дискуссии · Киберботы/Вебботы» . Гитхаб .
- ^ Руководство пользователя вебботов
- ^ Проблемы с веботами на GitHub
- ^ Техническая вики Webots на GitHub.
- ^ Канал Webots Discord
- ^ Список рассылки OpenRAVE
- ^ API OpenRAVE
- ^ Перейти обратно: а б Отслеживание проблем OpenRAVE
- ^ Руководство пользователя OpenRAVE
- ^ OpenRAVE Wiki
- ^ API КоппелиаСим
- ^ Форум робототехники Коппелия
- ^ Руководство пользователя CoppeliaSim
- ^ Отчеты об ошибках Coppelia Robotics
- ^ Перейти обратно: а б с д и ж г час ОСРФ. «Беседка» . www.gazebosim.org . Проверено 27 апреля 2019 г.
- ^ CppCheck
- ^ Формат Clang
- ^ Модульные тесты
- ^ API-тесты
- ^ Мастер вебботов
- ^ Разработка веб-ботов
- ^ Источник
- ^ ОСРФ. «Беседка: Учебное пособие: Новичок: Редактор моделей» . www.gazebosim.org . Проверено 27 апреля 2019 г.
- ^ ОСРФ. «Беседка: Учебное пособие: Аэродинамика» . www.gazebosim.org . Проверено 27 апреля 2019 г.
- ^ ОСРФ. «Беседка: Учебное пособие: Гидродинамика» . www.gazebosim.org . Проверено 27 апреля 2019 г.
- ^ ОСРФ. «Беседка: АРИАК» . www.gazebosim.org . Проверено 27 апреля 2019 г.
- ^ ОСРФ. «Беседка: ХАПТИКС» . www.gazebosim.org . Проверено 27 апреля 2019 г.
- ^ «Наследие DARPA: моделирование с открытым исходным кодом для разработки и тестирования робототехники» . Робохуб.орг . Проверено 27 апреля 2019 г.
- ^ ОСРФ. «Беседка: Урок: Создание анимированной модели (актёра)» . www.gazebosim.org . Проверено 27 апреля 2019 г.
- ^ Перейти обратно: а б Библиотека роботов RoboDK
- ^ включая робота Саламандру
- ^ включая Nao, DARwIn-OP, Fujitsu HOAP2, Kondo KHR-2HV, KHR-3 и т. д.
- ^ Модели роботов Webots
- ^ Основные функции CoppeliaSim
- ^ OpenRAVE Закрытые цепи
- ^ Пример OpenRAVE с двумя руками
- ^ ОСРФ. «Беседка: Учебное пособие: Контактный датчик» . www.gazebosim.org . Проверено 27 апреля 2019 г.
- ^ ОСРФ. «Беседка: Учебное пособие: Искажение камеры» . www.gazebosim.org . Проверено 27 апреля 2019 г.
- ^ Перейти обратно: а б ОСРФ. «Беседка: Учебное пособие: Средний уровень: Велодин» . www.gazebosim.org . Проверено 27 апреля 2019 г.
- ^ При обнаружении столкновений используется упрощенная модель.
- ^ Возможно, нет модели шума.