projet de semestre - la.epfl.ch · communication est faite au travers d’un protocole de...

54
Section Microtechnique – Master 1 er semestre Projet de Semestre Odométrie et suivi de trajectoires appliqués à une base robotique roulante Simon Tinguely Laboratoire d’Automatique Semestre d’hiver 2006-07 Supervision du projet MER : Denis Gillet Assistant : Damien Perritaz

Upload: phungphuc

Post on 16-Sep-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Section Microtechnique – Master 1er semestre

Projet de Semestre

Odométrie et suivi de trajectoiresappliqués à une base robotique roulante

Simon Tinguely

Laboratoire d’Automatique

Semestre d’hiver 2006-07

Supervision du projetMER : Denis GilletAssistant : Damien Perritaz

Page 2: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Table des matières

1 Introduction 31.1 Présentation du projet . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Concours Eurobot . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Conception de la base robotique 62.1 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2 Pièces mécaniques . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3 Electronique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3.1 Electronique de puissance . . . . . . . . . . . . . . . . . . 92.3.2 Module bluetooth . . . . . . . . . . . . . . . . . . . . . . 92.3.3 Logique de commande . . . . . . . . . . . . . . . . . . . . 102.3.4 Carte d’alimentation . . . . . . . . . . . . . . . . . . . . . 10

2.4 Alimentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.5 Améliorations possibles . . . . . . . . . . . . . . . . . . . . . . . 11

2.5.1 Communication avec le module bluetooth . . . . . . . . . 112.5.2 Bouton reset . . . . . . . . . . . . . . . . . . . . . . . . . 112.5.3 Choix du microcontrôleur . . . . . . . . . . . . . . . . . . 112.5.4 Programmation par bluetooth . . . . . . . . . . . . . . . . 112.5.5 Carte d’alimentation . . . . . . . . . . . . . . . . . . . . . 122.5.6 Boutons switch . . . . . . . . . . . . . . . . . . . . . . . . 12

3 Régulation 133.1 Démarche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2 Système à commander . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2.1 Approche multivariable . . . . . . . . . . . . . . . . . . . 133.2.2 Modèle physique . . . . . . . . . . . . . . . . . . . . . . . 14

3.3 Principe de la commande . . . . . . . . . . . . . . . . . . . . . . 163.4 Choix de la période d’échantillonnage . . . . . . . . . . . . . . . 173.5 Régulateur en vitesse . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.5.1 Choix du type de régulation . . . . . . . . . . . . . . . . . 173.5.2 Synthèse du régulateur . . . . . . . . . . . . . . . . . . . . 193.5.3 Pseudo-code . . . . . . . . . . . . . . . . . . . . . . . . . . 203.5.4 Ajustement expérimental des paramètres PID . . . . . . . 20

1

Page 3: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

3.6 Régulateur sur le déplacement du robot . . . . . . . . . . . . . . 223.6.1 Séparation chemin-vitesse . . . . . . . . . . . . . . . . . . 223.6.2 Régulateur sur le chemin . . . . . . . . . . . . . . . . . . 223.6.3 Profil de vitesse . . . . . . . . . . . . . . . . . . . . . . . . 233.6.4 Régulation en position . . . . . . . . . . . . . . . . . . . . 283.6.5 Arrêt imprévu . . . . . . . . . . . . . . . . . . . . . . . . 29

3.7 Odométrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4 Implémentation sur le robot 324.1 Stucture générale du programme . . . . . . . . . . . . . . . . . . 324.2 Calcul de la vitesse et de la position . . . . . . . . . . . . . . . . 32

4.2.1 Lecture des encodeurs . . . . . . . . . . . . . . . . . . . . 324.2.2 Calcul de la vitesse . . . . . . . . . . . . . . . . . . . . . . 334.2.3 Calcul de la position absolue du robot . . . . . . . . . . . 33

4.3 Réglage des PWM . . . . . . . . . . . . . . . . . . . . . . . . . . 334.4 Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344.5 Régulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

5 Conclusion 36

6 Remerciements 37

Bibliographie 38

A Schémas électroniques 39A.1 Module bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . 39A.2 Logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41A.3 Etage puissance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43A.4 Alimentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

B Mises en plan des pièces mécaniques 47

C Contenu du CD 52C.1 Électronique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52C.2 Mécanique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52C.3 Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52C.4 Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52C.5 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

C.5.1 Datasheets . . . . . . . . . . . . . . . . . . . . . . . . . . 52C.5.2 Publications . . . . . . . . . . . . . . . . . . . . . . . . . . 53

2

Page 4: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Chapitre 1

Introduction

1.1 Présentation du projetCe document présente le travail réalisé dans le cadre d’un projet de semestre

réalisé au laboratoire d’automatique de l’EPFL. L’objectif du projet est de dé-velopper une base robotique roulante et d’y implémenter des algorithmes dedéplacement et de calcul de position par odométrie. Ces algorithmes, ainsi queles schémas électroniques, seront utilisés dans le cadre du concours de robotiqueEurobot.

1.2 Concours EurobotIl est prévu d’adapter ce travail au robot d’une équipe de l’EPFL qui parti-

cipe au concours Eurobot. Cette année, le but de la compétion est de ramasserdes déchets sur la table de jeu et de les transporter aux endroits appropriés(figure 1.1 page suivante). La table de jeu ne comporte pas d’obstacles fixes.Ainsi la solution la plus appropriée pour se déplacer semble être la ligne droite.Les deux seuls mouvements à gérer seront donc :

– déplacement en ligne droite jusqu’à un point ;– rotation d’un angle donné.De plus, la connaissance de la position du robot à tout moment de la par-

tie est une information importante, que l’odométrie permet d’estimer avec unebonne efficacité.

1.3 ObjectifsLe but du projet est de proposer un module qui permette de gérer les dépla-

cements d’une base robotique du même type que celle utilisée pour le concoursEurobot.

3

Page 5: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

1 - départ

2 - ramassage

3 - dépôt

Fig. 1.1: Déplacement en ligne droite entre les différentes actions

Le module se présentera comme une boîte noire servant d’interface entre unutilisateur et les moteurs (figure 1.2 page suivante). Au niveau de l’utilisateur, lacommunication est faite au travers d’un protocole de communication standard.Les commandes envoyées sont de haut niveau :

– point à atteindre ;– distance à parcourir ;– vitesse à imposer au robot ;– angle à effectuer.

De même, les informations reçues seront parlantes :– position actuelle du robot ;– vitesse d’avance ;– vitesse de rotation.

L’utilisateur dont il est question pourra être de diverses natures. Ce sera, dansle cas du concours de robotique, le PC embarqué du robot. Mais on pourraitégalement imaginer interagir avec le robot depuis Matlab ou simplement envoyerdes commandes et recevoir des données sur le terminal d’un ordinateur fixe.

Le module communique non seulement avec l’utilisateur, mais aussi avecles moteurs. Il doit appliquer des tensions adaptées à l’entrée des moteurs enfonction des ordres haut niveau reçus, et traduire les signaux des encodeurs(quadrature) en informations plus parlantes pour l’utilisateur (position actuelle,vitesse courante).

Pour en revenir aux concours de robotique, ce projet a pour vocation d’ap-porter une solution réutilisable pour les prochaines compétions. En effet, chaqueannée les robots utilisés sont très similaires au niveau du déplacement. Il est doncintéressant de ne pas avoir à refaire le travail de développement de la commandedes moteurs à chaque fois. Ce projet et celui de D. Perritaz [6] qui fut proposédans le même esprit constituent une bonne base pour le déplacement, autant auniveau des schémas électroniques que pour la régulation.

4

Page 6: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Consigne - vitesse - but - ...

UTILISATEUR

MOTEURS

Données - positions - angle - ...

Commande - tensions

Retour - encodeurs

Fig. 1.2: Le module développé servira d’intermédiaire entre l’utilisateur et lesmoteurs

5

Page 7: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Chapitre 2

Conception de la baserobotique

2.1 ObjectifsAfin de ne pas dépendre de l’avancement du développement du robot construit

pour le concours Eurobot, il a été décidé de concevoir une base robotique dé-diée à la gestion des déplacements. Cette solution présente également l’avantagede laisser le robot du concours disponible pour d’autres tests. De plus, la basepourra servir à développer et tester d’autres algorithmes de commande au seindu laboratoire d’automatique, dans le cadre d’un futur projet de semestre parexemple.

La partie hardware du projet a été développée en gardant à l’esprit les deuxpoints suivants :Adaptabilité au concours Eurobot : la taille de la base de développement

sera similaire à celle du robot disputant le concours, les moteurs serontsimilaires et les signaux renvoyés par les encodeurs devront être les mêmes,afin de pouvoir utiliser les mêmes schémas électroniques.

