Utiliser le Set Vision avec Blockly¶
Des blocs Blockly ont été créés pour être utilisés avec le Set Vision. Ce qui permet de garder la facilité d’utilisation de l’écosystème de Ned avec Niryo Studio.
Dans cette section, nous verrons comment utiliser le Set Vision avec ces blocs.
Description des blocs¶
Bloc “Color”¶
Permet à l’utilisateur de choisir une couleur parmi la liste des couleurs disponibles.
Cette couleur sera utilisée dans les blocs “Vision Pick” et “Is Detected”.
Bloc “Shape”¶
Permet à l’utilisateur de choisir une forme parmi une liste de formes disponibles.
La forme choisie sera utilisée dans les blocs “Vision Pick” et “Is Detected”.
Bloc “Vision Pick”¶
Ce bloc va permettre à Ned de prendre un objet en fonction des blocs “Color” et “Shape” correspondants.
Le processus de pick est le suivant :
Ouvrir le gripper
Se rapprocher de l’objet (5 cm)
Descendre
Fermer le gripper
Retourner à l’étape 2
Le pick aura lieu dans le workspace (dans notre exemple, il s’agit de default_workspace).
Le height offset
est la hauteur a laquelle l’accessoire se placera afin d’attraper l’objet, basé sur la hauteur du workspace.
Exemples pour height offset :
Avec la pompe à vide, utiliser la hauteur de l’objet.
Avec le gripper standard, indiquer la moitié de la hauteur de l’objet afin de le prendre en son milieu.
Ce bloc agit comme une condition et, par conséquent, retourne un booléen.
Bloc “Vision Pick with Observation Pose”¶
Ce bloc est l’équivalent de “Move Pose” jusqu’à la position d’observation, suivi d’une saisie d’objet par vision (“Vision Pick” en anglais).
Bloc “Is Detected”¶
Ce bloc permet de savoir si un objet correspondant au Bloc “Color” et au Bloc “Shape” est présent sur l’espace de travail.
Ce bloc retourne un booléen.
Exemples¶
Veuillez trouver ci-dessous quelques cas d’usages sur Blockly. Pour chaque exemple, la séquence sera détaillée étape par étape et vous aurez à définir une position d’observation.
Important
Afin de réaliser ces exemples, le robot doit être calibré et son outil branché et scanné.
De plus, le workspace doit être enregistré. Dans les exemples suivants, le nom utilisé est default_workspace
, mais vous êtes libre de choisir le vôtre !
Pick & Place simple par Vision¶
Tâche¶
Ned doit attraper un objet depuis son espace de travail en utilisant la Vision. Ensuite, il doit le placer à n’importe quel endroit.
Solution & explication¶
Pour attraper un objet grâce à la vision, il faut utiliser le Bloc “Vision Pick”. Il retournera True
si un objet est détecté et attrapé, et doit donc être mis dans une condition logique ⇨ si une action à lieu, nous pouvons placer l’objet attrapé.
Il est possible d’ajouter une action au cas où la saisie n’ait pas pu avoir lieu avec else
. Dans ce cas, le robot activera le mode apprentissage.
Le robot doit voir les 4 marqueurs quand le “Vision Pick” est appelé. Pour cela, nous devons déplacer le robot au dessus du workspace. Nous pouvons faire ça en utilisant un bloc “Move Pose”, toutefois, pour l’intérêt de ce guide utilisateur, nous utiliserons le Bloc “Vision Pick with Observation Pose”.
Un processus de Pick & Place peut donc être résumé en cette simple séquence, qui définit une position d’observation et permet la saisie d’un objet s’il existe un objet correspondant l’espace de travail. Si cet objet existe, il est déplacé autre part, sinon le mode apprentissage est activé si aucun objet ne correspond aux attributs choisis.
Vider le Workspace avec le Pick & Place par la Vision¶
Tâche 1¶
Ned doit attraper n’importe quel objet sur le workspace, puis les placer tous au même endroit.
Le workspace peut avoir plusieurs objets sans couleurs ou formes définies.
Solution & explication 1¶
Pour effectuer une tâche de saisie par la vision, vous pouvez utiliser le Bloc “Vision Pick with Observation Pose” qui retournera True
à chaque fois qu’une action à lieu. En utilisant une boucle comme une condition (ici, repeat while
), le robot continuera la procédure jusqu’à ce qu’il ait attrapé l’ensemble des objets présents sur le workspace.
Ensuite, un bloc Place from Pose
est ajouté afin de placer chaque objet saisi.
Dans cette séquence, Ned attrapera tous les objets qu’il détectera sur le workspace, puis activera son mode apprentissage.
Conditionnement multi-référence avec le Pick & Place par Vision¶
Tâche 2¶
Ned doit saisir tous les objets du workspace et les placer à différents endroits en fonction de leurs attributs ⇨ les objets rouges seront placés dans une zone et les autres objets, dans une autre.
Solution & explication 2¶
La procédure commence en utilisant le Bloc “Vision Pick with Observation Pose” afin d’interagir avec les objets rouges uniquement. Si une action à lieu, l’objet sera placé à un certain endroit.
Ensuite, une condition else if
est ajoutée. Elle sera déclenchée si la première saisie par vision n’a pas eu lieu, ce qui signifie qu’il n’y a plus d’objets rouges.
Avec ce programme, Ned essayera de saisir un objet rouge puis de le placer dans une zone. S’il n’y a pas d’objets rouges dans la zone de travail, Ned prendra un autre objet et le placera dans une autre zone.
Maintenant, nous pouvons utiliser une boucle pour répéter la séquence pour un nombre donné d’objets en utilisant des variables.
Saisie par la Vision avec le Convoyeur¶
Tâche 3¶
Ned doit saisir un nombre d’objets depuis un espace de travail sur un Convoyeur, puis les placer dans une autre zone.
Solution & explication 3¶
Avec Blockly, Ned n’est pas capable d’attraper un objet en mouvement, mais il peut contrôler le Convoyeur ! Nous pouvons donc :
Déplacer Ned à une position d’observation située au dessus du Convoyeur avec
Move pose
Allumer le Convoyeur avec la commande
Control Conveyor
Attendre de voir un objet entrer dans le Workspace avec le bloc
Repeat until object detected
Arrêter le Convoyeur avec la commande
Stop Conveyor
Attraper l’objet et le placer à la position de votre choix avec le Bloc “Vision Pick”