Programme d’exemple 3 : MM_S3_Vis_Path
Présentation du programme
Description |
Le robot déclenche l’exécution du projet Mech-Vision, puis obtient la trajectoire planifiée 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 |
||
Projet |
Projet Mech-Vision
|
||
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 partie décrit le programme d’exemple MM_S3_Vis_Path.
DEF MM_S3_Vis_Path ( )
;---------------------------------------------------
; FUNCTION: trigger Mech-Vision project and get
; planned path
; 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-Vision project
MM_Start_Vis(1,0,2,init_jps)
;get planned path from NO.1 Mech-Vision project; 2nd argument (1) means getting pose in JPs
MM_Get_Vispath(1,1,pos_num,vis_pos_num,status)
;check whether planned path has been got from Mech-Vision successfully
IF status<> 1103 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 results
halt
ENDIF
;save waypoints of the planned path to local variables one by one
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])
;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 % PDAT4 Tool[1] Base[0]
;move to approach waypoint of placing
LIN drop_app Vel=1 m/s CPDAT2 Tool[1] Base[0]
;move to placing waypoint
LIN drop Vel=0.3 m/s CPDAT3 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 CPDAT2 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 explique le programme ci-dessus. Vous pouvez cliquer sur l’hyperlien du nom de la commande pour afficher sa description détaillée.
| Fonctionnalité | Code et description | ||
|---|---|---|---|
Définir le repère |
Les deux instructions ci-dessus définissent les repères outil et base courants. |
||
Aller à la position d’origine |
L’instruction ci-dessus spécifie de déplacer le robot en mode PTP vers la position d’origine enseignée. |
||
Initialiser les paramètres de communication |
La commande MM_Init_Socket établit la communication TCP entre le robot et le système de vision sur la base des configurations du fichier XML_Kuka_MMIND.xml.
|
||
Se déplacer vers la position de capture d’image |
L’instruction ci-dessus spécifie de déplacer le robot de manière linéaire vers la position de capture d’image enseignée. |
||
Déclencher l’exécution du projet Mech-Vision |
L’ensemble de l’instruction indique que le robot déclenche le système de vision pour exécuter le projet Mech-Vision avec un ID de 1 et attend que le projet Mech-Vision renvoie tous les points de passage. |
||
Obtenir la trajectoire planifiée |
L’ensemble de l’instruction indique que le robot obtient la trajectoire planifiée du projet Mech-Vision ayant l’ID 1.
L’instruction ci-dessus indique que lorsque le code d’état est 1103, le robot a obtenu avec succès la trajectoire planifiée ; sinon, une exception s’est produite dans le système de vision et le programme exécute le code entre IF et ENDIF. Vous pouvez effectuer l’opération correspondante en fonction du code d’erreur spécifique. Dans ce programme d’exemple, tous les codes d’erreur sont traités de la même manière, en mettant en pause l’exécution du programme à l’aide de la commande halt. |
||
Stocker la trajectoire planifiée |
L’instruction entière « MM_Get_Jps(1,Xpick_point1,label[1],toolid[1]) » stocke les positions articulaires, l’étiquette et l’ID de l’outil du premier point de passage dans les variables spécifiées.
|
||
Se déplacer vers le point d’approche de la prise |
Le robot se déplace vers le point d’approche de la prise. pick_point1 et Xpick_point1 indiquent la même position. |
||
Se déplacer vers le point de prise |
Le robot se déplace vers le point de prise. pick_point2 et Xpick_point2 indiquent la même position. |
||
Définir un DO pour effectuer la prise |
Après que le robot s’est déplacé vers le point de prise, vous pouvez définir un DO (tel que « $OUT[1]=TRUE ») pour contrôler le robot afin d’utiliser l’outil pour effectuer la prise. Veuillez définir les DO en fonction de la situation réelle.
|
||
Se déplacer vers le point de départ de la prise |
Le robot se déplace vers le point de départ de la prise (pick_point3). pick_point3 et Xpick_point3 indiquent la même position. |
||
Se déplacer vers le point intermédiaire |
Le robot se déplace vers un point intermédiaire (drop_waypoint) entre le point de départ de la prise et le point d’approche de la dépose.
|
||
Déplacer le robot vers le point d’approche de la dépose |
Le robot se déplace du point intermédiaire vers le point d’approche de la dépose (drop_app).
|
||
Se déplacer vers le point de dépose |
Le robot se déplace du point d’approche de la dépose vers le point de dépose (drop).
|
||
Définir des DO pour effectuer la dépose |
Après que le robot s’est déplacé vers le point de dépose, vous pouvez définir un DO (tel que « $OUT[1]=FALSE ») pour contrôler le robot afin d’utiliser l’outil pour effectuer la dépose. Veuillez définir les DO en fonction de la situation réelle.
|
||
Déplacer le robot vers le point de départ de la dépose |
Le robot se déplace du point de dépose vers le point de départ de la dépose (drop_app).
|
||
Aller à la position d’origine |
Le robot se déplace à nouveau du point de départ de la dépose vers le point home.
|