Préhension et dépose

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.

Dans ce tutoriel, vous allez d’abord découvrir le processus de préhension et de dépose dans cet exemple, puis apprendre à le configurer.

Processus de préhension et de dépose

La logique de préhension et de dépose de cet exemple est illustrée dans la figure ci-dessous.

picking workflow

Description de la solution de communication

Dans le processus ci‑dessus, l’étape « le robot déclenche la caméra pour capturer des images et obtenir la trajectoire planifiée » nécessite que le robot utilise l’Interface Standard pour communiquer avec le système de vision, et l’Interface Standard « utilise Mech-Viz pour obtenir la trajectoire planifiée » du système de vision.

Lorsque vous utilisez ce mode de coopération, vous devez configurer le projet Mech-Vision (déjà configuré dans la section « Configuration du projet de vision ») et le projet Mech-Viz, et écrire le programme du robot. Veuillez vous référer à Configurer le processus de prise et dépose pour configurer le projet Mech-Viz et écrire le programme du robot.

Configurer le processus de préhension et de dépose

Pour réaliser le flux logique de préhension et de dépose, vous devez effectuer les configurations suivantes :

picking workflow config

Configurer le projet Mech-Viz pour la planification de trajectoire et la simulation

Créer un projet dans Mech-Viz pour fournir au robot les fonctions suivantes :

  • Planification de trajectoire : planifie la trajectoire de préhension du robot. Notez que la trajectoire planifiée ne comprend pas la trajectoire de dépose. La trajectoire de dépose doit être ajoutée dans le programme du robot.

  • Détection des collisions : Mech-Viz effectue une détection des collisions lors de la planification de trajectoire afin de fournir au robot une trajectoire de préhension sans collision.

  • Exécuter en simulation : Mech-Viz peut visualiser le processus de préhension du robot simulé pour la mise en service.

Le processus de configuration d’un projet Mech-Viz est illustré dans la figure ci-dessous.

viz project config workflow

Le cas « Single-Case Depalletizing » dans la Bibliothèque de solutions Mech-Vision comporte un projet Mech-Viz intégré « Viz-Single-Case Depalletizing ». Avant de continuer, veuillez ouvrir le logiciel Mech-Viz, sélectionner Fichier  Ouvrir dans la barre de menu, et choisir le dossier « Viz-Single-Case Depalletizing » dans le dossier local de la solution « Single-Case Depalletizing ».

open viz project

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.

En se fondant sur la garantie de la faisabilité de la préhension, il convient de restituer strictement l’environnement opérationnel réel. Les objets de scène dans cette solution sont configurés comme suit.

config scene objects

Configurer l’effecteur terminal

L’effecteur terminal 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 les opérations spécifiques, veuillez consulter Configurer l’effecteur terminal.

Associer l’objet cible et l’outil

Après avoir configuré l’effecteur terminal, vous devez associer l’objet cible à l’effecteur terminal pour la préhension dans l’éditeur d’objet cible, afin que l’effecteur terminal configuré puisse être utilisé pour la préhension. Dans cet exemple, l’objet cible à saisir est un carton, et vous n’avez pas besoin du modèle d’objet cible pour l’appariement. Par conséquent, vous devez simplement créer un objet cible sans modèle de nuage de points (objet cible par défaut) dans l’éditeur d’objet cible.

  1. Cliquez sur le bouton de paramètres sous le nœud Objets cibles dans l’arborescence des ressources du projet pour ouvrir l’éditeur d’objet cible.

  2. Dans la fenêtre Sélectionner le workflow de configuration, cliquez sur la carte Reconnaître sans appariement. Cette opération crée automatiquement un objet cible par défaut et ajoute un point de prise par défaut.

  3. Dans la zone Configuration de la préhension de l’onglet Définir le point de prise, sélectionnez Utiliser tous les outils dans Mech-Viz pour associer l’effecteur terminal à l’objet cible.

Simplifier le modèle de collision

Pour gagner du temps lors de la création d’un modèle de collision pour l’effecteur terminal, vous ne reproduisez pas toujours chaque détail du modèle original lors de la création de coques convexes. Vous pouvez omettre certains détails en fonction des exigences spécifiques du modèle.

Directives de simplification du modèle : les trous de vis et autres caractéristiques détaillées dans la section de connexion entre l’outil de préhension et le robot peuvent être supprimés. Étant donné que le modèle de ventouse original était un parallélépipède rectangle, il n’est pas nécessaire de le simplifier ici.

