Exemple de programme 1 : MM_S1_Vis_Basic
Présentation du programme
Description |
Le robot déclenche l’exécution du projet Mech-Vision, puis obtient le résultat de vision pour saisir et déposer l’objet. |
||
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_S1_Vis_Basic.
MODULE MM_S1_Vis_Basic
!--------------------------------------------------------------
! FUNCTION: trigger Mech-Vision project and get vision result
! Mech-Mind, 2023-12-25
!-------------------------------------------------------------
!define local num variables
LOCAL VAR num pose_num:=0;
LOCAL VAR num status:=0;
LOCAL VAR num label:=0;
LOCAL VAR num toolid:=0;
!define local joint&pose variables
LOCAL CONST jointtarget home:=[[0,0,0,0,90,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL CONST jointtarget snap_jps:=[[0,0,0,0,90,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL PERS robtarget camera_capture:=[[302.00,0.00,558.00],[0,0,-1,0],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL PERS robtarget pick_waypoint:=[[302.00,0.00,558.00],[0,0,-1,0],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL PERS robtarget pickpoint:=[[500,100,300],[0.00226227,-0.99991,-0.00439596,0.0124994],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL PERS robtarget drop_waypoint:=[[302.00,0.00,558.00],[0,0,-1,0],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL PERS robtarget drop:=[[302.00,0.00,558.00],[0,0,-1,0],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
!define local tooldata variables
LOCAL PERS tooldata gripper1:=[TRUE,[[0,0,0],[1,0,0,0]],[0.001,[0,0,0.001],[1,0,0,0],0,0,0]];
PROC Sample_1()
!set the acceleration parameters
AccSet 50, 50;
!set the velocity parameters
VelSet 50, 1000;
!move to robot home position
MoveAbsJ home\NoEOffs,v3000,fine,gripper1;
!initialize communication parameters (initialization is required only once)
MM_Init_Socket "127.0.0.1",50000,300;
!move to image-capturing position
MoveL camera_capture,v1000,fine,gripper1;
!open socket connection
MM_Open_Socket;
!trigger NO.1 Mech-Vision project
MM_Start_Vis 1,0,2,snap_jps;
!get vision result from NO.1 Mech-Vision project
MM_Get_VisData 1,pose_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 codess
!e.g.: status=1003 means no point cloud in ROI
!e.g.: status=1002 means no vision result
Stop;
ENDIF
!close socket connection
MM_Close_Socket;
!save first vision point data to local variables
MM_Get_Pose 1,pickpoint,label,toolid;
!move to intermediate waypoint of picking
MoveJ pick_waypoint,v1000,z50,gripper1;
!move to approach waypoint of picking
MoveL RelTool(pickpoint,0,0,-100),v1000,fine,gripper1;
!move to picking waypoint
MoveL pickpoint,v300,fine,gripper1;
!add object grasping logic here, such as "setdo DO_1, 1;"
Stop;
!move to departure waypoint of picking
MoveL RelTool(pickpoint,0,0,-100),v1000,fine,gripper1;
!move to intermediate waypoint of placing
MoveJ drop_waypoint,v1000,z50,gripper1;
!move to approach waypoint of placing
MoveL RelTool(drop,0,0,-100),v1000,fine,gripper1;
!move to placing waypoint
MoveL drop,v300,fine,gripper1;
!add object releasing logic here, such as "setdo DO_1, 0;"
Stop;
!move to departure waypoint of placing
MoveL RelTool(drop,0,0,-100),v1000,fine,gripper1;
!move back to robot home position
MoveAbsJ home\NoEOffs,v3000,fine,gripper1;
ENDPROC
ENDMODULE
Le flux de travail correspondant au code de programme d’exemple ci-dessous 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 commande pour en consulter la description détaillée.
| Fonctionnalité | Code et description | ||
|---|---|---|---|
Définir des variables |
Définissez des variables locales. Les variables locales ci-dessus ne sont valides que dans ce programme. Apprenez la position de départ (variable home), la pose d’entrée du projet Mech-Vision (variable snap_jps), la position de capture d’image (variable camera_capture), le point intermédiaire de saisie (variable pick_waypoint), le point intermédiaire de dépose (variable drop_waypoint) et le point de dépose (variable drop), et configurez à l’avance les données de l’outil (variable gripper1).
|
||
Définir l’accélération et la vitesse |
|
||
Se déplacer vers la position de départ |
La commande entière indique que le robot se déplace vers la position de départ enseignée, sans l’influence d’axes externes, à une vitesse de 3000 mm/s. |
||
Initialiser les paramètres de communication |
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) à 127.0.0.1, 50000 et 300 secondes.
|
||
Se déplacer vers la position de capture d’image |
La commande entière indique que le robot se déplace avec précision, en mouvement linéaire, vers la position de capture d’image enseignée, à une vitesse de 1000 mm/s. |
||
Établir la communication |
La communication TCP entre le robot et le système de vision est établie via la commande MM_Open_Socket. |
||
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 vision. |
||
Obtenir le résultat de vision |
L’ensemble de l’instruction indique que le robot obtient le résultat de vision du projet Mech-Vision avec un ID de 1.
Lorsque le code d’état est 1100, le robot a obtenu avec succès tous les résultats de vision. Sinon, une erreur s’est produite dans le système de vision. Vous pouvez effectuer l’opération correspondante en fonction du code d’erreur spécifique. |
||
Fermer la communication |
La communication TCP entre le robot et le système de vision est fermée via la commande MM_Close_Socket. |
||
Stocker le résultat de vision |
L’ensemble de l’instruction enregistre le TCP, l’étiquette et l’ID d’outil du premier point de vision dans les variables spécifiées. |
||
Se déplacer vers le point intermédiaire |
La commande entière déplace le robot en positions articulaires vers un point intermédiaire entre la position de capture d’image et le point d’approche de saisie, à une vitesse de 1000 mm/s et avec un rayon de transition de 50 mm.
|
||
Se déplacer vers le point d’approche de saisie |
La commande entière indique que le robot se déplace linéairement à 100 mm au-dessus du point de saisie, à une vitesse de 1000 mm/s.
|
||
Se déplacer vers le point de saisie |
Le robot se déplace en mouvement linéaire du point d’approche de saisie vers le point de saisie. |
||
Définir des commandes DO pour effectuer la saisie |
Après que le robot s’est déplacé vers le point de saisie, vous pouvez définir une commande DO (par exemple setdo DO_1, 1;) pour contrôler l’utilisation de l’outil par le robot afin d’effectuer la saisie. Veuillez définir les commandes DO en fonction de la situation réelle.
|
||
Se déplacer vers le point de départ de saisie |
Le robot se déplace à 100 mm au-dessus du point de saisie et atteint le point de départ de saisie.
|
||
Se déplacer vers le point intermédiaire |
Le robot se déplace vers un point intermédiaire entre le point de départ de saisie et le point d’approche de dépose.
|
||
Déplacer le robot vers le point d’approche de dépose |
Le robot se déplace à 100 mm au-dessus du point de dépose et atteint le point d’approche de dépose.
|
||
Se déplacer vers le point de dépose |
Le robot se déplace du point d’approche de dépose vers le point de dépose. |
||
Définir des commandes 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 une commande DO (par exemple setdo DO_1, 0;) pour contrôler l’utilisation de l’outil par le robot afin d’effectuer la dépose. Veuillez définir les commandes DO en fonction de la situation réelle.
|
||
Déplacer le robot vers le point de départ de dépose |
Le robot se déplace à 100 mm au-dessus du point de dépose et atteint le point de départ de dépose.
|
||
Se déplacer vers la position de départ |
Le robot se déplace à nouveau du point de départ de dépose vers la position de départ. |