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.