Déploiement de la solution

Vous consultez actuellement la documentation pour la dernière version (2.1.2). Pour accéder à une autre version, cliquez sur le bouton "Changer de version" situé dans le coin supérieur droit de la page.

■ Si vous n’êtes pas sûr de la version du produit que vous utilisez, veuillez contacter le support technique Mech-Mind pour obtenir de l’aide.

Cette section présente le déploiement de la solution Disques hautement réfléchissants. Le processus global est illustré sur la figure ci-dessous.

solution configuration overview

Configuration matérielle du système de vision

La configuration matérielle 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 matérielle du système de vision.

Configuration de la communication du robot

Avant de configurer la communication du robot, il est nécessaire d’obtenir d’abord la solution. Cliquez ici pour savoir comment obtenir la solution.
  1. Ouvrez Mech-Vision.

  2. Dans l’interface d’accueil de Mech-Vision, cliquez sur Créer à partir de la bibliothèque de solutions pour ouvrir la Bibliothèque de solutions.

  3. Entrez dans la catégorie Cas typiques de la Bibliothèque de solutions, cliquez sur l’icône get resource en haut à droite pour plus de ressources, puis cliquez sur le bouton Confirmer dans la fenêtre contextuelle.

  4. Après avoir obtenu les ressources de la solution, sélectionnez la solution Disques hautement réfléchissants dans la catégorie Prise de pièces soigneusement rangées, renseignez le nom et le chemin de la solution en bas, puis cliquez sur le bouton Créer. Ensuite, cliquez sur le bouton OK dans la fenêtre contextuelle pour télécharger la solution Disques hautement réfléchissants.

    Une fois la solution téléchargée, elle s’ouvrira automatiquement dans Mech-Vision.

Avant de déployer un projet 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 Disques hautement réfléchissants utilise la communication via l’interface standard. Pour des instructions détaillées, veuillez consulter Configuration de la communication via l’interface standard.

Calibration œil-main

La calibration œil-main é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 œil-main du robot et compléter la calibration œil-main.

Chaque fois que la caméra est montée, ou lorsque la position relative de la caméra et du robot change après la calibration, il est nécessaire d’effectuer à nouveau la calibration œil-main.

Configuration du projet de vision

Après avoir terminé la configuration de la communication et la calibration œil-main, vous pouvez utiliser Mech-Vision pour configurer le projet de vision.

Le processus de configuration d’un projet de vision est illustré sur la figure ci-dessous :

vision overall

Se connecter à la caméra et capturer des images

  1. Connectez-vous à la caméra.

    Ouvrez Mech-Eye Viewer, trouvez la caméra à connecter et cliquez sur le bouton Connecter.

    vision click connect camera
  2. Ajustez les paramètres de la caméra.

    Afin de garantir que l’image 2D capturée soit nette et que le nuage de points soit complet, vous devez ajuster les paramètres de la caméra. Pour des instructions détaillées, veuillez consulter LSR L-GL Référence des paramètres de la caméra.

  3. Capturez des images.

    Après que la caméra a été connectée avec succès et que le groupe de paramètres a été défini, vous pouvez commencer à capturer des images de l’objet cible. Cliquez sur le bouton vision click capture icon en haut pour capturer une image unique. À ce moment-là, vous pouvez afficher l’image 2D capturée et le nuage de points de l’objet cible. 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 affichés respectivement à gauche et à droite dans la figure ci-dessous.

    vision image and cloud
  4. Connectez-vous à la caméra dans Mech-Vision.

    Sélectionnez l’étape Capturer des images depuis la caméra, désactivez l’option Mode virtuel, et cliquez sur le bouton Sélectionner la caméra.

    vision select camera

    Dans la fenêtre contextuelle, cliquez sur l’icône vision connect camera before icon à droite du numéro de série de la caméra. Lorsque l’icône devient vision connect camera after icon, 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 de calibration de la caméra dans la liste déroulante à droite, comme illustré ci-dessous.

    vision connect camera

    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 vision run step camera icon dans l’étape Capturer des images depuis la caméra pour exécuter l’étape. S’il n’y a pas d’erreur, la caméra est connectée avec succès et les images peuvent être correctement capturées.

Reconnaissance 3D de l’objet cible