Simplicité et faisabilité : la mécanique devra être le plus simple possible,afin d’être réalisable dans le temps à disposition. Les pièces devront pou-voir être fabriquées à l’atelier du laboratoire d’automatique. Les compo-sants électroniques seront choisis de telle sorte qu’ils soient soudables à lamain, et les PCB seront fabriqués au laboratoire « initiation ».

2.2 Pièces mécaniquesLes principales pièces mécaniques sont décrites dans le tableau 2.2 page

suivante. Les mises en plan sont disponibles en annexe. Toutes les pièces sontréalisées en aluminium.

6

Page 8: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Cette pièce se visse directement sur l’axe du moteur(côté petit diamètre) et s’insère dans l’alésage dela roue.

Cette pièce s’insère également dans l’alésage de laroue, mais depuis l’autre côté. Les trois trous per-mettent de la lier avec la précédente avec des vis,afin de serrer la roue.

La plaque est la base sur laquelle seront fixés leséléments du robot : support des moteurs, électro-nique et batterie.

Cette pièce est vissée sur la plaque. Elle est sert desupport au moteur, dont l’axe passe dans l’alésage.

Les roues sont des roues de roller de diamètre72 mm et de dureté 82A.

Tab. 2.1: Description des principales pièces de la base mécanique.

7

Page 9: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

2.3 ElectroniqueL’électronique est constituée de quatre circuits imprimés :1. la carte de l’électronique de puissance (ponts-H) ;2. la carte du module Bluetooth ;3. la carte de l’électronique de commande (microcontrôleur) ;4. la carte d’alimentation.Les circuits sont liés entre eux par des câbles plats et des connecteurs Mi-

cromatch. Les schémas et les layout des PCB sont fournis en annexe.Un schéma général de l’electronique présentant les principaux composants

et les liaisons entre eux est visible sur la figure 2.1.

3.3 V

µC

DsPIC30F3011

LSLS

LS7184

LEDS

SWITCHRESET

HH

LM103

5 V

12 V

LMX9820

MOTEURS

UTILISATEUR

Fig. 2.1: Les principaux composants de l’électronique

8

Page 10: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

2.3.1 Electronique de puissanceLes ponts-H choisis sont les L6203. Ils ont été retenus pour leurs caractéris-

tiques suivantes :– support des PWM (jusqu’à 100 kHz) ;– gamme de puissance adaptée à l’application.Pour commander les sorties OUT1 et OUT2 du L6203, nous devons agir sur les

entrées ENABLE, IN1 et IN2.

ENABLE Cette entrée permet d’activer (1) ou désactiver (0) le pont-HIN1 Cette entrée commande la sortie OUT1IN2 Cette entrée commande la sortie OUT2

Tab. 2.2: Effet des entrées sur le pont-H.

Nous voulons contrôler la vitesse du moteur au moyen de PWM. Pour cefaire, il y a deux possibilités :

1. Nous pouvons envoyer les PWM sur le bit ENABLE. De cette façon l’ali-mentation du moteur est coupée quand ce bit est à zéro. Le sens est dansce cas contrôlé par les bits IN1 et IN2, l’un devant être à un niveau logiquehaut, et l’autre à zéro.

2. Le bit ENABLE est toujours à VCC (le pont-H est toujours activé), et lesPWM sont envoyés soit sur l’une des entrées (IN1 ou IN2) l’autre étant àzéro. Le sens est contrôlé en choisissant l’entrée à laisser à zéro.

Ici, c’est la deuxième solution qui a été choisie. Le microcontrôleur utiliséest prévu pour ce type de fonctionnement en proposant deux sorties pour unmême signal PWM et la possibilité de choisir facilement sur laquelle des deuxsorties le PWM doit être générer. On peut ainsi facilement inverser le sens derotation du moteur en modifiant la sortie PWM.

2.3.2 Module bluetoothUn module bluetooth est connecté à l’UART21 du microcontrôleur. Cela per-

mettra d’envoyer les commandes au robot, ou éventuellement de reprogrammerle robot par bluetooth après avoir chargé un bootloader adapté sur le microcon-trôleur.

C’est le chip bluetooth LMX9820A qui est utilisé sur cette base robotique.C’est un port série bluetooth. Cependant un module complet contenant déjàles éléments nécessaires au fonctionnement du bluetooth, tels que l’antenne, unquartz, etc. Il s’agit du BlueNiceCom3 de Amber Wireless.

La configuration actuelle du chip est celle par défaut. Les données utiles pours’y connecter sont données dans le tableau 2.3 page suivante.

1communication série

9

Page 11: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Tab. 2.3: Configuration du module bluetooth

Nom du module : SerialPortDeviceCode : 0000Baudrate : 9600 Bauds

2.3.3 Logique de commandePour la commande de ce robot, le microcontrôleur DSPIC30f3011 de Micro-

chip a été choisi. Nous avions besoin des caractéristiques suivantes :– deux timers incrémentables depuis un signal d’horloge externe ;– possibilité de générer des PWM sur quatre sorties en tout, et sur deux

sorties simultanément ;– module UART ;– nombre d’entrées/sorties pour tous les périphériques (20 au total) :

– leds : 4– switches : 4– PWM : 4– enclencher ponts-H : 2– bluetooth : 2– encodeurs : 4

Quatre leds et quatre switchs sont disponibles. Ils peuvent être utiles pourla phase de développement ou pour choisir entre plusieurs comportements durobot.

Pour la lecture des encodeurs, le microcontrôleur ne contient qu’un décodeurde quadratures. C’est pourquoi des chips LS7184 ont été ajoutés. Ils conver-tissent le signal d’un encodeur en un signal d’horloge. Ils possèdent égalementune sortie indiquant le sens de rotation du moteur. Les horloges sont connectéesaux timers du microcontrôleur, et les bits de sens sur des entrées du microcon-trôleur gérant les interruptions externes.

2.3.4 Carte d’alimentationCette carte distribue la tension d’entrée aux trois autres cartes, après l’avoir

abaissée et stabilisée. L’étage de puissance nécessite du 12V, la logique fonc-tionne à 5V et le module bluetooth est alimenté à 3.3V. Pour ce faire, les com-posants suivants sont utilisés :

– convertisseur DC/DC de tracopower pour passer du 24V de la batterie àla tension de 12V nécessaire ;

– convertisseur DC/DC de tracopower pour passer de 12V à 5V ;– régulateur de tension pour passer de 5V à 3.3V.Un interrupteur permet de couper l’alimentation de tout le robot. Un deuxième

interrupteur concerne uniquement les moteurs.

10

Page 12: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

2.4 AlimentationLa batterie utilisée fournit du 24V. Une tension de 12V aurait suffit, mais

cette batterie était disponible.

2.5 Améliorations possiblesL’électronique de la base de développement souffre encore de quelques petits

bugs. Ces derniers ont pu être facilement contournés par de petits patchs surles cartes. Le but de cette section est d’énumérer ces problèmes et de proposerdes améliorations et des solutions aux problèmes existants. On évitera ainsi lesproblèmes actuels lors d’un éventuel redesign de l’électronique.

2.5.1 Communication avec le module bluetoothLa liaison entre le module bluetooth et le microcontrôleur est faite par deux

lignes de données, Rx et Tx. Le module bluetooth fonctionne à 3.3V et le micro-contrôler à 5V. La solution choisie pour faire cette conversion est l’utilisation ducomposant SN74LVC1T45 de Texas Instrument. Ce dernier nécessite une ten-sion constante de 3.3V sur l’une de ses entrées. Le montage pour obtenir cettetension à partir du 5V proposé dans les schémas en annexe ne fonctionne pas,un câble a donc été tiré depuis la carte d’alimentation. Cette solution n’est pastrès élégante, mais serait certainement viable si l’électronique est concentrée surune seule carte.

2.5.2 Bouton resetLe reset du microcontrôleur devait se faire à l’aide d’un reset monitor. Ce-

pendant quelques problèmes avec ce composant ont été rencontrés. Il a donc étéremplacé par une résistance pull-up, ce qui a deux conséquences négatives :

– le button reset ne fonctionne pas, il faut pour cela appondre deux pistes,par rapport au schéma électrique ;

– le reset par le bluetooth risque de ne pas fonctionner.

2.5.3 Choix du microcontrôleurLe microcontrôleur choisi a rempli pleinement les tâches demandées. Le seul

souci qui s’est présenté est la taille de la mémoire programme trop petite. Eneffet, l’implémentation de toutes les fonctions de déplacement a totalement rem-pli cette mémoire. Pour des développements futurs, une mémoire plus grandeest indispensable.

2.5.4 Programmation par bluetoothLa programmation par bluetooth n’a pas été testée. Pour pouvoir program-

mer le microcontrôleur par bluetooth, deux éléments sont nécessaires :

11

Page 13: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

– un bootloader à charger sur le microcontrôleur ;– la possibilité de faire un reset du microcontrôleur depuis le bluetooth.

Concernant le bootloader, celui de l’e-puck devrait fonctionner avec quelquespetites modifications.

