Um simulador de robótica é usado para criar aplicativos para um robô físico sem depender da máquina real, economizando tempo e custo. Em alguns casos, esses aplicativos podem ser transferidos para o robô físico (ou recriado) sem modificações.
O termo simulador de robótica pode se referir a várias aplicações de simulação de robótica diferentes. Por exemplo, em aplicativos de robótica móvel, simuladores robóticos baseados em comportamento permitem que os usuários criem mundos simples de objetos rígidos e fontes de luz e programem robôs para interagir com esses mundos. A simulação baseada em comportamento permite ações que são mais biológicas quando comparadas a simuladores mais binários ou computacionais. Além disso, os simuladores baseados em comportamento podem “aprender” com os erros e são capazes de demonstrar a qualidade antropomórfica da tenacidade.
Uma das aplicações mais populares para simuladores robóticos é a modelagem 3D e a renderização de um robô e seu ambiente. Este tipo de software de robótica tem um simulador que é um robô virtual, que é capaz de emular o movimento de um robô real em um envelope de trabalho real. Alguns simuladores robóticos usam um mecanismo de física para geração de movimento mais realista do robô. O uso de um simulador de robótica para o desenvolvimento de um programa de controle robótico é altamente recomendado, independentemente de um robô real estar disponível ou não. O simulador permite que os programas de robótica sejam convenientemente escritos e depurados off-line com a versão final do programa testado em um robô real. Isto é válido principalmente para aplicações robóticas industriais,
As ações do robô baseadas em sensores são muito mais difíceis de serem simuladas e / ou programadas off-line, uma vez que o movimento do robô depende das leituras instantâneas do sensor no mundo real.
Recursos
Os simuladores modernos tendem a fornecer os seguintes recursos:
Prototipagem rápida do robô
Usando o próprio simulador como ferramenta de criação (Virtual Robot Experimentation Platform, Webots, R-Station, Marilou, 4DV-Sim).
Usando ferramentas externas.
Mecanismos de física para movimentos realistas. A maioria dos simuladores usa ODE (Gazebo, LpzRobots, Marilou, Webots) ou PhysX (Microsoft Robotics Studio, 4DV-Sim).
Renderização 3d realista. Ferramentas padrão de modelagem 3D ou ferramentas de terceiros podem ser usadas para construir os ambientes.
Corpos de robôs dinâmicos com scripts. Idiomas C, C ++, Perl, Python, Java, URBI, MATLAB usados pelo Webots, Python usados pelo Gazebo.
Simuladores
Entre as tecnologias mais recentes disponíveis hoje para programação estão aquelas que usam uma simulação virtual. Simulações com o uso de modelos virtuais do ambiente de trabalho e os próprios robôs podem oferecer vantagens tanto para a empresa quanto para o programador. Ao usar uma simulação, os custos são reduzidos e os robôs podem ser programados off-line, o que elimina qualquer tempo de inatividade para uma linha de montagem. Ações de robôs e peças de montagem podem ser visualizadas em um ambiente virtual tridimensional meses antes que os protótipos sejam produzidos. Escrever código para uma simulação também é mais fácil do que escrever código para um robô físico. Embora o movimento em direção a simulações virtuais para robôs de programação seja um passo à frente no design da interface com o usuário, muitos desses aplicativos estão apenas na sua infância.
Informação geral
Programas | Desenvolvedores | Estado de Desenvolvimento | Licença | Motor de renderização 3D | Motor de física | Modelador 3D | Plataformas suportadas |
---|---|---|---|---|---|---|---|
Actina | Energid Technologies | Ativo | Proprietary | OpenGL | Proprietary | Proprietary | Windows, macOS, Linux, RTLinux, VxWorks, RTOS-32 e RTX. (QNX planejado) |
ARS | RAL | Inativo | BSD | VTK | ODE | Nenhum | Linux, macOS, Windows |
AUTOMAPPPS | Convergent Information Technologies GmbH | Ativo | Proprietary | OpenGL | desconhecido | interno | Linux, Windows |
Gazebo | Fundação de Robótica de Código Aberto (OSRF) | Ativo | Apache 2.0 | OGRO | ODE / Bullet / Simbody / DART | interno | Linux |
MORSE | Comunidade acadêmica | Ativo | BSD | Blender game engine | Bala | Liquidificador | Linux, BSD *, macOS |
OpenHRP | AIST | Ativo | Eclipse | Java3D | ODE / Internal | interno | Linux, Windows |
RoboDK | RoboDK | Ativo | Proprietary | 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 | Robótica Coppelia | Ativo | Proprietária / GNU GPL | interno | ODE / Bullet / Vortex / Newton | interno | Linux, macOS, Windows |
Webots | Cyberbotics Ltd. | Ativo | Proprietary | Proprietary | Proprietary(baseado em ODE) | Proprietary | Linux, macOS, Windows |
4DV-Sim | Virtualização 4D | Ativo | Proprietary | OGRO | PhysX | interno | Linux |
OpenRAVE | Comunidade OpenRAVE | Ativo | GNU LGPL | Coin3D / OpenSceneGraph | ODE / Bullet | interno | Linux, macOS, Windows |
Programas | Desenvolvedores | Estado de Desenvolvimento | Licença | Motor de renderização 3D | Motor de física | Modelador 3D | Plataformas suportadas |
Informação técnica
Programas | Linguagem de programação principal | Suporte de formatos | Extensibilidade | APIs externas | Suporte de middleware de robótica | Interface de usuário principal | Simulação sem cabeça |
---|---|---|---|---|---|---|---|
Actina | C ++ | SLDPRT, SLDASM, ETAPA, OBJ, STL, 3DS, colada, VRML, URDF, XML, ECD, ECP, ECW, ECX, ECZ, | Plugins (C ++), API | Desconhecido | ROS | GUI | Sim (ActinRT) |
ARS | Python | Desconhecido | Python | Desconhecido | Nenhum | Desconhecido | Desconhecido |
AUTOMAPPPS | C ++, Python | STEP, IGES, STL | Plugins (C), API | XML, C | Soquete | GUI | sim |
Gazebo | C ++ | SDF / URDF, OBJ, STL, Collada | Plugins (C ++) | C ++ | ROS, Player, Sockets (mensagens protobuf) | GUI | sim |
MORSE | Python | Desconhecido | Python | Python | Soquetes, 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 | Soquete | GUI | Desconhecido |
SimSpark | C ++, Ruby | Gráficos de cenas de rubi | Mods (C ++) | Rede (sexpr) | Soquetes (sexpr) | GUI, soquetes | Desconhecido |
V-Rep | LUA | OBJ, STL, DXF, 3DS, Collada, URDF | API, complementos, plug-ins | C / C ++, Python, Java, Urbi, Matlab / Octave | Soquetes, ROS | GUI | sim |
Webots | C ++ | WBT, VRML, X3D | API, PROTOs, Plugins (C / C ++) | C, C ++, Python, Java, Matlab, ROS | Soquetes, ROS, NaoQI | GUI | sim |
4DV-Sim | C ++ | 3DS, OBJ, malha | Plugins (C ++), API | FMI / FMU, Matlab | Interfaces ROS, Sockets, Plug & Play | GUI | sim |
OpenRAVE | C ++, Python | XML, VRML, OBJ, Collada | Plugins (C ++), API | C / C ++, Python, Matlab | Soquetes, ROS, YARP | GUI, soquetes | sim |
Programas | Linguagem de programação principal | Suporte de formatos | Extensibilidade | APIs externas | Suporte de middleware robótico | Interface de usuário principal | Simulação sem cabeça |
Suporte de Infraestrutura
Programas | Lista de discussão | Documentação da API | Fórum Público / Sistema de Ajuda | Manual do usuário | Rastreador de problemas | Wiki |
---|---|---|---|---|---|---|
Actina | Não | sim | Não | sim | Sim (interno) | Não |
ARS | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido |
AUTOMAPPPS | sim | sim | Não | sim | sim | Não |
Gazebo | sim | sim | sim | sim | sim | sim |
MORSE | sim | sim | Não | sim | sim | Não |
OpenHRP | sim | sim | Não | sim | sim | Não |
RoboDK | sim | sim | Não | sim | Não | Não |
SimSpark | sim | sim | Não | sim | sim | sim |
V-Rep | Não | sim | sim | sim | Desconhecido | Não |
Webots | Não | sim | sim | sim | sim | sim |
4DV-Sim | sim | Não | sim | sim | sim | Não |
OpenRAVE | sim | sim | sim | sim | sim | sim |
Programas | Lista de discussão | Documentação da API | Fórum Público / Sistema de Ajuda | Manual do usuário | Rastreador de problemas | Wiki |
Qualidade do Código
Programas | Verificador de código estático | Verificador de estilo | Sistema (s) de teste | Cobertura da função de teste | Cobertura da filial de teste | Linhas de código | Linhas de comentários | Integração contínua |
---|---|---|---|---|---|---|---|---|
Actina | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Jenkins |
ARS | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido |
AUTOMAPPPS | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido |
Gazebo | cppcheck | cplpl | gtest e qtest | 46,1% | 34,3% | 190,7k | 60,45k | Jenkins |
MORSE | N / D | pylint | Unidades de testes em Python | Desconhecido | Desconhecido | 31,4 k | 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 |
OpenRAVE | Desconhecido | Desconhecido | Nariz Python | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Jenkins |
Programas | Verificador de código estático | Verificador de estilo | Sistema (s) de teste | Cobertura da função de teste | Cobertura da filial de teste | Linhas de código | Linhas de comentários | Integração contínua |
Características
Programas | CAD para movimento | Evitar Colisão Dinâmica | Final Effective Relative | Programação Off-Line | Controle de Streaming em Tempo Real de Hardware |
---|---|---|---|---|---|
Actina | Sim (caminhos da ferramenta) | sim | sim | sim | sim |
ARS | Desconhecido | Não | Desconhecido | Não | Não |
Gazebo | Desconhecido | sim | sim | sim | sim |
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 | sim | sim | sim | sim |
4DV-Sim | Desconhecido | Não | Desconhecido | Não | Não |
OpenRAVE | Desconhecido | Não | Desconhecido | Não | Não |
Programas | CAD para movimento | Evitar Colisão Dinâmica | Final Effective Relative | Programação Off-line | Controle de Streaming em Tempo Real |
Famílias de robôs
Programas | UGV (robô móvel terrestre) | UAV (robôs aéreos) | AUV (robôs subaquáticos) | Braços robóticos | Mãos robóticas (agarrando a simulação) | Robôs humanóides | Avatares humanos | Lista completa |
---|---|---|---|---|---|---|---|---|
Actina | Sim (pode incluir manipuladores) | Sim (pode incluir manipuladores) | Sim (pode incluir manipuladores) | sim | sim | sim | sim | |
ARS | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | |
Gazebo | sim | sim | sim | sim | sim | sim | sim | |
MORSE | sim | sim | Parcial | Alguns | Não | Não | sim | |
OpenHRP | sim | Não | Não | sim | sim | sim | sim | |
RoboDK | Não | Não | Não | sim | Não | Não | Não | |
SimSpark | sim | Não | Não | Talvez | Talvez | sim | Não | |
V-Rep | sim | sim | Não | sim | sim | sim | sim | |
Webots | sim | sim | sim | sim | sim | sim | sim | Modelos de robôs da Webots |
4DV-Sim | sim | sim | Não | sim | Talvez | Não | sim | |
OpenRAVE | sim | Desconhecido | Desconhecido | sim | sim | sim | sim | |
Programas | UGV (robô móvel terrestre) | UAV (robôs aéreos) | AUV (robôs subaquáticos) | Braços robóticos | Mãos robóticas (agarrando a simulação) | Robôs humanóides | Avatares humanos | Lista completa |
Atuadores suportados
Programas | Correntes cinemáticas genéricas | Movimento controlado por força | Lista completa | Cadeias Cinemáticas Circulares | Cadeias cinematicamente redundantes | Cadeias cinemáticas bifurcadas |
---|---|---|---|---|---|---|
Actina | sim | sim | Restrições de movimento | sim | sim | sim |
ARS | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | |
Gazebo | sim | sim | sim | sim | sim | |
MORSE | sim | sim | Atuadores MORSE | Desconhecido | Desconhecido | Desconhecido |
OpenHRP | sim | sim | Desconhecido | Desconhecido | Desconhecido | |
RoboDK | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | |
SimSpark | sim | Não | Simspark effectors | Desconhecido | Desconhecido | Desconhecido |
V-Rep | sim | sim | Desconhecido | Desconhecido | Desconhecido | |
Webots | sim | sim | Atuadores Webots | sim | sim | sim |
4DV-Sim | sim | sim | Desconhecido | Desconhecido | Desconhecido | |
OpenRAVE | sim | sim | Juntas, Atuadores Extra | sim | sim | sim |
Programas | Correntes cinemáticas genéricas | Movimento controlado por força | Lista completa | Cadeias Cinemáticas Circulares | Cadeias cinematicamente redundantes | Cadeias cinemáticas bifurcadas |
Sensores suportados
Programas | Odometria | IMU | Colisão | GPS | Câmeras monoculares | Câmeras estéreo | Câmeras de profundidade | Câmeras omnidirecionais | Scanners a laser 2D | Scanners a laser 3D | Lista completa |
---|---|---|---|---|---|---|---|---|---|---|---|
Actina | sim | sim | sim | Desconhecido | sim | sim | sim | sim | sim | sim | |
ARS | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | |
AUTOMAPPPS | Desconhecido | Desconhecido | Desconhecido | Desconhecido | sim | sim | sim | Desconhecido | sim | sim | |
Gazebo | sim | sim | sim | sim | sim | sim | sim | sim | sim | sim | |
MORSE | sim | sim | sim | sim | sim | Desconhecido | sim | Desconhecido | sim | sim | Sensores MORSE |
OpenHRP | Desconhecido | sim | sim | Desconhecido | sim | Desconhecido | sim | Desconhecido | sim | sim | Sensores OpenHRP |
RoboDK | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | Desconhecido | |
SimSpark | sim | sim | sim | Parcial | sim | Parcial | Desconhecido | Desconhecido | Não | Não | Perceptores do SimSpark |
V-Rep | Desconhecido | sim | sim | sim | sim | sim | sim | Desconhecido | sim | sim | |
Webots | sim | sim | sim | sim | sim | sim | sim | sim | sim | sim | Sensores Webots |
4DV-Sim | sim | sim | sim | sim | sim | sim | sim | sim | sim | sim | |
OpenRAVE | sim | sim | sim | sim | sim | sim | sim | Desconhecido | sim | sim | |
Programas | Odometria | IMU | Colisão | GPS | Câmeras monoculares | Câmeras estéreo | Câmeras de profundidade | Câmeras omnidirecionais | Scanners a laser 2D | Scanners a laser 3D | Lista completa |
Outros simuladores
Open source simulators
breve: um simulador multi-agente do mundo 3D em Python.
EZPhysics: Combinação de física Ogre3D e ODE, a GUI expõe todos os dados de objetos do ODE, controle remoto de loop fechado de rede opcionalmente via Matlab / Simulink.
Khepera Simulator um simulador de código aberto do Windows para o robô Khepera anterior Webots.
Klamp’t: um simulador introduzido em 2013 especializado em contato estável trimesh-trimesh. Suporta locomoção e manipulação legged.
LpzRobots: um simulador robótico de física 3D desenvolvido na Universidade de Leipzig.
miniBloq: Este software de programação de robôs para placas Arduino tem um novo simulador.
Moby: uma biblioteca dinâmica de corpo rígido escrita em C ++.
OpenSim Simulator para robôs articulados e com rodas com uma ampla gama de características. Mais desenvolvimento parou no ano de 2006.
Robotics Toolbox para MATLAB é Software Livre que fornece funcionalidade para representar pose (transformações homogêneas, Euler e RPY ângulos, quaternions), robôs de braço (cinemática direta / inversa, dinâmica, simulação, animação) e robôs móveis (controle, localização, planejamento e animação).
ARTE A Robotics Toolbox for Education (ARTE) é uma ferramenta educacional de software livre baseada no Matlab. Ele fornece funções para representar posição e orientação. Também inclui funções para simular braços robóticos (cinemática direta / inversa, dinâmica, planejamento de caminhos e mais). A caixa de ferramentas inclui um grande conjunto de modelos robóticos 3D que podem ser visualizados e simulados dentro de uma célula robótica.
Simbad 3d Robot Simulator Simulador baseado em Java
SimRobot: Um pacote de software de simulador de robô desenvolvido na Universität Bremen e no Centro Alemão de Pesquisa de Inteligência Artificial.
Estágio: simulador 2.5D usado com o Player para formar o sistema Player / Stage. Parte do Projeto Player
STDR Simulator Um simulador multi-robô 2D simples, flexível e escalável para uso dentro do Sistema Operacional Robot.
UCHILSIM: Um simulador baseado em física para Robôs AIBO introduzido no RoboCup 2004.
UWSim: um Simulador de Underwater para pesquisa e desenvolvimento de robótica marinha que incorpora simulação de sensor, dinâmica e física.
Simuladores de código fechado e proprietários
anyKode Marilou
ORCA-Sim: um simulador de robô 3D (Windows) usando o mecanismo de física Newton Game Dynamics.