Un modèle simplifié est présenté ci-dessous.

simplify tool model

Créer un workflow

Le projet Mech-Viz intégré « Viz-Single-Case Depalletizing » du cas « Single-Case Depalletizing » a déjà créé un workflow. La description de chaque étape du workflow est la suivante.

Étape Description Utilisation
define home

Définit la position de capture d’image. 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.
Déplacez manuellement le robot vers la position de capture d’image et enregistrez la pose actuelle du robot dans l’étape.

Uniquement utilisé pour la simulation, non envoyé au robot

set branch

Choisit une branche en fonction du message reçu

En attente que le programme du robot envoie la commande pour démarrer la capture d’images

visual recognition

Appelle le résultat de vision depuis Mech-Vision

/

check vision result

Vérifie s’il existe un résultat de vision

/

relative move 1

Planifie le point d’approche pour la préhension

Envoyé au robot

vision move

Planifie le point de prise

Envoyé au robot

relative move 2

Planifie le point de retrait pour la préhension

Envoyé au robot

define immediate point

Définit le point intermédiaire

Uniquement utilisé pour la simulation, non envoyé au robot

Configurer la stratégie de décalage de la ventouse

Dans l’étape « Vision Move », vous pouvez configurer la stratégie de décalage de la ventouse selon les exigences de préhension sur site.

sucker offset setting

Configurer les paramètres de détection des collisions

Le logiciel Mech-Viz peut utiliser la fonction de détection des collisions pour éviter des collisions inutiles lorsque le robot se déplace. Détection de collision sur nuage de points doit être activée pour cette application. Pour des instructions détaillées, veuillez consulter Configuration de la détection de collisions.

  • Dans cette application, activez Détection de collision sur nuage de points et définissez la forme du nuage de points pour la détection des collisions sur « Cube de nuage de points ». La fonction Détection de collision sur nuage de points est principalement utilisée pour détecter la collision entre l’outil de préhension et le nuage de points. Vous pouvez activer la détection des collisions entre les parties du robot et le nuage de points selon les besoins réels afin de réduire le temps de planification.

  • Détecter les collisions sur les objets cibles est principalement utilisée pour détecter la collision entre l’objet cible saisi et l’objet de scène. Pour des scénarios avec des cartons, il n’est pas nécessaire de l’activer.

  • Solutions aux problèmes courants : veuillez activer Problème 1 et définir Extension de la plage de suppression du nuage de points en direction Z et Extension de la plage de suppression du nuage de points en directions X/Y en fonction de la situation sur site. Notez que l’extension de la plage de suppression du nuage de points en directions X/Y ne doit pas être réglée trop grande. Un réglage trop grand peut amener la ventouse à appuyer sur le carton adjacent pendant la préhension.

collision detection

Exécuter en simulation

Cliquez sur le bouton Simuler dans la barre d’outils pour exécuter le projet Mech-Viz en simulation.

simulation

Objectifs de simulation et de test

Placez le carton sur la palette et utilisez le logiciel Mech-Viz pour simuler la préhension. Après chaque préhension réussie, retirez manuellement le carton qui a été saisi avec succès pendant la simulation, et faites tourner la simulation pour tester une couche de cartons. Si tous les cartons peuvent être prélevés avec succès, vous pouvez déterminer que le projet de vision a été construit sans anomalie.

simulation

Configurer les paramètres du robot et écrire le programme du robot

Le programme d’exemple d’interface standard d’ABB MM_S9_Viz_RunInAdvance peut en grande partie satisfaire les exigences de cet exemple. Vous pouvez modifier le programme d’exemple. Pour une explication détaillée du programme MM_S9_Viz_RunInAdvance, veuillez consulter Explication de l’exemple de programme.

