Simulateur robotique

Un simulateur robotique est utilisé pour créer une application pour un robot physique sans dépendre de la machine réelle, ce qui permet de gagner du temps et de l’argent. Dans certains cas, ces applications peuvent être transférées sur le robot physique (ou reconstruites) sans modifications.

Le terme simulateur de robotique peut désigner plusieurs applications de simulation robotique différentes. Par exemple, dans les applications de robotique mobile, les simulateurs de robotique basés sur le comportement permettent aux utilisateurs de créer des mondes simples d’objets rigides et de sources de lumière et de programmer des robots pour interagir avec ces mondes. La simulation basée sur le comportement permet des actions de nature plus biologique par rapport aux simulateurs plus binaires ou informatiques. De plus, les simulateurs comportementaux peuvent « apprendre » des erreurs et sont capables de démontrer la qualité anthropomorphique de la ténacité.

L’une des applications les plus courantes des simulateurs de robotique est la modélisation 3D et le rendu d’un robot et de son environnement. Ce type de logiciel de robotique comporte un simulateur qui est un robot virtuel, capable d’émuler le mouvement d’un robot réel dans une enveloppe de travail réelle. Certains simulateurs de robotique utilisent un moteur physique pour une génération de mouvement plus réaliste du robot. L’utilisation d’un simulateur robotique pour le développement d’un programme de contrôle robotique est fortement recommandée, qu’un robot soit disponible ou non. Le simulateur permet aux programmes de robotique d’être écrits et débogués hors ligne de manière pratique avec la version finale du programme testée sur un robot réel. Ceci concerne principalement les applications robotiques industrielles uniquement,

Les actions de robot basées sur des capteurs sont beaucoup plus difficiles à simuler et / ou à programmer hors ligne, car le mouvement du robot dépend des lectures instantanées des capteurs dans le monde réel.

Caractéristiques
Les simulateurs modernes ont tendance à fournir les caractéristiques suivantes:

Prototypage rapide de robots
Utilisation de son propre simulateur comme outil de création (Plateforme d’expérimentation de robot virtuel, Webots, R-Station, Marilou, 4DV-Sim).
Utiliser des outils externes.
Moteurs physiques pour des mouvements réalistes. La plupart des simulateurs utilisent ODE (Gazebo, LpzRobots, Marilou, Webots) ou PhysX (Microsoft Robotics Studio, 4DV-Sim).
Rendu 3d réaliste. Des outils de modélisation 3D standard ou des outils tiers peuvent être utilisés pour créer les environnements.
Corps de robot dynamiques avec script. Langages C, C ++, Perl, Python, Java, URBI, MATLAB utilisés par Webots, Python utilisés par Gazebo.

Simulateurs
Parmi les technologies les plus récentes disponibles pour la programmation figurent celles qui utilisent une simulation virtuelle. Les simulations avec l’utilisation de modèles virtuels de l’environnement de travail et des robots eux-mêmes peuvent offrir des avantages à la fois à l’entreprise et au programmeur. En utilisant une simulation, les coûts sont réduits et les robots peuvent être programmés hors ligne, ce qui supprime tout temps d’arrêt pour une chaîne de montage. Les actions de robot et les pièces d’assemblage peuvent être visualisées dans un environnement virtuel en 3 dimensions plusieurs mois avant même la production des prototypes. L’écriture de code pour une simulation est également plus facile que d’écrire pour un robot physique. Bien que le passage aux simulations virtuelles pour les robots de programmation représente un pas en avant dans la conception d’interface utilisateur, beaucoup de ces applications n’en sont qu’à leurs balbutiements.

informations générales

