Origem: Wikipédia, a enciclopédia livre.
Um simulador de robótica é utilizado para criar aplicações embarcadas para um robô sem depender de uma máquina física, economizando tempo e custo. Em alguns casos, estas aplicações podem ser transferidas para o robô real (ou recompiladas) sem modificações.
O termo simulador de robótica pode se referir a diferentes aplicações de simulação na robótica. Por exemplo, na robótica móvel , simuladores de robótica baseada em comportamento permitem que os usuários criem mundos simples que contêm objetos rígidos e fontes de luz; e programem robôs para interagir com esses mundos.
Uma das aplicações mais populares para simuladores de robótica é a modelagem 3D e a renderização de um robô e seu ambiente. Este tipo de software de robótica simula um robô virtual, que é capaz de imitar os movimentos de um robô físico. Alguns simuladores de robótica usam um motor de física para gerar movimentos mais realistas para o robô.
O uso de um simulador de robótica para o desenvolvimento de um programa para controlar robôs é altamente recomendado, independentemente de o robô físico estar disponível ou não. O simulador permite que programas sejam convenientemente escritos e depurados off-line , e o software seja testado em robôs reais apenas depois de estarem mais "maduros". Isso é especialmente conveniente para a programação off-line , como é comum na robótica industrial , que se caracteriza por ambientes bem definidos e que são facilmente simulados. Também é possível simular aplicações robóticas que dependem de dados coletados em tempo real por sensores . Neste caso, o simulador é responsável por gerar dados similares aos que sensores físicos gerariam no mundo real.
Simuladores modernos tendem a oferecer os seguintes recursos:
Prototipagem rápida de robôs:
Usando o próprio simulador como ferramenta de criação (Virtual Robot Experimentation Platform, Webots, R-Station, Marilou, 4DV-Sim, Gazebo );
Usando ferramentas externas.
Motor de física para movimentos realistas: Muitos simuladores usam ODE (Gazebo , LpzRobots, Marilou, Webots) ou PhysX (Microsoft Robotics Studio, 4DV-Sim).
Renderização 3D realista: Ferramentas de modelagem 3D podem ser utilizadas para construir os ambientes.
Uma interface para a programação de corpos dinâmicos.
Software
Desenvolvedores
Status de desenvolvimento
Licença
Motor de renderização 3D
Motor de física
Modelador 3D
Plataformas suportadas
Actin
Energid Technologies
Ativo
Proprietário
OpenGL
Proprietário
Proprietário
Windows , macOS , Linux , VxWorks, RTOS-32
ARS
RAL
Ativo
BSD
VTK
ODE
Nenhum
Linux , macOS , Windows
Gazebo
Open Source Robotics Foundation(OSRF)
Ativo
Apache 2.0
OGRE
ODE /Bullet/Simbody/DART
Interno
Linux , macOS , Windows
MORSE
Academic community[ 1]
Ativo
BSD
Blender game engine
Bullet
Blender
Linux , BSD*, macOS
OpenHRP
AIST
Ativo
Eclipse
Java3D
ODE /Interno
Interno[ 2]
Linux , Windows
RoboDK
RoboDK
Ativo
Proprietário
OpenGL
Nenhum
Interno
Linux , macOS , Windows , Android
SimSpark
O. Obst et al. (+26)
Ativo
GNU GPL (v2)
Interno
ODE
Nenhum
Linux , macOS , Windows
V-Rep
Coppelia Robotics
Ativo
Proprietário /GNU GPL
Interno
ODE /Bullet/Vortex
Interno
Linux , macOS , Windows
Webots
Cyberbotics
Ativo
Proprietário
OGRE
versão customizada do ODE
Interno
Linux , macOS , Windows
4DV-Sim
4D Virtualiz
Ativo
Proprietário
OGRE
PhysX
Interno
Linux
Software
Desenvolvedores
Status de desenvolvimento
Licença
Motor de renderização 3D
Motor de física
Modelador 3D
Plataformas suportadas
Software
Principal linguagem de programação
Formatos suportados
Extensabilidade
APIs externas
Suporte para middleware de robótica
Interface de usuário primária
Simulação headless
Actin
C++
SLDPRT , SLDASM , STEP, OBJ , STL, 3DS , Collada , VRML , URDF , XML , ECD, ECP, ECW, ECX, ECZ,
Plugins (C++ ), API
Desconhecido
Nenhum
GUI
Sim (ActinRT)
ARS
Python
Desconhecido
Python
Desconhecido
Nenhum
Desconhecido
Desconhecido
Gazebo
C++
SDF[ 3] /URDF[ 4]
Plugins (C++ )
C++
ROS , Player, Sockets (mensagens protobuf )
GUI
Sim
MORSE
Python
Desconhecido
Python
Python [ 5]
Sockets, YARP, ROS , Pocolibs, MOOS
Linha de comando
Sim
OpenHRP
C++
VRML
Plugins (C++ ), API
C /C++ , Python , Java
OpenRTM-aist
GUI
Desconhecido
RoboDK
Python
STEP, IGES, STL, WRML
Plugins (C++ ), API
C /C++ , Python , Matlab
Socket
GUI
Desconhecido
SimSpark
C++ , Ruby
Ruby Scene Graphs
Mods (C++ )
Network (sexpr)
Sockets (sexpr)
GUI , Sockets
Desconhecido
V-Rep
LUA
OBJ , STL, DXF , 3DS , Collada ,[ 6] URDF
API , Add-ons, Plugins
C /C++ , Python , Java , Urbi, Matlab /Octave
Sockets, ROS
GUI
Sim[ 7]
Webots
C++
WBT, VRML '97
Plugins (C++ ), API
C /C++ , Python , Java , Matlab
ROS , URBI, NaoQI
GUI
Sim
4DV-Sim
C++
3DS , OBJ , Mesh
Plugins (C++ ), API
FMI/FMU, Matlab
ROS , Sockets, Plug & Play interfaces
GUI
Sim
Software
Principal linguagem de programação
Formatos suportados
Extensabilidade
APIs externas
Suporte para middleware de robótica
Interface de usuário primária
Simulação headless
Software
Lista de e-mail
Documentação da API
Fórum público/Sistema de ajuda
Manual do usuário
Seguimento de incidentes
Wiki
Actin
Não
Sim
Não
Sim[ 8]
Sim (Interno)
Não
ARS
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Gazebo
Sim[ 9]
Sim[ 10]
Sim[ 11]
Sim[ 12]
Sim[ 13]
Sim[ 14]
MORSE
Sim[ 15]
Desconhecido
Não
Sim[ 16]
Sim[ 17]
Não
OpenHRP
Sim[ 18]
Sim[ 19]
Não
Sim[ 20]
Sim[ 21]
Não
RoboDK
Sim[ 22]
Sim[ 23]
Não
Sim[ 24]
Não
Não
SimSpark
Sim[ 25]
Sim[ 26]
Não
Sim[ 27]
Sim[ 28]
Sim[ 29]
V-Rep
Não
Sim[ 30]
Sim[ 31]
Sim[ 32]
Desconhecido
Não
Webots
Não
Sim[ 33]
Sim[ 34]
Sim[ 35]
Sim[ 36]
Sim[ 37]
4DV-Sim
Sim[ 38]
Não
Sim[ 38]
Sim
Sim
Não
Software
Lista de e-mail
Documentação da API
Fórum público/Sistema de ajuda
Manual do usuário
Seguimento de incidentes
Wiki
Software
Checagem de código estática
Checagem de estilo
Sistema de testes
Cobertura de funções em testes
Cobertura de galhos em testes
Linhas de código
Linhas de comentários
Integração contínua
Actin
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Jenkins
ARS
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Gazebo
cppcheck[ 39]
cpplint[ 39]
gtest e qtest[ 39]
52.9%[ 39]
44.5%[ 39]
298k[ 39]
99k[ 39]
Jenkins[ 39]
MORSE
Desconhecido
pylint
Python unittests
Desconhecido
Desconhecido
31.4k[ 40]
9.0k
Jenkins, Travis
OpenHRP
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
RoboDK
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
SimSpark
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
V-Rep
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Webots
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
4DV-Sim
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Software
Checagem de código estática
Checagem de estilo
Sistema de testes
Cobertura de funções em testes
Cobertura de galhos em testes
Linhas de código
Linhas de comentários
Integração contínua
Software
CAD para movimento
Prevenção de colisão dinâmica
Extremo do membro relativo
Programação off-line
Controle em tempo real
Actin
Sim
Sim
Sim
Sim
Sim
ARS
Desconhecido
Não
Desconhecido
Não
Não
Gazebo
Desconhecido
Não
Desconhecido
Não
Não
MORSE
Desconhecido
Não
Desconhecido
Não
Não
OpenHRP
Desconhecido
Não
Desconhecido
Não
Não
RoboDK
Desconhecido
Não
Desconhecido
Sim
Não
SimSpark
Desconhecido
Não
Desconhecido
Não
Não
V-Rep
Desconhecido
Não
Desconhecido
Não
Não
Webots
Desconhecido
Não
Desconhecido
Não
Não
4DV-Sim
Desconhecido
Não
Desconhecido
Não
Não
Software
CAD para movimento
Prevenção de colisão dinâmica
Extremo do membro relativo
Programação off-line
Controle em tempo real
Software
Cadeias cinemáticas genéricas
Movimento controlado por força
Lista completa
Cadeias cinemáticas circulares
Cadeias cinemáticas redundantes
Cadeias cinemáticas bifurcadas
Actin
Sim
Sim
Motion Constraints
Sim
Sim
Sim
ARS
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Gazebo
Sim
Sim
Sim
Sim
Sim
MORSE
Sim[ 53]
Sim
atuadores MORSE
Desconhecido
Desconhecido
Desconhecido
OpenHRP
Sim
Sim
Desconhecido
Desconhecido
Desconhecido
RoboDK
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
SimSpark
Sim
Não
atuadores SimSpark
Desconhecido
Desconhecido
Desconhecido
V-Rep
Sim
Sim
Desconhecido
Desconhecido
Desconhecido
Webots
Sim
Sim
Desconhecido
Desconhecido
Desconhecido
4DV-Sim
Sim
Sim
Desconhecido
Desconhecido
Desconhecido
Software
Cadeias cinemáticas genéricas
Movimento controlado por força
Lista completa
Cadeias cinemáticas circulares
Cadeias cinemáticas redundantes
Cadeias cinemáticas bifurcadas
Software
Odometria
Unidade de Medida Inercial
Colisão
GPS
Câmera monocular
Câmera estereoscópica
Câmera de profundidade
Câmera omnidirecional
Laser scanner 2D
Laser scanner 3D
Lista completa
Actin
Sim
Sim
Sim
Desconhecido
Sim
Sim
Sim
Sim
Sim
Sim
ARS
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Gazebo
Sim
Sim
Sim[ 54]
Sim
Sim[ 55]
Sim
Sim
Desconhecido
Sim
Sim
MORSE
Sim
Sim
Sim
Sim
Sim
Desconhecido
Sim
Desconhecido
Sim
Sim[ 56]
sensores MORSE
OpenHRP
Desconhecido
Sim[ 57]
Sim
Desconhecido
Sim
Desconhecido
Sim
Desconhecido
Sim
Sim[ 58]
sensores OpenHRP
RoboDK
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
Desconhecido
SimSpark
Sim
Sim
Sim[ 59]
Parcial[ 60]
Sim
Parcial
Desconhecido
Desconhecido
Não
Não
perceptores SimSpark
V-Rep
Desconhecido
Sim
Sim
Sim
Sim
Desconhecido
Sim
Desconhecido
Sim
Sim
Webots
Sim
Sim
Sim
Sim
Sim
Sim
Sim
Desconhecido
Sim
Sim
4DV-Sim
Sim
Sim
Sim
Sim
Sim
Sim
Sim
Sim
Sim
Sim
Software
Odometria
Unidade de Medida Inercial
Colisão
GPS
Câmera monocular
Câmera estereoscópica
Câmera de profundidade
Câmera omnidirecional
Laser scanner 2D
Laser scanner 3D
Lista completa
Breve : simulador de múltiplos agentes em mundos 3D em Python .
EZPhysics: combinação de renderização Ogre3D e física ODE, GUI expõe todas as informações does objetos do ODE, controle remoto opcionalmente através de Matlab/Simulink.
Simulador Khepera: um simulador de código aberto para Windows , para simular o robô Khepera antes do Webots.[carece de fontes ]
Klamp't: um simulador introduzido em 2013 , especializado em contato estável entre malhas de triângulos. Suporta locomoção de patas e manipulação.
LpzRobots: um simulador de física de robôs em 3D desenvolvido na Universidade de Leipzig .
MiniBloq: este software para programação de robôs para o Arduino tem um novo simulador.
Moby: uma biblioteca de dinâmica de corpos rígidos escrita em C++ .
OpenSim: Simulador de robôs articulados e com rodas, com uma ampla gama de características. Seu desenvolvimento foi interrompido em 2006 .
Robotics Toolbox para o MATLAB : é um software livre que fornece funcionalidade para representar pose (transformações homogêneas, ângulos Euler e RPY, quaterniões ), braços robóticos (para a cinemática inversa , direta, dinâmica, simulação e animação) e robôs móveis (controle, localização, planejamento e animação).
ARTE: uma ferramenta de robótica para educação (ARTE em inglês) é um software livre educacional baseado em Matlab. Ele fornece funções para representar posições e orientações. Assim, inclui funções para simular braços robóticos (cinemática direta/inversa, dinâmica, planejamento de caminho, etc.). A ferramenta inclui um grande conjunto de modelos 3D de robôs que podem ser visualizados e simulados dentro de uma célula robótica.
Simbad 3d: Simulador de robôs baseado em Java .
SimRobot: um pacote de software de simulador de robôs desenvolvido na Universidade de Bremen e no Centro alemão de Pesquisa de Inteligência Artificial .
Fase: simulador 2.5D , muitas vezes usado com o Player para formar o sistema Player/Stage. Parte do Projeto Player .
STDR: simulador simples, flexível e escalável 2D de múltiplos robôs para uso dentro de Sistema Operacional de Robôs .
UCHILSIM: um simulador baseado em física para os Robôs AIBO , introduzido na RoboCup 2004.
UWSim: um simulador de robótica submarina para pesquisa e desenvolvimento , que incorpora simulação de sensores, dinâmica e física.
Referências
↑ Veja MORSE authors para a lista de autores.
↑ Open Architecture Humanoid Robotics Platform
↑ OSRF. «SDF» . sdformat.org . Consultado em 6 de outubro de 2017
↑ «urdf - ROS Wiki» . wiki.ros.org . Consultado em 6 de outubro de 2017
↑ Koch, Séverin Lemaignan, Pierrick, pymorse: Python bindings for the Modular OpenRobots Simulation Engine (MORSE) , consultado em 6 de outubro de 2017
↑ Veja a documentação V-Rep
↑ Versões >= 3.1.0, veja opções de linha de comando V-rep
↑ «Actin User Guide» . Consultado em 28 de janeiro de 2017 . Arquivado do original em 13 de janeiro de 2017
↑ «Gazebo Community» . Gazebo Community (em inglês). Consultado em 6 de outubro de 2017
↑ OSRF. «Gazebo : API» . gazebosim.org . Consultado em 6 de outubro de 2017
↑ «Questions - Gazebo: Q&A Forum» . answers.gazebosim.org . Consultado em 6 de outubro de 2017
↑ OSRF. «Gazebo : Tutorials» . gazebosim.org . Consultado em 6 de outubro de 2017
↑ «osrf / gazebo / issues — Bitbucket» . bitbucket.org (em inglês). Consultado em 6 de outubro de 2017
↑ «osrf / gazebo / wiki / Home — Bitbucket» . bitbucket.org (em inglês). Consultado em 6 de outubro de 2017
↑ MORSE users mailing list , MORSE developers mailing list
↑ «Overview — The MORSE Simulator Documentation» . www.openrobots.org . Consultado em 6 de outubro de 2017
↑ morse: The Modular OpenRobots Simulation Engine , The Modular OpenRobots Simulation Engine, 4 de outubro de 2017, consultado em 6 de outubro de 2017
↑ «openhrp3-users Info Page» . choreonoid.org . Consultado em 6 de outubro de 2017
↑ «OpenHRP3 Official Site» . fkanehiro.github.io . Consultado em 6 de outubro de 2017
↑ «User's Manual» . fkanehiro.github.io . Consultado em 6 de outubro de 2017
↑ KANEHIRO, Fumio (8 de março de 2017), openhrp3: Open Architecture Human-centered Robotics Platform , consultado em 6 de outubro de 2017
↑ «Subscribe to our newsletter - RoboDK» . www.robodk.com (em inglês). Consultado em 6 de outubro de 2017
↑ «RoboDK's Python API examples - RoboDK» . www.robodk.com (em inglês). Consultado em 6 de outubro de 2017
↑ «RoboDK help guide» . www.robodk.com (em inglês). Consultado em 6 de outubro de 2017
↑ «Spark - A generic physical simulator / Mailing Lists» . sourceforge.net (em inglês). Consultado em 6 de outubro de 2017
↑ «Network Protocol - Simspark» . simspark.sourceforge.net (em inglês). Consultado em 6 de outubro de 2017
↑ «Users Manual - Simspark» . simspark.sourceforge.net (em inglês). Consultado em 6 de outubro de 2017
↑ «Spark - A generic physical simulator / Bugs» . sourceforge.net (em inglês). Consultado em 6 de outubro de 2017
↑ «Simspark» . simspark.sourceforge.net (em inglês). Consultado em 6 de outubro de 2017
↑ «V-REP API framework» . www.coppeliarobotics.com . Consultado em 6 de outubro de 2017
↑ «V-REP Forum - Index page» . www.forum.coppeliarobotics.com (em inglês). Consultado em 6 de outubro de 2017
↑ «V-REP User Manual» . www.coppeliarobotics.com . Consultado em 6 de outubro de 2017
↑ «Webots» . www.cyberbotics.com (em inglês). Consultado em 6 de outubro de 2017
↑ «Webots: forum» . www.cyberbotics.com (em inglês). Consultado em 6 de outubro de 2017
↑ «Webots» . www.cyberbotics.com (em inglês). Consultado em 6 de outubro de 2017
↑ Webots bug report
↑ «Cyberbotics' Robot Curriculum - Wikibooks, open books for an open world» . en.wikibooks.org (em inglês). Consultado em 6 de outubro de 2017
↑ a b support{AT}4d-virtualiz.com
↑ a b c d e f g h OSRF. «Gazebo» . gazebosim.org . Consultado em 6 de outubro de 2017
↑ Source: Ohloh
↑ OSRF. «Gazebo : Tutorial : Beginner: Model Editor» . gazebosim.org . Consultado em 6 de outubro de 2017
↑ OSRF. «Gazebo : Tutorial : Aerodynamics» . gazebosim.org . Consultado em 6 de outubro de 2017
↑ OSRF. «Gazebo : Tutorial : Hydrodynamics» . gazebosim.org . Consultado em 6 de outubro de 2017
↑ OSRF. «Gazebo : ARIAC» . gazebosim.org . Consultado em 6 de outubro de 2017
↑ OSRF. «Gazebo : HAPTIX» . gazebosim.org . Consultado em 6 de outubro de 2017
↑ «DARPA's legacy: Open source simulation for robotics development and testing | Robohub» . robohub.org (em inglês). Consultado em 6 de outubro de 2017
↑ OSRF. «Gazebo : Tutorial : Make an animated model (actor)» . gazebosim.org . Consultado em 6 de outubro de 2017
↑ Modelo de submarino disponível, mas sem modelo dinâmico
↑ Inclui Kuka-LWR e Mitsubishi PA-10. Outros braços podem ser simulados através do atuador kinematic chains .
↑ «Robot Library | RoboDK» . www.robodk.com (em inglês). Consultado em 6 de outubro de 2017
↑ inclui robô Salamandra
↑ Inclui Nao, DARwIn-OP, Fujitsu HOAP2, Kondo KHR-2HV, KHR-3, etc.
↑ Controle de articulações (somente posição/velocidade, sem controle por força) e cinemática inversa
↑ OSRF. «Gazebo : Tutorial : Contact Sensor» . gazebosim.org . Consultado em 6 de outubro de 2017
↑ OSRF. «Gazebo : Tutorial : Camera Distortion» . gazebosim.org . Consultado em 6 de outubro de 2017
↑ Velodyne 3D laser scanner
↑ «Robot and Environmental Model Define Format» . fkanehiro.github.io . Consultado em 6 de outubro de 2017
↑ «Robot and Environmental Model Define Format» . fkanehiro.github.io . Consultado em 6 de outubro de 2017
↑ Detecção de colisão usando um modelo simplificado
↑ Possível, sem modelo para ruídos