Exemple de programme 3 : MM_S3_Vis_Path

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-Vision, puis obtient la trajectoire planifiée pour la prise et la dépose.

File path

Vous pouvez accéder au répertoire d’installation de Mech-Vision et Mech-Viz et trouver le fichier via le chemin Communication Component/Robot_Interface/YASKAWA/sample/MM_S3_Vis_Path.

Project

Projet Mech-Vision

Le projet Mech-Vision doit contenir une étape Planification de trajectoire, et le paramètre Type de port de l’étape Sortie doit être défini sur Prédéfinie (trajectoire du robot).

Prerequisites

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_S3_Vis_Path.

NOP
'--------------------------------
'FUNCTION: trigger Mech-Vision
'project and get planned path
'Mech-Mind, 2023-12-25
'--------------------------------
'clear I50 to I69
CLEAR I050 20
'initialize p variables
SUB P071 P071
SUB P072 P072
SUB P073 P073
'move to robot home position
MOVJ C00000 VJ=50.00
'initialize communication
'parameters (initialization is
'required only once)
CALL JOB:MM_INIT_SOCKET ARGF"192.168.170.22;50000;1"
'move to image-capturing position
MOVJ C00001 VJ=50.00 PL=0
'open socket connection
CALL JOB:MM_OPEN_SOCKET
'trigger NO.1 Mech-Vision project
CALL JOB:MM_START_VIS ARGF"1;0;2;30"
'get planned path from NO.1
'Mech-Vision project; 2nd
'argument (1) means getting pose
'in JPs
CALL JOB:MM_GET_VISPATH ARGF"1;1;51;52;53"
'check whether planned path has
'been got from Mech-Vision
'successfully
IFTHENEXP I053<>1103
	'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
	 PAUSE
ENDIF
'close socket connection
CALL JOB:MM_CLOSE_SOCKET
'save waypoints of the planned
'path to local variables one
'by one
CALL JOB:MM_GET_JPS ARGF"1;71;61;62"
CALL JOB:MM_GET_JPS ARGF"2;72;63;64"
CALL JOB:MM_GET_JPS ARGF"3;73;65;66"
'follow the planned path to pick
'move to approach waypoint of
'picking
MOVJ P071 VJ=50.00 PL=0
'move to picking waypoint
MOVJ P072 VJ=10.00 PL=0
'add object grasping logic here,
'such as DOUT OT#(1) ON
PAUSE
'move to departure waypoint of
'picking
MOVJ P073 VJ=50.00 PL=0
'move to intermediate waypoint of
'placing
MOVJ C00002 VJ=50.00
'move to approach waypoint of
'placing
MOVL C00003 V=166.6 PL=0
'move to placing waypoint
MOVL C00004 V=50.0 PL=0
'add object releasing logic here,
'such as DOUT OT#(1) OFF
PAUSE
'move to departure waypoint of
'placing
MOVL C00005 V=166.6 PL=0
'move back to robot home position
MOVJ C00006 VJ=50.00
END

Le flux de travail correspondant au code du programme d’exemple ci-dessus est illustré dans la figure ci-dessous.

sample3

Le tableau ci-dessous explique le programme ci-dessus. Vous pouvez cliquer sur l’hyperlien du nom de la commande pour consulter sa description détaillée.

Feature Code and description

Initialize variables

'clear I50 to I69
CLEAR I050 20
  • CLEAR: La commande permettant d’effacer des données.

  • I050: Spécifie l’effacement des données des variables I à partir de la variable I 50.

  • 20: Spécifie l’effacement des données de 20 variables.

L’instruction complète indique d’effacer les données des variables entières I050 à I069 (un total de 20 variables) en les réglant à 0.

'initialize p variables
SUB P071 P071
SUB P072 P072
SUB P073 P073
  • SUB: La commande de soustraction.

  • Premier P071: Spécifie le minuend comme la variable de position P P071 et stocke le résultat de l’opération de soustraction dans P071.

  • Second P071: Spécifie le subtrahend comme la variable de position P071.

Les deux instructions ci-dessus indiquent que les variables de position P071, P072 et P073 sont réglées à 0.

Move to the home position

'move to robot home position
MOVJ C00000 VJ=50.00
  • MOVJ: La commande de mouvement basée sur la position articulaire.

  • C00000: L’ID de la position enseignée au robot.

    • Vous devez enseigner la position d’origine (C00000) au préalable. Pour des instructions détaillées, voir Enseigner le point de départ de la calibration dans le document de calibration.

    • Après l’enseignement de C00000, les positions d’apprentissage des axes du robot seront écrites sans condition dans C00000. La position ne peut pas être modifiée.

    • C00000 n’apparaîtra pas sur l’interface du boîtier d’enseignement.

  • VJ=50.00: La vitesse articulaire. La vitesse articulaire est exprimée en pourcentage de la vitesse maximale.

L’instruction complète indique que le robot se déplace vers la position d’origine enseignée en utilisant un mouvement en position articulaire.

Initialize communication parameters