Logiciel Développeurs État de développement Licence Moteur de rendu 3D Moteur physique Modeleur 3D Plateformes supportées
Actin Technologies Energid actif Propriétaire OpenGL Propriétaire Propriétaire Windows, macOS, Linux, RTLinux, VxWorks, RTOS-32 et RTX. (QNX Prévu)
ARS RAL Inactif BSD VTK ODE Aucun Linux, MacOS, Windows
AUTOMAPPPS Convergent Information Technologies GmbH actif Propriétaire OpenGL inconnu Interne Linux, Windows
Belvédère Open Source Robotics Foundation (OSRF) actif Apache 2.0 OGRE ODE / Bullet / Simbody / DART Interne Linux
MORSE Communauté académique actif BSD Moteur de jeu Blender Balle Mixeur Linux, BSD *, macOS
OpenHRP AIST actif Éclipse Java3D ODE / interne Interne Linux, Windows
RoboDK RoboDK actif Propriétaire OpenGL aucun Interne Linux, Mac OS, Windows, Android
SimSpark O. Obst et al. (+26) actif GNU GPL (v2) Interne ODE Aucun Linux, MacOS, Windows
V-Rep Coppelia Robotics actif Propriétaire / GNU GPL Interne ODE / Bullet / Vortex / Newton Interne Linux, MacOS, Windows
Webots Cyberbotics Ltd. actif Propriétaire Propriétaire Propriétaire(basé sur ODE) Propriétaire Linux, MacOS, Windows
4DV-Sim 4D Virtualiz actif Propriétaire OGRE PhysX Interne Linux
OpenRAVE Communauté OpenRAVE actif GNU LGPL Coin3D / OpenSceneGraph ODE / Bullet Interne Linux, MacOS, Windows
Logiciel Développeurs État de développement Licence Moteur de rendu 3D Moteur physique Modeleur 3D Plateformes supportées

Informations techniques

Logiciel Langage de programmation principal Prise en charge des formats Extensibilité API externes Prise en charge de middleware robotique Interface utilisateur principale Simulation sans tête
Actin C ++ SLDPRT, SLDASM, PAS, OBJ, STL, 3DS, Collada, VRML, URDF, XML, ECD, ECP, ECW, ECX, ECZ, Plugins (C ++), API Inconnu ROS Interface graphique Oui (ActinRT)
ARS Python Inconnu Python Inconnu Aucun Inconnu Inconnu
AUTOMAPPPS C ++, Python STEP, IGES, STL Plugins (C), API XML, C Prise Interface graphique Oui
Belvédère C ++ SDF / URDF, OBJ, STL, Collada Plugins (C ++) C ++ ROS, Player, Sockets (messages protobuf) Interface graphique Oui
MORSE Python Inconnu Python Python Douilles, YARP, ROS, Pocolibs, MOOS Ligne de commande Oui
OpenHRP C ++ VRML Plugins (C ++), API C / C ++, Python, Java OpenRTM-aist Interface graphique Inconnu
RoboDK Python STEP, IGES, STL, WRML Plugins (C ++), API C / C ++, Python, Matlab Prise Interface graphique Inconnu
SimSpark C ++, Ruby Ruby Scene Graphs Mods (C ++) Réseau (sexpr) Sockets (sexpr) GUI, Sockets Inconnu
V-Rep LUA OBJ, STL, DXF, 3DS, Collada, URDF API, Add-ons, Plugins C / C ++, Python, Java, Urbi, Matlab / Octave Douilles, ROS Interface graphique Oui
Webots C ++ WBT, VRML, X3D API, PROTO, Plugins (C / C ++) C, C ++, Python, Java, Matlab, ROS Douilles, ROS, NaoQI Interface graphique Oui
4DV-Sim C ++ 3DS, OBJ, Mesh Plugins (C ++), API FMI / FMU, Matlab Interfaces ROS, Sockets, Plug & Play Interface graphique Oui
OpenRAVE C ++, Python XML, VRML, OBJ, Collada Plugins (C ++), API C / C ++, Python, Matlab Douilles, ROS, YARP GUI, Sockets Oui
Logiciel Langage de programmation principal Prise en charge des formats Extensibilité API externes Support middleware robotique Interface utilisateur principale Simulation sans tête

Support d’infrastructure

Logiciel Liste de diffusion Documentation API Forum public / système d’aide Manuel utilisateur Suivi des problèmes Wiki
Actin Non Oui Non Oui Oui (interne) Non
ARS Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu
AUTOMAPPPS Oui Oui Non Oui Oui Non
Belvédère Oui Oui Oui Oui Oui Oui
MORSE Oui Oui Non Oui Oui Non
OpenHRP Oui Oui Non Oui Oui Non
RoboDK Oui Oui Non Oui Non Non
SimSpark Oui Oui Non Oui Oui Oui
V-Rep Non Oui Oui Oui Inconnu Non
Webots Non Oui Oui Oui Oui Oui
4DV-Sim Oui Non Oui Oui Oui Non
OpenRAVE Oui Oui Oui Oui Oui Oui
Logiciel Liste de diffusion Documentation API Forum public / système d’aide Manuel utilisateur Suivi des problèmes Wiki