Par contre, il serait judicieux de tester l’électronique permettant de faire lereset depuis le bluetooth, car son fonctionnement est incertain. Une alternativeserait de modifier le bootloader afin qu’il observe les entrées et puisse détecterle moment adéquat pour effectuer le reset. Ce serait donc un reset au niveausoftware, qui permettrait de s’affranchir de ce montage électronique.

2.5.5 Carte d’alimentationLa masse de l’alimentation de l’étage de puissance (12V) n’est pas reliée aux

masses du 5V et du 3.3V. Cela peut poser problème et il est conseillé de relierces deux références.

2.5.6 Boutons switchLes boutons switches sont plutôt difficile à actionner. Dans une future ver-

sion, il serait préférable de choisir un composant avec les boutons sur le côté.

12

Page 14: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Chapitre 3

Régulation

3.1 DémarcheLa régulation du robot est un point central de ce travail. La commande

du robot est continuellement ajustée en fonction d’un retour d’informationssur le comportement réel du robot. C’est le calcul de la vitesse instantanée dechaque roue du robot et l’estimation de la position du robot par odométrie quiconstitueront ces informations.

L’approche adoptée pour déterminer un régulateur a été de séparer le pluspossible ce problème en plusieurs blocs moins complexes. Ceci facilite l’implé-mentation et favorise la réutilisabilité du travail effectué. Les principaux étagessont le calcul des vitesses et de la position, la régulation en vitesse, la régulationsur le chemin et l’application d’un profil de vitesse.

Ce chapitre commence par décrire le système à commander et propose unemodélisation physique de ce dernier. C’est ensuite la régulation elle-même quiest traitée, les choix effectués et les résultats obtenus. Finalement, la sectionconsacrée à l’odométrie détaillera la méthode utilisée pour l’estimation de laposition.

3.2 Système à commander3.2.1 Approche multivariable

Le système à commander est un système MIMO à deux entrées et deuxsorties. Les entrées sont les tensions appliquées sur les moteurs, et les sortiessont les positions des roues :

u =(

u1

u2

)y =

(θ1

θ2

)(3.1)

Cependant, l’application d’une commande sur l’une des roues a très peud’influence sur la position de la deuxième roue, car les masses et les inerties

13

Page 15: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Robot!u !y

Fig. 3.1: Système MIMO

sont faibles. C’est la raison pour laquelle il est possible de considérer le systèmecomme deux systèmes SISO.

3.2.2 Modèle physiqueLe système à commander est un moteur à courant continu à aimants per-

manants. L’entrée est une tension et la sortie une vitesse.Hypothèses :– l’inductance du ciruit d’induit est nulle ;– le frottement de l’air est négligeable ;– le frottement de roulement est négligeable ;– le poids du robot est également réparti sur les deux roues.Equation du moteur à courant continu :

u(t) = Ri(t) + ui(t) (3.2)u(t) = Ri(t) + KΦω(t) (3.3)

avec R : résistance du circuit d’induiti(t) : courant d’induitK : constante du moteurΦ : flux constant généré par l’inducteurω(t) : vitesse angulaire

Le couple du moteur est donné par :

Mm(t) = KΦi(t) (3.4)

La loi de Newton conduit à l’équation suivante :

(κ2Jrotor + Jroue)ω(t) = κMm(t)−Mf (t)−Mr(t) (3.5)

avec Jrotor : inertie du rotorJroue : inertie de la roueκ : rapport de réduction Ωmoteur/Ωcharge

Mf (t) : couple résistant dû à la réaction du sol sur la roue lors des déplacementsMr(t) : couple résistant parasite

14

Page 16: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Mtot

2!g

(a) Vue de face

!a

!Ff

(b) Vue de profil

Fig. 3.2: On cherche à calculer la force Ff .

Le couple résistant Mf (t) est obtenu en considérant la moitié du robot,comme illustré sur la figure 3.2. La deuxième loi de Newton permet d’obtenir lanorme de la force Ff :

Ff =Mtot

2· a =

Mtot

2· ω(t) · r (3.6)

Le couple résistant Mf vaut donc :

Mf = Ff · r =Mtot

2· ω(t) · r2 (3.7)

Pour obtenir Mm, on isole i(t) dans l’équation (3.3) que l’on insère dans(3.4) :

Mm(t) = KΦu(t)−KΦω(t)

R(3.8)

Mr est un couple résistant parasite, il englobe par exemple le frottement deroulement, le frottement de l’air, les frottements dans la transmission, etc. Nousle considérons comme une perturbation que le régulateur devra rejeter. C’estpourquoi nous posons pour notre modélisation :

Mr = 0 (3.9)

On substitue les résulats (3.7), (3.8) et (3.9) dans l’équation (3.5) :

ω(t) +κ(KΦ)2(

κ2Jrotor + Jroue + Mtot

2 r2)R

ω(t) =

κKΦ(κ2Jrotor + Jroue + Mtot

2 r2)R

u(t) (3.10)

15

Page 17: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

La fonction de transfert G(s) du système s’obtient en effectuant la transfor-mée de Laplace de (3.10) :

G(s) =Ω(s)U(s)

=

κKΦ(κJrotor + Jroue + Mtot

2 r2)R

s +κ(KΦ)2(

κ2Jrotor + Jroue + Mtot

2 r2)R

=

1KΦ

R(κ2Jrotor + Jroue + Mtot

2 r2)

κ(KΦ)2s + 1

=b

τs + 1(3.11)

Les valeurs numériques sont les suivantes :

Jrotor = 3.8 · 10−7 [kg ·m2] (3.12)Jroue = 6.9 · 10−5 [kg ·m2] (3.13)

κ = 14 (3.14)KΦ = 16 · 10−3 (3.15)

Mtot = 1.2 [kg] (3.16)r = 36 [mm] (3.17)R = 4.09 [Ω] (3.18)

La fonction de transfert devient donc :

G(s) =62.5

1.05 s + 1(3.19)

3.3 Principe de la commandeL’objectif de la commande de la base robotique est d’imposer un déplacement

au robot aussi proche que possible de celui demandé par l’étage de planification(voir figure 3.4 page 18).

Il est intéressant de séparer la commande du robot en deux niveaux distincts :– régulation de la vitesse des roues ;– régulation du déplacement du robot.Les deux régulateurs sont placés en « cascade » comme illustré par la fi-

gure 3.3 page suivante.Cette séparation simplifie l’implémentation du régulateur haut niveau, car

on peut ainsi imposer au système bas niveau des consignes de la forme (v, ω),correspondant à la vitesse d’avance et la vitesse angulaire du robot.

Cette approche simplifie également les développements futurs. On peut eneffet changer de régulateur haut niveau, tout en réutlisant le travail fait auniveau de la régulation en vitesse.

De plus, lors du développement de la commande haut niveau, on pourradans une certaine mesure, faire l’hypothèse que les consignes en vitesses sontappliquées directement sur les roues.

16

Page 18: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

RobotRégulateur en vitesse

Régulateur sur le

chemin

ENCO

DEUR

S

PWMchemin (v,ω)

Fig. 3.3: Régulateurs haut et bas niveau en cascade

La figure 3.4 page suivante présente une vue d’ensemble de la commande,avec l’étage de planification qui donne les ordres haut niveau (déplacement)et l’étage assurant la trajectoire désirée par l’étage supérieur en envoyant desconsignes en vitesses à l’étage bas niveau qui est chargé d’appliquer les tensionssur les moteurs.

3.4 Choix de la période d’échantillonnageLe théorème de l’échantillonnage stipule que la pulsation d’échantillonnage

ωe doit valoir au moins le double de ω0, la pulsation la plus élevée du système.Dans la pratique, on choisit :

ωe = 10÷ 20 ω0 (3.20)

Le modèle physique calculé au point 3.2.2 page 14 a permis d’estimer que laconstante de temps du système à commander valait τ = 1.05 [s]. Ce qui conduità :

ω0 ' 1 Hz (3.21)Nous devrions dans l’idéal choisir une fréquence d’échantillonnage supérieure

à 20 Hz. Cependant, il faut considérer les limitations du microcontrôleur qui doitpouvoir effectuer tous les calculs nécessaires à chaque période d’échantillonnage.Nous avons pu déterminer que le temps nécessaire à ces calculs étaient inférieurà 20 ms. Cela correspond à une fréquence de 50 Hz, supérieure à la proposition(3.21). Cela n’est pas problématique et permet même d’augmenter la précisiondu calcul de la position par odométrie (cf. approximations au point 3.7 page 29).

3.5 Régulateur en vitesse3.5.1 Choix du type de régulation

Lors du choix du régulateur à utiliser pour la régulation de la vitesse desroues, deux possibilités ont été envisagées :

17

Page 19: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Etage planification

Régulation sur la trajectoire

Régulation sur lesvitesses des roues

but: (x, y,!)

tensions: (u1, u2)

vitesses: (v,!)

Moteurs

REG

ULAT

