Détection de collision

Cette section couvre les sujets suivants :

Comment activer la vérification de collision pendant les simulations.

Comment définir une carte de détection de collisions.

Comment activer la détection et évitement automatique de collision pour un projet d’usinage robot.

Comment créer automatiquement un programme sans collision afin de lier différentes cibles ou autres programmes utilisant un algorithme PRM.

Détection de Collision

Sélectionner OutilsCollision Avoidance - Image 1 Vérifier collisions afin d’activer ou désactiver la détection de collision. Si la détection de collision est activée, tous les programmes et mouvements robots s’arrêteront lorsqu’une collision est détectée. Tous les objets, outils et robot liés à une collision seront coloriés en rouge lorsqu’une collision est détectée.

Suivre les étapes suivantes afin de vérifier les collisions d’un programme :

1.Faire un clic droit sur un programme.

2.Sélectionner Vérifier parcours et Collisions (Shift+F5). Cette option vérifie rapidement si le parcours est faisable. (Idem que Vérifier parcours (F5)) et valide qu’il n’y a pas de collision.

Collision Avoidance - Image 2

Carte de Collision

Il est possible de spécifier si l’interaction entre une paire d’objets est vérifiée pour les collisions en sélectionnant OutilsCollision Avoidance - Image 3 Carte de Collisions (Maj+X). Cela ouvre une nouvelle fenêtre affichant toutes les relations et l’état de vérification de collision. Double-cliquer sur une cellule pour activer ou désactiver la vérification de collision pour cette relation. Sélectionner Sélection par défaut pour configurer automatiquement une sélection conservatrice.

Par défaut, RoboDK vérifie les collisions entre tous les objets en mouvement dans la station, y compris tous les liens de robot, les objets et les outils. À titre d’exception, les articulations de robot consécutives ne sont pas vérifiées pour les collisions, car elles sont toujours en contact.

Collision Avoidance - Image 4

Détection de collision rapide

La vitesse de détection des collisions dépend fortement des facteurs suivants :

1.Le nombre de paires de vérifications définies dans la carte de collision. Il sera plus rapide d’avoir une carte de collision avec moins de vérifications.

2.L’étape du robot utilisée pour la vérification des collisions. L’étape de collision peut être modifiée dans le menu OutilsOptionsMouvement. Les mouvements linéaires utilisent l’étape en millimètres et les mouvements articulaires utilisent l’étape en degrés. Une étape plus grande permettra de vérifier plus rapidement les collisions, mais le résultat peut être moins précis.

3.Puissance de l’ordinateur : avoir un PC avec un CPU plus rapide et un processeur performant. Cela permettra de calculer les collisions plus rapidement.

4.La complexité des fichiers 3D. Les géométries ayant un niveau de détail plus élevé, comme les zones arrondies, nécessitent habituellement une plus grande puissance de calcul. La simplification de ces géométries et la réduction du nombre de triangles vous aideront à accélérer la vérification des collisions.

Evitement automatique de collision pour de l’usinage

Suivre ces étapes pour activer la vérification automatique de collision et l’évitement de collision pour un projet d’usinage robot :

1.Sélectionner OutilsOptionsFAO

2.Cocher Allow automatic collision avoidance

Collision Avoidance - Image 5

3.Double-cliquer sur le projet d’usinage robotisé, impression 3D, suivi de courbe ou projet de suivi de point.

4.Cocher Permettre l’évitement automatique des collisions : cela va activer l’évitement automatique des collisions en modifiant l’orientation de l’outil autour de l’axe Z.

Collision Avoidance - Image 6

Planificateur de mouvement sans collision

La fonction de planification des mouvements crée automatiquement des trajectoires sans collision dans l’espace de travail du robot. Dans RoboDK, cette fonction utilise un algorithme de planification de mouvement appelé "probabilistic roadmaps" (PRM).

Premièrement, une carte est créée de l’espace libre dans l’espace de travail du robot. Cette carte est ensuite utilisée pour générer rapidement des trajectoires sans collision pendant la programmation du robot.

Les algorithmes PRM sont caractérisés par les 2 propriétés suivantes :

