Simulador de robótica

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.