Déploiement de la solution
Cette section présente le déploiement de la solution Small Sheet Metal Parts. Le processus global est illustré dans la figure ci-dessous.
Configuration du matériel du système de vision
La configuration du matériel du système de vision consiste à intégrer le matériel (caméra et PC industriel) dans l’environnement réel afin de permettre le fonctionnement normal du système de vision.
À cette étape, vous devez installer et configurer le matériel du système de vision. Pour plus de détails, voir Configuration du matériel du système de vision.
Configuration de la communication du robot
Before robot communication configuration, it is necessary to obtain the solution first. Click here to see how to obtain the solution.
-
Ouvrez Mech-Vision.
-
Dans l’interface d’accueil de Mech-Vision, cliquez sur Créer depuis la bibliothèque de solutions pour ouvrir la bibliothèque de solutions.
-
Entrez dans la catégorie Cas typiques de la bibliothèque de solutions, cliquez sur l’icône
dans le coin supérieur droit pour plus de ressources, puis cliquez sur le bouton Confirmer dans la fenêtre contextuelle. -
Après avoir acquis les ressources de la solution, sélectionnez la solution Small Sheet Metal Parts dans la catégorie Prise de pièces empilées aléatoirement, renseignez le nom de la solution et le chemin en bas, puis cliquez sur le bouton Créer. Ensuite, cliquez sur le bouton Confirmer dans la fenêtre contextuelle pour télécharger la solution Small Sheet Metal Parts.
Une fois la solution téléchargée, elle s’ouvrira automatiquement dans Mech-Vision.
Avant de déployer une solution de vision, vous devez configurer la communication entre le système de vision Mech-Mind et le côté robot (robot, PLC ou ordinateur hôte).
La solution Small Sheet Metal Parts utilise la communication Standard Interface. Pour des instructions détaillées, veuillez consulter Configuration de la communication Standard Interface.
Calibration main-oeil
La calibration main-oeil établit la relation de transformation entre les repères de la caméra et du robot. Grâce à cette relation, la pose de l’objet déterminée par le système de vision peut être transformée dans le repère du robot, ce qui guide le robot dans l’exécution de ses tâches.
Veuillez consulter Guide de calibration main-oeil du robot et réaliser la calibration main-oeil.
|
Chaque fois que la caméra est montée, ou que la position relative de la caméra et du robot change après la calibration, il est nécessaire d’effectuer à nouveau la calibration main-oeil. |
Configuration du projet de vision
Après avoir terminé la configuration de la communication et la calibration main-oeil, vous pouvez utiliser Mech-Vision pour configurer le projet de vision.
Le processus de configuration d’un projet de vision est illustré dans la figure ci-dessous.
Se connecter à la caméra et capturer des images
-
Se connecter à la caméra.
Ouvrez Mech-Eye Viewer, repérez la caméra à connecter et cliquez sur le bouton Connecter.
-
Ajuster les paramètres de la caméra.
Pour garantir que l’image 2D capturée est nette et que le nuage de points est complet, vous devez ajuster les paramètres de la caméra. Pour des instructions détaillées, reportez-vous à PRO S-GL Référence des paramètres de la caméra.
-
Capturer des images.
Une fois la caméra connectée avec succès et le groupe de paramètres défini, vous pouvez commencer à capturer les images de l’objet cible. Cliquez sur le bouton
en haut pour capturer une image unique. Vous pouvez alors visualiser l’image 2D et le nuage de points de l’objet cible capturés. Assurez-vous que l’image 2D est nette, que le nuage de points est complet et que les bords sont clairs. L’image 2D et le nuage de points qualifiés de l’objet cible sont respectivement affichés à gauche et à droite dans la figure ci-dessous.
-
Se connecter à la caméra dans Mech-Vision.
Sélectionnez l’étape Capturer des images depuis la caméra, désactivez l’option Mode virtuel, puis cliquez sur le bouton Sélectionner la caméra.
Dans la fenêtre contextuelle, cliquez sur l’icône
à droite du numéro de série de la caméra. Lorsque l’icône devient
, la caméra est connectée avec succès. Après la connexion réussie de la caméra, vous pouvez sélectionner le groupe de paramètres d’étalonnage de la caméra dans la liste déroulante à droite, comme indiqué ci-dessous.
Maintenant que vous êtes connecté à la caméra réelle, vous n’avez pas besoin d’ajuster d’autres paramètres. Cliquez sur l’icône
de l’étape Capturer des images depuis la caméra pour exécuter l’étape. En l’absence d’erreur, la caméra est connectée avec succès et les images peuvent être capturées correctement.
Reconnaissance 3D des objets cibles
La solution Small Sheet Metal Parts utilise l’étape Reconnaissance 3D des objets cibles pour reconnaître les objets cibles. Cliquez sur le bouton Assistant de configuration dans le panneau Paramètres de l’étape Reconnaissance 3D des objets cibles pour ouvrir l’outil Reconnaissance 3D des objets cibles afin de configurer les paramètres concernés. Le processus global de configuration est illustré dans la figure ci-dessous.
Prétraitement du nuage de points
Avant le prétraitement du nuage de points, vous devez prétraiter les données en ajustant les paramètres pour rendre le nuage de points original plus clair, améliorant ainsi la précision et l’efficacité de la reconnaissance.
-
Définir la région de reconnaissance.
Définissez une zone de reconnaissance efficace pour éliminer les facteurs d’interférence et améliorer l’efficacité de la reconnaissance.
-
Définissez les paramètres Effet d’extraction des arêtes, Niveau de suppression du bruit et Filtre de points pour éliminer le bruit.
Après le prétraitement du nuage de points, cliquez sur le bouton Exécuter l’étape.
Reconnaître l’objet cible
Après le prétraitement du nuage de points, vous devez créer un modèle de nuage de points pour l’objet cible dans le Target Object Editor, puis définir les paramètres d’appariement dans l’outil Reconnaissance 3D des objets cibles pour l’appariement du modèle de nuage de points.
-
Créer un modèle d’objet cible.
-
Créer le modèle de nuage de points et ajouter le point de préhension. Cliquez sur le bouton Ouvrir l’éditeur d’objet cible pour ouvrir l’éditeur, importez le fichier STL pour générer un modèle de nuage de points de l’objet cible.
-
-
Définir les paramètres liés à la reconnaissance d’objets.
-
Activez le mode avancé sur le côté droit de Reconnaître l’objet cible.
-
Mode de correspondance : activez le mode de correspondance réglé automatiquement. Une fois activée, cette étape ajustera automatiquement les paramètres des Paramètres d’appariement grossier et des Paramètres d’appariement fin.
-
Paramètres d’appariement grossier : pour réduire le temps consacré à l’appariement, définissez le Mode de performance sur Personnalisé et définissez le Nombre de points attendu du modèle à 300.
-
Paramètres de confiance : définissez la Stratégie de confiance sur Auto et le Seuil de confiance à 0.5 afin de supprimer les correspondances incorrectes.
-
Sortie — Nombre maximum de sorties : minimisez le nombre de sorties pour réduire le temps d’appariement, tout en veillant à répondre aux exigences de planification de trajectoire. Dans cette solution, le paramètre Max outputs est défini sur 20.
-
Supprimer les poses coïncidentes et les poses chevauchées : pour supprimer les résultats de reconnaissance coïncidents et chevauchés, activez les options Supprimer les poses des objets coïncidents et Supprimer les poses des objets chevauchés, et définissez leurs seuils respectifs à 30% et 20%.
-
Après avoir défini les paramètres ci-dessus, cliquez sur le bouton Exécuter l’étape. Le résultat d’appariement est illustré dans la figure ci-dessous.
Configurer les ports de l’étape
Après la reconnaissance de l’objet cible, les ports de l’étape doivent être configurés pour fournir les résultats de vision et les nuages de points à Mech-Viz pour la planification de trajectoire et la détection de collisions.
Étant donné que les points de préhension doivent être traités dans le flux de travail ultérieur, sélectionnez l’option Port(s) related to pick point sous Select port. Pour reconnaître et localiser le bac, sélectionnez l’option Preprocessed point cloud. Enfin, cliquez sur le bouton Enregistrer. Un nouveau port de sortie est ajouté à l’étape Reconnaissance 3D des objets cibles, comme montré ci-dessous.
Localisation du bac
Étant donné que la forme du bac est approximativement rectangulaire, il peut être localisé directement à l’aide de la Procédure de localisation standard de bac dans la catégorie Localisation 3D des Exemples pratiques de la bibliothèque de solutions, sans qu’il soit nécessaire de créer un modèle de nuage de points.
-
Chaînes : nom du bac dans Mech-Viz pour mettre à jour la pose du bac.
-
Distance de translation : déplacer la pose du bac de la surface supérieure du bac vers son centre. La distance de translation doit être réglée sur -57.5mm dans cette solution.
Distance de translation = -1 × 1/2 Hauteur du bac -
Exécutez la Procédure pour localiser le bac et envoyez la pose du bac à Mech-Viz pour mise à jour.
Ajuster les poses
Après avoir obtenu les poses de l’objet cible, vous devez utiliser l’étape Adjust Poses V2 pour ajuster les poses. Cliquez sur le bouton Assistant de configuration dans le panneau Paramètres de l’étape Adjust Poses V2 pour ouvrir l’outil ajustement de pose afin de configurer l’ajustement de pose. Le processus global de configuration est illustré dans la figure ci-dessous.
-
Pour sortir les poses de l’objet cible dans le repère du robot, veuillez cocher la case Transformer la pose vers le repère du robot afin de transformer les poses du repère de la caméra vers le repère du robot.
-
Définissez le Type de tri sur Trier par valeur X/Y/Z de la pose, définissez Valeur spécifiée de la pose sur Coordonnée Z, et triez les poses par ordre Décroissant.
-
Pour réduire le temps nécessaire à la planification de trajectoire ultérieure, il faut filtrer les objets cibles difficiles à saisir en se basant sur l’angle entre l’axe Z de la pose et la direction de référence. Dans ce tutoriel, vous devez définir la Différence angulaire maximale à 70°.
-
Filtrer les poses en dehors de la ROI.
Définissez la ROI 3D en fonction de la situation réelle afin de filtrer les poses d’objets cibles situées en dehors de la ROI 3D.
-
Paramètres généraux.
Définir le nombre de nouveaux ports sur 1, et un nouveau port d’entrée et de sortie sera ajouté à l’étape. Connectez le port d’entrée au port de sortie Pick Point Info de l’étape Reconnaissance 3D des objets cibles et connectez le port de sortie à l’étape Output.
Sortie des informations sur l’objet cible
Utilisez l’étape Output pour envoyer le point de préhension, les informations de point de préhension, le nuage de points prétraité, le nom du bac, la pose du bac, etc., à Mech-Viz pour la planification de trajectoire.
Planification de trajectoire
Une fois la reconnaissance de l’objet cible terminée, vous pouvez utiliser Mech-Viz pour planifier une trajectoire puis écrire un programme robot pour saisir les objets cibles.
Le processus de configuration de la planification de trajectoire est illustré dans la figure ci-dessous.
Configurer les objets de la scène
Les objets de la scène sont introduits pour rendre la scène dans le logiciel plus proche du scénario réel, ce qui facilite la planification de trajectoire du robot. Pour des instructions détaillées, veuillez consulter Configurer les objets de la scène.
Pour garantir une saisie efficace, les objets de la scène doivent être configurés afin de représenter avec précision l’environnement opérationnel réel. Les objets de la scène dans cette solution sont configurés comme montré ci-dessous.
Configurer l’outil du robot
L’outil terminal doit être configuré afin que son modèle puisse être affiché dans la zone de simulation 3D et utilisé pour la détection de collisions. Pour des instructions détaillées, veuillez consulter Configurer l’outil.
|
Ajuster le flux de travail
Le flux de travail fait référence au programme de contrôle du mouvement du robot créé dans Mech-Viz sous forme de diagramme de flux. Après la configuration des objets de la scène et des outils terminaux, vous pouvez ajuster le flux de travail du projet en fonction des exigences réelles. Le diagramme de flux du traitement logique lors de la saisie de l’objet cible est présenté ci-dessous.
Lorsque la communication Standard Interface est utilisée, le flux de travail du projet est présenté ci-dessous.
Les deux étapes Déplacement vers point fixe au début et à la fin du flux de travail sont des points d’arrêt déterminés par le jog du robot et n’ont pas besoin d’être envoyés à des dispositifs externes. Les autres étapes de type déplacement enverront des points d’arrêt aux dispositifs externes, et chaque étape Chemin intelligent dans le bac correspond à deux points d’arrêt. Ainsi, 5 points d’arrêt au total seront envoyés.
Simuler et tester
Cliquez sur le bouton Simuler dans la barre d’outils pour tester si le système de vision est correctement configuré en simulant le projet Mech-Viz.
Placez l’objet cible aléatoirement dans le bac et cliquez sur Simuler dans la barre d’outils de Mech-Viz pour simuler la saisie de l’objet cible. Après chaque saisie réussie, l’objet cible doit être réarrangé, et 10 tests de simulation doivent être effectués. Si les 10 simulations conduisent toutes à des saisies réussies, le système de vision est correctement configuré.
En cas d’exception pendant la simulation, consultez FAQ sur le déploiement de la solution pour résoudre le problème.
Prise et dépose par le robot
Écrire un programme robot
Si le résultat de la simulation répond aux attentes, vous pouvez écrire un programme de prise et de dépose pour le robot FANUC.
Le programme d’exemple MM_S10_Viz_Subtask pour le robot FANUC peut essentiellement répondre aux exigences de ce cas typique. Vous pouvez modifier le programme d’exemple. Pour une explication détaillée du programme MM_S10_Viz_Subtask, veuillez consulter Explication du programme d’exemple.
Instructions de modification
Ce programme d’exemple se compose de deux programmes. Le programme secondaire déclenche l’exécution du projet Mech-Viz afin d’obtenir la trajectoire planifiée. Le programme principal déplace le robot en fonction de la trajectoire planifiée. Ensuite, le programme principal déclenche le programme secondaire lorsque le robot quitte la zone de prise afin d’obtenir la prochaine trajectoire planifiée, raccourcissant ainsi le temps de cycle. En vous basant sur le programme d’exemple, veuillez modifier les fichiers de programme en suivant ces étapes :
-
Programme secondaire
-
Ajoutez des commandes de planification de trajectoire pour stocker tous les points d’arrêt renvoyés dans des variables locales.
La trajectoire planifiée renvoyée par Mech-Viz contient cinq points d’arrêt : point d’entrée dans le bac, point d’approche pour la prise, point de prise, point de retrait de la prise et point de sortie du bac. Le programme d’exemple ne peut stocker que trois points d’arrêt, vous devez donc ajouter des commandes de planification de trajectoire pour stocker les autres. Avant modification Après modification (exemple) 22: CALL MM_GET_JPS(1,60,70,80) ; 23: CALL MM_GET_JPS(2,61,71,81) ; 24: CALL MM_GET_JPS(3,62,72,82) ;
22: CALL MM_GET_JPS(1,60,70,80) ; 23: CALL MM_GET_JPS(2,61,71,81) ; 24: CALL MM_GET_JPS(3,62,72,82) ; 25: CALL MM_GET_JPS(4,63,73,83) ; 26: CALL MM_GET_JPS(5,64,74,84) ;
-
-
Programme principal
-
Définit le repère outil. Vérifiez que le TCP sur la commande du robot correspond au TCP dans Mech-Viz. Définissez le numéro du repère outil actuellement sélectionné sur celui correspondant au repère de l’outil réel utilisé.
Avant modification Après modification (exemple) 11: !set current tool NO. to 1 ; 12: UTOOL_NUM=1 ;
11: !set current tool NO. to 3 ; 12: UTOOL_NUM=3 ;
Veuillez remplacer le numéro par celui de l’outil réellement utilisé, où « 3 » n’est qu’un exemple. -
Spécifiez l’adresse IP et le numéro de port de l’IPC. Modifiez l’adresse IP et le numéro de port dans la commande CALL MM_INIT_SKT pour ceux du système de vision.
Avant modification Après modification (exemple) 16: CALL MM_INIT_SKT('8','127.0.0.1',50000,5) ;16: CALL MM_INIT_SKT('8','127.1.1.2',50000,6) ; -
Ajustez les ID des registres de position pour le point d’entrée dans le bac, le point d’approche pour la prise et le point de prise.
Avant modification Après modification 32: !move to approach waypoint ; 33: !of picking ; 34:J PR[60] 50% FINE ; 35: !move to picking waypoint ; 36:J PR[61] 10% FINE ; ... 40: !move to departure waypoint ; 41: !of picking ; 42:J PR[62] 50% FINE ;
32: !move to approach waypoint ; 33: !of picking ; 34:J PR[60] 50% FINE ; 35:J PR[61] 50% FINE ; 36: !move to picking waypoint ; 37:J PR[62] 10% FINE ; ... 42: !move to departure waypoint ; 43: !of picking ; 44:J PR[63] 50% FINE ; 45:J PR[64] 50% FINE ;
Dans le programme d’exemple modifié, PR[60] stocke le point d’entrée dans le bac, PR[61] stocke le point d’approche pour la prise, PR[62] stocke le point de prise, PR[63] stocke le point de retrait de la prise, et PR[64] stocke le point de sortie du bac. -
Définissez le signal pour le port DO afin d’effectuer la prise, c’est-à-dire fermer la pince et saisir l’objet cible. Notez que la commande DO doit être définie en fonction du numéro de port DO utilisé sur site.
Avant modification Après modification (exemple) 37: !add object grasping logic here, ; 38: !such as "DO[1]=ON" ; 39: PAUSE ;
38: !add object grasping logic here, ; 39: !such as "DO[1]=ON" ; 40: PAUSE ; 41: DO[1]=ON ;
-
Définissez le port DO pour effectuer la dépose. Notez que la commande DO doit être définie en fonction du numéro de port DO utilisé sur site.
Avant modification Après modification (exemple) 53: !add object releasing logic here, ; 54: !such as "DO[1]=OFF" ; 55: PAUSE ;
56: !add object releasing logic here, ; 57: !such as "DO[0]=OFF" ; 58: PAUSE ; 59: DO[0]=OFF ;
-
Référence : programme d’exemple modifié
-
Programme secondaire
1: !-------------------------------- ;
2: !FUNCTION: run Mech-Viz project ;
3: !and get planned path in subtask ;
4: !(run together with ;
5: !MM_S10_Viz_Subtask) ;
6: !Mech-Mind, 2023-12-25 ;
7: !-------------------------------- ;
8: ;
9: F[11]=(ON) ;
10: !trigger Mech-Viz project ;
11: CALL MM_START_VIZ(2,10) ;
12: !get planned path, 1st argument ;
13: !(1) means getting pose in JPs ;
14: CALL MM_GET_VIZ(1,51,52,53) ;
15: !check whether planned path has ;
16: !been got from Mech-Viz ;
17: !successfully ;
18: IF (R[53]=2100) THEN ;
19: !save waypoints of the planned ;
20: !path to local variables one ;
21: !by one ;
22: CALL MM_GET_JPS(1,60,70,80) ;
23: CALL MM_GET_JPS(2,61,71,81) ;
24: CALL MM_GET_JPS(3,62,72,82) ;
25: CALL MM_GET_JPS(4,63,73,83) ;
26: CALL MM_GET_JPS(5,64,74,84) ;
27: ENDIF ;
28: F[11]=(OFF) ;
-
Programme principal
1: !-------------------------------- ;
2: !FUNCTION: run Mech-Viz project ;
3: !and get planned path in subtask ;
4: !(run together with ;
5: !MM_S10_Sub) ;
6: !Mech-Mind, 2023-12-25 ;
7: !-------------------------------- ;
8: ;
9: !set current uframe NO. to 0 ;
10: UFRAME_NUM=0 ;
11: !set current tool NO. to 3 ;
12: UTOOL_NUM=3 ;
13: !initialize communication ;
14: !parameters(initialization is ;
15: !required only once) ;
16: CALL MM_INIT_SKT('8','127.1.1.2',50000,6) ;
17: !move to robot home position ;
18:J P[1] 100% FINE ;
19: RUN MM_S10_SUB ;
20: LBL[1:LOOP] ;
21: !move to wait position for ;
22: !picking ;
23:L P[2] 1000mm/sec FINE ;
24: !wait until subtask program ;
25: !finished ;
26: WAIT (F[11]=OFF) ;
27: !check whether planned path has ;
28: !been got from Mech-Viz ;
29: !successfully ;
30: IF R[53]<>2100,JMP LBL[99] ;
31: !follow the planned path to pick ;
32: !move to approach waypoint ;
33: !of picking ;
34:J PR[60] 50% FINE ;
35:J PR[61] 50% FINE ;
36: !move to picking waypoint ;
37:J PR[62] 10% FINE ;
38: !add object grasping logic here, ;
39: !such as "DO[1]=ON" ;
40: PAUSE ;
41: DO[1]=ON ;
42: !move to departure waypoint ;
43: !of picking ;
44:J PR[63] 50% FINE ;
45:J PR[64] 50% FINE ;
46: !move to intermediate waypoint ;
47: !of placing, and trigger Mech-Viz ;
48: !project and get planned path in ;
49: !advance ;
50:J P[3] 50% CNT100 DB 10.0mm,CALL MM_S10_SUB ;
51: !move to approach waypoint ;
52: !of placing ;
53:L P[4] 1000mm/sec FINE Tool_Offset,PR[2] ;
54: !move to placing waypoint ;
55:L P[4] 300mm/sec FINE ;
56: !add object releasing logic here, ;
57: !such as "DO[0]=OFF" ;
58: PAUSE ;
59: DO[0]=OFF ;
60: !move to departure waypoint ;
61: !of placing ;
62:L P[4] 1000mm/sec FINE Tool_Offset,PR[2] ;
63: !move back to robot home position ;
64:J P[1] 100% FINE ;
65: JMP LBL[1] ;
66: END ;
67: ;
68: LBL[99:vision error] ;
69: !add error handling logic here ;
70: !according to different ;
71: !error codes ;
72: !e.g.: status=2038 means no ;
73: !point cloud in ROI ;
74: PAUSE ;
Test de prise
Pour assurer une production stable dans le scénario réel, le programme d’exemple modifié doit être exécuté pour effectuer un test de prise avec le robot. Pour des instructions détaillées, veuillez consulter Tester la communication Standard Interface.
Avant d’effectuer le test de prise, veuillez enseigner les points d’arrêt suivants.
| Nom | Variable | Description |
|---|---|---|
Position de référence (Home) |
P[1] |
Position initiale enseignée. La position initiale doit être éloignée des objets à saisir et des dispositifs environnants, et ne doit pas obstruer le champ de vision de la caméra. |
Position de capture d’image |
P[2] |
Position de capture d’image enseignée. La position de capture d’image correspond à la position du robot où la caméra capture des images. À cette position, le bras du robot ne doit pas bloquer le FOV de la caméra. |
Point intermédiaire |
P[3] |
L’ajout de points intermédiaires peut garantir un mouvement fluide du robot et éviter des collisions inutiles. |
Point de dépose |
P[4] |
La position pour déposer l’objet cible. |
Après l’enseignement, disposez les objets cibles comme indiqué dans le tableau ci-dessous et utilisez le robot pour effectuer des tests de prise pour toutes les configurations à faible vitesse.
Les tests de prise peuvent être divisés en trois phases :
Phase 1 : test avec un seul objet cible
État de placement de l’objet |
Illustration |
L’objet cible est placé au milieu du bac, avec sa face avant orientée vers le haut |
|
L’objet cible est placé au milieu du bac, avec sa face arrière orientée vers le haut |
|
L’objet cible est placé au milieu du bac, avec son côté orienté vers le haut |
|
L’objet cible est placé dans un coin du bac |
|
Phase 2 : test d’interférence avec des objets cibles voisins
État de placement de l’objet |
Illustration |
Objets cibles entremêlés |
|
Objets cibles superposés |
|
Phase 3 : test en scénario réel
État de placement de l’objet |
Illustration |
Similaire au scénario réel, les objets cibles sont empilés de manière aléatoire. |
|
Si le robot saisit avec succès l’(les) objet(s) cible(s) dans les scénarios de test ci-dessus, le système de vision peut être considéré comme déployé avec succès.