EUR

Fig. 3.4: Vue d’ensemble de l’organisation de la commande

18

Page 20: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

– une approche multivariable utilisant les outils de commande optimale pourun système MIMO ;

– une séparation du système en deux systèmes SISO, et l’utilisation d’unrégulateur PID classique.

Comme cela a déjà été dit au point 3.2.1 page 13, la commande d’une roueinfluence très peu l’autre roue. Cette interaction est négligeable. Nous choisissonsdonc d’utiliser deux régulateurs PID pour réguler les vitesses des roues.

3.5.2 Synthèse du régulateurLa lecture de la vitesse v(k) des roues se fait par l’intermédiaire des signaux

envoyés par les encodeurs des moteurs. On utilise la vitesse moyenne sur lapériode d’échantillonnage précédente1.

On peut donc considérer cette conversion signaux encodeurs → vitesse commeun convertisseur analogique digital suivi d’un retard pur d’une période d’échan-tillonnage. Le schéma fonctionnel du système est représenté sur la figure 3.5.

G(s)

A-D D-AK(z)+-

Yc

H(z)

z!1

Fig. 3.5: Schéma fonctionnel de la régulation sur une roue

On calcule la fonction de transfert échantillonnée du système à commander :

H(z) = (1− z−1)ZL−1

(G(s)

s

)z−1

= (1− z−1)ZL−1

(b

s(τs + 1)

)z−1

= (1− z−1)(

bz

z − 1− bz

z − e−1τ h

)z−1

=b(1− e−

1τ h)

z − e−1τ h

z−1 (3.22)

=2.9

z2 − 0.95z(3.23)

1Description plus précise au point 4.2.2 page 33.

19

Page 21: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

H(z) étant désormais connue, on procède à la synthèse du régulateur PIDavec la période d’échantillonnage de 20 ms choisie.

En observant le diagramme de Bode du système, on choisit les valeurs desparamètres visibles dans le tableau 3.5.2.

Kp 0.1Ti 0.95Td 0

Tab. 3.1: Paramètres P, I et D calculés

3.5.3 Pseudo-codeLe pseudo-code d’un régulateur PID est le suivant (tiré de [4]) :

e(kh) = yc(kh)− y(kh)ui(kh) = ui(kh− h) + h/T i ∗ e(kh)ud(kh) = Td/(Td + Nh) ∗ (ud(kh− h)) + N ∗ (e(kh)− e(kh− h))u(kh) = Kp ∗ (e(kh) + ui(kh) + ud(kh))

où y est la vitesse mesurée et u la tension à appliquer.

3.5.4 Ajustement expérimental des paramètres PIDLors de l’implémentation sur la base robotique, les paramètres du régulateur

ont été ajustés empiriquement. Un Kp plutôt faible a été choisi, afin que les rouesn’oscillent pas lorsque le robot n’est pas posé. En effet, lorsque les moteurs necommandent que les roues, le système est différent du cas où toute la masse durobot doit être déplacée. Ceci rendant la commande trop molle, la modification aété compensée par un terme intégrateur plus fort, qui réagit vivement lorsqu’uneerreur s’accumule. Un ARW plutôt bas évite que l’intégrateur se remplisse trop,si par exemple le robot se bloque sur un obstacle.

20

Page 22: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

10−2 10−1 100 101 1020

5

10

15

20

25

30

35

40

Mag

nitu

de (d

B)

Bode Diagram

Frequency (rad/sec)

(a) Diagramme de Bode en amplitude de H(ejω)

10−1 100 101 102−20

−10

0

10

20

30

40

Mag

nitu

de (d

B)

Bode Diagram

Frequency (rad/sec)

(b) Diagramme de Bode en amplitude de KH(ejω)

Fig. 3.6: Calibrage de la fonction de transfert harmonique en boucle ouverte

21

Page 23: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

3.6 Régulateur sur le déplacement du robot3.6.1 Séparation chemin-vitesse

L’imposition d’une trajectoire à un véhicule mobile est un problème habituel-lement traité en deux étapes. On essaie autant que possible de séparer cheminet profil de vitesse.

3.6.2 Régulateur sur le cheminLe chemin à suivre, dans le cas du déplacement rectiligne, est un segment

de droite. Dans le cas de la rotation pure, il n’y a pas à proprement parler dechemin à suivre, car le robot ne se déplace pas. On traitera par conséquentuniquement le cas particulier de la régulation sur un chemin rectiligne.

Utilité d’une régulation sur le chemin

Théoriquement, le fait d’appliquer deux vitesses identiques aux deux rouessuffirait à assurer un déplacement rectiligne. Cependant, une régulation sur lechemin devient très utile lorsque le robot évolue dans un environnement réel.En effet, de nombreux facteurs peuvent le détourner du chemin rectiligne qu’ildoit parcourir. Une petite différence de caractéristiques entre les deux moteurs,une interaction avec l’environnement ou encore des imperfections au niveaude l’alignement des roues sont des raisons qui pourraient conduire le robot às’éloigner de sont but.

Loi de commande de Samson

L’utilisation de la loi de Samson pour le suivi de segments de droite par unrobot mobile a été présentée dans un projet de semestre de D. Perritaz [6]. Lesconcepts de base utilisés pour cette application de la loi de Samson sont rappelésci-après.

L’avantage d’utiliser cette loi est qu’elle permet de réguler le robot sur le che-min sans imposer une vitesse de déplacement. En d’autres mots, la commandeagit sur la vitesse angulaire ω et laisse en paramètre libre la vitesse d’avance durobot v.

La vitesse angulaire fournie par la loi de Samson permet de réduire l’erreurde position du robot, c’est-à-dire :

– la distance d entre la position actuelle du robot et la position désirée ;– l’angle θe entre l’orientation actuelle et l’orientation désirée.La loi de commande propose d’utiliser la vitesse angulaire suivante :

ω = v · (ρ(sR′)− k1 · d− k2 · θe) (3.24)

où ρsR′ est la courbure au point d’abscisse curviligne R′, R′ étant le point duchemin le plus proche du robot (cf. figure 3.7 page suivante).

22

Page 24: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

k1 et k2 sont des constantes positives, qu’il faut déterminer. Dans la littéra-ture, on propose habituellement le choix suivant :

k1 = ξ2 (3.25)k2 = 2ζξ (3.26)

où ξ est la fréquence propre du système et ζ son amortissement.

!

!des

d

R!

!e = ! ! !des

Fig. 3.7: Loi de commande de Samson

Dans ce travail, nous déterminerons ces paramètres de manière expérimen-tale. Le choix de k1 et k2 permet de définir le comportement du robot lorsqu’ils’éloigne de son chemin. On pourra choisir les paramètres de telle sorte que lerobot diminue très rapidement la distance d qui le sépare du chemin. Dans cecas, il agira fortement sur l’angle, ce qui provoquera une oscillation autour duchemin. On peut au contraire éviter cette oscillation en accordant plus d’im-portance à l’angle absolu du robot. Dans ce cas, le robot mettra plus de tempspour diminuer les écarts.

Il ne sera pas nécessaire dans le cas qui nous occupe de regagner en undélai cours le chemin imposé. Les oscillations sont à éviter à tout prix, car ellesrisquent de provoquer des glissements des roues et de conduire à une pertede précision de l’odométrie. La pondération sera choisie en faveur de l’angle,d’autant plus que le maintien du bon cap assurera le déplacement rectilignevoulu.

3.6.3 Profil de vitesseLe choix du profil de vitesse est un problème similaire dans le cas du dépla-

cement rectiligne et de la rotation pure. Il s’agit, à partir d’une vitesse et d’uneaccélération nulles, d’atteindre une nouvelle position avec également une vitesseet accélération nulles à l’arrivée.

23

Page 25: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Il est important d’éviter au maximum le glissement des roues du robot audémarrage et à l’arrêt. Le glissement des roues est fortement lié au jerk2 quidevra être minimisé par un choix de profil de vitesse adéquat. Par ailleurs, lerobot doit atteindre sont but en un temps raisonnable. Finalement, le profil devitesse devra tenir compte de la vitesse maximale atteignable par le robot.

En résumé, les contraintes pour la détermination d’un profil de vitesse sontles suivantes :

– la vitesse maximale atteignable par le robot est vmax ;– le jerk devra être minimisé ;– le temps pour atteindre le but sera

te =Se

vmoy(3.27)

où vmoy est la vitesse moyenne de déplacement3 et Se la distance à par-courir ;

– le robot au temps t = 0 aura une vitesse et une accélération nulles ;– le robot au temps t = te aura une vitesse et une accélération nulles.Une solution à ce problème est proposée dans les publications [2] et [3]. Le

profil de vitesse v(t) est divisé en cinq sous-profils vi(t) i = 1, . . . , 5 tels quela dérivée première du profil de vitesse est continue. Ces sous-profils sont desparaboles, ils sont définis de la façon suivante pour i = 1, . . . , 5 :

