Exemple de programme 13 : MM_S13_Vis_MoveInAdvance

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.

Présentation du programme

Description

Après le déclenchement de l’exécution du projet Mech-Vision, le robot se déplace par anticipation après que la caméra a terminé la capture des images, sans attendre l’arrêt du projet Mech-Vision. Ce programme d’exemple s’applique aux scénarios où le mode de montage de la caméra est œil-en-main.

File path

Vous pouvez accéder au répertoire d’installation de Mech-Vision et Mech-Viz et trouver le fichier via le chemin Communication Component/Robot_Interface/KUKA/sample/MM_S13_Vis_MoveInAdvance.

Project

projet Mech-Vision (le mode de montage de la caméra est œil-en-main)

Prerequisites

Ce programme d’exemple est fourni à titre de référence uniquement. Avant d’utiliser le programme, modifiez-le en fonction du scénario réel.

Description du programme

Cette partie décrit le programme d’exemple MM_S13_Vis_MoveInAdvance.

La seule différence entre le programme d’exemple MM_S13_Vis_MoveInAdvance et le programme d’exemple MM_S1_Vis_Basic est que MM_S13_Vis_MoveInAdvance peut déplacer le robot après la capture d’images par la caméra (le code de cette fonctionnalité est en gras). Par conséquent, seule la fonctionnalité de déplacement du robot après la capture d’images est décrite dans la section suivante. Pour les parties de MM_S13_Vis_MoveInAdvance identiques à celles de MM_S1_Vis_Basic, voir Exemple de programme 1 : MM_S1_Vis_Basic.
DEF  MM_S13_Vis_MoveInAdvance ( )
;---------------------------------------------------
; FUNCTION: trigger Mech-Vision project then move
; to wait position and get vision pose in EIH setup
; Mech-Mind, 2023-12-25
;---------------------------------------------------
   ;set current tool no. to 1
   BAS(#TOOL,1)
   ;set current base no. to 0
   BAS(#BASE,0)
   ;move to robot home position
PTP HOME Vel=100 % DEFAULT
   ;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 NO.1 Mech-Vision project
   MM_Start_Vis(1,0,1,init_jps)
   ;move to wait position for picking
LIN pick_wait_point CONT Vel=1 m/s CPDAT6 Tool[1] Base[0]
   ;get vision result from NO.1 Mech-Vision project
   MM_Get_VisData(1,pos_num,status)
   ;check whether vision result has been got from Mech-Vision successfully
   IF status<> 1100 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 result
      halt
   ENDIF
   ;save first vision point data to local variables
   MM_Get_Pose(1,Xpick_point,label,toolid)
   ;calculate pick approach point based on pick point
   tool_offset={X 0,Y 0,Z -100,A 0,B 0,C 0}
   Xpick_app=Xpick_point:tool_offset
   ;move to intermediate waypoint of picking
PTP pick_waypoint CONT Vel=50 % PDAT1 Tool[1] Base[0]
   ;move to approach waypoint of picking
LIN pick_app Vel=1 m/s CPDAT2 Tool[1] Base[0]
   ;move to picking waypoint
LIN pick_point Vel=0.3 m/s CPDAT3 Tool[1] Base[0]
   ;add object grasping logic here, such as "$OUT[1]=TRUE"
   halt
   ;move to departure waypoint of picking
LIN pick_app Vel=1 m/s CPDAT2 Tool[1] Base[0]
   ;move to intermediate waypoint of placing
PTP drop_waypoint CONT Vel=100 % PDAT2 Tool[1] Base[0]
   ;move to approach waypoint of placing
LIN drop_app Vel=1 m/s CPDAT4 Tool[1] Base[0]
   ;move to placing waypoint
LIN drop Vel=0.3 m/s CPDAT5 Tool[1] Base[0]
   ;add object releasing logic here, such as "$OUT[1]=FALSE"
   halt
   ;move to departure waypoint of placing
LIN drop_app Vel=1 m/s CPDAT4 Tool[1] Base[0]
   ;move back to robot home position
PTP HOME Vel=100 % DEFAULT
END

Le flux de travail correspondant au code du programme d’exemple ci-dessus est illustré dans la figure ci-dessous.

sample13

Le tableau ci-dessous décrit la fonctionnalité de déplacement du robot après la capture d’images par la caméra. Vous pouvez cliquer sur l’hyperlien du nom de la commande pour en consulter la description détaillée.

Fonctionnalité Code et description

Déplacer le robot après la capture d’images par la caméra

;trigger NO.1 Mech-Vision project
MM_Start_Vis(1,0,1,init_jps)
  • MM_Start_Vis: La commande permettant de déclencher l’exécution du projet Mech-Vision.

  • 1: L’ID du projet Mech-Vision.

  • 0: Le projet Mech-Vision est censé renvoyer tous les points de vision.

  • 1: Les positions articulaires du robot et la pose de la bride doivent être fournies au projet Mech-Vision. Si le mode de montage de la caméra est œil-en-main, 1 est généralement indiqué ici.

  • snap_jps: Positions articulaires personnalisées. Les positions articulaires de ce programme d’exemple n’ont pas d’utilité pratique mais doivent être définies.

Dans des scénarios œil-en-main, afin de garantir que le robot puisse se déplacer après la capture d’images par la caméra sans attendre la fin d’exécution du projet Mech-Vision, vous pouvez aller à Robot Communication Configuration  Suivant  Paramètres avancés dans la barre d’outils supérieure de Mech-Vision et sélectionner Renvoyer « 1102 : Déclenchement réussi » après la capture. Une fois cette option sélectionnée, le robot commencera à se déplacer après avoir déclenché le projet Mech-Vision et reçu « 1102 : Déclenchement réussi », ce qui réduit le temps de cycle.

Si l’option n’est pas sélectionnée et que le projet Mech-Vision a démarré avec succès, le système de vision renverra immédiatement le code d’état 1102 au robot. Le robot ne peut pas se déplacer à ce moment-là, car il ne peut pas déterminer si la caméra a terminé la capture des images. Dans ce cas, le robot doit attendre que le projet Mech-Vision se termine avant de se déplacer.

Le code d’état 1102 renvoyé par le système de vision indique l’achèvement logique de la commande MM_Start_Vis. Si l’option est sélectionnée, le robot peut commencer à se déplacer après l’exécution de la commande MM_Start_Vis.
configure communication
   ;move to wait position for picking
LIN pick_wait_point CONT Vel=1 m/s CPDAT6 Tool[1] Base[0]

Le code ci-dessus indique que le robot peut se déplacer vers le point d’attente du ramassage après la capture d’image. Cela indique que le projet Mech-Vision peut s’exécuter en même temps que le déplacement du robot afin de raccourcir le temps de cycle.

Veuillez noter la différence entre ce programme d’exemple et le programme MM_S1_Vis_Basic. Le programme d’exemple MM_S1_Vis_Basic permet au robot de se déplacer uniquement après la fin de l’exécution du projet Mech-Vision, tandis que ce programme d’exemple permet au robot de se déplacer après que la caméra a terminé la capture des images.

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.