Cobot Universal Robots, série UR3E: dispositif pour tester le suivi de trajectoires
Connaissez vous le jeu du fil chaud ?? Ce jeu est simple, le but est de suivre la trajectoire d’un fil électrifié. La petite difficulté réside dans le fait que pour contrôler le bon suivi, vous avez une boucle autour du fil, et si la boucle touche le fil, vous prenez une petite décharge électrique. Le fond du jeu est donc un problème simple, c’est un contrôle de suivi de trajectoire, réalisé ici dans ce cas par vous même. Mais nous pouvons imaginer le même jeu pour un bras Robot, notre projet se rapproche donc beaucoup de ce jeu. Le cahier des charges initiale est presque aussi simple que le jeu. Nous disposons d’un bras robot, et nous devons contrôler le bon suivi de la trajectoire définie.
Reflexion
Grace à plusieurs méthodes telles que le Diagramme bête à cornes ou le Diagramme pieuvre nous réalisons les objectifs principaux de ce projet qui sont: concevoir un support pour le fil, concevoir un système de détection de collision, programmer le bras robot. Nous passons donc par plusieurs réflexions et posons les idées principales retenues pour chacun de ces objectifs. A noter que sont présentées ici seulement les versions finales de chaque réflexions, nous sommes passé par plusieurs versions test afin d’arriver à cette versions du projet.
Conception
Support de fil
Pour commencer nous avons conçu un support pour le fil, nous avons donc choisi une planche assez grande pour permettre des trajectoires assez grandes, ainsi que assez épaisse pour pouvoir y fixer les poteaux ainsi que pour garantir la solidité du système.
Nous avons donc une planche avec des poteaux en bois, et pour fixer les poteaux en bois nous avons modélisé et imprimé des pièces en 3D que nous avons fixé de chaque coté de la planche. Puis nous avons également modélisé et imprimé des pièces que nous fixons en haut des poteaux pour y accrocher le fil. Le but du système est de pouvoir changer la trajectoire à contrôler, nous avons donc mis en place un système de fixation pour le bout du fil, nous pouvons changer le fil utilisé pour changer le parcours, que l’on appellera niveau (ligne droite, courbe …)
Le plateau est donc prêt à accueillir le fil, qui n’est pas négligeable ici, il doit être assez rigide pour ne pas être déformé lors du changement de niveau ou du transport du système. Il doit également être conducteur pour la suite du projet. Nous avons donc choisi un fil de cuivre, que nous pouvons modifier à notre guise à la main.
Support de boucle
La partie fixe est maintenant prête, nous avons maintenant la partie mobile à concevoir, elle se compose du bras robot, rien à créer ou construire ici mais nous devons fixer au bout du bras une boucle. C’est cette boucle qui va contrôler le suivi de trajectoire, nous devons donc concevoir un outil qui nous permettra de la fixer. Avec le robot nous était également fourni une pince de chez Universal Robot, un outil que nous pouvons installer au bout du bras robot. Cet outil peut être ouvert ou fermé à notre guise, nous avons donc décidé d’utiliser cet outil pour y fixer une pièce imprimée en 3D où sera fixée la boucle en métal.
Systeme de détection
Le système est maintenant prêt à fonctionner, mais nous n’avons pas encore de système de détection de contact. La solution la plus simple à nos yeux est un contrôle de continuité d’électricité. Le principe est simple, nous avons une partie du système (le fil ici) qui est connectée à une alimentation (le + d’un générateur). L’autre partie (la boucle au bout du bras) est quant à elle connectée à une masse (côté – du générateur), ainsi si le contact est établi entre la boucle et le fil, il va y avoir continuité dans le circuit et donc un courant va traverser le circuit. Nous n’avons plus qu’à rajouter une led ou un buzzer sur le circuit afin d’avoir un signal lumineux ou sonore lors du contact. Notre circuit est schématisé ici:
Programmation
La dernière étape est de programmer le robot afin de réaliser les différentes trajectoires définies. Nous avons en effet conçu plusieurs trajectoires différentes afin de rendre le projet plus complet. Pour la partie programmation, nous avons plusieurs options: nous pouvons programmer en locale sur la tablette de contrôle du robot (langage se rapprochant de Scratch avec des blocs de fonctions à mettre les uns à la suite des autres), en réseaux en python. La manière la plus intuitive est pour nous de programmer directement en local, cela nous permet de tester plus rapidement chaque modification apportée. Pour notre projet la partie programmation a été assez facile, nous n’avons besoin que de quelques fonctions de base telles que les déplacements de l’outil ou l’ouverture et fermeture de l’outil. Le principe est simple, nous devons définir des points de passage, points où lesquels l’outil du robot dois passer durant le mouvement. La partie compliquée est plutôt le type de déplacement à utiliser. Plusieurs modes de déplacement nous sont proposés mais dans notre cas nous avons besoin que le mouvement de l’outil soit linéaire. D’autres modes sont proposés tels qu’un mode de lissage articulaire, ce mode demande aux articulations du robot de finir leur mouvement en même temps, ce qui donne des mouvements saccadés et en aucun cas linéaires. Nous programmons donc les mouvements du robot grâce aux points clés pour chaque niveau.
Et voila !!
Nous n’avons plus qu’a mettre en place le niveau qui nous intéresse et à lancer le programme adapté.
Pour aller plus loin
Plusieurs améliorations sont possible, telle que la mise en place d’un repère relatif. En effet nous avons un problème de taille avec ce système, les points clés des programmes sont définis dans les coordonnées du repère du robot, donc dès que nous bougeons la planche du support du fil, tous les points clés sont faussés, ils ne correspondent plus à la trajectoire recherchée. Pour palier à ce problème, nous avons mis en place un repère relatif lié à la planche, où nous plaçons les points clés de chaque niveau. Nous pouvons donc maintenant bouger la planche, cela demande juste de redéfinir le repère à chaque changement.
Pour conclure
Ce projet nous a demandé beaucoup de réflexion, pour arriver à une version finale nous avons du effectuer beaucoup de test mais grâce à cela, la version finale telle qu’elle est actuellement est entièrement fonctionnelle et répond en tout points aux demandes du cahier des charges. Cela nous a permis de mettre un pied dans une variété de domaines comme la programmation, l’électricité ou le bricolage et nous conforté dans nos choix de spécialités.
LEBOUC Pierre / POULIQUEN Baptiste