Programme d’exemple 18 : MM_S18_Viz_GetUserData
Introduction du programme
Description |
Lorsque le robot obtient la trajectoire de prise, il obtient également les données de sortie personnalisées du projet Mech-Vision. |
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 |
Projet |
Projet Mech-Vision (un ou plusieurs ports personnalisés doivent être ajoutés à la Sortie Étape) et projet Mech-Viz (l’outil est un grippeur à vide de dépalletisation) |
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_S18_Viz_GetUserData.
| Par rapport au programme d’exemple MM_S15_Viz_GetDoList, ce programme d’exemple ne contient que la modification suivante (le code de cette modification est en gras). En conséquence, seule la modification est décrite dans la section suivante. Pour obtenir des informations sur les parties de MM_S16_Viz_GetDirection qui sont identiques à celles de MM_S15_Viz_GetDoList, consultez Programme d’exemple 15 : MM_S15_Viz_GetDoList. |
DEF MM_S18_Viz_GetUserData ( )
;---------------------------------------------------
; FUNCTION: trigger Mech-Viz project, then get
; planned path and get custom data from Mech-Vision
; using command 210
; 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
MM_Get_PlanData(0,3,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
;get gripper control signal list
MM_Get_Dolist(0,0)
;save waypoints of the planned path to local variables one by one
FOR count=1 TO pos_num
MM_Get_PlanJps(count,3,pick_point[count],move_type[count],tool_num[count],speed[count])
ENDFOR
Xpick_point1=pick_point[1]
Xpick_point2=pick_point[2]
Xpick_point3=pick_point[3]
;save received custom data
offset_x=MM_UserData[1]
offset_y=MM_UserData[2]
offset_z=MM_UserData[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
halt
;set gripper control signal
MM_Set_Dolist(0)
;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 de programme d’exemple ci-dessus est illustré dans la figure ci-dessous.
Le tableau ci-dessous décrit le code en gras. Vous pouvez cliquer sur l’hyperlien du nom de la commande pour consulter sa description détaillée.
| Feature | Code et description | ||||
|---|---|---|---|---|---|
Stocker les données personnalisées des points de passage |
Le robot exécute la commande MM_Get_PlanData pour obtenir les données Vision Move des points de passage et les données personnalisées des points de passage, puis exécute la commande MM_Get_PlanJps pour enregistrer les données Vision Move et les données personnalisées stockées dans la mémoire du robot dans les tableaux globaux MM_Plan_Results et MM_UserData, respectivement. Le code ci-dessus affecte les données de sortie personnalisées MM_UserData[1], MM_UserData[2] et MM_UserData[3], qui représentent trois points de passage Vision Move (points de prise), respectivement à offset_x, offset_y et offset_z.
|