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