Simulateur robotique - Robotics simulator

Un simulateur de robotique est un simulateur utilisé pour créer une application pour un robot physique sans dépendre de la machine réelle, économisant ainsi du temps et des coûts. Dans certains cas, ces applications peuvent être transférées sur le robot physique (ou reconstruites) sans modifications.

Le terme simulateur robotique peut faire référence à plusieurs applications de simulation robotique différentes. Par exemple, dans les applications de robotique mobile , les simulateurs robotiques basés sur le comportement permettent aux utilisateurs de créer des mondes simples d'objets rigides et de sources lumineuses 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 basés sur le comportement peuvent « apprendre » des erreurs et sont capables de démontrer la qualité anthropomorphique de la ténacité.

Image
Simulateur robotique Robologix .

L'une des applications les plus populaires pour les simulateurs robotiques est la modélisation 3D et le rendu d'un robot et de son environnement. Ce type de logiciel de robotique possède 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 réel soit disponible ou non. Le simulateur permet d'écrire et de déboguer facilement des programmes robotiques hors ligne avec la version finale du programme testée sur un robot réel. Cela vaut principalement pour les applications robotiques industrielles uniquement, car le succès de la programmation hors ligne dépend de la similitude de l'environnement réel du robot avec l'environnement simulé.

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 fonctionnalités suivantes :

  • Prototypage rapide de robots
    • Utilisation du propre simulateur comme outil de création.
    • Utilisation d'outils externes.
  • Moteurs physiques pour des mouvements réalistes. La plupart des simulateurs utilisent Bullet , ODE ou PhysX .
  • 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 dynamique avec scripts. Langages C , C++ , Perl , Python , Java , URBI , MATLAB utilisés par Webots, Python utilisé par Gazebo.

Simulateurs

Parmi les technologies les plus récentes disponibles aujourd'hui pour la programmation, il y a 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 élimine tout temps d'arrêt pour une chaîne de montage. Les actions du robot et les pièces d'assemblage peuvent être visualisées dans un environnement virtuel en 3 dimensions des mois avant même que les prototypes ne soient produits. Écrire du code pour une simulation est également plus facile que d'écrire du code pour un robot physique. Alors que l'évolution vers des simulations virtuelles pour la programmation de robots est un pas en avant dans la conception d'interfaces utilisateur, de nombreuses applications de ce type n'en sont qu'à leurs balbutiements.

informations générales

Logiciel Développeurs Statut de développement Licence Moteur de rendu 3D Moteur physique modeleur 3D Plateformes prises en charge
Belvédère Fondation Robotique Open Source (OSRF) actif Apache 2.0 OGRE ODE / Bullet / Simbody / DART Interne Linux, macOS, Windows
RoboDK RoboDK actif Propriétaire OpenGL Plugin de gravité Interne Linux, macOS, Windows, Android, iOS, Debian
SimSpark O. Obst et al. (+26) actif GNU GPL (v2) Interne ODE Rien Linux, macOS, Windows
Webots Cyberbotics Ltd. actif Apache 2.0 Interne (WREN) Fourche d'ODE Interne Linux, macOS, Windows
OuvrirRAVE Communauté OpenRAVE actif GNU LGPL Coin3D / OpenSceneGraph ODE / Balle Interne Linux, macOS, Windows
CoppéliaSim Coppélia Robotique actif Double : Commerciale / GNU GPL Interne Bullet / ODE / Vortex / Newton Game Dynamics Interne Linux, macOS, Windows
Logiciel Développeurs Statut de développement Licence Moteur de rendu 3D Moteur physique modeleur 3D Plateformes prises en charge

Informations techniques

Logiciel Langage de programmation principal Prise en charge des formats Extensibilité API externes Prise en charge de l' intergiciel de robotique Interface utilisateur principale Simulation sans tête
Belvédère C++ SDF/URDF, OBJ , STL , Collada Plugins (C++) C++ ROS, Player, Sockets (messages protobuf) IHM graphique Oui
RoboDK Python SLDPRT , SLDASM , STEP , OBJ , STL , 3DS , Collada , VRML , URDF , Rhinoceros_3D , ... API, interface de plug-in Python, C/C++, C#, Matlab, ... Prise IHM graphique Inconnu
SimSpark C++, Rubis Graphiques de scène Ruby Mods (C++) Réseau ( sexpr ) Prises ( sexpr ) GUI, Prises Inconnu
Webots C++ WBT, VRML , X3D , 3DS , Blender , BVH , Collada , FBX , STL , OBJ , URDF API, PROTO, Plugins (C/C++) C, C++, Python, Java, Matlab, ROS Prises, ROS, NaoQI IHM graphique Oui
OuvrirRAVE C++, Python XML , VRML , OBJ , Collada Plugins (C++), API C/C++, Python, Matlab Douilles, ROS, YARP GUI, Prises Oui
CoppéliaSim C++, Lua 3DS , Blender , Collada , STL , OBJ , URDF, SDF, GLTF, XML Plugins (C/C++), Scripts embarqués (Lua), API distante (C, C++, Python, Java, MATLAB, Octave), Add-ons (Lua) C, C++, Python, Java, MATLAB, Octave, ROS, ROS 2.0 Prises, ROS, ROS 2.0, ZeroMQ IHM graphique Oui
Logiciel Langage de programmation principal Prise en charge des formats Extensibilité API externes Prise en charge du middleware robotique Interface utilisateur principale Simulation sans tête

