coupe robotique des iut cachan 2016 equipe iut geii
Transcription
coupe robotique des iut cachan 2016 equipe iut geii
COUPE ROBOTIQUE DES IUT CACHAN 2016 EQUIPE IUT GEII ANGOULEME IUT GEII ANGOULEME 1 SOMMAIRE I-Présentation du robot I.1-Résumé du robot I.2-Composants du robot II-Déplacement du robot II.1-Moteurs II.2-Signal PWM et asservissement III-Détection de l’environnement III.1-Capteurs tout ou rien III.2-Télémètre infrarouge IV-Balise et détection IV.1-Balise IV.2-Détecteur V-Codes V.1-Vitesse des moteurs V.2-Evitement des obstacles V.3-Positionnement par rapport à la balise V.4-Odométrie V-Conclusion IUT GEII ANGOULEME 2 I-Présentation du robot I.1-Résumé du robot Le robot Orange Mécatronique est un robot participant à la coupe robotique des IUT 2016 se déroulant à Cachan (Val-de-Marne, 92). L’objectif d’Orange Mécatronique est d’atteindre un point B en partant d’un point A, le plus rapidement possible, avec des obstacles et le tout en compétition avec 3 autres robots dans la même arène. I.2-Composants du robot Capteurs utilisés : -TSOP 2256 qui captent un signal à 56 KHz. -Capteurs de contact -Télémètres infrarouges -Capteur zone blanche -Fourches optiques Autres éléments utilisés : -FPGA - Cyclone IV E, Terrasic DE0-Nano -Cartes électroniques diverses (Pont en H, carte alimentation robot…) -Servo moteur -Bloc moteur -Disque de LED -Bouton d’arrêt d’urgence -Batteries au plomb, 12v, 1.2 Ah IUT GEII ANGOULEME 3 II-Déplacement du robot II.1- Moteurs Le robot se déplace grâce à un bloc moteur situé en dessous du système, composé de deux moteurs à courant continu alimentés en leur envoyant un signal PWM par l’intermédiaire d’une carte électronique (pont en H) alimentée avec une batterie au plomb 12V DC. II.2- Signal PWM et asservissement Le signal envoyé sur les moteurs est un signal à rapport cyclique variable. Une période de ce signal représente 2500 fronts d’horloge. On joue donc avec le nombre de périodes mises à l’état haut pour générer un rapport cyclique choisi sachant que le reste du temps (entre la fin des 2500 fronts et de cette mise à ‘1’) on laisse le signal à 0. On a aussi créé, plus tard, un bloc asservissement qui nous permet de maintenir la vitesse à la référence de consigne. IUT GEII ANGOULEME 4 III-Détection de l’environnement III.1-Capteurs tout ou rien Les capteurs tout ou rien intégrés, ne servent qu’en cas où le traitement de l’évitement d’obstacle ne réagirait pas convenablement. Quand un des capteurs est activé, le robot fait donc un quart de tour à l’opposé de la position du capteur enclenché. IUT GEII ANGOULEME 5 III.2-Télémètre infrarouge Le robot détectera son environnement à distance par le biais de deux télémètres situés sur la droite et la gauche du robot. Ces deux télémètre sont du constructeur SHARP et ont une distance de détection allant jusqu’à 150cm. Pour pouvoir fluidifier les déplacements du robot, nous avons donc choisi de ne pas utiliser de comparateur à seuil mais de faire un traitement numérique grâce à un Convertisseur Analogique Numérique, intégré au FPGA. Cela nous permet donc de travailler sur différentes valeurs fournies par le télémètre et changeant en temps réel. Ainsi nous pouvons anticiper la présence d’un obstacle et l’éviter sans faire de gros écarts, ce qui n’aurait pas était fait aussi facilement avec des comparateurs à seuil. IUT GEII ANGOULEME 6 IV-Balise et détection IV.1-Balise La balise se compose donc du même FPGA que le robot auquel est associé une carte électronique faite par nos soins, contenant les 4 leds infrarouge qui serviront à envoyer un signal modulé. IV.2-Détecteur La partie détection de la balise du robot se fait par un disque séparé en 16 parties, contenant chacun un capteur TSOP 2256. Ainsi le robot peut déterminer à chaque moment son orientation par rapport à la balise et donc se rediriger dans sa direction. De plus pour nous permettre une meilleure compréhension et aider au développement du code de commande, un disque de leds a été réalisé avec chaque led représentant un TSOP, où une led s’allume quand son capteur a démodulé le bon signal. IUT GEII ANGOULEME 7 V. Code V.1 Vitesse des moteurs La vitesse des moteurs est réalisée par un ensemble de fonctions reliées entre elles, la génération du signal PWM variable en fonction de la valeur d’entrée, la mesure de vitesse d’une roue (mesurée avec fourches optiques), et l’asservissement qui stabilisera la vitesse des roues. En premier lieu le signal PWM ne se compose que de ce qui a été vu dans la partie II.2 et d’un signal d’entrée qui est la valeur de sortie de la fonction de déplacement finale. Ceci est fait pour chacune des roues. Vient ensuite la mesure de vitesse des roues qui est effectuée par deux fourches optiques décalées, pour chaque roue respectivement. La mesure ainsi obtenue servira à l’asservissement. L’asservissement sert donc à augmenter la vitesse des roues pour retourner sur la vitesse désirée en comparant la vitesse mesurée et la vitesse voulue. Il y a deux variables d’entrée qui correspondent à la vitesse. Elles sont issues d’un signal PWM. Le code permet aussi la détection d’une zone blanche, de l’enlèvement du Jack et le fonctionnement de l’arrêt d’urgence qui arrête immédiatement le bloc moteur. IUT GEII ANGOULEME 8 V.2 Evitement des obstacles Le principe de cette fonction est de vérifier régulièrement les valeurs de sortie des télémètres par le CAN (ADC), afin de comparer le télémètre de droite et celui de gauche, pour pouvoir situer le robot et lui donner une vitesse appropriée. IUT GEII ANGOULEME 9 V.3 Positionnement par rapport à la balise Ici, le robot doit pouvoir se réorienter sur la balise, pour cela on utilise le disque de capteurs TSOP. La problématique est que plusieurs capteurs peuvent s’allumer en même temps et on ne sait pas combien seront allumés, il nous est donc difficile d’estimer facilement où se trouve la balise par rapport au robot sachant qu’avec les réflexions, des capteurs qui ne sont pas dans la direction souhaitée s’allument. Pour déterminer le positionnement de la balise nous avons donc créé une fonction interne, dans la partie « Entity » du VHDL, qui cherche le plus grand nombre de capteurs allumés d’affilés (qui logiquement doivent être ceux face à la balise) et en détermine le milieu, qui est donc l’endroit le plus en face de la balise. Ensuite une vitesse est envoyée en sortie du bloc VHDL afin qu’il serve de somme différentielle à la vitesse donnée pour l’évitement d’obstacle permettant de ne pas altérer la capacité prévisionnelle et de se diriger de façon fluide vers la balise. IUT GEII ANGOULEME 10 V.4-Odométrie L’odométrie est un système permettant de localiser un robot à partir d’informations émanant de capteurs disposés sur les éléments provoquant le déplacement, ici les roues. Les capteurs en question sont quatre barrières infrarouges fixées sur deux fourches optiques. A chaque front montant d’horloge, on actualise trois paramètres : - IUT GEII ANGOULEME L’angle différentiel entre la normale du robot et la direction de la balise ; La position sur l’axe x ; La position sur l’axe y ; 11 VI- Conclusion Ce que nous pouvons conclure au bout de ce semestre de réalisation est que réaliser un robot de la sorte, alors que la plupart d’entre nous n’a jamais réalisé de robot avant, n’est pas une chose aisée et que cela demande beaucoup d’implication. Implication qui n’est pas forcément simple à mettre en place non plus. Malgré les petites difficultés techniques et humaines, l’aventure fut très intéressante pour chaque membre du groupe. Le choix de partir sur un FPGA pour faire fonctionner le robot est au final un très bon choix, déroutant pour certains au début, mais qui s’avère très pratique. En effet un FPGA permet d’être beaucoup plus modulable qu’un microcontrôleur et permet d’avoir les tâches qui s’exécutent toutes en même temps. Un choix que l’on conseille pour toutes équipes ne sachant pas sur quoi partir. IUT GEII ANGOULEME 12