Prise 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 apprendrez d’abord le processus de prise et de dépose dans cet exemple, puis comment le configurer.

Tutoriel vidéo: effectuer la prise

Processus de prise et de dépose

La logique de prise et de dépose dans 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 » exige que le robot utilise l’Interface Standard pour communiquer avec le système de vision, ainsi que l’Interface Standard « utilise Mech-Vision pour obtenir la trajectoire planifiée » du système de vision.

Lors de l’utilisation de ce mode, vous devez configurer le projet Mech-Vision (y compris l’étape « Planification de trajectoire ») et écrire le programme du robot. Veuillez consulter Configuration du processus de prise et de dépose pour configurer le projet Mech-Vision et écrire le programme du robot.

Configurer le processus de prise et de dépose

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

picking workflow config

Configurer l’étape de planification de trajectoire et la simulation dans le projet Mech-Vision

L’étape de planification de trajectoire fournit les fonctions suivantes au robot :

  • Planification de trajectoire : planifie la trajectoire de prise du robot. Notez que la trajectoire planifiée ne contient pas la trajectoire de dépose. La trajectoire de dépose doit être ajoutée au programme du robot.

  • Détection de collisions : l’étape de planification de trajectoire effectue une détection de collisions lors de la planification afin de fournir au robot une trajectoire de prise sans collision.

  • Exécuter en simulation : l’étape de planification de trajectoire peut visualiser le processus de prise du robot simulé pour la mise en service.

Par défaut, la détection de collisions entre le robot, les objets de scène et l’outil est activée dans l’étape de planification de trajectoire. Aucun paramètre supplémentaire de détection de collisions n’a besoin d’être configuré dans cette étape.

Le flux de travail de configuration de l’étape de planification de trajectoire dans un projet Mech-Vision est présenté ci-dessous.

viz project config workflow

Cliquez sur le bouton Assistant de configuration sur le bloc Step dans l’espace de travail de programmation graphique pour ouvrir l’outil de configuration de la planification de trajectoire.

open path planning tool

Configurer les objets de scène

Les objets de 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 scène.

En garantissant la faisabilité de la prise, une restitution stricte de l’environnement opérationnel réel doit être effectuée. Les objets de scène dans cette solution sont définis comme suit.

config scene objects

Configurer l’outil terminal

L’outil 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 de collisions. Pour des opérations spécifiques, veuillez consulter Configurer l’outil terminal.

Associer l’objet cible et l’outil

Après avoir configuré l’outil terminal, vous devez associer l’objet cible à l’outil terminal pour la prise dans l’éditeur d’objet cible, afin que l’outil terminal configuré puisse être utilisé pour la prise.

Lorsque le point de prise est défini par apprentissage, tous les outils terminaux configurés peuvent être utilisés par défaut pour la prise. Dans ce cas, vous n’avez donc rien à faire.

Simplifier le modèle de collision

Pour gagner du temps lors de la création d’un modèle de collision pour l’outil 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.

Directive de simplification : la partie doigt de la pince doit être aussi détaillée que possible afin que sa forme soit hautement reproductible pour garantir la précision de la détection de collisions. Pour les structures mécaniques éloignées de la partie doigt, vous pouvez remplacer les conceptions structurelles complexes par une boîte englobante parallélépipédique afin d’améliorer l’efficacité.

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

simplify tool model

Créer un flux de travail

L’outil « Planification de trajectoire » possède déjà un flux de travail intégré. La description de chaque Step du flux de travail est la suivante.

Étape Description Utilisation
define home

Définir 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.

Utilisé uniquement pour la simulation, non envoyé au robot

picking approach point

Planifie le point d’approche pour la prise.

Envoyé au robot

vision move

Planifie le point de prise.

Envoyé au robot

picking departure point

Planifie le point de retraite pour la prise.

Envoyé au robot

define immediate point

Définit le point intermédiaire.
Déplacez manuellement le robot vers le point intermédiaire et enregistrez la pose actuelle du robot dans l’étape.

Utilisé uniquement pour la simulation, non envoyé au robot

Dans la rédaction ultérieure du programme robot, la pose de capture d’image et la pose du point intermédiaire doivent être identiques à celles utilisées pour la simulation ici.

Exécuter en simulation

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

simulation

Objectifs de simulation et de test

Placez un objet cible de manière aléatoire sur une palette, puis utilisez l’étape « Planification de trajectoire » de Mech-Vision pour simuler la prise. L’objet cible doit être réarrangé après chaque prise réussie, et 3 boucles de prise seront simulées. Si la prise simulée dans 3 boucles peut se dérouler avec succès, vous pouvez considérer 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 de l’Interface Standard de KUKA MM_S3_Vis_Path peut essentiellement satisfaire aux exigences de cet exemple. 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.

