V-REP est une plateforme flexible et évolutive pour le robomodeling. Suite de l'article

image
Je vous présente la traduction de la deuxième partie de l'article, dont nous avons déjà publié la première partie, elle se trouve ici .
Dans la première partie, nous nous sommes familiarisés avec l'environnement de modélisation V-REP, avons examiné les méthodes de contrôle de la modélisation et les possibilités d'implémenter V-REP dans la modélisation.
Nous allons maintenant étudier les fonctions de modélisation dans V-REP et considérer plusieurs exemples d'utilisation de la plate-forme V-REP.

Fonctions de modélisation
V-REP V-REP est développé sur la base d'une architecture universelle et ne possède pas de module principal ou central. Au lieu de cela, V-REP se compose de groupes fonctionnels relativement séparés qui peuvent être activés ou désactivés selon les besoins.

Imaginez un scénario de simulation dans lequel un robot industriel doit ramasser des boîtes et les déplacer vers un autre emplacement. V-REP calcule la dynamique de capture et de maintien de la boîte, et pour d'autres parties du cycle, lorsque les effets dynamiques sont négligeables, effectue une modélisation cinématique. Cette approche vous permet de calculer les mouvements d'un robot industriel rapidement et avec précision, ce qui ne fonctionnerait pas en cas de simulation complète à l'aide de bibliothèques dynamiques complexes. L'utilisation d'une telle simulation hybride est justifiée lorsque le robot est fixé rigidement et n'est pas sous l'influence de l'environnement.

En plus de l'inclusion sélective adaptative de diverses fonctionnalités, V-REP peut les utiliser ensemble, forçant l'une à interagir avec une autre. Par exemple, lors de la modélisation d'un robot humanoïde, V-REP peut traiter les mouvements des jambes de la manière suivante: tout d'abord, la cinématique inverse pour chaque jambe est calculée (c'est-à-dire que la position totale de la jambe entière est calculée à partir de la position et de l'orientation du pied souhaitées); puis les positions des articulations sont calculées comme cibles pour le module dynamique. Cela vous permet de définir les mouvements humanoïdes de manière très universelle, car pour chaque jambe un mouvement de répétition du chemin à 6 dimensions sera attribué: les calculs restants sont effectués automatiquement.

La fonctionnalité fait référence à des objets de script spécifiques ou à des modules de calcul spécifiques, chacun étant décrit ci-dessous.

Objets de simulation .

Les modèles de simulation V-REP contiennent plusieurs objets ou éléments qui sont assemblés dans une hiérarchie arborescente. Les scènes de simulation suivantes sont prises en charge par V-REP:

• Articulations : éléments qui relient deux ou plusieurs objets de scène ensemble, offrant un à trois degrés de liberté (prismatique, rotationnel, hélicoïdal ou sphérique). Ils peuvent fonctionner dans différents modes (par exemple, en mode puissance / rotation, cinématique inverse, etc.)

• Formes : maillages polygonaux triangulaires utilisés pour la modélisation et la visualisation d'un corps solide.

• Capteurs sans contact (figure 3): Ils calculent la distance minimale exacte à la partie de la figure qui se trouve dans la plage de détection. Cela fournit une simulation continue et plus réaliste que la détection basée sur un grand nombre de rayons directionnels.

• Capteurs visuels: les capteurs visuels vous permettent d'extraire des images et des informations complexes des scènes de modélisation (couleurs, taille des objets, profondeur de la carte, etc.). La fonction de filtrage et de traitement d'image intégrée lance un bloc d'éléments filtrants. Les capteurs visuels utilisent l'accélération matérielle pour obtenir des images RAW (prise en charge OpenGL).

• Capteurs de force: ce sont des liens solides entre les chiffres qui peuvent enregistrer les forces et les couples appliqués, et qui peuvent se décomposer lorsqu'un seuil donné est dépassé.

