Avertissement
Vous lisez une ancienne version de cette documentation. Si vous souhaitez obtenir des informations actualisées, veuillez consulter 5.1 .get_part
Important
Cette section n’est pertinente que lorsqu’une recette dualfeeding 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> p=<part>
, où<x>
,<y>
,<rz>
sont les coordonnées et l’orientation de la pièce et<part>
est soita
, soitb
selon 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
Demander une ou plusieurs pièces d’un type spécifique ou non.
Dans le contexte du dualfeeding, cette commande peut être utilisée pour récupérer la position d’une ou plusieurs pièces spécifiques (par exemple une pièce a
et une pièce b
) ou de n’importe quelle pièce pouvant être prise (par exemple une pièce a
ou une pièce b
). Ce comportement est contrôlé par le paramètre part_quantity et le paramètre spécifique au dualfeeding multi_part_quantity.
Par défaut, ces paramètres sont réglés comme suit :
part_quantity = 1
multi_part_quantity a = 0
multi_part_quantity b = 0
Si multi_part_quantity a et multi_part_quantity b sont définis comme étant zéro, n’importe quelle pièce pouvant être prise par le robot sera renvoyée, qu’elle soit du type a
ou du type b
. Le système essaiera de renvoyer les positions de manière alternée (par exemple a
, b
, a
, b
etc.). Comme pour les recettes pour une unique pièce, le nombre de pièces renvoyé peut être modifié en utilisant le paramètre part_quantity (voir Tableau 30).
Dès que multi_part_quantity est défini à une valeur supérieure à zéro, part_quantity sera ignoré et le nombre de pièces spécifiques demandé sera renvoyé par get_part. Ceci peut être utilisé, par exemple, pour ne récupérer que les pièces de type a
ou pour obtenir les positions de a
et b
en même temps.
Remarque
Notez que changer part_quantity or multi_part_quantity 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 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é ne peut être trouvé après ce délai. Le délai peut être ajusté avant l’appel de get_part (voir set_parameter).
Principe de fonctionnement par défaut
Paramètres définis comme suit:
part_quantity = 1
multi_part_quantity a = 0
multi_part_quantity b = 0
La commande get_part renverra les coordonnées d’un bon candidat, qu’il soit de type a
ou de type b
. Le comportement est similaire à celui dans le cas de figure avec une seule pièce. Cependant, la commande renverra si possible des pièces en alternant le type.
Supposons que l’analyse de l’image soit terminée et que le système ait trouvé 2 pièces de type
a
et 3 pièces de typeb
. En appelant get_part 5 fois, vous obtiendrez probablement la séquence suivante :a
,b
,a
,b
,b
. Il n’y a aucune garantie que la séquence commence para
, donc le résultat pourrait aussi êtreb
,a
,b
,a
,b
. Le système ne déclenchera pas une nouvelle séquence d’alimentation tant que tous les bons candidats n’auront pas été renvoyés.Supposons maintenant que le système ait trouvé 3 pièces de type
a
et aucune de typeb
. En appelant la commande get_part 3 fois, le système renverrya
,a
,a
. En appelant get_part une quatrième fois, vous déclencherez une séquence d’alimentation et une nouvelle analyse d’image.
Principe de fonctionnement avec part_quantity = n
Paramètres définis comme suit:
part_quantity = 2
multi_part_quantity a = 0
multi_part_quantity b = 0
Ceci modifie le nombre minimum de bons candidats de n’importe quel type 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 d’avoir au moins n bons candidats 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 de type
a
et 3 pièces de typeb
. En appelant get_part 2 fois, on obtiendra probablement la séquence suivante : (a
,b
), (a
,b
). Encore une fois, il n’y a aucune garantie que la séquence commence para
, donc le résultat pourrait aussi être (b
,a
), (b
,a
). Un troisième appel de la commande get_part déclenchera une séquence d’alimentation et une nouvelle analyse d’image puisqu’une seule pièce serait disponible et que nous avons demandé un part_quantity de 2.
Principe de fonctionnement avec multi_part_quantity = n
Paramètres définis comme suit:
part_quantity = 1
multi_part_quantity a = 1
multi_part_quantity b = 0
Dans ce cas, puisque l’un des multi_part_quantity est différent de zéro, part_quantity est ignoré. Ici, le système ne renverra que des pièces de type a
.
Supposons à nouveau que l’analyse d’image soit terminée et que le système ait trouvé 2 pièces de type
a
et 3 pièces de typeb
. En appelant la commande get_part 2 fois, vous obtiendrez la séquence suivante :a
,a
. Même s’il existe de bons candidats pour le typeb
, aucun ne sera renvoyé et un troisième appel de la commande get_part déclenchera une séquence d’alimentation et une nouvelle analyse d’image dans le but de renvoyer un nouveau candidat de typea
.
Paramètres définis comme suit:
part_quantity = 1
multi_part_quantity a = 1
multi_part_quantity b = 1
Ici encore, part_quantity est ignoré puisque multi_part_quantity est différent de zéro. Une pièce de type a
et une pièce de type b
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 de type
a
et 3 pièces de typeb
. En appelant la commande get_part 2 fois, vous obtiendrez la séquence suivante : (a
,b
), (a
,b
). Un troisième appel de get_part déclenchera une séquence d’alimentation et une nouvelle analyse d’image afin de renvoyer (a
,b
).
Remarque
Comme pour part_quantity, il est possible de définir multi_part_quantity avec des valeurs supérieures à 1. Par exemple, si 2 pièces a
et 1 pièce b
sont nécessaires dans le même appel de get_part, multi_part_quantity a doit être défini comme égal à 2 et multi_part_quantity b comme égal à 1.
Exemple d’utilisation
set_parameter part_quantity 2
set_parameter multi_part_quantity a 0
set_parameter multi_part_quantity b 0
get_part
200 x=0.12345 y=0.11111 rz=0.99 p=a x=0.42420 y=0.75311 rz=0.75 p=b
get_part
200 x=0.78951 y=0.96514 rz=0.42 p=b x=0.23554 y=0.14587 rz=0.51 p=b
set_parameter part_quantity 1
set_parameter multi_part_quantity a 1
set_parameter multi_part_quantity b 0
get_part
200 x=0.12345 y=0.11111 rz=0.99 p=a
get_part
200 x=0.67894 y=0.12341 rz=0.79 p=a
set_parameter part_quantity 1
set_parameter multi_part_quantity a 1
set_parameter multi_part_quantity b 1
get_part
200 x=0.12345 y=0.11111 rz=0.99 p=a x=0.42420 y=0.75311 rz=0.75 p=b
get_part
200 x=0.78951 y=0.96514 rz=0.42 p=a x=0.23554 y=0.14587 rz=0.51 p=b