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”

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”

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”

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 :

  1. Ouvrir le gripper

  2. Se rapprocher de l’objet (5 cm)

  3. Descendre

  4. Fermer le gripper

  5. 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”

Bloc 'Vision Pick'

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”

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

Pick & Place simple par Vision

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.

Pick & Place simple par Vision

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

Pick & Place simple par Vision

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.

Infinite vision pick 1

Ensuite, un bloc Place from Pose est ajouté afin de placer chaque objet saisi.

Infinite vision pick 2

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.

Conditionnement multi-référence avec le Pick & Place par Vision

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.

Conditionnement multi-référence avec le Pick & Place par Vision

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.

Conditionnement multi-référence avec le Pick & Place par Vision

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 :

  1. Déplacer Ned à une position d’observation située au dessus du Convoyeur avec Move pose

  2. Allumer le Convoyeur avec la commande Control Conveyor

  3. Attendre de voir un objet entrer dans le Workspace avec le bloc Repeat until object detected

  4. Arrêter le Convoyeur avec la commande Stop Conveyor

  5. Attraper l’objet et le placer à la position de votre choix avec le Bloc “Vision Pick”

Saisie par la Vision avec le Convoyeur