Qualité du code

Logiciel Vérificateur de code statique Vérificateur de style Système de test Couverture de la fonction de test Couverture de test Lignes de code Lignes de commentaires Intégration continue
Actin Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Jenkins
ARS Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu
AUTOMAPPPS Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu
Belvédère cppcheck cpplint gtest et test 46,1% 34,3% 190,7k 60,45k Jenkins
MORSE N / A pylint Unittests en python Inconnu Inconnu 31,4k 9,0k Jenkins, Travis
OpenHRP Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu
RoboDK Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu
SimSpark Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu
V-Rep Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu
Webots Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu
4DV-Sim Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu
OpenRAVE Inconnu Inconnu Nez de python Inconnu Inconnu Inconnu Inconnu Jenkins
Logiciel Vérificateur de code statique Vérificateur de style Système de test Couverture de la fonction de test Couverture de test Lignes de code Lignes de commentaires Intégration continue

Caractéristiques

Logiciel CAD to Motion Évitement dynamique des collisions Effecteurs relatifs Programmation hors ligne Streaming en temps réel du matériel
Actin Oui (chemins d’outils) Oui Oui Oui Oui
ARS Inconnu Non Inconnu Non Non
Belvédère Inconnu Oui Oui Oui Oui
MORSE Inconnu Non Inconnu Non Non
OpenHRP Inconnu Non Inconnu Non Non
RoboDK Inconnu Non Inconnu Oui Non
SimSpark Inconnu Non Inconnu Non Non
V-Rep Inconnu Non Inconnu Non Non
Webots Inconnu Oui Oui Oui Oui
4DV-Sim Inconnu Non Inconnu Non Non
OpenRAVE Inconnu Non Inconnu Non Non
Logiciel CAD to Motion Évitement dynamique des collisions Effecteurs relatifs Programmation hors ligne Contrôle de la diffusion en temps réel

Familles de robots

Logiciel UGV (robot mobile terrestre) UAV (robots aériens) AUV (robots sous-marins) Bras robotique Mains robotiques (simulation de saisie) Robots humanoïdes Avatars humains Liste complète
Actin Oui (peut inclure des manipulateurs) Oui (peut inclure des manipulateurs) Oui (peut inclure des manipulateurs) Oui Oui Oui Oui
ARS Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu
Belvédère Oui Oui Oui Oui Oui Oui Oui
MORSE Oui Oui Partiel Certains Non Non Oui
OpenHRP Oui Non Non Oui Oui Oui Oui
RoboDK Non Non Non Oui Non Non Non
SimSpark Oui Non Non Peut être Peut être Oui Non
V-Rep Oui Oui Non Oui Oui Oui Oui
Webots Oui Oui Oui Oui Oui Oui Oui Modèles de robot Webots
4DV-Sim Oui Oui Non Oui Peut être Non Oui
OpenRAVE Oui Inconnu Inconnu Oui Oui Oui Oui
Logiciel UGV (robot mobile terrestre) UAV (robots aériens) AUV (robots sous-marins) Bras robotique Mains robotiques (simulation de saisie) Robots humanoïdes Avatars humains Liste complète

Actionneurs supportés

Logiciel Chaînes cinématiques génériques Mouvement contrôlé par la force Liste complète Chaînes cinématiques circulaires Chaînes cinématiquement redondantes Chaînes cinématiques bifurquées
Actin Oui Oui Contraintes de mouvement Oui Oui Oui
ARS Inconnu Inconnu Inconnu Inconnu Inconnu
Belvédère Oui Oui Oui Oui Oui
MORSE Oui Oui Actionneurs MORSE Inconnu Inconnu Inconnu
OpenHRP Oui Oui Inconnu Inconnu Inconnu
RoboDK Inconnu Inconnu Inconnu Inconnu Inconnu
SimSpark Oui Non Effecteurs SimSpark Inconnu Inconnu Inconnu
V-Rep Oui Oui Inconnu Inconnu Inconnu
Webots Oui Oui Actionneurs Webots Oui Oui Oui
4DV-Sim Oui Oui Inconnu Inconnu Inconnu
OpenRAVE Oui Oui Joints, actionneurs supplémentaires Oui Oui Oui
Logiciel Chaînes cinématiques génériques Mouvement contrôlé par la force Liste complète Chaînes cinématiques circulaires Chaînes cinématiquement redondantes Chaînes cinématiques bifurquées