'initialize communication
'parameters (initialization is
'required only once)
CALL JOB:MM_INIT_SOCKET ARGF"192.168.170.22;50000;1"
  • CALL: Appeler une commande ou un programme spécifique.

  • JOB: Spécifier la commande ou le programme à appeler.

  • MM_INIT_SOCKET: La commande pour initialiser la communication.

  • ARGF: Sur l’interface du boîtier d’enseignement, ARGF s’affiche sous la forme d’une paire de parenthèses.

  • 192.168.170.22: L’adresse IP de l’IPC.

  • 50000: Le numéro de port de l’IPC.

  • 1: Spécifie la durée de temporisation de la communication à 1 minute.

Le robot envoie la commande MM_INIT_SOCKET pour définir l’adresse IP, le numéro de port et la durée de temporisation de l’objet de communication (l’IPC) à 192.168.170.22, 50000 et 1 minute.

Veuillez modifier l’adresse IP et le numéro de port de l’IPC en fonction de la situation réelle. L’adresse IP et le numéro de port doivent être cohérents avec ceux définis dans le système de vision.

Move to the image-capturing position

'move to image-capturing position
MOVJ C00001 VJ=50.00 PL=0
  • C00001: L’ID de la position enseignée au robot. Vous devez enseigner la position de capture d’image (C00001) au préalable. Pour des instructions détaillées, voir Enseigner le point de départ de la calibration dans le document de calibration.

  • PL=0: Définit le niveau de position à 0. Le niveau de position fait référence à la proximité du robot par rapport à la position enseignée, avec une plage de 0 à 8. Une valeur plus petite indique que le robot est plus proche de la position.

L’instruction complète indique que le robot se déplace vers la position de capture d’image enseignée en utilisant un mouvement en position articulaire.

Establish the communication

'open socket connection
CALL JOB:MM_OPEN_SOCKET

La communication TCP entre le robot et le système de vision est établie à l’aide de la commande MM_OPEN_SOCKET.

Trigger the Mech-Vision project to run

'trigger NO.1 Mech-Vision project
CALL JOB:MM_START_VIS ARGF"1;0;2;30"
  • MM_START_VIS: La commande pour déclencher l’exécution du projet Mech-Vision.

  • 1: L’ID du projet Mech-Vision.

  • 0: Le projet Mech-Vision doit renvoyer tous les points de passage.

  • 2: Spécifie que la pose de la bride du robot doit être saisie dans le projet Mech-Vision.

  • 30: La variable P dont l’ID est 30. La variable stocke des données personnalisées de position articulaire. Dans ce programme d’exemple, ces données de position articulaire ne sont d’aucune utilité pratique.

L’instruction complète 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.

Obtain the planned path

'get planned path from NO.1
'Mech-Vision project; 2nd
'argument (1) means getting pose
'in JPs
CALL JOB:MM_GET_VISPATH ARGF"1;1;51;52;53"
  • MM_GET_VISPATH: La commande pour obtenir la trajectoire planifiée depuis Mech-Vision.

  • Premier 1: Spécifie l’ID du projet Mech-Vision.

  • Deuxième 1: Spécifie le type de pose des points de passage obtenus comme positions articulaires.

  • 51: La variable I dont l’ID est 51. Cette variable stocke le nombre de points de passage renvoyés par le système de vision.

  • 52: La variable I dont l’ID est 52. Cette variable stocke le numéro de séquence du point de passage Vision Move (point de prise) dans la trajectoire.

  • 53: La variable I dont l’ID est 53. Cette variable stocke le code d’état d’exécution de la commande.

L’instruction complète indique que le robot obtient la trajectoire planifiée depuis le projet Mech-Vision dont l’ID est 1.

La trajectoire planifiée renvoyée est enregistrée dans la mémoire du robot et ne peut pas être obtenue directement. Pour accéder à la trajectoire planifiée, vous devez la stocker à l’étape suivante.
'check whether planned path has
'been got from Mech-Vision
'successfully
IFTHENEXP I053<>1103
	'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
	 PAUSE
ENDIF
  • IFTHENEXP A …​ ENDIF: Lorsque la condition A est remplie, le programme exécute le code entre IFTHENEXP et ENDIF.

  • <>: Pas égal.

L’instruction ci-dessus indique que lorsque le code d’état dans I052 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 IFTHENEXP 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 PAUSE.

Close the communication

'close socket connection
CALL JOB:MM_CLOSE_SOCKET

La communication TCP entre le robot et le système de vision est fermée à l’aide de la commande MM_CLOSE_SOCKET.

Store the planned path

'save waypoints of the planned
'path to local variables one
'by one
CALL JOB:MM_GET_JPS ARGF"1;71;61;62"
CALL JOB:MM_GET_JPS ARGF"2;72;63;64"
CALL JOB:MM_GET_JPS ARGF"3;73;65;66"
  • MM_GET_JPS: La commande pour stocker la trajectoire planifiée.

  • 1: Stocke le premier point de passage.

  • 71: La variable P dont l’ID est 71. Cette variable stocke les positions articulaires du premier point de passage.

  • 61: La variable I dont l’ID est 61. Cette variable stocke l’étiquette du premier point de passage.

  • 62: La variable I dont l’ID est 62. Cette variable stocke l’ID de l’outil du premier point de passage.

