Caméra pour robot KUKA KRC3

image1

Fixer une caméra à un bras robot. Qu’est-ce que pourrait mal se passer?

Nous sommes Théotime Aubin et Antoine Grimault, notre objectif a été de fixer une webcam au bras robot KUKA et de lui faire détecter des objets sur un plan (fixe) défini au préalable.
La première étape a été de choisir l’emplacement de la webcam.

image2

  • On aurait pu choisir de fixer la caméra dans l’espace de travail du robot.
  • image3

  • Il était aussi possible de la fixer sur le côté du robot, et d’avoir une position de prise de vue différente de la position d’action.
  • image4

  • Enfin, on pouvait fixer la caméra directement sur la flasque du bras, avant l’outil.
  • Nous avons choisi la dernière option car ce système limite faiblement les mouvements du bras,
    et le repère de la caméra est “simple” à définir par rapport au repère de la flasque. C’est aussi plus facile de la fixer solidement ici.
    Il est possible que l’outil soit visible sur l’image, cela pourrait poser problème pour la détection des objets, mais d’après nos mesures cela a peu de chances d’arriver.

    Une fois ce choix fait, nous avons démonté la webcam pour n’en garder que l’électronique (PCB), puis modélisé un boitier sur SolidWorks que nous avons ensuite imprimé en 3D.

    Capture5
    Capture2


    Capture1
    Capture4


    Capture

  • Vient ensuite la phase deux… le traitement d’image :

  • Pour ceci nous avons décidé d’utiliser Python avec le module OpenCV sur un ordinateur séparé du robot. On a codé une application qui permet à l’utilisateur du robot d’avoir un retour vidéo pour calibrer la ‘‘visée’’, fait une détection de contour et donne les coordonnées d’un objet situé sur l’espace de travail défini au préalable, en convertissant au passage des pixels en millimètres.

    nnwn
    Capture6

  • Vient ensuite la phase trois… la programmation du robot :


  • Capture10

    Le but est simple. Le robot est capable de connaitre en temps réel la position de la flasque. Notre travail dans ce programme est de donner au robot les translations et rotations de repère afin de disposer des coordonner de la caméra en temps réel.

    Capture720210604_184736

    Après s’être bien creusé les méninges on finit par comprendre et ça donne un beau petit programme :



    Capture8

  • Conclusion :
  • Quand on fait tout fonctionner ensemble le robot est capable de localiser une pièce, en déduire ses coordonnées et la pointer. il aurait été possible d’aller un peu plus loin en communiquant directement les coordonnées au robot via une carte d’entrée sortie utilisant le protocole TCP/IP, mais celle ci a mis trop de temps a arriver.

    Capture9