Capteurs pris en charge

Logiciel Odomètre IMU Collision GPS Caméras monoculaires Caméras stéréo Caméras de profondeur Caméras omnidirectionnelles Scanners laser 2D Scanners laser 3D Liste complète
Actin Oui Oui Oui Inconnu Oui Oui Oui Oui Oui Oui
ARS Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu
AUTOMAPPPS Inconnu Inconnu Inconnu Inconnu Oui Oui Oui Inconnu Oui Oui
Belvédère Oui Oui Oui Oui Oui Oui Oui Oui Oui Oui
MORSE Oui Oui Oui Oui Oui Inconnu Oui Inconnu Oui Oui Capteurs MORSE
OpenHRP Inconnu Oui Oui Inconnu Oui Inconnu Oui Inconnu Oui Oui Capteurs OpenHRP
RoboDK Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu
SimSpark Oui Oui Oui Partiel Oui Partiel Inconnu Inconnu Non Non Percepteurs SimSpark
V-Rep Inconnu Oui Oui Oui Oui Oui Oui Inconnu Oui Oui
Webots Oui Oui Oui Oui Oui Oui Oui Oui Oui Oui Capteurs Webots
4DV-Sim Oui Oui Oui Oui Oui Oui Oui Oui Oui Oui
OpenRAVE Oui Oui Oui Oui Oui Oui Oui Inconnu Oui Oui
Logiciel Odomètre IMU Collision GPS Caméras monoculaires Caméras stéréo Caméras de profondeur Caméras omnidirectionnelles Scanners laser 2D Scanners laser 3D Liste complète

Autres simulateurs

Les simulateurs à code source ouvert sont un simulateur
multi-agents en 3D de Python.
EZPhysics: Combinaison de la physique Ogre3D et ODE, l’interface graphique expose toutes les données des objets ODE, ainsi qu’une commande à distance en boucle fermée via Matlab / Simulink.
Khepera Simulator est un simulateur Windows open source pour le robot Khepera, antérieur à Webots.
Klamp’t: un simulateur lancé en 2013 et spécialisé dans le contact trimesh-trimesh stable. Soutient la locomotion et la manipulation à jambes.
LpzRobots: simulateur de robot 3D-physique développé à l’Université de Leipzig.
miniBloq: ce logiciel de programmation de robot pour cartes Arduino a un nouveau simulateur.
Moby: une bibliothèque de dynamiques de corps rigide écrite en C ++.
OpenSim Simulator pour les robots articulés et à roues avec une large gamme de caractéristiques. Le développement a été arrêté en 2006.
Robotics Toolbox for MATLAB est un logiciel libre qui fournit des fonctionnalités pour la représentation de la pose (transformations homogènes, angles d’Euler et RPY, quaternions), des robots à bras (cinématique inversée, dynamique, simulation, animation) et des robots mobiles (contrôle, localisation, planification et animation).
ARTE A ARTE (Robotics Toolbox for Education) est un outil éducatif basé sur le logiciel libre basé sur Matlab. Il fournit des fonctions pour représenter la position et l’orientation. Elle inclut également des fonctions permettant de simuler des bras robotiques (cinématique directe / inverse, dynamique, planification de trajectoire, etc.). La boîte à outils comprend un vaste ensemble de modèles robotiques 3D pouvant être visualisés et simulés dans une cellule robotique.
Simbad 3d Robot Simulator Simulateur basé sur Java
SimRobot: Un logiciel de simulation de robot développé par l’Université de Brême et le Centre allemand de recherche en intelligence artificielle.
Stage: Le simulateur 2.5D est souvent utilisé avec Player pour former le système Player / Stage. Une partie du projet de joueur
Simulateur STDR Simulateur multi-robot 2D simple, flexible et évolutif à utiliser dans le système d’exploitation Robot.
UCHILSIM: un simulateur basé sur la physique pour AIBO Robots présenté dans RoboCup 2004.
UWSim: un simulateur UnderWater pour la recherche et le développement en robotique marine intégrant des simulations de capteurs, dynamiques et physiques.

Simulateurs propriétaires et
fermés anyKode Marilou
ORCA-Sim: simulateur de robot 3D (Windows) utilisant le moteur physique Newton Game Dynamics.