Exemple de programme 2: MM_S2_Viz_Basic

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.

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.

File path

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

Project

Projets Mech-Vision et Mech-Viz

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

NOP
'--------------------------------
'FUNCTION: trigger Mech-Viz
'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 Mech-Viz project
CALL JOB:MM_START_VIZ ARGF"2;30"
'get planned path, 1st argument
'(1) means getting pose in JPs
CALL JOB:MM_GET_VIZDATA ARGF"1;51;52;53"
'check whether planned path has
'been got from Mech-Viz
'successfully
IFTHENEXP I053<>2100
	'add error handling logic here
	'according to different error
	'codes
	'e.g.: I053=2038 means no
	'point cloud in ROI
	 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 de l’exemple ci-dessus est illustré dans la figure ci-dessous.

sample2

Le tableau ci-dessous explique le programme ci-dessus. Vous pouvez cliquer sur le lien hypertexte du nom de commande pour en afficher la description détaillée.

Feature Code and description

Initialize variables

'clear I50 to I69
CLEAR I050 20
  • CLEAR: La commande pour 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’énoncé complet indique d’effacer les données des variables entières I050 à I069 (soit un total de 20 variables) en les mettant à 0.

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

  • Premier P071: Spécifie le diminuend 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 soustrahend comme la variable de position P071.

Les deux instructions ci-dessus signifient que les variables de position P071, P072 et P073 sont mises à 0.

Move to the home position

'move to robot home position
MOVJ C00000 VJ=50.00
  • MOVJ: La commande de mouvement en position articulaire.

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

    • Vous devez enseigner la position de départ (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.

    • Une fois C00000 enseigné, les positions d’enseignement 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 représentée comme une proportion de la vitesse maximale.

L’énoncé complet indique que le robot se déplace vers la position de départ 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: Appelle une commande ou un programme spécifique.

  • JOB: Spécifie 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 crochets anglais.

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

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

  • 1: Spécifie le délai d’expiration 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 le délai d’expiration 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’énoncé complet 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-Viz project to run

'trigger Mech-Viz project
CALL JOB:MM_START_VIZ ARGF"2;30"
  • MM_START_VIZ: La commande pour déclencher l’exécution du projet Mech-Viz.

  • 2: Envoie les positions articulaires représentées par la variable P030 au projet Mech-Viz.

  • 30: La variable P dont l’ID est 30. Cette variable stocke des positions articulaires personnalisées. Lorsque la trajectoire de prise est planifiée, le robot simulé dans le projet Mech-Viz se déplacera depuis ces positions articulaires vers le premier point de passage.

    Le type de la variable P030 doit être défini sur le type position articulaire ou le type pulse.

L’ensemble de la commande indique que le robot déclenche le système de vision pour exécuter le projet Mech-Viz, puis que Mech-Viz planifie la trajectoire de prise du robot sur la base du résultat de vision fourni par Mech-Vision.

Obtain the planned path

'get planned path, 1st argument
'(1) means getting pose in JPs
CALL JOB:MM_GET_VIZDATA ARGF"1;51;52;53"
  • MM_GET_VIZDATA: La commande pour obtenir la trajectoire planifiée par Mech-Viz.

  • 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’énoncé complet indique que le robot obtient la trajectoire planifiée depuis le projet Mech-Viz.

La trajectoire planifiée renvoyée est enregistrée dans la mémoire du robot et ne peut pas être obtenue directement. Pour y accéder, vous devez la stocker à l’étape suivante.
'check whether planned path has
'been got from Mech-Viz
'successfully
IFTHENEXP I053<>2100
	'add error handling logic here
	'according to different error
	'codes
	'e.g.: I053=2038 means no
	'point cloud in ROI
	 PAUSE
ENDIF
  • IFTHENEXP A …​ ENDIF: Lorsque la condition A est satisfaite, le programme exécute le code entre IFTHENEXP et ENDIF.

  • <>: Non égal.

L’énoncé ci-dessus indique que lorsque le code d’état dans I052 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 IFTHENEXP et ENDIF. Vous pouvez effectuer l’opération correspondante selon le code d’erreur spécifique. Dans cet exemple de programme, 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 d’outil du premier point de passage.

L’ensemble de la commande « CALL JOB:MM_GET_JPS ARGF"1;71;61;62" » stocke les positions articulaires, l’étiquette et l’ID d’outil du premier point de passage dans les variables spécifiées.

Dans cet exemple, la trajectoire planifiée par Mech-Viz se compose de trois points de passage : le premier point de passage est le point d’approche de prise (P071), le deuxième point de passage est le point de prise (P072), et le troisième point de passage est le point de départ de prise (P073). Veuillez stocker la trajectoire planifiée en fonction du projet Mech-Viz 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 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 DO commands 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 d’utiliser 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 ici l’instruction PAUSE.

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 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 de passage intermédiaire entre le point de départ de prise et le point d’approche de dépose.

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

  • Vous devez enseigner au préalable le point de passage intermédiaire (C00002). Pour savoir comment enseigner ce point, 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 se déplace du point de passage intermédiaire vers le point d’approche de dépose.

  • L’ajout de points d’approche de dépose peut éviter que le robot n’entre en collision avec des objets (tels que des bacs) dans la scène lors de ses déplacements.

  • Vous devez enseigner au préalable le point d’approche de dépose (C00003). Pour savoir comment enseigner ce point, 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 se déplace du point d’approche de dépose vers le point de dépose.

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

  • Vous devez enseigner au préalable le point de dépose (C00004). Pour savoir comment enseigner ce point, 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 d’utiliser 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 ici l’instruction PAUSE.

Move the robot to the departure waypoint of placing

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

Le robot se déplace du point de dépose vers le point de départ de dépose.

  • L’ajout de points de départ de dépose peut éviter que le robot n’entre en collision avec des objets (tels que des bacs) dans la scène lors de ses déplacements.

  • Vous devez enseigner au préalable le point de départ de dépose (C00005). Pour savoir comment enseigner ce point, 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 se déplace à nouveau du point de départ de dépose vers la position de départ.

Vous devez enseigner la position de départ (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.