La commande complète “CALL JOB:MM_GET_JPS ARGF"1;71;61;62"” stocke les positions articulaires, l’étiquette et l’ID de l’outil du premier point de passage dans les variables spécifiées.

Dans cet exemple, la trajectoire planifiée par Mech-Vision se compose de trois points de passage : le premier est le point d’approche de la prise (P071), le second est le point de prise (P072) et le troisième est le point de départ de la prise (P073). Veuillez stocker la trajectoire planifiée en fonction du projet Mech-Vision réel.

Move to the approach waypoint of picking

'follow the planned path to pick
'move to approach waypoint of
'picking
MOVJ P071 VJ=50.00 PL=0

Le robot se déplace vers le point d’approche de la prise (la position représentée par P071).

Move to the picking waypoint

'move to picking waypoint
MOVJ P072 VJ=10.00 PL=0

Le robot se déplace vers le point de prise (la position représentée par P072).

Set DOs to perform picking

'add object grasping logic here,
'such as DOUT OT#(1) ON
PAUSE

Après que le robot s’est déplacé vers le point de prise, vous pouvez définir une commande DO (telle que “DOUT OT#(1) ON”) pour contrôler le robot afin qu’il utilise l’outil pour effectuer la prise. Veuillez définir les commandes DO en fonction de la situation réelle.

PAUSE indique la mise en pause de l’exécution du programme. Si vous avez ajouté une instruction pour définir une commande DO, vous pouvez supprimer l’instruction PAUSE ici.

Move to the departure waypoint of picking

'move to departure waypoint of
'picking
MOVJ P073 VJ=50.00 PL=0

Le robot se déplace vers le point de départ de la prise (la position représentée par P073).

Move to the intermediate waypoint

'move to intermediate waypoint of
'placing
MOVJ C00002 VJ=50.00

Le robot se déplace vers un point intermédiaire entre le point de départ de la prise et le point d’approche de la dépose.

  • L’ajout de points intermédiaires permet d’assurer un mouvement fluide du robot et d’éviter des collisions inutiles. Vous pouvez ajouter plusieurs points intermédiaires selon la situation réelle.

  • Vous devez enseigner le point intermédiaire (C00002) au préalable. Pour savoir comment enseigner le point de passage, voir Enseigner le point de départ de la calibration dans le document de calibration.

Move the robot to the approach waypoint of placing

'move to approach waypoint of
'placing
MOVL C00003 V=166.6 PL=0

Le robot passe du point intermédiaire au point d’approche de la dépose.

  • L’ajout de points d’approche de la dépose peut empêcher le robot d’entrer en collision avec des objets (tels que des bacs) dans la scène lors de ses mouvements.

  • Vous devez enseigner le point d’approche de la dépose (C00003) au préalable. Pour savoir comment enseigner le point de passage, voir Enseigner le point de départ de la calibration dans le document de calibration.

Move to the placing waypoint

'move to placing waypoint
MOVL C00004 V=50.0 PL=0

Le robot passe du point d’approche de la dépose au point de dépose.

  • Le point de dépose doit se situer à une distance de sécurité des autres postes, du personnel et des équipements, et ne doit pas dépasser la portée maximale du robot.

  • Vous devez enseigner le point de dépose (C00004) au préalable. Pour savoir comment enseigner le point de passage, voir Enseigner le point de départ de la calibration dans le document de calibration.

Set DO commands to perform placing

'add object releasing logic here,
'such as DOUT OT#(1) OFF
PAUSE

Après que le robot s’est déplacé vers le point de dépose, vous pouvez définir une commande DO (telle que “DOUT OT#(1) OFF”) pour contrôler le robot afin qu’il utilise l’outil pour effectuer la dépose. Veuillez définir les commandes DO en fonction de la situation réelle.

PAUSE indique la mise en pause de l’exécution du programme. Si vous avez ajouté une instruction pour définir une commande DO, vous pouvez supprimer l’instruction PAUSE ici.

Move the robot to the departure waypoint of placing

'move to departure waypoint of
'placing
MOVL C00005 V=166.6 PL=0

Le robot passe du point de dépose au point de départ de la dépose.

  • L’ajout de points de départ de la dépose peut empêcher le robot d’entrer en collision avec des objets (tels que des bacs) dans la scène lors de ses mouvements.

  • Vous devez enseigner le point de départ de la dépose (C00005) au préalable. Pour savoir comment enseigner le point de passage, voir Enseigner le point de départ de la calibration dans le document de calibration.

Move to the home position

'move back to robot home position
MOVJ C00006 VJ=50.00

Le robot revient du point de départ de la dépose à la position d’origine.

Vous devez enseigner la position d’origine (C00006) au préalable. Pour des instructions détaillées, voir Enseigner le point de départ de la calibration dans le document de calibration.

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.