Infrastructure

Soutien

Logiciel Liste de diffusion Documentation API Forum public/Système d'aide Manuel de l'Utilisateur Traqueur d'incidents Wiki Discuter
Belvédère Oui Oui Oui Oui Oui Non
RoboDK Oui Oui Oui Oui Oui Non Inconnu
SimSpark Oui Oui Non Oui Oui Oui Inconnu
Webots Non Oui Non Oui Oui Oui Oui
OuvrirRAVE Oui Oui Oui Oui Oui Oui Inconnu
CoppéliaSim Non Oui Oui Oui Oui Inconnu Non
Logiciel Liste de diffusion Documentation API Forum public/Système d'aide Manuel de l'Utilisateur Traqueur d'incidents Wiki

Qualité du code

Logiciel Vérificateur de code statique Vérificateur de style Système(s) de test Couverture de la fonction de test Couverture de la branche de test Lignes de code Lignes de commentaires Intégration continue
Belvédère cppcheck cpplin gtest et qtest 77,0% 53,3% 320k 106k Jenkins
RoboDK Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu
SimSpark Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu
Webots cppcheck format-clang tests unitaires 100% des fonctions API maîtriser, développer ~200k ~50k Travis, AppVeyor, GitGuardian, GitHub Actions
OuvrirRAVE Inconnu Inconnu Nez de python Inconnu Inconnu Inconnu Inconnu Jenkins
CoppéliaSim Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu
Logiciel Vérificateur de code statique Vérificateur de style Système(s) de test Couverture de la fonction de test Couverture de la branche de test Lignes de code Lignes de commentaires Intégration continue

Caractéristiques

Logiciel CAO vers Motion Évitement dynamique des collisions Effecteurs d'extrémité relatifs Programmation hors ligne Contrôle de streaming en temps réel du matériel
Belvédère Inconnu Oui Oui Oui Oui
RoboDK Oui Oui Oui Oui Oui
SimSpark Inconnu Non Inconnu Non Non
Webots Inconnu Oui Oui Oui Oui
OuvrirRAVE Inconnu Non Inconnu Non Non
CoppéliaSim Inconnu Oui Oui Oui Oui
Logiciel CAO vers Motion Évitement dynamique des collisions Effecteurs d'extrémité relatifs Programmation hors ligne Contrôle du streaming en temps réel

Familles de robots

Logiciel UGV (robot mobile terrestre) UAV (robots aériens) AUV (robots sous-marins) Bras robotisés Mains robotisées (simulation de préhension) Robots humanoïdes Avatars humains Liste complète
Belvédère Oui Oui Oui Oui Oui Oui Oui
RoboDK Non Non Non Oui Non Non Non Oui
SimSpark Oui Non Non Peut-être Peut-être Oui Non
Webots Oui Oui Oui Oui Oui Oui Oui Oui
OuvrirRAVE Oui Inconnu Inconnu Oui Oui Oui Oui
CoppéliaSim Oui Oui Oui Oui Oui Oui Oui Oui
Logiciel UGV (robot mobile terrestre) UAV (robots aériens) AUV (robots sous-marins) Bras robotisés Mains robotisées (simulation de préhension) Robots humanoïdes Avatars humains Liste complète

Actionneurs pris en charge

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
Belvédère Oui Oui Oui Oui Oui
RoboDK Inconnu Inconnu Inconnu Inconnu Inconnu
SimSpark Oui Non Effecteurs SimSpark Inconnu Inconnu Inconnu
Webots Oui Oui Actionneurs Webots Oui Oui Oui
OuvrirRAVE Oui Oui Joints , Actionneurs supplémentaires Oui Oui Oui
CoppéliaSim Oui Oui 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étrie 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
Belvédère Oui Oui Oui Oui Oui Oui Oui Oui Oui Oui
RoboDK Inconnu Inconnu Inconnu Inconnu Inconnu Oui Oui Oui Oui Oui
SimSpark Oui Oui Oui Partiel Oui Partiel Inconnu Inconnu Non Non Percepteurs SimSpark
Webots Oui Oui Oui Oui Oui Oui Oui Oui Oui Oui Capteurs Webots
OuvrirRAVE Oui Oui Oui Oui Oui Oui Oui Inconnu Oui Oui
CoppéliaSim Oui Oui Oui Oui Oui Oui Oui Oui Oui Oui
Logiciel Odométrie 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

Les références

Liens externes