La solution Disques hautement réfléchissants utilise l’étape Reconnaissance 3D de l’objet cible pour reconnaître les objets cibles. Cliquez sur le bouton Assistant de configuration dans le panneau Paramètres de l’étape Reconnaissance 3D de l’objet cible pour ouvrir l’outil Reconnaissance 3D de l’objet cible et configurer les paramètres pertinents. Le processus global de configuration est illustré sur la figure ci-dessous.

vision 3d target object recognition overall

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 afin de rendre le nuage de points original plus clair, ce qui améliore la précision et l’efficacité de la reconnaissance.

  1. Définir la région de reconnaissance.

    Définissez une zone de reconnaissance efficace pour bloquer les facteurs d’interférence et améliorer l’efficacité de la reconnaissance. Le ROI doit inclure les nuages de points des objets cibles et du plateau, et exclure les nuages de points des autres parties de la scène. Pour tenir compte de la déviation de position des objets entrants, la longueur et la largeur du ROI peuvent être augmentées chacune de 100 mm par rapport aux dimensions du plateau.

  2. Ajuster les paramètres.

    Dans la plupart des cas, conservez les valeurs par défaut de ces paramètres. Si le bruit reste présent dans le nuage de points de la scène, essayez d’ajuster les paramètres correspondants pour filtrer le bruit.

Après le prétraitement du nuage de points, cliquez sur le bouton Exécuter l’étape. La figure suivante affiche le résultat du prétraitement.

vision point cloud preprocessing effect

Reconnaître l’objet cible

La solution Disques hautement réfléchissants nécessite l’utilisation de l’apprentissage profond pour aider à reconnaître les objets cibles. Commencez par créer un modèle de nuage de points pour l’objet cible dans l’Éditeur d’objet cible. Ensuite, activez « Aider la reconnaissance par apprentissage profond » dans l’outil Reconnaissance 3D de l’objet cible, et définissez les paramètres pour l’appariement du modèle de nuage de points.

  1. Créer un modèle d’objet cible.

    Cliquez sur le bouton Ouvrir l’éditeur d’objet cible pour ouvrir l’éditeur, définissez les points de prise en déplaçant manuellement le robot.

    Lors du réglage des points de prise pour des objets symétriques en déplaçant manuellement le robot, les orientations de l’axe X des poses des objets cibles reconnus doivent s’aligner autant que possible avec les orientations de l’axe X des poses des points de prise définis en déplaçant le robot, afin d’améliorer la précision de la prise.
  2. Aider la reconnaissance par apprentissage profond.

    Importez et sélectionnez le paquet de modèle d’apprentissage profond (téléchargeable ici), définissez le ROI, et définissez Seuil de confiance dans la fenêtre Configurer l’inférence. Les résultats au-dessus de ce seuil seront conservés.

    Lors de la définition du ROI, une marge d’environ 1/3 de la taille du plateau doit être conservée pour obtenir une meilleure reconnaissance avec l’aide de l’apprentissage profond et éviter les fluctuations de position des objets.
  3. Configurer les paramètres de reconnaissance.

    • Activez le Mode avancé sur le côté droit de Reconnaître l’objet cible.

    • Ajustez ou filtrez les poses à partir de l’appariement grossier : définissez Ajuster les poses sur Ajuster l’orientation de l’axe X, et définissez la valeur de Orientation de l’axe X sur . Cela garantit que les orientations de l’axe X des poses appariées des objets cibles s’alignent autant que possible avec les orientations de l’axe X des points centraux des objets.

    • Nombre maximal de sorties sous « Sortie » : définissez la valeur de ce paramètre au nombre d’objets cibles lorsque le plateau est entièrement chargé. Dans cette solution, le paramètre Nombre maximal de sorties est défini sur 18.

Après avoir défini les paramètres ci-dessus, cliquez sur le bouton Exécuter l’étape.

vision target object recognition effect

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 aux étapes suivantes pour la planification de trajectoire et la détection des collisions.

Étant donné que les points de prise doivent être traités dans les étapes suivantes, sélectionnez Port(s) liés au point de prise sous Sélectionner le port. Ensuite, sélectionnez l’option Nuage de points original acquis par la caméra, et cliquez sur le bouton Enregistrer. De nouveaux ports de sortie sont ajoutés à l’étape Reconnaissance 3D de l’objet cible, comme illustré ci-dessous.