vi(t) = a1i + 2a2it + 3a3it2, t ∈ [0, ti] (3.28)

Il y a donc 15 paramètres aij à choisir, i = 1, 2, 3 et j = 1, . . . , 5 en plusdes temps t1 à t5. Cependant, en imposant que les dérivées doivent former unfonction continue, et en tenant compte des conditions de départ et d’arrivée etdu temps de déplacement désiré, nous réduisons le nombre de paramètres à sept,réunis dans le vecteur h :

h = [h1 h2 h3 h4 h5 h6 h7]T = [t1 t2 t4 t5 v2 v3 a2]T (3.29)

où vi et ai sont la vitesse et l’accélération à la fin du i-ème intervalle.Dans le cas qui nous intéresse, les vitesses et les accélérations aux bornes sont

nulles. Dans cette situation, nous pouvons nous attendre à ce qu’un profil devitesse symétrique minimise au mieux le jerk. Nous ajoutons ainsi une conditionsupplémentaire, et diminuons le nombre de paramètres libres à six :

h = [h1 h2 h3 h4 h5 h6 h7]T = [t1 t2 t4 t5 v2 a2]T (3.30)

Cette condition supplémentaire permettra d’accélérer et de simplifier les calculsdu profil de vitesse.

Il est possible d’exprimer les coefficients aij uniquement avec les éléments deh et les conditions aux bornes v0, a0, v5 et a5. Avec ces conditions nulles, nousobtenons les coefficients reportés dans le tableau 3.2 page suivante. De plus, il

24

Page 26: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Tab. 3.2: Coefficients des paraboles 1 à 5

aij i = 1 i = 2 i = 3j = 1 0 0 −a2t2+2v2

6t1(t1+t2)

j = 2 2v2t1−a2t1t22(t1+t2)

−a2t2+2v22(t1+t2)

a2t1+2a2t2−2v26t2(t1+t2)

j = 3 v2 a2/2 −2a2t36t23

j = 4 v2−a2t32t3

2(t5+2t4)+[2(a2t4−v2)+a2t5]t36t3t4(t4+t5)

j = 5 2v2t5t3−a2t3t4t52t3(t4+t5)

−(2v2−a2t4)t32t3(t4+t5)

(2v2−a2t4)t36t3t5(t4+t5)

est prouvé dans [3] que l’utilisation de ces coefficients ne conduit jamais à desvitesses supérieures à vmax, si v2 appartient à [0; vmax].

L’algorithme proposé dans [3] nécessite une solution initiale qu’il faudraoptimiser. Nous prenons comme solution initiale :

h = [tγ tγ tγ tγ v∗2 v∗2 0]T (3.31)

Avec des conditions nulles aux bornes, comme c’est le cas ici, tγ vaut :

tγ = min

te/5,vmaxte − Se

4vmax

(3.32)

Il est démontré dans [3] qu’une solution pour v∗2 telle que tout le chemin soitcouvert existe dans [0; vmax]. Pour trouver cette solution, nous isolons v∗2 dansl’équation

Se =5∑

i=1

∫ ti

0

vi(t; h) dt =5∑

i=1

a1iti + a2it2i + a3it

3i (3.33)

où les coefficients a1i, a2i, a3i sont calculés en fonction de h.Nous trouvons

v∗2 =Se

2tγ + t3=

Se

2tγ + te − 4tγ=

Se

te − 2tγ(3.34)

Une fois la solution initiale calculée, elle est améliorée au moyen de l’algo-rithme d’optimisation proposé dans [3]. Cet algorithme repère l’intervalle danslequel le jerk est le plus élevé. La longueur de cet intervalle est alors augmentée.Le processus d’optimisation est donné dans la figure 3.8 page suivante

Les figures 3.9 page 27 présentent les résultats obtenus par l’algorithme d’op-timisation du jerk. Pour trois distances différentes, la solution initiale utiliséepar l’algorithme est d’abord représentée, puis la solution optimisée. Pour la so-lution optimisée, le profil est lissé et présente une courbure plus uniforme sur

2dérivée de l’accélération3vmoy devra être adaptée en fonction de la longueur du chemin à parcourir

25

Page 27: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

t! =

!""#

""$

min%

te5 , 2ve

ae

&if a5 > 0

min%

te5 , 2(ve!vmax)

ae

&if a5 < 0

te5 otherwise

.

Part 2 - Let us indicate the actual trajectory length, corre-sponding to the proposed parametrization, by Sp. It is neces-sary to demonstrate that proper conditions always exist suchthat Sp = se. From (8) it follows that

Sp(h) =5

"i=1

ti

0vi (t;h)dt =

5

"i=1

si (ti;h) .

Curve length Sp is a continuous function of h, thus iftwo values h" and h"" can be found such that Sp(h") > seand Sp(h"") < se, then there exists with certainty h such thatSp(h) = se. Obviously, the solution is feasible if positivenessand boundedness of the velocity profile are guaranteed for h.

To this aim, let us select 'h := [t#1 t#1 t#1 t#1 vmax vmax 0]T , with

t#1 := min(

t#,vmaxte! se

4vmax

).

Time interval t#1 is positive with certainty because Property 1imposes vmax > se/te. Owing to definition of t#1 it possible toassert that vi(t;'h)# 0, t $ [0, ti], i = 1, . . . ,5 and, consequently,si(t#1 ;'h)# 0, i = 1, . . . ,5. Thus, the following inequality holdsfor the total curve length

