Configuration du projet de vision
Avant d’utiliser ce tutoriel, vous devez avoir créé une solution en utilisant le projet de cas « Loading Randomly Stacked Target Objects » dans la section Configuration de la communication du robot.
Dans ce tutoriel, vous apprendrez d’abord le flux de travail du projet, puis vous déploierez le projet en ajustant les paramètres des Steps pour reconnaître les poses des objets cibles et sortir le résultat de vision.
| Dans ce tutoriel, vous devrez convertir le fichier modèle STL de l’objet cible en un modèle d’appariement de nuage de points. Étant donné que la préparation du fichier modèle STL prend du temps, il est recommandé de préparer le fichier modèle STL de l’objet cible avant d’utiliser ce tutoriel. Vous pouvez le télécharger en cliquant ici. |
Introduction au flux de travail du projet
Dans ce tutoriel, vous devez configurer le projet de vision à l’aide de Mech-Vision et Mech-Viz. Le processus de configuration d’un projet de vision est illustré dans la figure ci-dessous.
Les phases du processus de configuration du projet de vision sont expliquées ci-dessous.
| Phase | Logiciel utilisé | Description |
|---|---|---|
Connexion à la caméra et acquisition des images |
Mech-Vision |
Se connecter à la caméra via le Step « Capture Images from Camera » de Mech-Vision pour la capture d’images. |
Reconnaître les objets cibles |
Mech-Vision |
Effectuer une série de traitements de vision (prétraitement du nuage de points, appariement 3D, inférence par apprentissage profond, etc.) sur les données d’image via le Step « 3D Target Object Recognition » de Mech-Vision pour reconnaître rapidement les objets cibles. |
Ajuster les poses |
Mech-Vision |
Utiliser le Step « Adjust Poses V2 » du logiciel Mech-Vision pour transformer le repère, ajuster les poses, trier les poses ou filtrer les poses sorties par le Step « 3D Target Object Recognition ». |
Localiser le bac |
Mech-Vision |
Vous pouvez utiliser la Procédure « Standard Bin Locating » de Mech-Vision pour reconnaître le bac. La pose du bac reconnue sera envoyée au logiciel Mech-Viz pour mettre à jour la position du modèle de bac. |
Planifier la trajectoire du robot |
Mech-Vision & Mech-Viz |
Le Step « Output » de Mech-Vision envoie le résultat de vision (comme les points centraux des objets, les nuages de points prétraités, les noms des modèles de scène des bacs, les poses centrales des bacs, etc.) à Mech-Viz.
|
Sortir la trajectoire planifiée |
Mech-Viz |
Après réception de la commande de l’Interface Standard depuis le robot (utilisée dans ce tutoriel) ou le PLC, Mech-Viz renvoie la trajectoire de mouvement du robot sans collision planifiée.
|
Ajuster les paramètres des Steps
Dans cette section, vous déploierez le projet en ajustant les paramètres de chaque Step.
| Le projet de cette section est le projet « Vis_Target_Objects_Recognition » dans la solution « Loading Randomly Stacked Target Objects ». |
Capturer des images depuis la caméra
Nom de l’étape |
Capturer des images depuis la caméra |
|---|---|
Phase |
Se connecter à la caméra et acquérir des images |
Illustration |
|
Description |
Se connecter à une caméra réelle et configurer les paramètres pertinents pour garantir que la caméra puisse capturer correctement des images. |
-
Dans l’Espace de programmation graphique de Mech-Vision, sélectionnez l’étape Capturer des images depuis la caméra, et cliquez sur Sélectionner la caméra dans l’onglet Paramètres de l’étape.
-
Dans la fenêtre Sélectionner la caméra et le groupe de paramètres de calibration qui s’affiche, cliquez sur l’icône
à droite du numéro de série de la caméra. Lorsque cette icône devient
, la caméra est connectée avec succès.
Après la connexion de la caméra, cliquez sur le bouton Sélectionner le groupe de paramètres et sélectionnez le groupe de paramètres calibrés avec ETH/EIH et date.
Le groupe de paramètres de calibration sélectionné ici est celui généré après l’achèvement de la calibration main-œil. -
Après la connexion de la caméra et la sélection du groupe de paramètres, le groupe de paramètres de calibration, l’adresse IP et les ports de la caméra seront obtenus automatiquement. Assurez-vous que Groupe de paramètres de configuration est défini sur « Threaded rod ».
-
Cliquez sur le bouton d’exécution d’une seule étape de l’étape Capturer des images depuis la caméra pour déclencher la capture d’images, double-cliquez sur les flux de données « Carte de profondeur de la caméra » et « Image couleur de la caméra » de l’étape, et vérifiez si les images ont été capturées avec succès depuis la caméra dans la fenêtre Sortie de débogage.
-
Si vous pouvez voir une carte de profondeur et une image couleur normales dans la fenêtre Sortie de débogage, le logiciel Mech-Vision s’est connecté avec succès à la caméra réelle et peut capturer correctement des images.
Reconnaissance d’objet cible 3D
Nom du Step |
3D Target Object Recognition |
|---|---|
Phase |
Reconnaître les objets cibles |
Illustration |
|
Description |
Vous devez définir les paramètres de prétraitement du nuage de points, créer des modèles d’objets cibles dans l’éditeur d’objets cibles, sélectionner l’objet cible, définir les paramètres d’apprentissage profond et de reconnaissance, et configurer les ports de sortie. |
Le Step « 3D Target Object Recognition » fournit un outil visuel intégré « 3D Target Object Recognition ». Avec l’assistant, vous pouvez facilement reconnaître les poses des objets cibles en seulement trois étapes.
Vous pouvez commencer l’ajustement des paramètres en ouvrant l’outil « 3D Target Object Recognition » de l’une des manières suivantes.
-
Cliquez sur le bouton Assistant de configuration sur le bloc Step dans l’Espace de programmation graphique.
-
Dans l’onglet Paramètres du Step, cliquez sur le bouton Assistant de configuration.
Prétraitement du nuage de points
Le prétraitement du nuage de points convertit les données d’image acquises en nuages de points, détecte les nuages de points des bords et filtre les nuages de points qui ne respectent pas les règles en définissant des zones de reconnaissance de nuage de points valides, améliorant ainsi l’efficacité de la reconnaissance ultérieure.
Dans cette étape, vous devez définir une zone de reconnaissance efficace pour maintenir les facteurs d’interférence hors de la zone afin d’améliorer l’efficacité de la reconnaissance. La zone de reconnaissance doit couvrir le bac et les objets cibles à l’intérieur, avec une extension vers l’extérieur appropriée de 20 à 30 mm pour tenir compte des effets des légères variations de la position du bac.
En général, conservez les valeurs par défaut des autres paramètres de prétraitement. S’il y a beaucoup de bruit dans la scène, vous pouvez essayer d’ajuster les paramètres concernés. Pour plus de détails, reportez-vous à Prétraitement du nuage de points.
| Après l’ajustement des paramètres, vous pouvez cliquer sur le bouton Exécuter le Step dans la zone Prévisualiser le résultat du prétraitement, et confirmer que l’effet du prétraitement correspond aux attentes dans l’Espace de visualisation. |
Sélection et reconnaissance de l’objet cible
|
Créer le modèle de l’objet cible
Dans ce tutoriel, un modèle de nuage de points de l’objet cible est généré à l’aide du fichier modèle STL de l’objet cible au format .stl. Vous pouvez le télécharger en cliquant ici.
Veuillez vous référer à Importer un fichier STL pour générer un modèle de nuage de points et configurer manuellement les points de préhension pour créer le modèle d’appariement de nuage de points de l’objet cible.
Précautions :
-
Lorsque la caméra est utilisée pour acquérir les données de nuage de points des boulons, un lissage excessif du nuage de points peut se produire, ce qui peut entraîner une perte des détails du filetage. Par conséquent, ce tutoriel génère le modèle de nuage de points en important un fichier STL. Dans ce tutoriel, le fichier modèle STL fourni a été simplifié, comme illustré ci-dessous.
-
Dans l’étape « Configure STL file », définissez l’unité en fonction de la longueur réelle de l’objet cible, et sélectionnez toutes les vues dans la zone Set view.
-
Dans l’étape « Set pick point », définissez un point de préhension pour le modèle de nuage de points selon la situation réelle. Pour des instructions détaillées, veuillez consulter Définir le point de préhension. Dans cette solution, une pince à doigts est utilisée pour saisir la partie de la vis, donc le point de préhension de l’objet cible est défini au milieu de la vis.
| Les configurations liées à l’outil terminal utilisé pour la saisie des objets cibles peuvent être suspendues jusqu’à la configuration du projet Mech-Viz. |
Une fois le modèle d’objet cible créé, fermez la fenêtre Target Object Editor pour revenir à l’interface de l’outil « 3D Target Object Recognition », et cliquez sur le bouton Mettre à jour l’objet cible. S’il n’y a qu’un seul modèle d’objet cible dans l’éditeur d’objets cibles de la solution, l’outil sélectionnera automatiquement le modèle d’objet cible. S’il y a plusieurs modèles d’objets cibles dans l’éditeur d’objets cibles de la solution, veuillez sélectionner le modèle d’objet cible à utiliser.
Définir les paramètres d’apprentissage profond
-
Dans la zone Utiliser l’apprentissage profond, activez l’option Assister la reconnaissance par l’apprentissage profond.
-
Utilisez l’outil de gestion de paquet de modèles pour importer le paquet de modèle d’apprentissage profond fourni dans ce tutoriel, ou utilisez Mech-DLK pour entraîner votre propre paquet de modèle d’apprentissage profond. Pour des instructions détaillées, veuillez consulter Importer le paquet de modèle d’apprentissage profond.
-
Dans la zone Utiliser l’apprentissage profond, sélectionnez le modèle importé dans la liste déroulante des paquets de modèles.
Le chargement du modèle d’apprentissage profond peut prendre un certain temps lors de la première utilisation. Veuillez patienter. -
Cliquez sur le bouton Set ROI pour définir le ROI 2D. Pour des instructions détaillées, veuillez consulter Instructions pour définir un ROI 2D.
-
Ajustez les paramètres d’apprentissage profond : pour éviter la perte d’informations sur les bords des masques sortis par le modèle d’apprentissage profond, dilatez les masques de 5 pixels afin d’obtenir des données de nuage de points de l’objet cible plus complètes.
Définir les paramètres d’appariement
-
Dans la zone Reconnaître l’objet cible, désactivez l’option Définition automatique du mode d’appariement. Lorsque l’option Définition automatique du mode d’appariement est activée, la précision de reconnaissance peut ne pas répondre aux exigences sur site. Il est donc recommandé de désactiver cette option.
-
Définissez le Mode d’appariement grossier sur « Appariement par arêtes » et le Mode d’appariement fin sur « Appariement par surfaces ».
Étant donné que la surface du boulon présente de nombreuses ondulations, « Appariement par surfaces » doit être utilisé dans le Mode d’appariement fin. Par ailleurs, il est recommandé de définir le Mode d’appariement grossier sur « Appariement par arêtes » afin d’utiliser plus efficacement les caractéristiques de bord pour résoudre les désalignements axiaux et améliorer la vitesse d’appariement. -
Définissez le seuil de confiance, par exemple 0,5, selon les besoins réels pour supprimer les résultats d’appariement incorrects.
-
Définissez Sorties max selon les besoins réels, par exemple 30. Minimisez le nombre de sorties pour réduire le temps d’appariement tout en satisfaisant les exigences de planification de trajectoire.
Configurer les ports de sortie
Sélectionnez les ports de sortie suivants pour la planification de trajectoire et la détection de collision ultérieures :
-
Port(s) liés au point central de l’objet
Lors des ajustements ultérieurs des poses, il sera plus précis d’ajuster les poses sur la base du point central de l’objet cible, vous devez donc sélectionner cette option. -
Nuage de points prétraité
La position du bac peut changer à chaque arrivée, vous devez donc sélectionner cette option pour la reconnaissance et la localisation du bac.
Adjust Poses V2
Nom du Step |
Adjust Poses V2 |
|---|---|
Phase |
Ajuster les poses |
Illustration |
|
Description |
Définir les paramètres pour transformer les poses, ajuster les poses, trier les poses et filtrer les poses. |
Après avoir obtenu la pose de l’objet cible, vous devez ajuster la pose. La procédure de traitement est la suivante.
Avec l’outil intégré d’ajustement des poses dans Mech-Vision, vous pouvez facilement ajuster les poses des objets et optimiser la séquence de saisie. Vous pouvez commencer l’ajustement des paramètres en ouvrant l’outil d’ajustement des poses de l’une des manières suivantes.
-
Cliquez sur le bouton Assistant de configuration sur le bloc Step dans l’Espace de programmation graphique.
-
Dans l’onglet Paramètres du Step, cliquez sur le bouton Assistant de configuration.
Suivez ces étapes pour ajuster les paramètres :
-
Transformer les poses : dans l’onglet Ajustement des poses, transformez les poses du repère de la caméra vers le repère du robot.
-
Ajuster les poses : dans l’onglet Ajustement des poses, orientez l’axe Z des poses vers la pose de référence située directement au-dessus du bac.
Comme les boulons sont empilés aléatoirement, si les poses des objets cibles pointent vers le haut le long de l’axe Z, le robot est susceptible de heurter le bac lors de la saisie des objets cibles près du bord du bac. Par conséquent, l’axe Z des poses des boulons doit être tourné d’un certain angle, et la stratégie « Pointer vers le point de référence » peut permettre d’obtenir cet effet.
-
Trier les poses : dans l’onglet Règles de traitement, triez les poses par leur valeur Z dans le repère du robot par ordre décroissant.
Pour cette application, les objets cibles ayant des hauteurs plus élevées doivent être saisis en premier, ils doivent donc être triés par ordre décroissant selon les valeurs Z des poses.
-
Filtrer les poses par angle : dans l’onglet Règles de traitement, filtrez les poses manifestement impossibles à saisir selon la direction de leur axe Z, ce qui réduit le temps de planification de trajectoire dans Mech-Viz.
-
Filtrer les poses hors ROI : dans l’onglet Règles de traitement, définissez un ROI pour déterminer si les poses se trouvent dans le ROI et ne conserver que les poses dans le ROI.
La région cible (3d_roi) est dans le repère du robot. Pour éviter les erreurs de filtrage, vous devez redéfinir la région cible selon les paramètres extrinsèques réels.
-
Définir de nouveaux ports : définissez le paramètre Définir le nombre de nouveaux ports sur 1 afin de sortir les noms des objets cibles correspondant aux poses triées pour la détection de collision ultérieure. Retournez dans l’espace de programmation graphique et vous trouverez un nouveau port d’entrée et un nouveau port de sortie pour recevoir et sortir les noms des objets cibles. Veuillez connecter les ports d’entrée et de sortie, retournez à l’outil d’ajustement des poses, et cliquez sur le bouton Obtenir les données pour confirmer que les paramètres ont été correctement obtenus.
Standard Bin Locating
Nom du Step |
Standard Bin Locating (Procédure personnalisée) |
|---|---|
Phase |
Localiser le bac |
Illustration |
|
Description |
Veuillez définir le nom de l’objet de scène dans lequel le bac posera dans le projet Mech-Viz ainsi que l’offset de la pose du bac. |
-
Dans l’Espace de programmation graphique de Mech-Vision, sélectionnez la Procédure Standard Bin Locating, et dans l’onglet Paramètres du Step dans le coin inférieur droit de l’interface, définissez le paramètre Strings.
La valeur du paramètre Strings sera utilisée comme nom de l’objet de scène « bin » dans le projet Mech-Viz. La valeur de ce paramètre doit être utilisée comme nom lors de la configuration de l’objet de scène du bac dans le projet Mech-Viz.
-
Définissez le paramètre Translation distance à la moitié de la hauteur du bac.
La pose du bac actuellement reconnue se trouve sur la surface supérieure du bac. Pour s’assurer que la pose du bac reconnu puisse correspondre correctement au centre du bac, la pose de reconnaissance doit être ajustée. Cette Procédure se déplace le long de l’axe Z du repère du bac, un décalage spécifique doit donc être soustrait. Par conséquent, il est défini sur une valeur négative ici.
Sortie
Nom du Step |
Sortie |
|---|---|
Phase |
Planifier la trajectoire du robot (en tant que prérequis) |
Illustration |
|
Description |
Confirmer que les informations nécessaires à la planification de la trajectoire et à la détection de collision peuvent être sorties. |
Selon les exigences de planification de la trajectoire et de détection de collision, vous devez sortir les informations suivantes vers le logiciel Mech-Viz :
-
Point central de l’objet (PoseList)
-
Nom de l’objet cible (StringList)
-
Nuage de points avec normales (Cloud(XYZ-Normal)) : nuage de points prétraité
-
Nom de l’objet de scène (StringList) : le nom du modèle de scène du bac
-
Pose de l’objet de scène (PoseList) : la pose centrale du bac
Définissez le paramètre Type de port sur « Prédéfini (résultat de vision) » et sélectionnez l’option « Mettre à jour l’objet de scène ».
Veuillez vous assurer que tous les ports ci-dessus ont des connexions de flux de données, puis cliquez sur le bouton Exécuter pour confirmer que le projet peut s’exécuter avec succès et sortir le résultat de vision. Vous pouvez vérifier s’il existe des logs avec les résultats de vision dans l’onglet Vision du panneau de logs de Mech-Vision.
Planification de trajectoire
Dans cet exemple, Mech-Viz est utilisé pour obtenir la trajectoire planifiée. Lors de l’utilisation du mode de communication Standard Interface, le projet Mech-Viz et le côté robot doivent coopérer pour réaliser le processus de prise et de dépose du robot guidé par la vision 3D.
Pour plus de détails sur la façon de configurer le projet Mech-Viz pour la planification de trajectoire, veuillez vous référer à la section Picking and Placing.
Vous avez maintenant terminé la configuration du projet de vision.