Sur la base du programme d’exemple, veuillez effectuer les étapes suivantes côté robot :

  1. Enseignez la position d’origine (position initiale).

    Déplacez le robot vers la position initiale en mode TEACH. 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. Enregistrez la pose actuelle du robot dans la variable home.

  2. Spécifiez l’adresse IP et le numéro de port de l’IPC. Changez l’adresse IP et le port de la commande MM_Init_Socket pour ceux de l’IPC.

    Avant modification Après modification (exemple)
        MM_Init_Socket "127.0.0.1",50000,300;
        MM_Init_Socket "192.168.10.111",50000,300;
  3. Enseignez au robot la position de capture d’image.

    Déplacez le robot vers la position de capture d’image en mode TEACH. 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 FOV de la caméra. Enregistrez la pose actuelle du robot dans la variable camera_capture.

  4. Définissez le signal du port DO pour ouvrir la ventouse afin de saisir le carton. Notez que la commande DO doit être définie selon le numéro de port DO effectivement 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_1, 1;"
        setDo do0, 1;
        !Stop;
  5. Enseignez le point intermédiaire et le point de dépose.

    Déplacez le robot vers le point intermédiaire et le point de dépose en mode TEACH, et enregistrez la pose du robot dans les variables drop_waypoint et drop respectivement.

  6. Définissez le signal du port DO pour désactiver la ventouse pour la dépose des cartons. Notez que la commande DO doit être définie selon le numéro de port DO effectivement 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_1, 0;"
        setDo do0, 0;
        setDo do4, 1;
        Stop;

Tester l’effet de préhension-dépose du robot

Suivez ces étapes pour tester l’effet de préhension-dépose du robot :

  1. Sur le boîtier d’enseignement, touchez Debug  PP vers Routine.

  2. Confirmez que MM_S9_Viz_RunInAdvance est sélectionné, puis cliquez sur OK.

  3. Appuyez et maintenez le bouton suivant pour mettre le moteur sous tension. Dans ce cas, l’icône d’état sur le boîtier d’enseignement indique que le moteur est sous tension.

  4. Cliquez sur le bouton Exécuter sur le boîtier d’enseignement.

Si le robot peut saisir et déposer des cartons avec succès, le programme du robot répond à vos exigences.

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

Le programme d’exemple final est le suivant :

PROC Sample_9()
    !set the acceleration parameters
    AccSet 50, 50;
    !set the velocity parameters
    VelSet 50, 1000;
    !move to robot home position
    MoveAbsJ home\NoEOffs,v500,fine,gripper1;
    !initialize communication parameters (initialization is required only once)
    MM_Init_Socket "192.168.10.111",50000,300;
    !move to image-capturing position
    MoveL camera_capture,v1000,fine,gripper1;
    !open socket connection
    MM_Open_Socket;
    !trigger Mech-Viz project
    MM_Start_Viz 2,snap_jps;
    !set branch exit port
    MM_Set_Branch 1,1;
LOOP:
    !get planned path, 1st argument (1) means getting pose in JPs
    MM_Get_VizData 1, pose_num, vis_pose_num, status;
    !check whether planned path has been got from Mech-Viz successfully
    IF status <> 2100 THEN
        !add error handling logic here according to different error codes
        !e.g.: status=2038 means no point cloud in ROI
        Stop;
    ENDIF
    !save waypoints of the planned path to local variables one by one
    MM_Get_JPS 1,jps{1},label{1},speed{1};
    MM_Get_JPS 2,jps{2},label{2},speed{2};
    MM_Get_JPS 3,jps{3},label{3},speed{3};
    !follow the planned path to pick
    !move to approach waypoint of picking
    MoveAbsJ jps{1},v500,fine,gripper1;
    !move to picking waypoint
    MoveAbsJ jps{2},v300,fine,gripper1;
    !add object grasping logic here, such as "setdo DO_1, 1;"
    setDo do0, 1;
    !Stop;
    !trigger Mech-Viz project but not to trigger camera capturing
    MM_Start_Viz 2,snap_jps;
    !move to departure waypoint of picking
    MoveAbsJ jps{3},v500,fine,gripper1;
    !move to intermediate waypoint of placing
    MoveJ drop_waypoint,v500,z50,gripper1;
    !move to approach waypoint of placing
    MoveL RelTool(drop,0,0,-100),v500,fine,gripper1;
    !set branch exit port and trigger camera capturing when robot moves out of camera’s field of view
    MM_Set_Branch 1,1;
    !move to placing waypoint
    MoveL drop,v300,fine,gripper1;
    !add object releasing logic here, such as "setdo DO_1, 0;"
    !Stop;
    setDo do0, 0;
    setDo do4, 1;
    !move to departure waypoint of placing
    MoveL RelTool(drop,0,0,-100),v500,fine,gripper1;
    setDo do4, 0;
    !move back to robot home position
    MoveAbsJ home\NoEOffs,v500,fine,gripper1;
    GOTO LOOP;
END_LOOP:
    !close socket connection
    MM_Close_Socket;
ENDPROC
ENDMODULE

Vous avez maintenant déployé une application de dépalettisation de cartons à l’unité guidée par vision 3D.

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.