vision general settings effect

Ajuster les poses

Après avoir obtenu les poses des objets cibles, vous devez utiliser l’étape Ajuster les poses V2 pour ajuster les poses. Cliquez sur le bouton Assistant de configuration dans le panneau Paramètres de l’étape Ajuster les poses V2 pour ouvrir l’outil ajustement de pose afin de configurer l’ajustement des poses. Le processus global de configuration est illustré sur la figure ci-dessous.

vision adjust poses overall
  1. Transformer les poses.

    Pour sortir les poses des objets cibles dans le repère du robot, veuillez cocher la case devant Transformer la pose vers le repère du robot pour transformer les poses du repère de la caméra vers celui du robot.

  2. Ajuster les orientations des poses.

    Définissez Orientation sur Alignement automatique et Scénario d’application sur Aligner les axes Z (chargement de machine) afin de garantir que le robot effectue la prise dans une direction spécifiée, évitant ainsi les collisions.

  3. Trier les poses.

    Définissez Type de tri sur Trier par forme Z sur le plan. Étant donné que les objets entrants sont orientés de manière fixe, définissez le paramètre « Pose de référence » sur Faire glisser avec le manipulateur de pose, et rendez l’axe X de la pose de référence parallèle au plateau. Définissez Direction de ligne sur Axe X positif de la pose de référence et Direction de colonne sur Axe Y positif de la pose de référence afin d’assurer la séquence de prise optimale.

  4. Filtrer par angle.

    Pour réduire le temps nécessaire à la planification de trajectoire ultérieure, les objets cibles qui ne peuvent pas être facilement pris doivent être filtrés en fonction de l’angle entre l’axe Z de la pose et la direction de référence. Dans ce tutoriel, vous devez définir Différence angulaire maximale sur 30°.

  5. Paramètres généraux.

    Définissez 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 Informations sur le point de prise de l’étape Reconnaissance 3D de l’objet cible et connectez le port de sortie à l’étape Planification de trajectoire.

Planification de trajectoire

Une fois la reconnaissance de l’objet cible terminée, vous pouvez utiliser l’étape Planification de trajectoire dans Mech-Vision pour planifier une trajectoire, puis écrire un programme robot pour prendre les objets cibles.

Cliquez sur l’étape Planification de trajectoire, puis sur le bouton Assistant de configuration pour ouvrir la fenêtre Outil de planification de trajectoire.

Le processus de configuration de la planification de trajectoire est illustré sur la figure ci-dessous.

viz overall

Configurer les objets de scène

Les objets de scène sont introduits pour rapprocher la scène dans le logiciel 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 scène.

Tout en garantissant la faisabilité de la prise, les objets de scène doivent être configurés en respectant fidèlement l’environnement opérationnel réel. Les objets de scène dans cette solution sont configurés comme ci-dessous

viz scene objects configuration effect

Configurer l’outil du robot

L’outil de bout doit être importé et configuré afin que son modèle puisse être affiché dans la zone de simulation 3D et utilisé pour la détection des collisions. Pour des instructions détaillées, veuillez consulter Configurer l’outil.

  • Pour gagner du temps lors de la création d’un modèle de collision pour l’outil de bout, il n’est pas toujours nécessaire que les enveloppes convexes que vous créez reproduisent chaque détail du modèle original. Vous pouvez omettre certains détails en fonction des exigences spécifiques du modèle.

  • Pour les pièces qui sont en contact direct avec l’objet cible lors de la prise, il est important de reproduire fidèlement leurs formes afin de garantir l’exactitude de la détection des collisions. Pour les structures mécaniques plus éloignées du point de prise (objet cible), la conception peut être simplifiée en utilisant des enveloppes convexes cuboïdes au lieu de conceptions structurelles complexes pour améliorer l’efficacité. L’outil utilisé dans cette solution est illustré ci-dessous :

    viz end tool configuration effect

Ajuster le flux de travail

Après avoir configuré les objets de scène et les outils, vous pouvez ajuster le flux de travail dans l’outil de planification de trajectoire dans l’étape Planification de trajectoire en fonction des besoins réels. Le flux de travail pour la prise des objets cibles est illustré sur la figure ci-dessous.

