Exemple de programme 12: MM_S12_Viz_ForLoop

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

Le robot déclenche l’exécution du projet Mech-Viz, obtient la trajectoire planifiée, puis stocke la trajectoire planifiée en boucle pour la prise et la dépose.

Chemin du fichier

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

Projet

Projets Mech-Vision et Mech-Viz

Prérequis

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

Description du programme

Cette section décrit le programme d’exemple MM_S12_Viz_ForLoop.

Le programme d’exemple MM_S12_Viz_ForLoop est similaire au programme d’exemple MM_S2_Viz_Basic, à ceci près que MM_S2_Viz_Basic enregistre les points de passage un par un tandis que MM_S12_Viz_ForLoop les enregistre en boucle (le code de cette fonctionnalité est en gras). Ainsi, les fonctionnalités du sous-programme similaires à celles de MM_S2_Viz_Basic ne sont pas décrites dans cette section. Pour plus d’informations sur ces fonctionnalités, voir Programme d’exemple 2: MM_S2_Viz_Basic.
DEF  MM_S12_Viz_ForLoop ( )
;---------------------------------------------------
; FUNCTION: trigger Mech-Viz project and get
; planned path, get poses using for-loop structure
; 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 Mech-Viz project
   MM_Start_Viz(2,init_jps)
   ;get planned path, 1st argument (1) means getting pose in JPs
   MM_Get_VizData(1,pos_num,vis_pos_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
      halt
   ENDIF
   ;save waypoints of planned path to local variables using for-loop structure
   FOR count=1 TO pos_num
      MM_Get_Jps(count,pick_point[count],label[count],toolid[count])
   ENDFOR
   Xpick_point1=pick_point[1]
   Xpick_point2=pick_point[2]
   Xpick_point3=pick_point[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
   ;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 % PDAT2 Tool[1] Base[0]
   ;move to approach waypoint of placing
LIN drop_app Vel=1 m/s CPDAT3 Tool[1] Base[0]
   ;move to placing waypoint
LIN drop Vel=0.3 m/s CPDAT4 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 CPDAT3 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.

sample12

Le tableau ci-dessous décrit la fonctionnalité de stockage de la trajectoire planifiée dans des points de passage par boucle. Vous pouvez cliquer sur l’hyperlien du nom de la commande pour afficher sa description détaillée.

Fonctionnalité Code et description

Stocker la trajectoire planifiée en boucle

FOR count=1 TO pos_num
   MM_Get_Jps(count,pick_point[count],label[count],toolid[count])
ENDFOR
Xpick_point1=pick_point[1]
Xpick_point2=pick_point[2]
Xpick_point3=pick_point[3]
  • Ligne 1: FOR indique une boucle for. count est utilisé pour contrôler le nombre d’itérations de la boucle (c’est-à-dire que count commence à 1 et s’incrémente de 1 après chaque itération jusqu’à dépasser la valeur de pose_num, moment où la boucle se termine). pose_num est le deuxième paramètre de la commande MM_Get_VizData, qui représente le nombre de points de passage renvoyés par le système de vision.

  • Ligne 2: La commande MM_Get_Jps enregistre les positions articulaires, l’étiquette et l’ID d’outil d’un point de passage spécifique dans les variables correspondantes. L’ensemble de la commande enregistre les positions articulaires, l’étiquette et l’ID d’outil du point de passage dont l’identifiant est count dans les variables pick_point[count], label[count] et toolid[count], respectivement.

  • Ligne 3: La boucle for se termine.

  • Lignes 4 à 6: Stockez la trajectoire planifiée (pick_point_b[1], pick_point_b[2] et pick_point_b[3]) dans Xpick_point1, Xpick_point2 et Xpick_point3.

En supposant que la trajectoire planifiée dans ce programme d’exemple comporte trois points de passage, le code ci-dessus est équivalent aux trois commandes suivantes dans le programme d’exemple MM_S2_Viz_Basic:

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])

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.