Programmes d’exemple Kawasaki

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.

Ce sujet présente les programmes d’exemple qui exécutent une tâche réelle de prise et dépose.

Programmes d’exemple

Les programmes d’exemple sont stockés dans Communication Component/Robot_Interface/KAWASAKI/sample dans le répertoire d’installation de Mech-Vision & Mech-Viz.

Il existe trois programmes d’exemple pour différents scénarios.

Obtenir le résultat de vision à partir de Mech-Vision

.PROGRAM vision_sample_1()
;**********************************************************
;* FUNCTION:simple pick and place with Mech-Vision
;* 2022-5-1
;**********************************************************
  accuracy 1 always
  speed 30 always
  TOOL gripper ;set TCP
  Home ;move robot home position
  JMOVE camera_capture ;move to camera capture position
  break
  pos_num = 0
  ;Set ip address of IPC
  call mm_init_skt(127,0,0,1,50000)
  twait 0.1
  ;Set vision recipe
  ;call mm_switch_model(1,1)
  ;Run vision project
  call mm_start_vis(1,1,2,#start_vis) ;(x,x,3,#start_vis) used for ETH pathplan initial position
  twait 1
  call mm_get_visdata(1,pos_num,ret2)
  if ret2 <> 1100
      halt
  end
  call mm_get_pose(1,&pick[1],label[1],speed[1])
  LAPPRO pick[1],100
  LMOVE pick[1]
  break
  ;Add object grasping logic here.
  ldepart 100
  lmove waypoint[1]
  lappro drop[1],100
  lmove drop[1]
  ;Add object releasing logic here.
  ldepart 100
  HOME
.END

Logique du programme

  • Ligne 8 : Définir le TCP. Le TCP est défini dans la variable de pose « gripper ». Pour plus de détails sur la façon de définir le TCP sur le pupitre d’enseignement, voir la section Définir le TCP du robot.

  • Ligne 9 : Déplacer le robot en position HOME. Pour plus de détails sur la façon d’enseigner la position HOME, voir la section Définir la position HOME.

  • Ligne 10 : Déplacer le robot en mouvement linéaire vers la pose de capture d’image. La pose de capture d’image est définie dans la variable de pose « camera_capture ». Pour plus de détails sur la façon de définir une variable de pose sur le pupitre d’enseignement, voir la section Enseigner des données de pose au robot.

  • Ligne 14 : Appeler la fonction mm_init_skt pour initialiser la communication. Pour plus de détails, voir la section Initialiser la communication.

  • Lignes 16 à 17 : Si des recettes de paramètres sont utilisées dans le projet Mech-Vision, la recette à utiliser est définie avec mm_switch_model. Pour plus de détails, voir la section Changer la recette Mech-Vision.

  • Ligne 19 : Exécuter le projet Mech-Vision avec mm_start_vis. Pour plus de détails, voir la section Démarrer le projet Mech-Vision.

  • Ligne 20 : Définir le temps d’attente après la capture des images par la caméra. Dans cet exemple, le temps d’attente est d’une seconde. Dans une configuration Eye To Hand, s’il y a des étapes de mouvement (lmove ou jmove) entre mm_start_vis et mm_get_visdata, cette instruction twait n’est pas nécessaire ; dans une configuration Eye In Hand, cette instruction twait est requise pour s’assurer que le robot reste immobile jusqu’à la fin de l’acquisition d’image.

  • Ligne 21 : Obtenir le résultat de vision à partir de Mech-Vision avec mm_get_visdata. « pos_num » stocke le nombre de poses reçues, et « ret2 » stocke le code d’état reçu. Pour plus de détails, voir la section Obtenir la/les cible(s) de vision.

  • Lignes 22 à 24 : Vérifier si le code d’état renvoyé indique une erreur (1100 est un code d’état normal). Si un code d’erreur est renvoyé, le programme est arrêté.

  • Ligne 26 : Déplacer le robot en mouvement linéaire vers une position 100 mm au-dessus de la pose de prise. Vous devez modifier le décalage Z pour garantir qu’aucune collision ne se produise pendant l’approche.

  • Ligne 27 : Déplacer le robot en mouvement linéaire vers la pose de prise.

  • Ligne 29 : Vous devez ajouter ici la logique de commande de la pince pour la prise de l’objet.

  • Ligne 30 : Déplacer le robot vers le haut de 100 mm depuis la pose de prise le long de l’axe Z du repère de l’outil. Vous devez modifier le décalage Z pour garantir qu’aucune collision ne se produise pendant l’éloignement.

  • Ligne 32 : Déplacer le robot vers une position 100 mm au-dessus de la pose de dépose. Vous devez modifier le décalage Z pour garantir qu’aucune collision ne se produise pendant l’approche.

  • Ligne 33 : Déplacer le robot en mouvement linéaire vers la pose de dépose fixe.

  • Ligne 34 : Vous devez ajouter ici la logique de commande de la pince pour la dépose de l’objet.

  • Ligne 35 : Déplacer le robot vers le haut de 100 mm depuis la pose de dépose le long de l’axe Z du repère de l’outil. Vous devez modifier le décalage Z pour garantir qu’aucune collision ne se produise pendant l’éloignement.

  • Ligne 36 : Déplacer le robot en position HOME.

Obtenir la trajectoire planifiée à partir de Mech-Viz

.PROGRAM vision_sample_2()
;**********************************************************
;* FUNCTION:simple pick and place with Mech-Viz
;* 2022-5-1
;**********************************************************
  accuracy 1 always
  speed 30 always
  TOOL gripper ;set TCP
  Home ;move robot home position
  JMOVE camera_capture ;move to camera_capture position
  break
  pos_num = 0
  ;Set ip address of IPC
  call mm_init_skt(127,0,0,1,50000)
  twait 0.1
  ;Set vision recipe
  ;call mm_switch_model(1,1)
  ;Run Viz project
  call mm_start_viz(1,#start_viz) ;(2,#start_viz) used for ETH viz initial position
  twait 0.1
  ;set branch exitport
  ;call mm_set_branch(1,1)
  ;get planned path
  call mm_get_vizdata(2,pos_num,vispos_num,ret1)
  if ret1 <> 2100
      halt
  end
  for count=1 to pos_num
    call mm_get_pose(count,&movepoint[count],label[count],speed[count])
  end
  ;follow the planned path to pick
  for count =1 to pos_num
    speed speed[count]
    LMOVE movepoint[count]
    if count == vispos_num then
        ;add object grasping logic here
    end
  end
  ;go to drop location
  ldepart 100
  lmove waypoint[1]
  lappro drop[1],100
  lmove drop[1] ;drop point
  ;add object releasing logic here
  ldepart 100
  HOME
.END

Logique du programme

  • Ligne 8 : Définir le TCP. Le TCP est défini dans la variable de pose « gripper ». Pour plus de détails sur la façon de définir le TCP sur le pupitre d’enseignement, voir la section Définir le TCP du robot.

  • Ligne 9 : Déplacer le robot en position HOME. Pour plus de détails sur la façon d’enseigner la position HOME, voir la section Définir la position HOME.

  • Ligne 10 : Déplacer le robot en mouvement linéaire vers la pose de capture d’image. La pose de capture d’image est définie dans la variable de pose « camera_capture ». Pour plus de détails sur la façon de définir une variable de pose sur le pupitre d’enseignement, voir la section Enseigner des données de pose au robot.

  • Ligne 14 : Appeler la fonction mm_init_skt pour initialiser la communication. Pour plus de détails, voir la section Initialiser la communication.

  • Lignes 16 à 17 : Si des recettes de paramètres sont utilisées dans le projet Mech-Vision, la recette à utiliser est définie avec mm_switch_model. Pour plus de détails, voir la section Changer la recette Mech-Vision.

  • Ligne 19 : Exécuter le projet Mech-Viz avec mm_start_viz. Pour plus de détails, voir la section Démarrer le projet Mech-Viz.

  • Lignes 21 à 22 : Si vous devez définir la branche dans le projet Mech-Viz, vous pouvez appeler mm_set_branch pour définir le port de sortie pour l’étape « Branch by Msg ». Pour plus de détails, voir la section Sélectionner la branche Mech-Viz.

  • Ligne 24 : Obtenir la trajectoire de prise planifiée par le projet Mech-Viz avec mm_get_vizdata. « pos_num » stocke le nombre de poses reçues, « vispos_num » stocke le numéro de séquence du premier waypoint Vision Move dans la trajectoire planifiée, et « ret1 » stocke le code d’état reçu. Pour plus de détails, voir la section Obtenir la trajectoire planifiée à partir de Mech-Viz.

  • Lignes 25 à 27 : Vérifier si le code d’état renvoyé indique une erreur (2100 est un code d’état normal). Si un code d’erreur est renvoyé, le programme est arrêté.

  • Lignes 28 à 30 : Stocker les waypoints obtenus de la trajectoire planifiée dans des variables avec une boucle FOR. mm_get_pose est appelé pour la pose de vision et les waypoints sur la trajectoire de mouvement. Pour plus de détails, voir la section Stocker une pose TCP obtenue.

  • Lignes 32 à 38 : Déplacer le robot le long de la trajectoire planifiée par Mech-Viz avec une boucle FOR jusqu’à la pose de prise. Vous pouvez ajouter la logique de commande de la pince à la ligne 36 pour saisir l’objet.

  • Ligne 40 : Déplacer le robot vers le haut de 100 mm depuis la pose de prise le long de l’axe Z du repère de l’outil. Vous devez modifier le décalage Z pour garantir qu’aucune collision ne se produise pendant l’éloignement.

  • Ligne 42 : Déplacer le robot vers une position 100 mm au-dessus de la pose de dépose. Vous devez modifier le décalage Z pour garantir qu’aucune collision ne se produise pendant l’approche.

  • Ligne 43 : Déplacer le robot en mouvement linéaire vers la pose de dépose fixe.

  • Ligne 44 : Vous devez ajouter ici la logique de commande de la pince pour la dépose de l’objet.

  • Ligne 45 : Déplacer le robot vers le haut de 100 mm depuis la pose de dépose le long de l’axe Z du repère de l’outil. Vous devez modifier le décalage Z pour garantir qu’aucune collision ne se produise pendant l’éloignement.

  • Ligne 46 : Déplacer le robot en position HOME.

Obtenir la trajectoire planifiée à partir de Mech-Vision

.PROGRAM vision_sample_3()
;**********************************************************
;* FONCTION : prise et dépose simple avec Mech-Vision et planification de trajectoire
;* 2023-2-1
;**********************************************************
  accuracy 1 always
  speed 30 always
  TOOL gripper ;set TCP
  Home ;move robot home position
  JMOVE camera_capture ;move to camera_capture position
  break
  pos_num = 0
  ;Set ip address of IPC
  call mm_init_skt(127,0,0,1,50000)
  twait 0.1
  ;Set vision recipe
  ;call mm_switch_model(1,1)
  ;Run Viz project
  call mm_start_vis(1,0,1,#start_vis)
  twait 0.1
  ;get planned path
  call mm_get_vispath(1,2,pos_num,vispos_num,ret1)
  if ret1 <> 1103
      halt
  end
  for count=1 to pos_num
    call mm_get_pose(count,&movepoint[count],label[count],speed[count])
  end
  ;follow the planned path to pick
  for count =1 to pos_num
    speed speed[count]
    LMOVE movepoint[count]
    if count == vispos_num then
        ;add object grasping logic here
    end
  end
  ;go to drop location
  ldepart 100
  lmove waypoint[1]
  lappro drop[1],100
  lmove drop[1] ;drop point
  ;add object releasing logic here
  ldepart 100
  HOME
.END

Logique du programme

  • Ligne 8 : Définir le TCP. Le TCP est défini dans la variable de pose « gripper ». Pour plus de détails sur la façon de définir le TCP sur le pupitre d’enseignement, voir la section Définir le TCP du robot.

  • Ligne 9 : Déplacer le robot en position HOME. Pour plus de détails sur la façon d’enseigner la position HOME, voir la section Définir la position HOME.

  • Ligne 10 : Déplacer le robot en mouvement articulaire vers la pose de capture d’image. La pose de capture d’image est définie dans la variable de pose « camera_capture ». Pour plus de détails sur la façon de définir une variable de pose sur le pupitre d’enseignement, voir la section Enseigner des données de pose au robot.

  • Ligne 14 : Appeler la fonction mm_init_skt pour initialiser la communication. Pour plus de détails, voir la section Initialiser la communication.

  • Lignes 16 à 17 : Si des recettes de paramètres sont utilisées dans le projet Mech-Vision, la recette à utiliser est définie avec mm_switch_model. Pour plus de détails, voir la section Changer la recette Mech-Vision.

  • Ligne 19 : Exécuter le projet Mech-Vision avec mm_start_vis. Pour plus de détails, voir la section Démarrer le projet Mech-Vision.

  • Ligne 20 : Définir le temps d’attente après la capture des images par la caméra. Dans cet exemple, le temps d’attente est d’une seconde. Dans une configuration Eye To Hand, s’il y a des étapes de mouvement (lmove ou jmove) entre mm_start_vis et mm_get_vispath, cette instruction twait n’est pas nécessaire ; dans une configuration Eye In Hand, cette instruction twait est requise pour s’assurer que le robot reste immobile jusqu’à la fin de l’acquisition d’image.

  • Ligne 22 : Obtenir la trajectoire planifiée produite par l’étape « Path Planning » de Mech-Vision avec mm_get_vispath. Pour plus de détails, voir la section Obtenir le résultat de l’étape « Path Planning » dans Mech-Vision.

  • Lignes 23 à 25 : Vérifier si le code d’état renvoyé indique une erreur (1103 est un code d’état normal). Si un code d’erreur est renvoyé, le programme est arrêté.

  • Lignes 26 à 28 : Stocker les waypoints obtenus dans les variables spécifiées avec une boucle FOR. Pour plus de détails, voir la section Stocker une pose TCP obtenue.

  • Lignes 30 à 36 : Déplacer le robot le long de la trajectoire planifiée avec une boucle FOR jusqu’à la pose de prise. Vous pouvez ajouter la logique de commande de la pince pour saisir l’objet.

  • Ligne 38 : Déplacer le robot vers le haut de 100 mm depuis la pose de prise le long de l’axe Z du repère de l’outil. Vous devez modifier le décalage Z pour garantir qu’aucune collision ne se produise pendant l’éloignement.

  • Ligne 40 : Déplacer le robot vers une position 100 mm au-dessus de la pose de dépose. Vous devez modifier le décalage Z pour garantir qu’aucune collision ne se produise pendant l’approche.

  • Ligne 41 : Déplacer le robot en mouvement linéaire vers la pose de dépose fixe.

  • Ligne 42 : Vous devez ajouter ici la logique de commande de la pince pour la dépose de l’objet.

  • Ligne 43 : Déplacer le robot vers le haut de 100 mm depuis la pose de dépose le long de l’axe Z du repère de l’outil. Vous devez modifier le décalage Z pour garantir qu’aucune collision ne se produise pendant l’éloignement.

  • Ligne 44 : Déplacer le robot en position HOME.

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.