Exemple de programme 2 : MM_S2_Viz_Basic
Introduction du programme
Description |
Le robot déclenche l’exécution du projet Mech-Viz, 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 |
Projets Mech-Vision et Mech-Viz |
Prérequis |
|
| Ce programme d’exemple est fourni à titre de référence uniquement. 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_S2_Viz_Basic.
DEF MM_S2_Viz_Basic ( )
;---------------------------------------------------
; FUNCTION: trigger Mech-Viz 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-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 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 % 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 workflow correspondant au code de l’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 en afficher la description détaillée.
| Fonctionnalité | Code et description | ||
|---|---|---|---|
Définir le repère de référence |
Les deux instructions ci-dessus définissent les repères de l’outil et de la base actuels. |
||
Se déplacer vers la position HOME |
L’instruction ci-dessus indique de déplacer le robot en mode PTP vers la position HOME 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 indique de déplacer le robot de façon linéaire vers la position de capture d’image enseignée. |
||
Déclencher l’exécution du projet Mech-Viz |
L’ensemble de la commande indique que le robot déclenche le système de vision pour exécuter le projet Mech-Viz, puis Mech-Viz planifie le chemin de prise du robot sur la base du résultat de vision fourni par Mech-Vision. |
||
Obtenir la trajectoire planifiée |
L’instruction entière indique que le robot obtient la trajectoire planifiée depuis le projet Mech-Viz.
L’instruction ci-dessus indique que lorsque le code d’état est 2100, 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 au moyen de la commande halt. |
||
Enregistrer la trajectoire planifiée |
L’instruction entière « MM_Get_Jps(1,Xpick_point1,label[1],toolid[1]) » enregistre les positions articulaires, l’étiquette et l’identifiant d’outil du premier waypoint dans les variables spécifiées.
|
||
Se déplacer vers le waypoint d’approche de la prise |
Le robot se déplace vers le waypoint d’approche de la prise. pick_point1 et Xpick_point1 indiquent la même position. |
||
Se déplacer vers le waypoint de prise |
Le robot se déplace vers le waypoint de prise. pick_point2 et Xpick_point2 indiquent la même position. |
||
Configurer des DO pour effectuer la prise |
Après que le robot s’est déplacé vers le waypoint de prise, vous pouvez définir une DO (par exemple « $OUT[1]=TRUE ») pour contrôler le robot afin d’utiliser l’outil pour effectuer la prise. Veuillez configurer les DO en fonction de la situation réelle.
|
||
Se déplacer vers le waypoint de départ de la prise |
Le robot se déplace vers le waypoint de départ de la prise. pick_point3 et Xpick_point3 indiquent la même position. |
||
Se déplacer vers le waypoint intermédiaire |
Le robot se déplace vers un waypoint intermédiaire (drop_waypoint) entre le waypoint de départ de la prise et le waypoint d’approche de la dépose.
|
||
Déplacer le robot vers le waypoint d’approche de la dépose |
Le robot se déplace du waypoint intermédiaire vers le waypoint d’approche de la dépose (drop_app).
|
||
Se déplacer vers le waypoint de dépose |
Le robot se déplace du waypoint d’approche de la dépose vers le waypoint de dépose (drop).
|
||
Configurer des DO pour effectuer la dépose |
Après que le robot s’est déplacé vers le waypoint de dépose, vous pouvez définir une DO (par exemple « $OUT[1]=FALSE ») pour contrôler le robot afin d’utiliser l’outil pour effectuer la dépose. Veuillez configurer les DO en fonction de la situation réelle.
|
||
Déplacer le robot vers le waypoint de départ de la dépose |
Le robot se déplace du waypoint de dépose vers le waypoint de départ de la dépose (drop_app).
|
||
Se déplacer vers la position HOME |
Le robot se déplace du waypoint de départ de la dépose vers le waypoint HOME à nouveau.
|