Avertissement

Vous lisez une ancienne version de cette documentation. Si vous souhaitez obtenir des informations actualisées, veuillez consulter 5.0 .

get_part

Important

Cette section n’est pertinente que lorsqu’une recette multi-model est utilisée en production. Consultez la section get_part pour une recette standard avec une seule pièce.

Paramètres

  • Aucun

Renvoie

  • 200 x=<x> y=<y> rz=<rz> m=<modèle>, où <x>, <y>, <rz> sont les coordonnées et l’orientation de la pièce et <modèle> est le numéro du modèle auquel EYE+ attribue la pièce, sinon se référer aux codes d’erreur.

Remarque

Les coordonnées ont 5 décimales (p. ex. x = 10.00000) et l’angle en a 2 (p. ex. rz = 1.00).

Description

Demande une ou plusieurs pièces. Un modèle spécifique peut être demandé.

Dans le contexte du mode multi-model, cette commande peut être utilisée pour récupérer la position d’une ou plusieurs pièces spécifiques qui correspondent au modèle demandé (par exemple une pièce du modèle 1 et une pièce du modèle 2) ou de toute pièce pouvant être prise par le robot de n’importe quel modèle (par exemple le modèle 1, le modèle 3… etc). Ce comportement est contrôlé par le paramètre part_quantity et le paramètre spécifique au mode multi-model model_quantity.

Par défaut, ce paramètre est défini de manière à renvoyer une seule pièce du premier modèle trouvé par le système.

Si model_quantity est égal à 0 pour chaque modèle défini dans la recette, le système renverra la première pièce prélevable qu’il trouvera, quel que soit le modèle.

Remarque

Notez que changer model_quantity pour n’importe quel modèle pendant qu’un get_part est en attente ne l’affectera pas. Seuls les get_part suivants prendront en compte les valeurs nouvellement définies.

Remarque

Cette commande bloquera l’entrée de commandes jusqu’à ce que les pièces demandées soient trouvées et puissent être renvoyées. Un délai de 30 secondes est défini par défaut. La commande renvoie une erreur si le nombre de pièces demandé du modèle (ou des modèles) spécifié(s) ne peut être trouvé dans ce délai. Le délai peut être ajusté avant l’appel de get_part (voir set_parameter).

Supposons que 4 modèles aient été définis dans la recette.

Principe de fonctionnement par défaut

Paramètres définis comme suit:

La commande get_part renverra les coordonnées d’un bon candidat d’un quelconque modèle, que ce soit le modèle 1,2,3 ou 4. Le comportement de cette commande est similaire à celui du cas de figure avec une seule pièce. Cependant, la commande renverra si possible des pièces en alternant les modèles.

  • Supposons que l’analyse de l’image soit terminée et que le système ait trouvé 2 pièces appartenant à chaque modèle. En exécutant get_part 4 fois, on obtiendra une séquence aléatoire contenant une fois chaque modèle (par exemple 4, 2, 1, 3).

  • Supposons maintenant que le système ait trouvé 3 pièces appartenant au modèle 1 et aucune pièce d’un autre modèle. En exécutant 3 fois get_part, on obtiendra la séquence 1, 1, 1. Un quatrième appel de get_part déclenchera une séquence d’alimentation et une nouvelle analyse d’image.

Principe de fonctionnement avec part_quantity = 2

Paramètres définis comme suit:

Cette configuration modifie le nombre minimum de bons candidats de n’importe quel modèle qui doivent être trouvés à chaque appel de la commande get_part. La quantité de pièces peut être modifiée avec la commande set_parameter.

La commande get_part ne s’arrêtera pas avant qu’au moins 2 bons candidats soient présents sur l’Asycube ou que le délai ne se soit écoulé.

  • Supposons que l’analyse de l’image soit terminée et que le système ait trouvé 2 pièces du modèle 2 et 3 pièces du modèle 4. En appelant une fois get_part, on obtiendra un résultat aléatoire tel que : (2, 4). Encore une fois, il n’y a aucune garantie que le résultat commence par 2, le résultat pourrait donc tout aussi bien être (4, 2) ou même (4, 4). Après un deuxième get_part qui renverra 2 bonnes pièces, une seule pièce serait disponible et comme nous avons défini part_quantity comme étant égal à 2, le système déclenchera une séquence d’alimentation et une nouvelle analyse d’image.

Principe de fonctionnement avec model_quantity = n

Paramètres définis comme suit:

Dans ce cas, puisque l’un des model_quantity est différent de zéro, part_quantity est ignoré. Ici, le système ne renverra qu’une pièce du modèle 2.

  • Supposons à nouveau que l’analyse de l’image soit terminée et que le système ait trouvé 3 pièces du modèle 1 et 2 pièces du modèle 2. En appelant 2 fois get_part, vous obtiendrez la séquence suivante : 2, 2. Même s’il y a de bons candidats pour le modèle 1, aucun ne sera retourné et un troisième appel de get_part déclenchera une séquence d’alimentation et une nouvelle analyse d’image pour retourner un nouveau candidat du modèle 2.

Paramètres définis comme suit:

Ici encore, part_quantity est ignoré puisque model_quantity est différent de zéro pour plusieurs modèles. Une pièce du modèle 1 et une pièce du modèle 3 sont demandées en même temps dans le cas présent.

  • Reprenons notre exemple précédent où l’analyse d’image est terminée et le système a trouvé 2 pièces du modèle 1 et 3 pièces du modèle 3. En appelant 2 fois la commande get_part, vous obtiendrez la séquence suivante : (1, 3), (1, 3). Un troisième appel de get_part déclenchera une séquence d’alimentation et une nouvelle analyse d’image afin de renvoyer (1, 3).

Remarque

Comme pour part_quantity, il est possible de définir model_quantity à des valeurs supérieures à 1. Par exemple, si 2 pièces du modèle 1 et 1 pièce du modèle 3 sont nécessaires dans le même appel de get_part, model_quantity 1 doit être défini à 2 et model_quantity 3 à 1.

Exemple d’utilisation

set_parameter part_quantity 2
set_parameter model_quantity 1 0
set_parameter model_quantity 2 0
set_parameter model_quantity 3 0
set_parameter model_quantity 4 0

get_part
200 x=0.58025 y=0.43782 rz=5.02 m=4 x=0.50617 y=0.29485 rz=0.00 m=1
get_part
200 x=0.47438 y=0.13729 rz=252.02 m=4 x=0.45598 y=0.51482 rz=0.00 m=3
get_part
200 x=0.31603 y=0.16358 rz=188.96 m=4 x=0.29393 y=0.53599 rz=0.00 m=3

set_parameter part_quantity 1
set_parameter model_quantity 1 1
set_parameter model_quantity 2 0
set_parameter model_quantity 3 0
set_parameter model_quantity 4 0

get_part
200 x=0.12345 y=0.11111 rz=0.99 m=1
get_part
200 x=0.67894 y=0.12341 rz=0.79 m=1

set_parameter part_quantity 1
set_parameter model_quantity 1 1
set_parameter model_quantity 2 0
set_parameter model_quantity 3 1
set_parameter model_quantity 4 0
get_part
200 x=0.12345 y=0.11111 rz=0.99 m=1 x=0.42420 y=0.75311 rz=0.75 m=3
get_part
200 x=0.78951 y=0.96514 rz=0.42 m=1 x=0.23554 y=0.14587 rz=0.51 m=3