viz adjust workflow overall

Dans le flux de travail, les deux étapes de déplacement à point fixe, Point de passage fixe au-dessus du bac 1 et 2, sont déterminées dans le programme du robot en déplaçant manuellement le robot et ne seront pas envoyées aux périphériques externes, tandis que les 3 autres étapes de type déplacement enverront des points de passage. Au total, 3 points de passage 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 dans l’outil de planification de trajectoire.

Placez les objets cibles soigneusement sur le plateau, puis cliquez sur le bouton Simuler dans la barre d’outils de l’outil de planification de trajectoire pour simuler le processus de prise. Après chaque prise réussie, l’objet cible doit être réorganisé, et 10 tests de simulation doivent être effectués. Si les 10 simulations conduisent toutes à des prises réussies, le système de vision est configuré avec succès.

En cas d’exception lors de la simulation, reportez-vous à FAQ sur le déploiement de la solution pour résoudre le problème.

Sortir le résultat de vision

Envoie le résultat de vision du projet en cours au composant de communication pour la prise ultérieure.

Prise et dépôt par le robot

Écrire un programme pour le robot

Si le résultat de la simulation est conforme aux attentes, vous pouvez écrire un programme de prise et de dépôt pour le robot ABB.

Le programme d’exemple MM_S3_Vis_Path pour le robot ABB 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_S3_Vis_Path, veuillez consulter Explication du programme d’exemple.

Instructions de modification

Sur la base du programme d’exemple, veuillez modifier les fichiers du programme en suivant ces étapes :

  1. 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 MM_Init_Socket pour ceux du système de vision.

    Avant modification Après modification (exemple)
      MM_Init_Socket "127.0.0.1",50000,300;
      MM_Init_Socket "192.168.1.5",50000,400;
  2. 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 réel du port DO utilisé sur site.

    Avant modification Après modification (exemple)
      !add object grasping logic here, such as "setdo DO_1, 1;"
      Stop;
      !add object grasping logic here, such as "setdo DO_2, 0;"
      setdo DO_2, 0;
  3. Définissez le port DO pour effectuer le dépôt. Notez que la commande DO doit être définie en fonction du numéro réel du port DO utilisé sur site.

    Avant modification Après modification (exemple)
      !add object releasing logic here, such as "setdo DO_1, 0;"
      Stop;
      !add object releasing logic here, such as "setdo DO_2, 1;"
      setdo DO_2, 1;

Référence : programme d’exemple modifié