• Graphiques : les graphiques peuvent enregistrer une grande variété de flux de données prédéfinis ou utilisateur. Les flux de données peuvent ensuite être affichés directement (graphique temporel d'un type de données donné), ou en combinaison les uns avec les autres pour afficher des graphiques X / Y ou des courbes 3D.

• Caméras : elles vous permettent de visualiser des scènes qui dépendent du point de vue.

• Éclairage : illumine la scène ou des objets individuels de la scène et affecte les caméras ou les capteurs visuels.

• Façons: ils déterminent un mouvement complexe dans l'espace (une séquence de traductions, rotations et / ou pauses librement combinées), et sont utilisés, par exemple, pour diriger la torche de soudage du robot le long d'un chemin donné, ou vous permettent de spécifier le mouvement de la bande transporteuse.

• Points matériels : il s'agit de référentiels auxiliaires pouvant être utilisés pour différentes tâches. Principalement utilisé en combinaison avec d'autres objets de la scène.

• Fraises : peuvent être utilisées pour imiter la surface des opérations de découpe sur le formulaire (par exemple, fraisage, découpe laser, etc.).



Modules de calcul

Les objets de simulation sont rarement utilisés indépendamment, ils fonctionnent plutôt sur ou en conjonction avec d'autres objets (par exemple, le capteur de proximité détecte les formes). De plus, V-REP propose plusieurs modules de calcul pouvant fonctionner directement sur une ou plusieurs scènes de simulation. Voici les principaux modules de calcul:

• Module cinématique : permet d'effectuer des calculs cinématiques (directs et inverses) pour tout type de mécanisme (ramifié, fermé, redondant, contenant des boucles imbriquées, etc.). Le module est basé sur le calcul des moindres carrés de décoloration.

• Module dynamique: permet d'ajuster la dynamique du calcul des solides et des interactions (collision, adhérence, etc.) à l'aide de la bibliothèque de physique de balle et d'Open Dynamics Engine. Les simulations de systèmes dynamiques en sont encore au stade initial et reposent souvent sur des indicateurs approximatifs. Pour confirmer les résultats, il est important de s'appuyer non seulement sur un moteur physique.

• Module de détection de collision: permet de vérifier rapidement les collisions entre n'importe quelle forme ou un ensemble de formes. Ce module est totalement indépendant de la réponse des algorithmes de calcul de la dynamique du module. Les structures de données basées sur l'arbre binaire des boîtes rectangulaires sont utilisées pour l'accélération. Une optimisation supplémentaire est obtenue grâce aux techniques de mise en cache.

•Module de calcul de distance (module Mech-mech) : permet de minimiser rapidement la distance de calcul entre n'importe quelle forme (convexe, concave, ouverte, fermée, etc.) ou un ensemble de formes. Le module utilise les mêmes structures de données que le module de détection de collision.

• Module de planification de mouvement : planification manuelle des tâches holonomiques et non holonomiques en utilisant une approche basée sur l'algorithme RRT (Rapidly explore Random Tree) . Les tâches de planification de chemin cinématique sont également prises en charge.

Pour plus de polyvalence, les modules ci-dessus sont mis en œuvre sous forme générale. Les objectifs de leur intégration avec V-REP sont quelque peu similaires à l'intégration des scripts intégrés, qui sont décrits dans la première partie de l'article. La grande majorité des simulations ou des modèles de simulation ne nécessitent aucun outil spécifique, un ensemble d'outils de base suffisamment bon. Si les outils sont intégrés au simulateur et que leurs tâches directement liées au modèle de simulation sont définies, le modèle devient extrêmement facilement portable. Le modèle de simulation est lancé sur une autre machine ou plate-forme à l'aide d'un fichier modèle: il n'est pas nécessaire de recompiler, d'installer ou de redémarrer le plugin. De même, cela rend les modèles très évolutifs: la duplication du modèle conserve ses fonctionnalités sans avoir à changer le code source.Le processus de duplication peut être effectué même pendant le processus de simulation.

L'approche traditionnelle de l'extension des fonctionnalités avec des plugins pour prendre en charge un modèle de simulation spécifique est également prise en charge dans V-REP.

Exemple
Dans certains cas, il est impossible d'utiliser le contrôleur séparément de l'entité simulée. En règle générale, cela se produit lorsque vous travaillez avec le contrôleur principal du robot, qui comprend des éléments très complexes. Ou lorsque le contrôleur doit s'exécuter en mode natif. Mais d'un autre côté, est-il vraiment nécessaire de créer votre propre plugin pour chaque petit capteur, nouvelle fonctionnalité supplémentaire ou petite fonction? Les trois exemples suivants illustrent la polyvalence et la portabilité attrayantes des modèles de simulation proposés dans V-REP.

1) Modèle de scanner laser