Probabilistic : Les points dans « l’espace de configuration » (i.e. l’ensemble de points que le planificateur utilise pour savoir où le robot peut se déplacer dans son espace de travail) sont choisis au hasard par le planificateur. Cela rend les algorithmes PRM plus rapides que les autres algorithmes de planification de mouvement qui tentent de couvrir l’ensemble de l’espace de travail.

Roadmap : Les algorithmes PRM travail d’abord en créant un « roadmap » de la zone entière de l’espace de travail. Pour plus d’information sur la planification de mouvement, cliquer sur le lien du blog.

Vidéo : Présentation des fonctionnalités du planificateur de mouvement sans collision de RoboDK :

https://www.youtube.com/watch?v=KPR2aOZn924&list=PLjiA6TvRACQd8pL0EnE9Djc_SCH7wxxXl&index=10.

Utilisation de la planification de mouvement PRM

Il y a deux phases distinctes lors de l’utilisation de la planification de mouvement PRM. Celles-ci sont réalisées séparément dans RoboDK, ce qui améliore l’efficacité de la fonction. La "phase de construction" plus lente ne doit être effectuée qu’une seule fois, tandis que la "phase de recherche" plus rapide peut être répétée plusieurs fois.

Les deux étapes sont :

  1. Phase de Construction (lent) — L’algorithme PRM place au hasard des points dans l’enveloppe libre du robot. Il tente ensuite de connecter ces points ensemble, pour former une trajectoire constituant un parcours sans collision dans l’espace de travail.
  2. Query phase (rapide) — Le planificateur tente de trouver le parcours sans collision le plus court entre deux points cibles en utilisant la trajectoire créée en phase de construction.

Pour plus d’information sur comment l’algorithme PRM RoboDK fonctionne, aller sur le lien suivant.

Cette section montre comment utiliser ces deux phases dans un programme RoboDK. Un exemple de configuration de soudage est utilisé pour démontrer la fonctionnalité.

Paramétrage de la planification de mouvement

Pour utiliser le planificateur de mouvement, il doit y avoir un robot, idéalement avec un outil. Il est également logique d’avoir au moins un objet dans l’espace de travail, sinon l’évitement des collisions n’est pas nécessaire. Il peut être utile d’avoir au moins deux cibles qui serviront de points de départ et de fin pour la trajectoire sans collision générée.

L’exemple de configuration de soudage peut être créé en utilisant la procédure suivante :

1.Sélectionner un robot :

a.Sélectionner FichierCollision Avoidance - Image 7 Ouvrir la bibliothèque en ligne