En vous basant sur le programme d’exemple, veuillez effectuer les étapes suivantes côté robot :

  1. Définissez le repère de l’outil. Vérifiez que le TCP sur le pupitre d’apprentissage du robot correspond au TCP dans l’étape « Planification de trajectoire » de Mech-Vision. Définissez le numéro de repère de l’outil actuellement sélectionné sur celui correspondant au repère de l’outil réel utilisé.

    Avant modification

    Après modification

      BAS(#TOOL,1)
      BAS(#TOOL,#)
    Veuillez remplacer « # » par l’ID réel de l’outil.
  2. Enseignez la position de départ (position initiale).

    Déplacez le robot vers la position initiale en mode TEACH. La position initiale doit être éloignée des objets à prendre 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.

  3. Ajoutez les commandes pour ouvrir la pince.

      $OUT[131] = True
      $OUT[132] = False
  4. Spécifiez l’adresse IP de l’IPC. Le fichier de configuration XML_Kuka_MMIND.xml est chargé sur le robot KUKA lorsque le programme de l’Interface Standard est chargé sur le robot. Vous pouvez modifier l’adresse IP et le port de l’IPC dans le fichier de configuration avant le chargement. S’ils n’ont pas déjà été modifiés, vous pouvez ouvrir le fichier XML_Kuka_MMIND.xml spécifié par la commande MM_Init_Socket et mettre à jour l’adresse IP et le port dans le fichier XML pour qu’ils correspondent à ceux de l’IPC.

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

  6. Définissez le signal du port DO pour fermer la pince et saisir l’objet cible. Notez que la commande DO doit être définie selon le numéro de port DO réellement utilisé sur site.

    Avant modification

    Après modification (exemple)

       ;add object grasping logic here, such as "$OUT[1]=TRUE"
       halt
       ;add object grasping logic here, such as "$OUT[1]=TRUE"
       halt
       $OUT[131] = False
       $OUT[132] = True
  7. 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 pick_point3 et drop_app respectivement.

  8. Définissez le signal du port DO pour ouvrir la pince afin de déposer l’objet cible. Notez que la commande DO doit être définie selon le numéro de port DO réellement utilisé sur site.

    Avant modification

    Après modification

       ;add object releasing logic here, such as "$OUT[1]=FALSE"
       halt
       ;add object releasing logic here, such as "$OUT[1]=FALSE"
       halt
       $OUT[131] = True
       $OUT[132] = False

Tester l’effet de la prise et de la dépose du robot avec une exécution pas à pas

Suivez ces étapes pour tester l’effet de prise et de dépose du robot :

  1. Tournez le commutateur à clé sur le pupitre d’apprentissage en position horizontale, sélectionnez le mode de fonctionnement T1 dans la boîte de dialogue contextuelle, puis remettez le commutateur en position verticale.

    switch mode
  2. Sélectionnez O. Ensuite, sélectionnez I dans la fenêtre contextuelle pour basculer l’état de Drives sur I. Si Drives est déjà réglé sur I, passez cette étape.

    set driver device
  3. Appuyez à mi-course sur l'interrupteur d’autorisation blanc à l’arrière du pupitre d’apprentissage et appuyez sur le bouton démarrer vert à l’avant pour exécuter le programme. Lorsque R devient vert, le programme est en cours d’exécution.

    enable robot
  4. Le robot exécutera automatiquement le programme de prise et de dépose pour saisir et déposer un objet cible.

Si le robot peut saisir et déposer des objets cibles avec succès, le programme du robot répond aux exigences.

Insérer l’instruction de boucle pour un cycle de prise et de dépose

Après avoir vérifié que le robot peut saisir et déposer avec succès une fois, vous pouvez insérer une instruction de boucle dans le programme (ligne 12 et ligne 61) pour boucler le processus de prise et de dépose.

Ajoutez l’instruction de boucle suivante :

Init:
...
GOTO Init

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

Le programme d’exemple final est le suivant :

&ACCESS RVO
DEF MM_S3_Vis_Path ( )
;---------------------------------------------------
; FUNCTION: trigger Mech-Vision project and get
; planned path
; Mech-Mind, 2023-12-25
;---------------------------------------------------
   ;set current tool no. to 1
   BAS(#TOOL,1)
   ;set current base no. to 0
   BAS(#BASE,0)
Init:
   ;move to robot home position
   PTP HOME Vel=100 % DEFAULT
   $OUT[131] = True
   $OUT[132] = False
   ;initialize communication parameters (initialization is required only once)
   MM_Init_Socket("XML_Kuka_MMIND",873,871,60)
   ;move to image-capturing position
   LIN camera_capture Vel=1 m/s CPDAT1 Tool[1] Base[0]
   ;trigger Mech-Vision project
   MM_Start_Vis(1,0,2,init_jps)
   ;get planned path from NO.1 Mech-Vision project; 2nd argument (1) means getting pose in JPs
   MM_Get_Vispath(1,1,pos_num,vis_pos_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
      halt
   ENDIF
   ;save waypoints of the planned path to local variables one by one
   MM_Get_Jps(1,Xpick_point1,label[1],toolid[1])
   MM_Get_Jps(2,Xpick_point2,label[2],toolid[2])
   MM_Get_Jps(3,Xpick_point3,label[3],toolid[3])
   ;follow the planned path to pick
   ;move to approach waypoint of picking
   PTP pick_point1 Vel=50 % PDAT1 Tool[1] Base[0] ;
   ;move to picking waypoint
   PTP pick_point2 Vel=10 % PDAT2 Tool[1] Base[0] ;
   ;add object grasping logic here, such as "$OUT[1]=TRUE"
   halt
   $OUT[131] = False
   $OUT[132] = True
   ;move to departure waypoint of picking
   PTP pick_point3 Vel=50 % PDAT3 Tool[1] Base[0];
   ;move to intermediate waypoint of placing
   PTP drop_waypoint CONT Vel=100 % PDAT4 Tool[1] Base[0];
   ;move to approach waypoint of placing
   LIN drop_app Vel=1 m/s CPDAT2 Tool[1] Base[0] ;
   ;move to placing waypoint
   LIN drop Vel=0.3 m/s CPDAT3 Tool[1] Base[0] ;
   ;add object releasing logic here, such as "$OUT[1]=FALSE"
   halt
   $OUT[131] = True
   $OUT[132] = False
   ;move to departure waypoint of placing
   LIN drop_app Vel=1 m/s CPDAT2 Tool[1] Base[0] ;
   ;move back to robot home position
   PTP HOME Vel=100 % DEFAULT;
GOTO Init
END

Vous avez maintenant déployé une application de prise dans des bacs structurés 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.