Sp('h) = s1(t#1 ;'h)+ s2(t#1 ;'h)+(te!4 t#1)vmax

+s4(t#1 ;'h)+ s5(t#1 ;'h)

#*

te!4vmaxte! se

4vmax

+vmax + "

i=1,2,4,5si(t#1 ;'h)

= se + "i=1,2,4,5

si(t#1 ;'h)

> se .

Now define h"" := [t#2 t#2 t#2 t#2 0 0 0]T with t#2 $ (0, t#1 ]:owing to this choice, the trajectory length of the third intervalis s3 (t3;h"") = 0. A few algebraic manipulations lead to

Sp(h"") = "i=1,2,4,5

si(t#2 ;h"") = v0 t#2 + v5 t#2 +13

a0 t2#2! 1

3a5 t2

#2.

Evidently, by selecting a sufficiently small value for t#2 ,inequality Sp(h"") < se is satisfied with certainty. Moreover, itis worth noting that by defining h" := [t#2 t#2 t#2 t#2 vmax vmax 0]T

we get immediately Sp(h")# Sp('h) > se.Curve length Sp(h) depends continuously on v2, therefore

there exists with certainty v%2 $ (0,vmax) such that Sp(h) = sefor h := [t#2 t#2 t#2 t#2 v%2 v%2 0]T .

In conclusion, vector h guarantees that conditions (1)–(4)and, equivalently, (10)–(15) are simultaneously satisfied, i.e.,h is feasible.

III. THE OPTIMIZATION ALGORITHM

The optimization strategy closely descends from the oneproposed in [10], but some details have been modified toachieve better results. Its schematic flowchart is shown in

1: BestJ, Besth& f irst solution2: repeat3: OldJ, Oldh& BestJ, Besth4: CurrJ, Currh& BestJ, Besth5: i&WorstInterval6: for j = 1 to 5, j '= i do7: repeat8: JerkImprove& 09: Newh&Changeha(i, j,Currh)

10: NewJ, Newh&Changehb(Newh)11: if (Newh ==" f easible") & (NewJ < CurrJ) then12: CurrJ, Currh& NewJ, Newh13: JerkImprove& 114: end if15: until JerkImprove == 016: if BestJ > CurrJ then17: BestJ, Besth&CurrJ, Currh18: end if19: CurrJ, Currh& OldJ, Oldh20: end for21: until BestJ # OldJ

Fig. 3. Schematic flowchart of the optimization algorithm.

Fig. 3. The search space is divided in two parts and, con-sequently, vector h is partitioned as ha = [h1,h2,h3,h4] andhb = [h5,h6,h7]. At Step 1, the algorithm finds a first feasiblesolution according to the method proposed in §II. Such solutionis stored in Besth together with its corresponding maximumjerk, BestJ. Then, h is modified in order to reduce the maxi-mum jerk. At the beginning of each main iteration (Steps 2–21)time interval ti, where the maximum jerk occurs, is found: atStep 9 such interval is recursively enlarged, while one of theother four is shortened. Owing to this change in ha, maximumjerk normally decreases, but the new solution does no moresatisfy constraint (11). To attempt restoring feasibility, hb ismodified at Step 10. If the resulting Newh is feasible and betterthan Currh, it becomes, at the next iteration of Loop 7–15, thenew starting point for a further enlargement of ti. Loop 7–15stops when no more improvements are achieved. Differentlyfrom [10], the main iteration does not end at this stage. Onthe contrary, the original solution is restored and the same tiis enlarged against one of the remaining three time intervals:at the end of the four inner iterations, the best solution is usedto restart the main loop 2–21, attempting to further improvethe result. The algorithm ends if no more improvements areachieved by the main loop.

At any stage of the process a suboptimal, but feasible,solution Besth is available. This is an important feature foran algorithm thought for real time applications: if the velocityprofile updating time is reached before the algorithm conver-gence, Besth can be used in place of the optimal minimizer.This eventuality should never occur since several tests haveshown that, on a standard PC board equipped with a PentiumCentrino, 1.4 GHz, the computational time is on average 0.02 s,

Fig. 3.8: Schématisation du flowchart de l’algorithme

toute la distance de déplacement. De plus, les capacités du robot sont mieuxutilisées. En effet, lorsque la distance est suffisemment grande, le robot atteintsa vitesse maximale au milieu du déplacement.

26

Page 28: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

0 0.5 1 1.5 2 2.50

0.02

0.04

0.06

0.08

0.1

0.12

0.14

Time in seconds

Velo

city

in m

/s

(a) Distance de 20 cm, solution initiale

0 0.5 1 1.5 2 2.5 3 3.50

0.05

0.1

0.15

0.2

0.25

Time in seconds

Velo

city

in m

/s(b) Distance de 20 cm, solution optimisée

0 0.5 1 1.5 2 2.50

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Time in seconds

Velo

city

in m

/s

(c) Distance de 100 cm, solution initiale

0 0.5 1 1.5 2 2.5 3 3.50

0.2

0.4

0.6

0.8

1

1.2

1.4

Time in seconds

Velo

city

in m

/s

(d) Distance de 100 cm, solution optimisée

0 0.5 1 1.5 2 2.5 3 3.5 40

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Time in seconds

Velo

city

in m

/s

(e) Distance de 300 cm, solution initiale

0 0.5 1 1.5 2 2.5 3 3.5 40

0.2

0.4

0.6

0.8

1

1.2

1.4

Time in seconds

velo

city

in m

/s

(f) Distance de 300 cm, solution optimisée

Fig. 3.9: Les profils de vitesses pour trois distances à parcourir

27

Page 29: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

3.6.4 Régulation en positionLe profil de vitesses obtenu par l’algorithme de minimisation du jerk du

point précédent ne permettra que d’atteindre approximativement le but fixé aurobot. L’erreur est due à différents facteurs :

– les coefficients calculés par l’algorithme sont ceux d’un profil de vitessecontinu. Le fait que les vitesses soit mises à jour uniquement à chaqueinstant d’échantillonnage conduit à une erreur sur la distance parcourure ;

– la période d’échantillonnage du régulateur haut niveau étant la même quecelle du régulateur bas niveau, on ne peut plus faire l’hypothèse que lesvitesses sont appliquées instantanément ;

– une interaction avec l’environnement peut conduire à une erreur.C’est pourquoi un régulateur en position sera superposé au profil des vitesses.La vitesse obtenue par l’algorithme du point précédent sera ajustée à chaque

période d’échantillonnage par un régulateur PI. On comparera la position mesu-rée du robot avec la position théorique du robot, c’est-à-dire la position qu’auraitcelui-ci si le profil de vitesse avait été parfaitement appliqué jusqu’à cet instant.La position théorique est obtenue en intégrant le profil de vitesse et la positionréelle est donnée par l’odométrie.

En quelque sorte, on s’arrange pour que le profil de vitesses effectivementréalisé soit le plus proche possible du profil de vitesse théorique. Ainsi, dansle cas où les vitesses n’auraient pas été parfaitement appliquées, le régulateurfera la trajectoire, et assurera que le robot arrive au but avec une précision trèsélevée.

algorithmeprofil vitesse

régulateurPI

ROBOT

+ ++

consigne(distance) vitesse théorique

positionthéorique

positionmesurée

vitesseappliquée

ajustementen vitesse

Fig. 3.10: Ajustement du profil de vitesse par un régulateur

Des tests réels ont démontré l’efficacité de cette approche. En appliquantles vitesses selon le profil, mais sans feedback sur la position réelle du robot,nous atteignons le but avec une précision de 10% environ, ce qui est insuffisant.

28

Page 30: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

En ajustant les vitesses à chaque instant d’échantillonnage en fonction de laposition réelle du robot, la précision est d’un tout autre ordre. En effet, avecl’implémenation réalisée, la distance parcourue est précise à 1 mm.

3.6.5 Arrêt imprévuLe robot doit être capable de s’arrêter en urgence, afin d’éviter une collision

par exemple. Il faut donc prévoir un moyen d’interrompre la trajectoire initia-lement prévue afin d’atteindre le plus vite possible une vitesse nulle, sans pourautant que les roues glissent excessivement. Un profil de vitesses, fonction de lavitesse actuelle, est alors appliqué aux roues.

Pour ce faire, une consigne d’arrêt doit être prioritaire par rapport au dé-roulement normal de la mission du robot. La solution proposée est visible surla figure 3.11.

algorithmeprofil vitesse

régulateur

ROBOT

+ ++

consigne vitesse théorique

positionthéorique

positionmesurée vitesse

appliquée

profil vitessepour arrêtvitesse

mesurée

ARRET

Fig. 3.11: Arrêt d’urgence du robot

3.7 OdométrieLa position du robot est calculée au moyen d’une formule basée sur la vitesse

angulaire et la vitesse d’avance du robot (approche utilisée par exemple dans[1]). Cette méthode a été choisie pour les raisons suivantes :

– vitesses de rotation des roues mesurables, et par conséquent vitesses an-gulaire et d’avance faciles à calculer ;

– bonne précision, si la position est mise à jour à une fréquence élevée ;

29

Page 31: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

– calculs réalisables dans le temps à disposition ;– facile à implémenter.Les vitesses angulaire et d’avance ne sont pas directement mesurables. C’est

la vitesse de chaque roue qui est mesurée à chaque instant d’échantillonnage.On en déduit facilement les vitesses angulaire et d’avance.

La formule suivante permet d’obtenir la vitesse de rotation du robot :

ω =vdroite − vgauche

D(3.35)

où D est la distance entre les deux roues du robot. Une vitesse positive corres-pond à une rotation dans le sens trigonométrique positif.

Nous estimons ensuite la vitesse d’avance du robot en faisant la moyenneentre les deux vitesses des roues :

v =vdroite + vgauche

2(3.36)

La position absolue du robot sera mise à jour à chaque instant d’échantillon-nage. Premièrement, l’incrément angulaire sera calculé sous l’hypothèse que lavitesse angulaire était constante durant le dernier cycle. Pour la valeur de cettevitesse, on prendra la moyenne entre la vitesse angulaire actuelle et celle del’instant d’échantillonnage précédent. Connaissant le temps de cycle et une esti-mation de la vitesse angulaire, on trouve facilement l’angle effectué, qu’il suffitd’ajouter à l’ancien angle αold pour connaître la nouvelle orientation αnew durobot.

Concernant le changement de position, le principe est similaire. On déter-mine une vitesse d’avance du robot, qu’on considère comme constante durantle cycle précédent. Là aussi on prend la moyenne entre la vitesse actuelle et lavitesse précédente. Une fois la distance parcourue calculée, il est nécessaire deconnaître la direction du déplacement. On prend pour cela la moyenne entrel’angle actuel et l’angle précédent.

Les calculs permettant de mettre à jour la position sont présentés ci-après.La figure 3.12 page suivante permet de comprendre intuitivement la méthodeutilisée. xnew

ynew

αnew

=

xold

yold

αold

+

cos(θ) · lsin(θ) · lω · Tcycle

(3.37)

Avec l et θ estimés par :

l = v · Tcycle (3.38)

θ =αold + αnew

2(3.39)

Nous obtenons finalement pour l’estimation de la nouvelle position absolue : xnew

ynew

αnew

=

xold

yold

αold

+

v · Tcycle · cos

(αold+ω·Tcycle

2

)v · Tcycle · sin

(αold+ω·Tcycle

2

)ω · Tcycle

(3.40)

30

Page 32: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

(xold,yold)

!old

!new

(xnew,ynew)!

l

Fig. 3.12: Estimation de la position absolue du robot

31

Page 33: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Chapitre 4

Implémentation sur le robot

4.1 Stucture générale du programmeLe microcontrôleur effectuera en continu un cycle de 20 ms durant lequel les

opérations suivantes seront effectuées :– les vitesses des roues gauches et droites seront calculées à partir des enco-

deurs ;– la position absolue du robot sera mise-à-jour ;– la vitesse angulaire et la vitesse d’avance du robot seront calculées ;– en fonction de la dernière consigne donnée et des vitesses obtenues aux

points précédents, la nouvelle vitesse angulaire et la nouvelle vitesse d’avanceseront calculées ;

– les nouvelles vitesses pour chaque roue seront calculées ;– les nouvelles vitesses pour chaque roue seront fournies comme consigne à

deux régulateurs PID assurant la commande des moteurs.Le reste du temps sera réservé à la communication par l’UART (nouvelles

consignes, transmission de la position actuelle, reset de la position), etc.Le timer 4 du microcontrôleur permettra de contrôler la durée du cycle.

4.2 Calcul de la vitesse et de la position4.2.1 Lecture des encodeurs

Une puce électronique LS7184 transforme le signal délivré par un encodeuren un signal d’horloge de 512 impulsions par tour de moteur. De plus, le LS7184comporte une sortie qui indique le sens de rotation du moteur.

Le microcontrôleur dsPIC30F3011 dispose de deux timers 16 bits qu’il estpossible d’incrémenter par un signal d’horloge extérieur, s’il est appliqué sur lesbons pins du microcontrôleur.

Ces deux timers sont incrémentés lors des rotations des moteurs en connec-tant leur référence externe à l’horloge des LS7184. De plus, le bit de sens des

32

Page 34: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

LS7184 sera connecté à des entrées du microcontrôleur. Chaque changementd’état de ce bit déclenchera une interruption externe, qui permettra de déter-miner si les timers doivent être incrémentés ou décrémentés.

Ce dernier point mérite d’ailleurs une explication, car Microchip ne four-nit pas pour ce microcontrôleur la possibilité de choisir si un timer doit êtreincrémenté ou décrémenté. Pour contourner ce problème, une variable globaleglb_timer_dir sera mise à 1 lorsque le compteur doit être incrémenté, et à -1dans le cas contraire. De plus, lors du changement de direction de la roue, la va-leur du timer correspondant sera remplacée par la même valeur, mais négative.Finalement, il suffira de renvoyer glb_timer_dir × TMR1 pour avoir le résultatvoulu.

4.2.2 Calcul de la vitesseA chaque cycle, une nouvelle estimation de la vitesse de chaque roue sera

effectuée en comparant les valeurs des timers avec leurs valeurs au cycle pré-cédent. La différence entre ces timers divisée par le temps de cycle donne lavitesse moyenne sur le cycle précédent. Si le temps de cycle est suffisemmentcours, on peut considérer le résultat comme la vitesse instantanée de la roue.Pour le contrôle du temps entre deux lecture des timers liés aux encodeurs, unautre timer est remis à zéro à chaque passage dans cette fonction. Ceci permetd’éviter d’obtenir des vitesses aberrantes si le cycle a duré plus longtemps queprévu, en raison par exemple d’une communication UART.

Le choix de travailler avec des vitesses, et non des positions, a été motivépar la taille limitée des timers. Avec notre approche, la gestion des overflows estplus aisée.

4.2.3 Calcul de la position absolue du robotLa position absolue du robot sera mise à jour à chaque cycle. Nous avons im-

plémenté le modèle odométrique présenté au point 3.7 page 29. Les calculs sontsimples et peu nombreux. Le seul point critique est l’utilisation des fonctionssinus et cosinus et leur temps de calcul. Des tests ont cependant montré quece temps était acceptable et qu’il n’était pas nécessaire de tabelliser les valeursde ces fonctions, d’autant plus que la mémoire du microcontôleur est utilisé aumaximum.

4.3 Réglage des PWMLe microcontrôleur contient un module destiné à générer des PWM. Pour

que le moteur filtre correctement un signal PWM, ce dernier doit avoir unefréquence d’au moins 20 kHz. Cependant, les ponts-H ne fonctionnent plus au-delà d’une fréquence de 100 kHz. La fréquence du PWM se règle au moyen duregistre PTPER et de la valeur du prescaler PTMR. Le clock du microcontrôleur

1valeur du timer

33

Page 35: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

est donné par l’oscillateur interne qui a une fréquence de 7.37 Mhz, multipliéepar 8 avec le chip PLL. Le microcontrôleur effectue donc 14.7 MIPS (millionsd’instructions par seconde) :

FCY =7.37 · 8

4= 14.7 Mhz (4.1)

On choisit un presacler de 1. La valeur du registre PTPER, donc la fréquence, estdonnée par la formule suivante :

PTPER =FCY

FPWM · PTMR− 1 (4.2)

Il paraît judicieux d’avoir un résolution de 8 bits pour le réglage des PWM. Enfixant le registre PTPER à 256, on obtient une fréquence de :

14′700′000256 + 1

' 57′198 [Hz] (4.3)

ce qui est tout à fait acceptable pour le moteur et les ponts-H.Pour régler le rapport de fréquence, on entre dans les registres PDC1 et PDC2

une valeur entre 0 et 255. Le principe est illustré sur la figure 4.1 issue du manuelde référence de la famille de ce microcontrôleur [5].

dsPIC30F Family Reference Manual

DS70062D-page 15-22 © 2005 Microchip Technology Inc.

Figure 15-6: Duty Cycle Comparison Logic

15.4.2 Edge Aligned PWM

Edge aligned PWM signals are produced by the module when the PWM time base is operatingin the Free Running mode. The output signal for a given PWM channel has a period specifiedby the value loaded in PTPER and a duty cycle specified by the appropriate PDCx register (seeFigure 15-7). Assuming a non-zero duty cycle and no immediate updates are enabled (IUE = 0),the outputs of all enabled PWM generators will be driven active at the beginning of the PWMperiod (PTMR = 0). Each PWM output will be driven inactive when the value of PTMR matchesthe duty cycle value of the PWM generator.If the value in the PDCx register is zero, then the output on the corresponding PWM pin will beinactive for the entire PWM period. In addition, the output on the PWM pin will be active for theentire PWM period if the value in the PDCx register is greater than the value held in the PTPERregister.If immediate updates are enabled (IUE = 1), the new duty cycle value will be loaded at the timethe new value is written to any active PDC register.

Figure 15-7: Edge-Aligned PWM

PTMR N 2 1 TCY

15-bit comparison

PDCx

EdgeLogic PWM Edge Event

14 0 N-bit Prescaler

15 15 1 0

15

1-Bit Comparison

Note: PDCx<0> is compared to the FOSC/2 signal when the prescaler is 1:1.

Period

Duty Cycle

0

PTPER

New duty cycle loaded from PDCx

PWM1H

PWM2H

PDC1

PDC2

PTMR value

Fig. 4.1: Choix du rapport fréquentiel des PWM

4.4 CommunicationIl a été décidé d’utiliser le protocole de communication RS232 (communica-

tion série) à l’entrée du module. Ce choix a été motivé par les raisons suivantes :– protocole très répandu ;

34

Page 36: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

– possibilité de connecter le module bluetooth sur cette entrée pour la basede développement ;

– protocole habituellement utilisé sur le robot du concours Eurobot ;– débugage possible avec un oscilloscope.

Le module UART est un périphérique qui permet de gérer cette communicationsérie. A chaque cycle, le buffer de l’UART est contrôlé. S’il contient une infor-mation, celle-ci est traitée et les actions appropriées sont effectuées. Dans le cascontraire, le programme continue et refait un cycle.

4.5 RégulationL’implémentation des régulateurs a simplement consisté à écrire en C le code

correspondant aux régulateurs choisis. Certains ont été testés préalablementsous Matlab. Le code est fourni en annexe.

Il a cependant fallu rester attentif aux temps d’exécution des différentesopérations, afin que l’on ne dépasse pas les 20 ms de la période d’échantillonnage.

35

Page 37: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Chapitre 5

Conclusion

Ce projet présentait deux aspects très distincts. Premièrement, il s’agissaitde développer une base robotique destinée à concevoir et tester des algorithmesde commande. Il était donc principalement question d’électronique et de méca-nique. Il a fallu faire les choix les plus judicieux concernant les composants àutiliser, au risque de ne jamais pouvoir traiter la deuxième partie du projet.

Le second aspect du projet était plus tourné vers la théorie. Des algorithmesont dus être choisis, compris et adaptés :

– loi de commande de Samson ;– algorithme d’optimisation du jerk ;– synthèse de régulateurs PID.Finalement, l’implémentation a permis de lier théorie et pratique, pour at-

teindre un résultat tout à fait concluant. En effet, les objectifs ont été atteintset le travail effectué sera utilisé pour le concours Eurobot de cette année.

Les problèmes rencontrés ont cependant été nombreux. Les plus importantsse sont manifestés au niveau de l’électronique, à tel point que c’est cet aspectdu projet qui a demandé le plus d’investissement. L’implémentation sur le mi-crocontrôleur a posé quelques problèmes au niveau de la taille de la mémoireprogramme à disposition. Ces quelques soucis ont pu être résolus ou contournés,mais le redesign de l’électronique en tenant compte des améliorations proposéesau point 2.5 page 11 ne serait pas superflu.

En résumé, le projet a permis un contact avec beaucoup de domaines diffé-rents, tels que l’électronique, la mécanique, l’automatique et la programmation.La confrontation entre la théorie et la pratique était un point intéressant et ladiversité des tâches à accomplir a permis l’acquisition de beaucoup de connais-sances.

36

Page 38: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Chapitre 6

Remerciements

Je tiens à remercier toutes les personnes qui ont contribué à la réussite dece projet de semestre :

– MER D. Gillet qui a accepté de suivre ce projet ;– D. Perritaz, qui a suivi de près mon projet et qui m’a aidé et orienté aussi

bien pour l’électronique que pour les parties théoriques ;– le club de robotique Robopoly, ainsi que les membres de son comité, qui

m’ont mis à disposition du matériel et une place de travail pour le déve-loppement de l’électronique ;

– P. Cuanillon, pour la réalisation des pièces mécaniques ;– le laboratoire d’initiation à la fabrication des PCB ;– l’équipe avec laquelle je participe au concours Eurobot ;– A. Decurnex pour les réponses et conseils concernant l’électronique ;– C. Guarino Lo Bianco pour les explications supplémentaires au sujet de

l’algorithme de minimisation du jerk.

37

Page 39: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Bibliographie

[1] F. Chenavier and J. L. Crowley. Position estimation for a mobile robot usingvision and odometry. In IEEE Robotics and Automation, volume 3, pages2588–2593, Grenoble, France, May 1992.

[2] C. Guarino Lo Bianco, A. Piazzi, and M. Romano. Velocity planning forautonomous vehicles. In IEEE Intelligent Vehicles Symposium, pages 413–418, Parma, Italy, June 2004.

[3] C. Guarino Lo Bianco and M. Romano. Bounded velocity planning forautonomous vehicles. In IEEE Intelligent Robots and Systems, pages 685–690, Parma, Italy, August 2005.

[4] R. Longchamp. Commande numérique de systèmes dynamiques. Pressespolytechniques et universitaires romande, 2006.

[5] Microchip. dsPIC30f Reference Manual.[6] D. Perritaz. Suivi de chemin par un robot. Projet de semestre, 2005.

38

Page 40: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Annexe A

Schémas électroniques

A.1 Module bluetooth

39

Page 41: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Part Value Device Package Library Sheet

Q1 IRLML2402 IRLML2402 SOT23 base_dev 1R1 10k R-EU_0207/12 0207/12 rcl 1R2 10k R-EU_0207/12 0207/12 rcl 1R3 10k R-EU_0207/12 0207/12 rcl 1R4 10k R-EU_0207/12 0207/12 rcl 1R5 1k R-EU_0207/12 0207/12 rcl 1R6 1M R-EU_0207/12 0207/12 rcl 1R7 10k R-EU_0207/12 0207/12 rcl 1R8 10k R-EU_0207/12 0207/12 rcl 1U1 BLUENICECOM3 BLUENICECOM3 BLUENICECOM base_dev 1X1 MICROMATCH-4 MICROMATCH-4 MICROMATCH-4 con-amp-micromatch 1X2 MKDS02 MKDS02 MKDS02 base_dev 1

40

Page 42: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

A.2 Logique

41

Page 43: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Part Value Device Package Library Sheet

C1 100nF C-EU050-025X075 C050-025X075 rcl 1C2 100nF C-EU050-025X075 C050-025X075 rcl 1C3 100nF C-EU050-025X075 C050-025X075 rcl 1C4 100nF C-EU050-025X075 C050-025X075 rcl 1C5 22pF C-EU050-025X075 C050-025X075 rcl 1C6 22pF C-EU050-025X075 C050-025X075 rcl 1IC1 DSPIC30F3011/P DSPIC30F3011/P DIL40 microchip-dspic 1LED1 LED3MM LED3MM led 1LED2 LED3MM LED3MM led 1LED3 LED3MM LED3MM led 1LED4 LED3MM LED3MM led 1Q1 CRYSTALHC18U-V HC18U-V crystal 1R1 R-EU_0204/5 0204/5 rcl 1R2 R-EU_0204/5 0204/5 rcl 1R3 150 R-EU_0204/5 0204/5 rcl 1R4 150 R-EU_0204/5 0204/5 rcl 1R5 150 R-EU_0204/5 0204/5 rcl 1R6 150 R-EU_0204/5 0204/5 rcl 1R7 15k R-EU_0204/5 0204/5 rcl 1R8 10k R-EU_0204/5 0204/5 rcl 1R9 10k R-EU_0204/5 0204/5 rcl 1R10 10k R-EU_0204/5 0204/5 rcl 1R11 10k R-EU_0204/5 0204/5 rcl 1R12 10k R-EU_0204/5 0204/5 rcl 1R13 20k R-EU_0204/5 0204/5 rcl 1U1 7906H-1 7906H-1 7906H-1 base_dev 1U2 8B04S 8B04S DIL08 base_dev 1U3 LS7184 LS7184 DIL08 base_dev 1U4 LS7184 LS7184 DIL08 base_dev 1U5 TCM811 TCM811 SOT-143 base_dev 1U6 SN74LVC1T45DBVR SN74LVC1T45DBVR SOT23-6 base_dev 1U7 SN74LVC1T45DBVR SN74LVC1T45DBVR SOT23-6 base_dev 1X1 MICROMATCH-12 MICROMATCH-12 MICROMATCH-12 con-amp-micromatch 1X2 MICROMATCH-6 MICROMATCH-6 MICROMATCH-6 con-amp-micromatch 1X4 MKDS02 MKDS02 MKDS02 base_dev 1X5 MICROMATCH-4 MICROMATCH-4 MICROMATCH-4 con-amp-micromatch 1

42

Page 44: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

A.3 Etage puissance

43

Page 45: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Part Value Device Package Library Sheet

C1 10nF C-EU050-025X075 C050-025X075 rcl 1C2 10nF C-EU050-025X075 C050-025X075 rcl 1C3 0.22uF C-EU050-025X075 C050-025X075 rcl 1C4 0.22uF C-EU050-025X075 C050-025X075 rcl 1C5 100nF C-EU050-025X075 C050-025X075 rcl 1C6 100nF C-EU050-025X075 C050-025X075 rcl 1C7 10nF C-EU050-025X075 C050-025X075 rcl 1C8 10nF C-EU050-025X075 C050-025X075 rcl 1IC1 L6203 L6203 MULTIWATT-11 st-microelectronics 1IC2 L6203 L6203 MULTIWATT-11 st-microelectronics 1JP2 PINHD-2X3 2X03 base_dev 1JP3 PINHD-2X3 2X03 base_dev 1X1 MICROMATCH-12 MICROMATCH-12 MICROMATCH-12 con-amp-micromatch 1X2 MKDS02 MKDS02 MKDS02 base_dev 1

44

Page 46: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

A.4 Alimentation

45

Page 47: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Part Value Device Package Library Sheet

C1 C-EU050-025X075 C050-025X075 rcl 1C3 0.1u C-EU050-025X075 C050-025X075 rcl 1C4 2.2u C-EU050-025X075 C050-025X075 rcl 1IC1 MAX882CPA MAX882CPA DIL08 base_dev 1S1 DS01 DS-01 switch-dil 1S2 DS01 DS-01 switch-dil 1S3 DS01 DS-01 switch-dil 1U$1 TEL5-1211 TEL5-1211 DIL24-6 base_dev 1U$2 TEN40 TEN40 TEN40 base_dev 1X1 MKDS06 MKDS06 MKDS06 base_dev 1X2 MKDS02 MKDS02 MKDS02 base_dev 1X3 MKDS02 MKDS02 MKDS02 base_dev 1

46

Page 48: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Annexe B

Mises en plan des piècesmécaniques

47

Page 49: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

48

Page 50: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

49

Page 51: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

50

Page 52: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

51

Page 53: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

Annexe C

Contenu du CD

C.1 ÉlectroniqueLe dossier Electronique contient les fichiers Eagle des schémas électroniques

et des layouts pour les PCB. Une librairie Eagle, contenant les composantsmodélisés spécialement pour ce projet, est également disponible à cet endroit.

C.2 MécaniqueLe dossier Mécanique contient les fichiers ProE des pièces, de leur mise-en-

plan et de l’assemblage.

C.3 MatlabLe dossier Matlab contient l’implémentation de l’algorithme de minimisation

du jerk. Pour le tester, procéder comme ceci :– se placer dans le répertoire de travail contenant Matlab du CD ;– lancer la commande move() qui prend comme seul argument la distance

en mètre pour laquelle le profil de vitesse doit être calculé.

C.4 CodeLe dossier Code contient tous les fichiers .c, .h et .s du code écrit pour la

commande du robot. Le fichier du projet MPLab est également présent.

C.5 DocumentationC.5.1 Datasheets

Ce dossier contient tous les datasheets des composants utilisés.

52

Page 54: Projet de Semestre - la.epfl.ch · communication est faite au travers d’un protocole de communication standard. Les commandes envoyées sont de haut niveau : – point à atteindre;

C.5.2 PublicationsCe dossier contient les quelques publications qui ont été utiles à ce projet.

53