le 05-30-2017 04:14 AM
Bonjour à tous,
Travaillant avec NI vision assistant, mon programme consiste à détecter un objet et obtenir ses coordonnées. Avec une bonne calibration, j'arrive même à obtenir les coordonnées en mm, mais ceci par rapport au plan de l'image (coin supérieur gauche de l'image).
Moi je veux créer un autre repère dans l'image (centré par exemple) et obtenir les coordonnées de mon objet par rapport à ce repère (pour pouvoir par la suite les envoyer à un robot).
Je serais très reconnaissante pour votre aide.
Résolu ! Accéder à la solution.
le 05-30-2017 04:32 AM
Bonjour,
Pour cela il te faut un autre repère sur ton image indépendant de l'objet dont tu cherches les coordonnées.
Généralement, dans le monde industriel, on utilise des plots de centrage, minimum 2. Ainsi il te suffit de chercher ces deux points dans ton image (concrètement 2 cercles de rayon X, séparé par une distance Y).
A partir de là, tu peux fixer arbitrairement les coordonnées 0,0, comme étant le milieu de la droite reliant ces deux points, et par la suite, obtenir les coordonnées de ton objet dans l'espace.
Par la suite, pour augmenter ta précision, tu peux augmenter le nombre de plots de centrage, il s'agit après d'un compromis entre le temps/coût de mise en oeuvre vis à vis du besoin de précision.
Cdt,
Michael
le 05-30-2017 05:06 AM
Je te remercie pour ta réponse. Mais je n'ai pas trop compris comment est-ce que je vais chercher ces plots de centrage, et s'ils sont indépendants de la position de l'objet, parce que à chaque prise d'image, cet objet va être dans une position différente.
05-30-2017 07:32 AM - modifié 05-30-2017 07:34 AM
Justement, ces points de centrage, doivent être complètement dissocié de ton objet. Ils sont fixes dans ton référentiel spatial, et doivent te permettre de placer ton repère orthonormé de manière identique à chaque prise de vue.
Le traitement de ton image se déroulera donc en 3 temps :
1- Identification et calcul des positions relatives des plots de centrages
Tu as une fonction de détection de cercle, qui te permettra de faire ce travail http://zone.ni.com/reference/en-XX/help/370281M-01/imaqvision/imaq_find_circles/
2 - Changement des coordonnées du point de référence en conséquence
3 - Identification, et calcul des coordonnées de l'objet.
En plus, tu pourrais fournir un exemple d'image à traiter, cela pourrait nous aider à t'apporter des solutions .
Cdt,
Michael
le 05-30-2017 08:14 AM
Alors je vais attacher une photo qui montre une image prise par la caméra attachée à mon robot. Dans cet image il y'a un repère, ce repère est le repère de la base de mon robot . Mon problème initial était de données au robot des coordonnées de l'objet à saisir à partit des coordonnées dans l'image, c'est pourquoi l'idée qui m'est venue était de superposer un repère dans l'image au repère du robot pour faciliter les choses.
le 05-30-2017 09:57 AM
Ta piste est la bonne, il faut juste imaginer quelque chose de plus "exploitable".
J'ai modifié ton image, je suppose que la pièce à attraper est l'objet noir en bas de la feuille.
Il te suffit de dessiner 3 cercles sur ton plan, assez gros pour être facilement détecter avec la fonction citée plus haut.
A partir de ces 3 points, tu calcules l'équation de la droite les traversant tous les 3, et tu calculs le milieu de cette droite comme référence. (en rouge, l'interprétation de la position des points).
ll te suffit ensuite de définir ces nouvelles coordonnées comme référence. Tu devrais trouver ton bonheur dans cette palette http://zone.ni.com/reference/en-XX/help/370281P-01/imaqvision/calibration_pal/
Bon courage pour la suite.
Michael
le 05-31-2017 02:10 AM
je te remercie pour ton aide, ça me permet d'avancer considérablement.
Mais j'ai une toute dernière question, pour la définition du nouveau référenctiel, j'ai essayé avec "set coordonate system" du NI vision assistant.mais ça ne me donne comme sortie que les coordonnées de l'origine de ce repère et non les coordonnées de l'objet par rapport à ce dernier.
Je vous remercie encore infiniment.
le 05-31-2017 02:15 AM
Bonjour,
Comme je ne possède pas la licence Vision à mon poste actuel, je vais avoir du mal à t'aider à ce niveau là, de mémoire, il y a des exemples dans la base de données NI à ce sujet.
Sinon, tu peux toujours faire le changement de repère manuellement après avoir repéré ta référence et ton objet, avec une soustraction des coordonnées de ton objet par rapport à ta référence (en considérant que l'origine de départ 0,0 et le coin supérieur gauche de l'image).
le 05-31-2017 02:19 AM
C'est d'ailleurs ce que j'ai fait à priori en attendant de trouver une solution meilleure. Je pense que le problème est donc résolu, merci beaucoup.
le 03-14-2019 03:37 AM
bonjour,
j'ai rencontré le même problème pouvez vous me détaillé les étapes pour repérer l'objet et vaut mieux que vous m'envoyez le code