b.Utiliser le filtre pour trouver un robot. Par exemple, sélectionner ABB IRB 2600-12/1.85 (choisir les filtres suivants : ABB (marque), 10-20 kg (charge) et 1500-2000mm (extension).

c.Sélectionner Download et le robot doit apparaitre automatiquement à l’écran.

2.Sélectionner un outil :

a.Depuis la même bibliothèque en ligne, filtrer par Type Tool (cliquer sur Reset filter en premier afin de réinitialiser le filtre)

b.Télécharger un outil, par exemple le "Weld Gun"

c.L’outil devrait être automatiquement rattaché au robot

d.Fermer la librairie.

3.Ajouter un repère :

a.Sélectionner ProgrammeCollision Avoidance - Image 8 Ajouter un repère

b.Sélectionner le nouveau repère dans l’arbre et appuyer sur F2 pour renommer en "Obstacle Reference"

4.Ajouter des objets :

a.Sélectionner FichierCollision Avoidance - Image 9 Ouvrir… pour ouvrir le dossier Librairie RoboDK se trouvant sur l’ordinateur. (Dans le dossier d’installation de RoboDK).

b.Sélectionner un objet, tel que l’objet "Object Table.wrl"

c.Prendre et faire glisser l’objet sur le repère Obstacle Reference dans l’arborescence de la station.

d.Sélectionner un second objet tel que "box.stl" et le rattaché au repère Obstacle Reference.

e.Bouger la table face au robot en effectuant les actions suivantes :

i.Faire un clic droit sur Obstacle Reference et choisir Options (sinon double cliquer sur le repère dans l’arbre)

ii.Entrer les valeurs suivantes dans la fenêtre Options du repère : 1000, 0, 400, 90, 0, 0

Collision Avoidance - Image 10

f.Si nécessaire, augmenter la taille et position de l’objet (la Box) en suivant les étapes suivantes :

iii.Faire un clic droit sur l’objet dans l’arbre de la station et choisir Options pour faire apparaitre la fenêtre détails de l’objet.

iv.Modifier l’échelle de la Box en cliquant sur Plus d’optionsAppliquer échelle et entrer "4.0" dans le coefficient multiplicateur

v.Bouger la Box en entrant les valeurs suivantes dans la fenêtre Détails d’objet : 0, 0, 200, 0, 0, 0

Collision Avoidance - Image 11

5.Créer des cibles :

a.Sélectionner ProgrammeCollision Avoidance - Image 12Enseigner cible

b.Renommer la nouvelle cible (F2 depuis l’arbre de la station) en Start Target.

c.Bouger la cible en faisant cela :

vi.Faire un clic droit sur la cible depuis l’arbre de la station et choisir Options (ou appuyer F3) pour faire apparaitre la fenêtre de Détails de Start Target.

vii.Entrer les valeurs suivantes : 500, 0, 0, 90, 0, 180

d.Créer une deuxième cible, de la même manière, et renommer-la en End Target. Changer la position de la cible à : -500, 0, 0, 90, 0, 180

Collision Avoidance - Image 13

Contraindre les limites de Joint

Il est inhabituel qu’une tâche utilise tout l’espace de travail du robot. Lors de la création d’une carte PRM, il est souvent une bonne idée de limiter les limites des articulations du robot. Cela accélérera le processus de génération de la carte et assurera que les points à l’intérieur de cette carte sont situés aux meilleurs endroits.

Pour un robot 6 axes, les 2 joints qui sont le plus souvent restreints sont :

1.Joint 1 (le joint de base) — Restreindre ce joint empêche le robot d’aller trop loin de chaque côté de l’espace de travail.

2.Joint 3 (le joint du coude) — Restreindre ce joint empêche le robot de changer de configuration avec coude haut et coude bas.

Changer les limites de joints en suivantes les étapes suivantes :

1.Faire un clic droit sur l’icône du robot dans l’arborescence de la station (ex., ABB IRB 2600-12/1.85) et sélectionner Options… pour ouvrir le panneau/fenêtre du robot. Il est possible également de double-cliquer sur le nom du robot dans l’arborescence de la station.

2.Dans la section Mouvement des joints, bouger les curseurs des joints robots que vous souhaitez restreindre. (par exemple θ1 et θ3) pour trouver où se trouve les limites inférieures de l’articulation.

3.Double-cliquer sur l’une des limites basses de la section Mouvement des joints, cela va faire apparaitre une fenêtre de réglage de limites négatif des axes.

Collision Avoidance - Image 14

4.Paramétrer la limite inférieure de θ1 = -50 et de θ3 = -90.

5.Changer les limites et cliquer sur OK.

6.Même process pour les limites supérieures des joints, set θ1 = 50. 

Collision Avoidance - Image 15

Ce changement peut être vu en regardant l’espace de travail accessible du robot. Afficher l’espace de travail en sélectionnant l’option Afficher pour l’outil actuel dans la section Espace de travail du panneau/fenêtre du robot. Il montrera que seule la partie de l’espace de travail est maintenant accessible avec les nouvelles limites communes.

Collision Avoidance - Image 16

Sélectionner les Paramètres PRM

L’algorithme PRM génère un mapping des positions atteignables en suivant les 3 paramètres ci-dessous :

1.Nombre d’échantillons — La carte se compose d’un certain nombre d’emplacements placés au hasard (échantillons) dans l’espace de travail accessible du robot. Ce nombre détermine le nombre d’échantillons. La valeur par défaut est de 100 échantillons.

2.Bords par échantillon — L’algorithme tente de connecter chaque échantillon de la carte avec un certain nombre d’autres échantillons. La ligne qui relie deux échantillons est appelée un "bord" et indique une trajectoire sans collision entre ces deux endroits. Cette propriété indique le nombre maximum de bords qui seront créés par échantillon. La valeur par défaut est de 25 bords par échantillon.

3.Etape Robot (deg) — Lors de la vérification, si un bord potentiel est sans collision, l’algorithme s’arrêtera à intervalles réguliers le long de lui pour vérifier les collisions. La distance entre ces intervalles est déterminée par l’étape du robot. La valeur par défaut est de 4 degrés.

Ces trois paramètres déterminent le détail de la feuille de route générée. Elles influent également sur le temps qu’il faut pour générer la feuille de route pendant la phase de construction.

Une plus grande quantité du nombre d’échantillons et plus de bords par échantillon produira une feuille de route plus fine qui prendra plus de temps à générer. Une plus grande étape de robot générera une carte plus rapidement, mais peut ne pas détecter les collisions potentielles.

En utilisant les valeurs par défaut, une feuille de route peut généralement être générée dans les 15 minutes, en fonction de la configuration de l’espace de travail et des propriétés du robot.

Voir les astuces à la fin de cette section pour connaître les meilleurs pratiques lors de l’établissement de ces paramètres.

Générer une Carte de collisions

La "phase de construction" du planificateur de mouvement est réalisée en utilisant le processus suivant, génèrent une carte de l’espace de travail du robot :

1.Ouvrir le menu Planificateur de mouvement sans collision en allant dans UtilitairesCollision-free motion plannerCreate collision-free map, ou cliquer sur la petite flèche à côté de Collision Avoidance - Image 17Vérifier collisions et sélectionner Create collision-free map.

Collision Avoidance - Image 18

2.Entrer les nouveaux paramètres ou garder ceux par défauts.

3.Cliquer sur Update Map afin de générer une carte de collisions.

L’algorithme PRM va générer une carte utilisant les paramètres choisis. Lorsque c’est terminé, la carté généré peut être vue en sélectionnant Afficher Map. Cliquer sur Afficher échantillon fera bouger le robot dans tout l’espace de travail.

Collision Avoidance - Image 19

Lier les Cibles

La « phase demandé » du planificateur de mouvement est accessible lorsque 2 cibles ou programmes sont liés ensemble.

Pour lier deux cibles, sélectionner-les dans l’arborescence de la station. Il y a 2 manières de les sélectionner et lier :

1.Avec la touche Ctrl :

a.Clic gauche sur la cible qui doit démarrer le mouvement (dans notre exemple « Start Target »)

b.Garder enfoncé le bouton CTRL

c.Clic gauche sur la cible de destination (Exemple : « End Target »)

d.Faire un clic droit sur l’une des deux cibles et sélectionner Link selected targets. Sinon, si le panneau de Planificateur de mouvement sans collision est ouvert, cliquer sur le bouton Link selected targets/programs.

2.Avec le bouton Shift (Maj) :

a.Placer les deux cibles l’une au-dessus de l’autre dans l’arbre des stations, avec la cible de départ au-dessus de la cible finale. Une cible peut être déplacée autour de l’arbre par glisser-déposer en utilisant le bouton droit de la souris. Le fait de relâcher la cible après l’avoir fait glisser (bouton droit) révèle un menu permettant de choisir l’endroit où la cible doit être située.

Collision Avoidance - Image 20

b.Cliquer (gauche) sur une cible.

c.Garder appuyé le bouton Shift (Maj).

d.Cliquer (gauche) sur la seconde cible.

e.Faire un clic droit sur l’une des deux cibles et choisir Link selected targets. Sinon, si le panneau de Planificateur de mouvement sans collision est ouvert, cliquer sur le bouton Link selected targets/programs.

Les deux méthodes généreront un nouveau programme qui relie les deux cibles à l’aide de la feuille de route sauvegardée. Pour créer un mouvement dans la direction opposée, sélectionner les cibles dans l’ordre inverse, c.-à-d. en sélectionnant Cible finale avant cible de départ à l’aide de la méthode Ctrl, ou en réarrangeant les cibles dans l’arborescence des stations pour la méthode SHIFT.

Lier des Programmes

Le planificateur de mouvement peut également lier deux programmes différents ensemble d’une manière similaire. Cela crée un parcours sans collision entre les deux programmes et crée un nouveau programme principal.

Pour l’exemple de soudure, créer deux programmes fictifs utilisant le process suivant :

1.Créer 4 cibles enfants du repère "Obstacle Reference" (clic droit sur "Obstacle Reference" dans l’arborescence de la station et cocher Repère du robot actif). Puis créer 4 cibles en sélectionnant ProgrammeCollision Avoidance - Image 21 Enseigner cible4 fois, ou sinon appuyer sur Ctrl+T 4 fois.

2.Sélectionner chaque nouvelle cible dans l’arborescence et entrer les noms et valeurs suivants. (F2 pour modifier le nom d’une cible). Pour changer la valeur d’une cible, appuyer sur F3, le panneau de coordonnées va apparaitre (sinon clic droit et Option).

a.Name: "Left Point 1" Values: 200, 200, 0, 90, 0, -135

b.Name: "Left Point 2" Values: 200, -200, 0, 90, 0, -135

c.Name: "Right Point 1" Values: -200, 200, 0, 90, 0, 135

d.Name: "Right Point 2" Values: -200, -200, 0, 90, 0, 135

Collision Avoidance - Image 22

3.Créer le 1er programme :

a.Aller dans ProgrammeCollision Avoidance - Image 23Ajouter Programme

b.Renommer le programme en "Left Weld" en sélectionnant le programme dans l’arborescence et cliquant sur F2.

c.Ajouter les cibles suivantes comme instructions linéaire, en sélectionnant les cibles et en allant dans ProgrammeCollision Avoidance - Image 24Instruction Move Linear : Start Target, Left Point 1, Left Point 2, Start Target.

Collision Avoidance - Image 25

4.Créer le 2ème programme nommé "Right Weld" de la même manière, cette fois ci en utilisant les cibles suivantes : End Target, Right Point 1, Right Point 2, End Target.

Collision Avoidance - Image 26

Noter que ces 2 programmes ne contiennent pas l’instruction d’activer et désactiver la soudure. Dans un vrai programme, ces commandes auraient été incluses.

Afin de lier 2 programmes utilisant la planification de mouvement, suivre ces étapes :

1.Sélectionner les 2 programmes utilisant l’une des méthodes décrite dans la section précédente (lier des cibles).

2.Faire un clic droit sur l’un ou l’autre des programmes et choisir Link selected programs. Si le panneau du planificateur de mouvement sans collision est ouvert, il est possible d’en faire autant en cliquant sur Link selected targets/programs.

Un nouveau programme appelé "Mainsafe" sera créé, il exécute le premier programme, fait un mouvement sans collision, puis exécute le deuxième programme. Ce programme principal peut être modifié et renommé comme n’importe quel autre programme.

Ajouter des nouvelles cibles à la carte

Toute nouvelle cible peut être ajoutée à la carte PRM sans avoir à régénérer toute la carte. Cela signifie que la carte ne doit être complètement régénérée que si de nouveaux objets sont ajoutés à l’espace de travail ou si des objets existants sont déplacés.

Lorsqu’une nouvelle cible est ajoutée à la carte, l’algorithme PRM tente de la connecter à un certain nombre de points existants avec un ensemble de nouveaux bords. Il est possible de définir un nombre de bords par défaut différent pour les nouvelles cibles que le nombre choisi pour la construction initiale de la feuille de route.

Le nombre maximum de bords pour les nouvelles cibles peut être défini à l’aide du processus suivant :

1.Ouvrir le panneau de planificateur de mouvement sans collision (Collision-free motion planner) en allant dans Utilitaires Collision-free motion plannerCréer une carte sans collision, ou cliqué sur la petite flèche de Collision Avoidance - Image 27Vérifier collisions et choisir Créer une carte sans collision.

2.Entrer le nombre de bords dans Nouveaux échantillons de bords. Par défaut le nombre est 5.

Il y a 2 manières d’ajouter des nouvelles cibles à la carte :

1.Sélectionner les cibles dans l’arborescence. Plusieurs cibles adjacentes peuvent être sélectionnées à la fois en cliquant sur la cible la plus haute, en maintenant la touche Shift enfoncée, puis en cliquant sur la cible la plus basse. Plusieurs cibles non adjacentes peuvent être sélectionnées en maintenant la touche Ctrl enfoncée. Cliquer ensuite sur Ajouter les cibles sélectionnées dans le panneau Planification des mouvements sans collision.

Collision Avoidance - Image 28

2.Utiliser la même méthode de Lier les cibles sélectionnées ou Lier les programmes sélectionnés décrit dans la section précédente (lier des cibles, lier des programmes). Chaque cible qui n’est pas déjà présente dans la carte sera ajoutée automatiquement.

Astuces et meilleurs pratiques

Le planificateur de mouvement est simple d’utilisation, mais il y a des pratiques qui permettent de le rendre plus efficace.

Démarrer avec de petits paramètres

La phase de construction peut prendre beaucoup de temps. Cela peut devenir lourd au cours des premières étapes de la programmation lorsque la disposition de la cellule du robot change constamment. Chaque fois qu’un objet est ajouté à l’espace de travail ou déplacé, la feuille de route entière doit être recréée.

Pour réduire le temps passé à attendre que la feuille de route soit générée, il est bon d’utiliser d’abord des paramètres plus petits.

Par exemple, les paramètres suivants peuvent générer une carte en 10 à 15 secondes :

1.Nombre d’échantillons : 10

2.Bords par échantillon : 5

3.Etape Robot (deg) : 4.0

Cela ne produira pas les mouvements sans collision les plus efficaces, mais permettra de modifier la conception de la cellule beaucoup plus rapidement.

Lorsque l’emplacement de tous les objets dans la cellule a été décidé, alors une carte plus grande peut être générée (par ex. avec les paramètres par défaut de 100, 25, 4.0).

Collision Avoidance - Image 29

Enfin, avant de générer le programme robot, il peut être une bonne idée de générer une feuille de route encore plus grande (par ex. avec des paramètres de 500, 50, 2.0). Cela prendra beaucoup de temps, mais produira les mouvements les plus efficaces.

Collision Avoidance - Image 30

Utilisation des Limites de Joint

Le réglage des limites des articulations (joints) du robot (comme décrit dans la section précédente Contraindre les limites de joints) présente un double avantage. Premièrement, il peut accélérer la phase de construction dans certains cas. Deuxièmement, il s’assure que la carte contient effectivement des emplacements qui seront utiles pour le programme robot. Il est facile d’oublier cette étape vitale.

Définir correctement la carte de collisions

La détection de collision est déclenchée lorsque 2 objets entrent en collision. Vous pouvez spécifier la corrélation entre chaque objet en mouvement dans les paramètres de la Carte de collision. La réduction du nombre d’interactions (coches vertes) accélérera la vérification des collisions.

Vérification rapide de collision

Le temps nécessaire pour calculer les trajectoires sans collision dépend de nombreux facteurs décrits dans la section sur la détection des collisions. Vous pouvez augmenter l’étape du robot pour vérifier les collisions, limiter les limites des articulations ou simplifier la géométrie 3D pour accélérer la vérification des collisions.

Echelle des modèles 3D

Le terme « évitement des collisions » suggère que le planificateur de mouvement évitera toujours les collisions dans toutes les situations. C’est certainement vrai dans l’environnement de simulation. Cependant, dans le monde réel, le robot peut encore entrer en collision avec des objets s’il s’approche d’eux. Cela se produit généralement en raison de légères différences entre le robot simulé et le robot physique.

Ce genre de collisions peut avoir lieu lorsque qu’un robot pince le bord d’un objet, lorsqu’il bouge en dehors d’une tache. Cela peut être évité en appliquant un agrandissement d’échelle dans les programmes. AlleR sur le lien pour découvrir plus en détails l’utilisation d’un Offset.

Opérer dans la zone la plus agile du robot

Toutes les zones de l’espace de travail du robot ne sont pas égales. Le robot aura plus "d’accessibilité" dans certaines zones de son espace de travail que d’autres. Dans les zones à haute accessibilité, le robot sera en mesure d’accéder à des points à partir de nombreuses orientations. Dans les zones à faible accessibilité, le robot ne pourra accéder aux points qu’à partir d’une ou deux orientations.

Parfois, le planificateur de mouvement ne parvient pas à trouver un parcours entre deux cibles dans l’espace de travail. Souvent, ce problème peut être résolu simplement en augmentant le nombre d’échantillons dans la carte, mais pas toujours.

Si le planificateur de mouvement ne parvient pas continuellement à connecter les cibles, s’assurer que la tâche est située dans la zone de l’espace de travail du robot avec la plus grande accessibilité. Afficher l’espace de travail du robot en ouvrant le panneau/fenêtre du robot (faire un clic droit sur le robot dans l’arborescence de la station et choisir Options) et sélectionner Montrer pour outil actuel dans la section Espace de travail.