Outils pour utilisateurs

Outils du site


Action disabled: revisions
staubli_vision

Intégration du capteur de vision

Ce sujet est la suite de: staublivissage

En début de séance, le groupe de TP sera coupé en 2 pour faire travailler la moitié du groupe sur le robot, pendant que l'autre moitié travaillera avec un capteur simulé.

Partie Robot Réel

Réapprentissage des positions de saisie et de dépose

bvdp.inetdoc.net_files_iut_tp_tns_todo.jpg Depuis la dernière fois, la cellule du robot a été reconfigurée, vous devez donc réapprendre les positions de saisie et de dépose du bouchon ainsi que les configurations articulaires du robot avant d'aller saisir le bouchon. Faites tout d'abord des réglages grossiers en simulation puis faites l'apprentissage sur le robot à l'aide du pendant.

étalonnage géométrique et colorimétrique du système de vision

bvdp.inetdoc.net_files_iut_tp_tns_todo.jpg Avec l'enseignant, définir la zone de saisie du bouchon sur le plan de la table (en posant la mire + pions élévateurs) et faire l'étalonnage géométrique de la caméra vis à vis de la mire placée dans la zone de saisie. Dessiner les limites de la zone (Z) comprise entre les 4 coins de la mire sur la table. Procéder également à l'étalonnage colorimétrique pour apprendre les deux couleurs présentes sur le bouchon dans les conditions d'éclairage de la cellule, après avoir disposé un éclairage adapté sur la zone de saisie.

étalonnage géométrique entre le système de vision et le robot

bvdp.inetdoc.net_files_iut_tp_tns_todo.jpg Procéder à l'estimation du changement de repère entre le repère vision (définie par la mire lors de l'étalonnage précédent et le repère de travail du robot.

Charger le projet sur le contrôleur et sélectionner en mode jog l'outil pince+mors.

Saisir le bouchon à une position connue (il faut que la hauteur du bouchon dans les mors soit correcte).

Ensuite, nous utiliserons le capteur de vision qui se comporte comme un capteur émettant en UDP vers le serveur de données capteurs à partir de la donnée numéro 30:

  • trouve=1 si le bouchon est détecté, 0 sinon
  • x_vision = coordonnée x du centre du bouchon dans le repère vision exprimé en mm, comprise entre 0 et 169
  • y_vision = coordonnée y du centre du bouchon dans le repère vision exprimé en mm, comprise entre 0 et 169
  • x_robot = coordonnée x du centre du bouchon dans le repère robot exprimé en mm
  • y_robot = coordonnée y du centre du bouchon dans le repère robot exprimé en mm

Dans un premier temps, les coordonnées x_robot et y_robot fournies par le système ne sont pas correctes. Nous allons devoir apprendre la transformation à appliquer aux coordonnées pour qu'elles deviennent correctes. Pour cela, vous allez devoir déposer (avec le robot) le bouchon à différentes positions (suffisamment éloignées et non alignées) et relever les positions cartésiennes du repère outils dans le repère du robot et les positions correspondantes retournées par le système de vision. Procéder ainsi pour au moins 4 positions du bouchons réparties dans la surface de la zone de saisie (délimitée par la mire). Pour chaque position, lâcher le bouchon en ouvrant la pince, déplacer le robot dans la direction z+ du repère robot pour l'éloigner du bouchon sans le déplacer, puis le faire tourner autour de la liaison j1 en articulaire pour dégager le champ de vision de la caméra, et relever les positions fournies par le système de vision (à l'aide du middleware en relevant les données capteurs comme vu dans le TP réseau en faisant une requête TCP, avec un programme Python ou avec le programme VAL3 au choix).

Sauver les données collectées dans un fichier texte rigidtransform.in organisé avec le format suivant:

x1_image,y1_image,x1_robot,y1robot,x2_image.....

Si vous avez dejà fait la séance visionlproaip, vous pouvez lancer votre programme rigid_transform_2D.py pour calculer la transformation rigide 2D entre les repères robot et image, sinon demander à l'enseignant d'utiliser sa version. Ceci créer un fichier rigidtransform.out utilisé par le système de vision pour qu'il puisse fournir des positions de bouchon valides dans le repère robot.

Partie Robot En Simulation

Simulation du capteur de vision et intégration dans le programme du robot

bvdp.inetdoc.net_files_iut_tp_tns_todo.jpg Utiliser l'application Python vue dans le tp staubli pour simuler le capteur de vision. L'appui sur le bouton doit permettre de piloter trouve et les sliders doivent piloter x_robot et y_robot.

bvdp.inetdoc.net_files_iut_tp_tns_todo.jpg Intégrer dans votre programme sur le robot Staubli la lecture des données capteurs (simulées) pour déclencher la séquence de saisie quand le bouchon est détecté et faire en sorte que le robot vienne saisir le bouchon dans la zone de saisie à la position dans le repère robot indiquée par le système de vision. Vous devrez vérifier que la position de saisie fournie par le capteur est atteignable par le robot avant de tenter la saisie! Ensuite, visser le bouchon sur la bouteille.

bvdp.inetdoc.net_files_iut_tp_tns_todo.jpg Tester avec le robot réel et le capteur de vision réel.

Pour la suite, vous développerez vos propres programmes de vision en python sur: visionlproaip

staubli_vision.txt · Dernière modification : 2023/03/28 13:03 de bvandepo