Exemple de programme 13 : MM_S13_Vis_MoveInAdvance
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 |
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.
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 |
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 à 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 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.
|