MODULE MM_S3_Vis_Path
!----------------------------------------------------------
! FUNCTION: trigger Mech-Vision project and get planned path
! Mech-Mind, 2023-12-25
!----------------------------------------------------------
!define local num variables
LOCAL VAR num pose_num:=0;
LOCAL VAR num status:=0;
LOCAL VAR num toolid{5}:=[0,0,0,0,0];
LOCAL VAR num vis_pose_num:=0;
LOCAL VAR num count:=0;
LOCAL VAR num label{5}:=[0,0,0,0,0];
!define local joint&pose variables
LOCAL CONST jointtarget home:=[[0,0,0,0,90,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL CONST jointtarget snap_jps:=[[0,0,0,0,90,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL PERS robtarget camera_capture:=[[302.00,0.00,558.00],[0,0,-1,0],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL PERS robtarget drop_waypoint:=[[302.00,0.00,558.00],[0,0,-1,0],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL PERS robtarget drop:=[[302.00,0.00,558.00],[0,0,-1,0],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL PERS jointtarget jps{5}:=
[
    [[-9.7932,85.483,6.0459,-20.5518,-3.0126,-169.245],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]],
    [[-9.653,95.4782,-4.3661,-23.6568,-2.6275,-165.996],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]],
    [[-9.653,95.4782,-4.3661,-23.6568,-2.6275,-165.996],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]],
    [[-9.653,95.4782,-4.3661,-23.6568,-2.6275,-165.996],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]],
    [[-9.7932,85.483,6.0459,-20.5518,-3.0126,-169.245],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]]
];
!define local tooldata variables*LOCAL PERS tooldata gripper1:=[TRUE,[[0,0,0],[1,0,0,0]],[0.001,[0,0,0.001],[1,0,0,0],0,0,0]];

PROC Sample_3()
    !set the acceleration parameters
    AccSet 50, 50;
    !set the velocity parameters
    VelSet 50, 1000;
    !move to robot home position
    MoveAbsJ home\NoEOffs,v3000,fine,gripper1;
    !initialize communication parameters (initialization is required only once)
    MM_Init_Socket "192.168.1.5",50000,400;
    !move to image-capturing position
    MoveL camera_capture,v1000,fine,gripper1;
    !open socket connection
    MM_Open_Socket;
    !trigger NO.1 Mech-Vision project
    MM_Start_Vis 1,0,2,snap_jps;
    !get planned path from NO.1 Mech-Vision project; 2nd argument (1) means getting pose in JPs
    MM_Get_VisPath 1,1,pose_num,vis_pose_num,status;
    !check whether planned path has been got from Mech-Vision successfully
    IF status<>1103 THEN
        !add error handling logic here according to different error codes
        !e.g.: status=1003 means no point cloud in ROI
        !e.g.: status=1002 means no vision results
        Stop;
    ENDIF
    !close socket connection
    MM_Close_Socket;
    !save waypoints of the planned path to local variables one by one
    MM_Get_Jps 1,jps{1},label{1},toolid{1};
    MM_Get_JPS 2,jps{2},label{2},toolid{2};
    MM_Get_JPS 3,jps{3},label{3},toolid{3};
    !follow the planned path to pick
    !move to approach waypoint of picking
    MoveAbsJ jps{1},v1000,fine,gripper1;
    !move to picking waypoint
    MoveAbsJ jps{2},v1000,fine,gripper1;
    !add object grasping logic here, such as "setdo DO_2, 0;"
    setdo DO_2, 0;
    !move to departure waypoint of picking
    MoveAbsJ jps{3},v1000,fine,gripper1;
    !move to intermediate waypoint of placing
    MoveJ drop_waypoint,v1000,z50,gripper1;
    !move to approach waypoint of placing
    MoveL RelTool(drop,0,0,-100),v1000,fine,gripper1;
    !move to placing waypoint
    MoveL drop,v300,fine,gripper1;
    !add object releasing logic here, such as "setdo DO_2, 1;"
    setdo DO_2, 1;
    !move to departure waypoint of placing
    MoveL RelTool(drop,0,0,-100),v1000,fine,gripper1;
    !move back to robot home position
    MoveAbsJ Home\NoEOffs,v3000,fine,gripper1;
ENDPROC
ENDMODULE

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 le test de prise avec le robot. Pour des instructions détaillées, veuillez consulter Tester la communication de l’interface standard.

Avant d’effectuer le test de prise, veuillez enseigner les points de passage suivants.

Nom Variable Description

Position de référence

home

La 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.

Entrer la pose du projet Mech-Vision

snap_jps

Positions articulaires définies par l’utilisateur.

Position de capture d’image

camera_capture

La 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 obstruer le champ de vision (FOV) de la caméra.

Point de passage intermédiaire

drop_waypoint

L’ajout de points de passage intermédiaires assure un mouvement fluide du robot et évite des collisions inutiles.

Point de dépôt

drop

La position pour déposer l’objet cible.

Données d’outil

gripper1

L’outil utilisé par le robot lors de ses mouvements.

Après l’enseignement, placez les objets cibles comme illustré dans le tableau ci-dessous, et utilisez le robot pour effectuer le test de prise à faible vitesse. Dans cette solution, si les objets cibles sont soigneusement rangés et qu’il n’y a pas d’anomalies concernant les objets entrants, vous pouvez directement effectuer des tests de prise dans le scénario réel.

Test de prise en scénario réel

État de placement des objets

Illustration

Soigneusement rangés

picking test 1

Dans le scénario de test ci-dessus, si le robot saisit avec succès les objets cibles, le système de vision est déployé avec succès.

Cette page est-elle utile ?

Veuillez nous indiquer comment améliorer :

Nous accordons de l’importance à votre vie privée

Nous utilisons des cookies pour vous offrir la meilleure expérience possible sur notre site web. En continuant à utiliser le site, vous reconnaissez accepter l’utilisation des cookies. Si vous refusez, un cookie unique sera utilisé pour garantir que vous ne soyez pas suivi ou reconnu lors de votre visite sur ce site.