La figure 4 montre un modèle de scanner laser dans V-REP. Le modèle se compose d'un boîtier ou boîtier, d'une charnière, d'un capteur de proximité installé dans la charnière.
Le script enfant d'interruption est attaché au corps du capteur et est chargé de déplacer l'articulation à un angle donné, de lire le capteur de proximité, de générer des lignes primitives dans la scène de modélisation (et des points de contact), puis de passer à la position angulaire suivante. Étant donné que le script enfant est exécuté dans le thread principal, il traite exactement autant de positions angulaires de l'articulation que cette articulation s'est déplacée pendant la simulation.

Vous pouvez faire glisser le modèle dans la scène de simulation et il commencera à fonctionner immédiatement. L'ensemble du modèle est placé dans un fichier, également adapté à une utilisation directe sur d'autres plates-formes et est compatible avec les V-REP actuels et futurs. Un modèle peut être dupliqué autant de fois que nécessaire et son code de contrôle peut être modifié si nécessaire.

image

D'autres modèles peuvent être créés de la même manière, qu'il s'agisse d'un stylo pour la peinture, d'une buse de peinture, d'une poignée, d'une caméra de détection de tache ou d'un robot entier.

2) Modèle de simulation d'un manipulateur parallèle

La figure 5 montre un modèle d'un manipulateur parallèle contrôlé en mode cinématique direct à partir d'une application externe se connectant via une API distante. Afin de gérer correctement toutes les contraintes, le modèle fonctionne via le module cinématique V-REP. Étant donné que tous les problèmes cinématiques associés à cela sont liés à un modèle, ce modèle est autosuffisant, facilement dupliqué et fonctionne sur d'autres plates-formes. La mise à l'échelle physique du modèle, qui est une autre fonctionnalité prise en charge par V-REP, ajustera automatiquement toutes les tâches cinématiques (entre autres) et laissera la cinématique interne cohérente sans avoir besoin de changer le code.

image

3) Un modèle de simulation d'une personne intelligente

La figure 6 montre un modèle de simulation humain qui effectue les tâches de planification d'une trajectoire entre sa position actuelle et la position finale souhaitée. Alors que la tâche de planification de chemin elle-même est effectuée dans le module de planification de chemin V-REP, un script enfant attaché au modèle appelle le calcul des actions des bras et des jambes, les met en action et déplace correctement le modèle le long du chemin calculé. Dans ce cas, le modèle est également entièrement autonome et entièrement portable.

image

Conclusion

V-REP est un environnement de modélisation polyvalent et évolutif. Offrant de nombreuses techniques de programmation différentes pour les contrôleurs, ainsi que la possibilité d'intégrer des contrôleurs et des fonctions dans des modèles de simulation, il facilite la tâche des programmeurs et réduit la complexité du déploiement pour les utilisateurs.

À ce jour, V-REP est devenu un robot et un simulateur de contrôleur robuste et largement utilisé, largement utilisé dans les domaines scientifique et industriel. Il effectue une variété de tâches: de la vérification du système, l'optimisation des algorithmes, la modélisation de circuits d'assemblage complexes dans l'automatisation industrielle, à la planification des tâches pour les robots et les contrôleurs.

Auteur de l'article: marc@coppeliarobotics.com
Eric Romer, maître de conférences, Campinas State University, Brésil
Surya Singh, professeur à l'Université du Queensland, Australie
Mark Frieze, PDG de Coppelia Robotics, Suisse.

Traduction: Ales Khanieva, campus Robotnopark Navigator, Kazan.

Source: https://habr.com/ru/post/fr385725/


All Articles