Localisation Et Navigation D'un Robot Mobile Par Webcam: Mémoire de Projet de Fin D'études
Localisation Et Navigation D'un Robot Mobile Par Webcam: Mémoire de Projet de Fin D'études
Localisation Et Navigation D'un Robot Mobile Par Webcam: Mémoire de Projet de Fin D'études
د د ب ا دة ــ
Université SAAD DAHLAB de BLIDA
ا وو
Faculté de Technologie
م ا! رو ـك
Département d’Électronique
ZEKHREF Oussama
&
Thème
A nos familles
ور ا دام اوت ا ل م رو وت و ددو و را وم و رو
# ر$ % ر و ا% وان ا%دام ا ا رو وت ف ن و را و ب ل أو، م طب و
راج ل وم ط ب، ت. دا/ ن ن ا. ا0 ل ون،0 زرق ا *دف ا راد ا و ول إ%رأس ا رو وت وا
ا و ود رو/م ا ا#ت إ ظ ا ل و م ر ل. , ز3 ت ا ت و وم ل ا. دا/ا
دم ا رو وت أ *زة ،0 ء.ل أ ل 0 ا *دف و ر# د ا رو وت و ول إ ت ھذه ا, ا رو وت
.طر ق 0د تا با لا ر را ا
را و ب , م ,ور ا , ا رؤ, 3 ا، ا و,م ا ذا,ول ا رو وت ا: تا
.ت ا,
Résumé :
Notre projet a pour objet de réaliser un système complet de localisation et navigation pour
un robot mobile. L’approche adoptée consiste à utiliser une webcam reliée un ordinateur,
qui grâce à un programme de traitement vidéo, permettra de localiser le robot ainsi que
l’objectif à atteindre. Les coordonnées du robot et de la cible obtenus par le programme au
niveau du PC seront transmisses, par ondes UHF au robot, qui pourra ainsi déterminer les
manœuvres nécessaires à accomplir pour atteindre l’objectif final. Au cours de son
déplacement le robot peut rencontrer des obstacles, ce genre de problèmes est aussi pris en
charge par notre système de navigation.
Mots clés : Robot mobile, Autonome, Localisation, Navigation, Vision, traitement d’image,
système sans fil, webcam, communication.
Abstract :
The aim of our project is to design a complete localization and navigation system for a
mobile robot. The adopted approach is based on using a webcam linked to a computer
which is in charge of all the video processing needed to obtain the robot posture together
with the coordinates of the targeted position for the robot. These coordinates are
transmitted to the robot using a pair of wireless modules. Knowing its posture and its final
position the robot will be able accomplish its tasks. In case of the presence of an obstacle in
its path the robot is also able avoid it and carry on its movement towards the final goal.
E/S : Entrée/Sortie
I.1.1 Historique…………………………………………………………………………………………………………… 4
I.1.2 Définitions………………………………………………………………………………………………………….. 8
IV.2.2.1.2 RedBoard…………………………………………………………………………. 56
IV.5.1 Matlab…………………………………………………………………………………………………………….. 66
Annex ……………………………………………………………………………………………………………………………. 80
Bibliographie ……………………………………………………………………………………………… 85
Liste des figures
Chapitre I
Figure I.17 Navigation d'un robot mobile dans un environnement plein d'obstacles ……… 19
Chapitre II
Chapitre III
Chapitre IV
Introduction générale
Le but de ce projet consiste à réaliser un robot mobile autonome capable de se
déplacer à l’intérieur d’une zone rectangulaire afin d’atteindre un objectif prédéfini. Etant
donné que cette opération nécessite, à chaque instant, la connaissance des coordonnées du
robot et de la cible nous avons élaboré notre stratégie en se basant sur l’utilisation d’une
webcam, placée au-dessus de l’aire sur laquelle le robot effectue ces mouvements. Cette
caméra est connectée à un ordinateur dans lequel les traitements d’images nécessaires sont
réalisés afin d’obtenir non seulement les coordonnées ainsi que l’orientation du robot mais
aussi celles de l’objectif à atteindre. Les coordonnées ainsi obtenus sont transmis, par ondes
UHF au robot, lui permettant d’effectuer les manœuvres nécessaires pour effectuer sa
mission, tout en évitant des obstacles éventuels sur son chemin. Le traitement d’images
utilisé se base sur l’extraction de couleurs particulières permettant de différencier entre les
éléments constituants la scène dont fait partie notre robot lors de ces déplacements.
Pour réaliser un système robotisé qui dispose d'un niveau d’autonomie et de facilités
de navigation, le système doit généralement accomplir trois tâches de base qui sont la
localisation, la planification et la navigation. Parmi ces tâches, la localisation occupe une
place de choix puisqu’elle détermine le bon déroulement des deux autres. Elle consiste à
calculer et à maintenir à jour la connaissance de la position (coordonnées) et de l’orientation
du robot. La vision par ordinateur est l'une des méthodes utilisées pour la localisation et qui
peut apporter une réponse. Se localiser est une de ces choses que nous faisons
naturellement en utilisant notre vue. Cela ne nous aide pas beaucoup pour construire un
algorithme utilisable par un ordinateur, mais cela nous montre tout de même qu’il existe
une solution performante au problème de la localisation par vision. Se localiser est une tâche
importante qu’un robot doit être capable de réaliser pour accomplir un certain nombre
d’objectives qu’il devra réaliser de manière autonome.
Page 1
Introduction Générale
Premièrement, une image contient une très grande quantité de données brutes dont seule
une partie comporte des informations pertinentes. Dans le cadre d’une application en
robotique, il est indispensable de pouvoir identifier les zones d’intérêt de l’image et de les
représenter sous forme d’informations concises. Deuxièmement, l’image représente un
environnement 3D sous forme de données 2D. Troisièmement le changement d'éclairage
peut engendrer des pertes d'informations.
Le premier chapitre est une introduction générale sur la robotique (historique, les
définitions d’un robot, les lois de la robotique), ainsi que les classifications des robots
mobiles et ces domaines d’application, les composants et l’architecture d’un robot
mobile et ce principe de navigation puis les outils et les méthodes d'intégration de
l'intelligence artificielle dans le domaine de la robotique.
le troisième chapitre on présente des généralités sur la vision artificielle, ainsi que
quelques méthodes et techniques de traitement d’images.
Page 2
Chapitre I Généralités sur la robotique mobile
Chapitre I
Généralités sur la robotique mobile
I.1 Introduction
La robotique est un ensemble de disciplines (mécanique, électronique, automatique,
informatique), elle se subdivise en deux types : les robots industriels et les robots mobiles.
Les robots industriels sont généralement fixes, ils sont utilisés dans des nombreuses
applications industrielles: l'assemblage mécanique, la soudure, la peinture... Les robots
mobiles ne sont pas fixes, ils sont classifiés selon leur degré d'autonomie et selon la
locomotion en robots marcheurs, à roues, à chenilles... comme ils peuvent être classifiés
selon le domaine d'application en robots militaires, d’espace, industriels et Médecine …
Les robots mobiles présentent un cas particulier en robotique. Leur intérêt réside dans leur
mobilité", destinés à remplir des taches pénibles (exemple : transport de charges lourdes) et
ils travaillent même en ambiance hostile (nucléaire, marine, spatiale, lutte centre l'incendie,
surveillance...). L'aspect particulier de la mobilité impose une complexité technologique
(capteurs, motricité, énergie) et méthodologique tels que le traitement des informations et
gestion des tâches et les systèmes de localisation.
L'autonomie du robot mobile est une faculté qui lui permet de s'adapter ou de prendre une
décision dans le but de réaliser une tache même dans un environnement peu connu ou
totalement inconnu.
Dans ce chapitre, nous présentons une introduction générale sur la robotique (historique, les
définitions d’un robot, les lois de la robotique), les classifications des robots mobiles et ces
domaines d’application, les composants et l’architecture d’un robot mobile et ce principe de
navigation.
Page 3
Chapitre I Généralités sur la robotique mobile
Avant 1950 :
XVIII ème siècle : création d'automates. En 1738, Jacques Vaucanson crée un canard articulé
en cuivre capable de boire, manger, cancaner et digérer comme un véritable animal.
1921 : Karel Capek écrit la pièce de théâtre RUR « Rossum's Universal Robots ».
1940 : Isaac Asimov écrit un ensemble de nouvelles sur les robots.b
1950-1960 :
1948 : Grey Walter invente le premier robot mobile autonome, une tortue se dirigeant vers
les sources de lumière qu'elle perçoit. Cependant, ce robot n'est pas programmable.
La mise en place de robots n'a été possible que dans les années 50 avec la création des
transistors et circuits intégrés.
Page 4
Chapitre I Généralités sur la robotique mobile
Page 5
Chapitre I Généralités sur la robotique mobile
1980-1990 :
Développement important de l'intelligence artificielle et de la robotique : de nouveaux
robots apparaissent constamment.
Page 6
Chapitre I Généralités sur la robotique mobile
Page 7
Chapitre I Généralités sur la robotique mobile
I.1.2 Définitions
Un robot est un dispositif mécatronique (alliant mécanique, électronique et informatique)
accomplissant automatiquement soit des tâches qui sont généralement dangereuses,
pénibles, répétitives ou impossibles pour les humains, soit des tâches plus simples mais en
les réalisant mieux que ce que ferait un être humain. [1]
Un appareil automatique qui peut effectuer des fonctions normalement effectué par des
humains. « Traduit du dictionnaire Webster’s »
Appareil automatique capable de manipuler des objets ou d’exécuter des opérations selon
un programme fixe ou modifiable. « Petit Larousse »
1. Un robot ne peut porter atteinte à un être humain, ni, en restant passif, permettre qu'un
être humain soit exposé au danger.
Page 8
Chapitre I Généralités sur la robotique mobile
2. Un robot doit obéir aux ordres que lui donne un être humain, sauf si de tels ordres entrent
en conflit avec la Première loi.
3. Un robot doit protéger son existence tant que cette protection n'entre pas en conflit avec
la Première ou la Deuxième loi.
Les robots mobiles ont une place particulière en robotique. Leur intérêt réside dans leur
mobilité qui ouvre des applications dans de nombreux domaines. Comme les robots
manipulateurs, ils sont destinés à assister l’homme dans les tâches pénibles (transport de
charges lourdes), monotones ou en ambiance hostile (nucléaire, marine, spatiale, lutte
contre l’incendie, surveillance…).
L’aspect particulier de la mobilité impose une complexité technologique et méthodologique
qui s’ajoute en général aux problèmes rencontrés par les robots manipulateurs. La
résolution de ces problèmes passe par l’emploi de toutes les ressources disponibles tant au
niveau technologique (capteurs, motricité, énergie) qu’à celui du traitement des
informations par l’utilisation des techniques de l’intelligence artificielle ou de processeurs
particuliers (vectoriel, cellulaires).
L’autonomie du robot mobile est une faculté qui lui permet de s’adapter ou de prendre une
décision dans le but de réaliser une tâche malgré un manque d’informations préliminaires ou
éventuellement erronées. Dans d’autres cas d’utilisation, comme celui des véhicules
d’exploration de planètes, l’autonomie est un point fondamental puisque la télécommande
est alors impossible par le fait de la durée du temps de transmission des informations.
Page 9
Chapitre I Généralités sur la robotique mobile
• Véhicule télécommande par un opérateur Ces robots sont commandés par un opérateur
qui leurs impose chaque tache élémentaire à réaliser.
• Véhicule semi-autonome Ce type de véhicule réalise des tâches prédéfinies sans l'aide de
l'operateur.
A) Robots à roues différentielles : Un robot à roues différentiel est un robot mobile dont
le mouvement est basé sur deux roues entraînées séparément placées de part et
d'autre du corps du robot. On peut ainsi changer de direction en faisant varier la
vitesse relative de rotation des roues et donc ne nécessite pas de mouvement de
braquage supplémentaire.
CIR : Centre Instantané de Rotation
Page 10
Chapitre I Généralités sur la robotique mobile
B) Robots de type « tricycle » : équipés d’un essieu arrière fixe muni de deux roues non
orientables et d’une roue avant centrée orientable.
C) Robots de type « voiture » : essieu arrière non orientable muni de deux roues non
orientables et libres en rotation et deux roues avant centrées orientables.
Page 11
Chapitre I Généralités sur la robotique mobile
Page 12
Chapitre I Généralités sur la robotique mobile
Les robots mobiles marcheurs sont destinés à réaliser des tâches variées dont l’accès au site
est difficile, dangereux ou impossible à l’homme. Leur anatomie à nombreux degrés de
liberté permet un rapprochement avec les robots manipulateurs. La locomotion est
commandée en termes de coordonnées articulaires. Les méthodes de commande des
articulations définissent le concept d’allure qui assure le déplacement stable de l’ensemble.
Les différentes techniques étudiées se rapprochent de la marche des animaux et notamment
de celle des insectes.
A) Robot humanoïde :
Un robot humanoïde est un robot avec la forme du corps qui ressemble construit à celle du
corps humain. Une conception humanoïde pour des buts fonctionnelle, telles que
l'interaction avec les outils et les environnements humains, à des buts expérimentales, telles
que l'étude de la locomotion bipède, ou autres pour des raisons pratiques. En général, les
robots humanoïdes ont un torse, une tête, deux bras et deux jambes.
Page 13
Chapitre I Généralités sur la robotique mobile
B) Robot hexapode :
Un robot hexapode est un dispositif mécatronique à base fixe ou mobile dont la locomotion
est fondée sur trois paires de pattes, les hexapodes sont considérés plus stables que les
robots bipèdes du fait que dans la plupart des cas, les hexapodes sont statiquement stables.
De ce fait, ils ne dépendent pas de contrôleurs en temps réel pour rester debout ou pour
marcher.
Les techniques utilisées ressemblent à des méthodes de locomotion des animaux rampants
(comme les serpents), ils sont utilisés dans des environnements de type tunnel ou des
endroits restreints, leur système est composé d’un ensemble de modules ayant plusieurs
mobilités.
Page 14
Chapitre I Généralités sur la robotique mobile
- surveillance de sites
Industrie nucléaire :
- manipulation de matériaux radio-actifs
- démantèlement de centrales
- surveillance, patrouille
Militaire
- pose d’explosifs
- manipulation de munitions
- assistance d’urgence
Médecine
- aide aux handicapés physiques, aux
aveugles
- pose de câbles
Sous-marine
- recherche de nodules
- recherche de navires immergés
- inspection des fonds marins
Agricole - cueillette de fruits
- traite, moisson, traitement des vignes…
Espace - exploration
- convoyage
Industriel
- surveillance
Page 15
Chapitre I Généralités sur la robotique mobile
Les composants fonctionnels qui constituent la base d'un système robotise sont [3] :
Les éléments technologiques sur la base desquels les systèmes robotiques sont élaborés
peuvent être classés plusieurs grandes catégories [3] :
Mécanismes: Corps rigides articulés par des liaisons mécaniques selon différentes
topologies.
Actionneurs: Convertisseur d'énergie primaire en énergie mécanique (actionneurs
électriques, pneumatiques, hydrauliques, piézoélectriques, électrostatiques…).
Capteurs: Capteurs proprioceptifs (position, vitesse, accélération), capteurs extéroceptifs
(force, vision, télémétrie, tactile, sonores . . .).
Contrôleurs: Régulateurs d'énergie primaire, interfaces capteurs (traitement du signal et
numérisation), bus de communication (VME, CAN, Internet).
Interface homme machine: Langage symbolique, langage structure, COA robotique, contrôle
d'exécution et d'aide à la décision, interfaces de télé-opération.
Page 16
Chapitre I Généralités sur la robotique mobile
Page 17
Chapitre I Généralités sur la robotique mobile
D) Le système de localisation
Les techniques de localisation employées sont de deux types :
• La localisation relative, basée sur l’utilisation de capteurs proprioceptifs.
• La localisation absolue, basée sur l’utilisation de capteurs extéroceptifs
On va explique chacune dans le deuxième chapitre.
Lorsque le véhicule navigue dans un milieu parfaitement connu et non évolutif, sa trajectoire
peut être prédéterminée hors ligne. Dans le cas où la navigation s'effectue dans un
environnement connu mais dans lequel peuvent apparaître des obstacles imprévus, des
capteurs spécifiques doivent être utilisés pour contrôler en temps réel l'espace navigable et
fournir les mesures nécessaires pour modifier en ligne la trajectoire du véhicule. Dans un
milieu mal connu, la trajectoire doit être planifiée en ligne grâce à un système de perception
extéroceptif capable de construire simultanément un modèle de l'espace navigable. Ce
dernier type de tâche implique pour le véhicule des capacités décisionnelles qui peuvent
être éventuellement complétées par l'intervention d'un opérateur humain [2].
Page 18
Chapitre I Généralités sur la robotique mobile
La complexité de la méthode de navigation mise en œuvre sur un robot mobile dépend donc
de l'environnement dans lequel il doit évoluer (milieu intérieur ou environnement naturel,
sol plan ou irrégulier, milieu terrestre, sous-marin ou spatial...). Elle dépend également de la
connaissance de cet environnement qui peut être figé ou évolutif et du mode de définition
de la trajectoire (apprentissage préalable, planification en ligne...). Les performances du
système de navigation sont étroitement liées à la précision, à la fiabilité et au temps de
réponse des capteurs et des méthodes mis en œuvre pour localiser le véhicule.
Figure I.17 Navigation d'un robot mobile dans un environnement plein d'obstacles
Dans notre travail on s'intéresse beaucoup à la localisation qui aide le robot dans la
navigation. On a choisi de réaliser un système de localisation permettant au robot de se
mouvoir de manière autonome (sans intervention humaine) dans un milieu partiellement
connu. Cette étude d’un cas simple de robotique fera ressortir les difficultés posées par la
mise au point de mécanismes d’automatisation nettement plus sophistiqués, à savoir : le
choix des capteurs, leur positionnement et la localisation du mobile. La détection et
l’évitement des obstacles est l’étape fondamentale de l’évolution d’un robot en territoire
inconnu.
Page 19
Chapitre I Généralités sur la robotique mobile
La robotique est une branche de l'intelligence artificielle concernée par l'étude des systèmes
automatiques capables d'interagir directement avec le monde physique. C’est une automatisation de
ses machines, ou l’objectif est d’augmenter les capacités de localisation et de navigation dans son
espace de travail [5].
L'intelligence artificielle est la reproduction, par des moyens artificiels de toutes les formes de
l'intelligence humaine pour un objectif final, qui s’intéresse à la conception des systèmes intelligents.
L’IA est la capacité à raisonner, à apprendre, et à s’adapter face à de nouveaux changements qu’ils
sont des éléments principaux que nous recherchons.
Page 20
Chapitre I Généralités sur la robotique mobile
Un grand nombre de disciplines scientifiques sont concernées par la mise en place de robots
[6] :
• automatique : calibrage des capteurs, des effecteurs ...
• électronique : mise en place de composants pour les robots.
• informatique : création de programmes destinés aux robots.
• mathématiques : modèles pour la prise de décision ou/et l’apprentissage, le calcul de
trajectoires, la localisation ...
• sciences cognitives : interactions homme-machine, machine-machine, prise de décision ...
• physique : cinématique des robots, navigation, ....
I.3 Conclusion
Nous avons présenté, dans ce chapitre une récapitulation sur l’historique de la robotique, les
définitions d’un robot et les lois de la robotique, nous avons décrit des robots mobile et leurs
classifications (degré d’autonomie, locomotion et les domaines d’applications), et ensuite on
a cité les composants fonctionnels et la technologie des constituants d’un robot mobile et
son architecture , la navigation et les problèmes l'analyse de l’environnement et la
complexité de la navigation d’un robot mobile et enfin l’utilisation de l’intelligence artificielle
en robotique .
Page 21
Chapitre II La localisation en robotique mobile
Chapitre II
La localisation en robotique mobile
II.1 Introduction
Le problème de localisation en robotique mobile consiste à déterminer la posture
(position et orientation) d’un robot mobile dans son environnement. Malheureusement, la
posture d’un robot ne peut pas être mesurée directement. En effet, les robots ne possèdent
pas de capteurs parfaits permettant de déterminer directement leur posture. On notera que
le GPS est un système permettant de mesurer directement la position. Cependant ce
système n’est pas parfait (précision de l’ordre du mètre) et est difficilement exploitable en
milieu clos (intérieur de bâtiments, forêts...). Partant du principe qu’une seule donnée
capteur ne peut pas permettre une localisation efficace, le problème de localisation consiste
alors à traiter des données de natures différentes (mesures de différents capteurs, utilisé
plusieurs balises...) afin de déterminer la posture d’un robot.
Page 22
Chapitre II La localisation en robotique mobile
Cette étude se restreint au robot mobile navigant sur un plan (2-D), ce qui englobe une très
large partie des systèmes existants. Localiser le robot revient alors à déterminer trois
paramètres : deux coordonnées cartésiennes pour la position et un angle pour l’orientation.
De façon plus formelle, la tâche de localisation consiste à calculer la transformation de
passage d’un repère lié au robot à un repère lié à l’environnement (Figure II.1).
Plusieurs techniques et méthodes ont été développées pour assurer la connaissance exacte
et de façon autonome de la position d’un robot mobile dans son environnement. A ce jour,
ces techniques peuvent être regroupées en deux catégories principales : les méthodes de
localisation relatives et les méthodes de localisation absolue.
Page 23
Chapitre II La localisation en robotique mobile
Plusieurs techniques et méthodes ont été développées pour assurer la connaissance exacte
et de façon autonome de la position d’un robot mobile dans son environnement. A ce jour,
ces techniques peuvent être regroupées en deux catégories principales [7] :
La vélocimétrie est une méthode qui consiste à mesurer directement la vitesse du véhicule
et à l’intégrer pour obtenir le déplacement, le calcul de la position est effectué alors par
double intégration de ces informations.
Page 24
Chapitre II La localisation en robotique mobile
Ce capteur est fortement utilisé en robotique mobile puisqu’il présente l’avantage d’être
simple à mettre en œuvre et surtout d’être peu coûteux [8].
Page 25
Chapitre II La localisation en robotique mobile
L'effet Doppler ou effet Doppler-Fizeau est le décalage de fréquence d’une onde (onde
mécanique, électromagnétique, etc…) entre la mesure à l'émission et la mesure à la
réception lorsque la distance entre l'émetteur et le récepteur varie au cours du temps. Si on
désigne de façon générale ce phénomène physique sous le nom d'effet Doppler, on réserve
le terme d'« effet Doppler-Fizeau » aux ondes électromagnétiques [10].
B) Le radar Doppler
Le radar Doppler fournit une estimation instantanée de la vitesse linéaire d’une plate-forme
mobile par rapport à un objet de la scène en se basant sur l’effet Doppler-Fizeau. Le principe
est de diriger un faisceau électromagnétique de fréquence F vers le sol.
Ce capteur est le plus souvent utilisé en milieu extérieur. Il présente le gros avantage d’être
insensible aux glissements des roues ou des chenilles du mobile. En revanche, sa précision se
dégrade rapidement avec la diminution de la vitesse. De plus il est généralement lourd à
mettre en œuvre, tant du point de vue électronique que du point de vue du traitement des
informations reçues [8].
Page 26
Chapitre II La localisation en robotique mobile
II.3.1.4 Le gyroscope
Les gyroscopes permettent de mesurer une variation angulaire. Ils sont intéressants en
robotique mobile parce qu'ils peuvent compenser les défauts des odomètres. Une erreur
d'orientation odométrique peut entraîner une erreur de position cumulative qui peut être
diminuée voire compensée par l’utilisation conjointe de gyroscopes.
Les gyroscopes très précis sont trop onéreux pour être utilisé en robotique mobile.
Cependant, les gyroscopes à fibre optique, connu pour leur grande précision, ont vu leur prix
chuter et sont donc devenus une solution attractive pour la navigation en robotique mobile.
La localisation absolue est une technique qui permet à un robot de se repérer directement
dans son milieu d’évolution, que ce soit en environnement extérieur (mer, terre, espace), ou
en environnement intérieur (ateliers, immeubles, centrales nucléaires….).Ces méthodes de
localisation sont basées sur l’utilisation de capteurs extéroceptifs, elles assurent la mesure
de la position et de l’orientation du mobile à tout instant. Ces méthodes sont nombreuses et
variées.
Dans certains cas, leur emploi nécessite des contraintes qui ne sont pas toujours
compatibles avec la mobilité du robot.
Pour répondre à la problématique qu’est la localisation d’un robot dans son environnement,
deux types de stratégies sont utilisables :
Page 27
Chapitre II La localisation en robotique mobile
• La première consiste à utiliser des points de repère naturels : Les repères artificiels sont
des balises caractéristiques qui sont ajoutées au milieu d’évolution du robot et dont les
positions sont connues, l’inconvénient de ce type de techniques réside essentiellement dans
son manque de souplesse et dans sa lourdeur d’utilisation.
En effet tout changement de configuration de l’environnement impliquera une remise en
cause du réseau de balises. En revanche cette technique a le gros avantage d’être précise,
robuste et surtout de satisfaire la contrainte temps réel.
•La deuxième à utiliser des points de repères artificiels : Cette technique consiste à utiliser
les éléments caractéristiques de l’environnement pour estimer la position du robot, l’intérêt
de ces méthodes est leur souplesse d’utilisation puisqu’elles ne nécessitent pas d’aménager
le milieu d’évolution du robot.
Page 28
Chapitre II La localisation en robotique mobile
Page 29
Chapitre
hapitre II La localisation en robotique mobile
a) Exemple
xemple d’un capteur infrarouge b) Principe
rincipe émié et reçu capteur infrarouge
L’atténuation de l’onde est importante dans ce milieu : les distances mesurées restent
faibles (quelques dizaines de mètres) mais suffisantes en intérieur. Deux caractéristiques
principales sont à préciser :
La première est la réflexion de l’onde sur un objet qui utilise les lois de Descartes.
a) Exemple
xemple d’un capteur ultrason b) Principe
rincipe émié et reçu capteur ultrason
Page 30
Chapitre II La localisation en robotique mobile
On peut également déterminer l’orientation du robot si l’on est capable de connaître l’angle
entre une balise et l’avant du robot, ce qui revient à être capable de connaître à tout instant
l’orientation du laser par rapport à l’avant du robot [11].
Page 31
Chapitre II La localisation en robotique mobile
Les systèmes de vision en robotique sont basés sur l’utilisation d’une caméra CCD. L’arrivée
des capteurs CCD (Charge Coupled Device), en 1975, a été déterminante dans l’évolution de
la vision : la rapidité d’acquisition, la robustesse et la miniaturisation sont autant
d’avantages qui ont facilité leur intégration. Les systèmes de vision sont très performants en
termes de portée, précision et quantité d’informations exploitables. Ils sont de plus les seuls
capables de restituer une image sensorielle de l’environnement la plus proche de celle
perçue par l’être humain.
Notre travail est basé sur l’utilisation de la localisation par vision, on veut déterminer le
positionnement du robot au début par deux coordonnées (x,y) et par l’angle d’orientation en
utilisent une caméra extérieure perpendiculaire à l’environnement ou se déplace le robot
avec un programme de traitement vidéo.
Page 32
Chapitre II La localisation en robotique mobile
L'environnement dans lequel le robot se déplace est partiellement connu et représenté par
deux zones colorées sur le robot et une troisième couleur pour la position finale que nous
voulons que le robot atteigne.
On peut présenter le processus de localisation par vision dans notre travail en quatre étapes
qui sont :
- Extraction des coordonnées : Trouver pour chaque couleur dans la scène la position en
deux coordonnées(x,y).
Page 33
Chapitre II La localisation en robotique mobile
Ce système est cependant loin de résoudre tous les problèmes de localisation des systèmes
mobiles. Il fonctionne en effet difficilement dans des environnements urbains, et n’est pas
utilisable à l’intérieur des bâtiments car les ondes employées sont fortement atténuées en
traversant les murs. Sa précision est de plus souvent trop faible pour qu’un système mobile
terrestre puisse utiliser ces informations seules. En pratique, il est souvent couplé à un
système inertiel qui permet de pallier aux pertes du signal GPS et il ne remplace de toute
façon pas les capteurs du système mobile qui lui permettent de percevoir son
environnement immédiat [13].
Mis à part son utilisation pour la localisation, ce système est aussi utilisé pour l’aide à la
navigation d’avions et de bateaux lors de l’approche d’aéroports ou de ports, ainsi que dans
la surveillance de camionnettes de livraison et de véhicules d’urgence, en vue de choisir au
mieux leurs itinéraires.
II.4 Conclusion
Comme nous pouvons le constater, il existe de nombreuses méthodes et techniques pour
localiser un robot mobile. En général ces méthodes et ces techniques sont divisées en deux
familles, la localisation relative qui est basée sur l’utilisation des capteurs proprioceptifs
(odomètre, accéléromètre, gyroscope …) et la localisation absolue qui utilise les capteurs
extéroceptifs (les capteurs ultrason, capteurs infrarouge, télémètres laser ….), la vision
(camera) et la géo-positionnement (GPS). Aucune n’est actuellement universelle. Le choix de
la technique est dicté par le type de tâche à réaliser.
Le chapitre suivant présente quelques notions sur la vision par ordinateur, ainsi que
quelques techniques de traitement d’images.
Page 34
Chapitre III Généralité sur le traitement d’image
Chapitre III
Généralités sur le traitement d’image
III.1 Introduction
Le traitement d'images est une discipline de l'informatique et des mathématiques
appliquées qui étudie les images numériques et leurs transformations, dans le but
d'améliorer leur qualité ou d'en extraire de l'information.
Il s'agit d'un sous-ensemble du traitement du signal dédié aux images et aux données
dérivées comme la vidéo (par opposition aux parties du traitement du signal consacrées à
d'autres types de données : son et autres signaux monodimensionnels notamment), tout en
opérant dans le domaine numérique ( par opposition aux techniques analogique de
traitement du signal, comme la photographie ou la télévision traditionnelles ).
Dans le contexte de la vision artificielle, le traitement d'images se place après les étapes
d'acquisition et de numérisation, assurant les transformations d'images et la partie de calcul
permettant d'aller vers une interprétation des images traitées. Cette phase d'interprétation
est d'ailleurs de plus en plus intégrée dans le traitement d'images, en faisant appel
notamment à l'intelligence artificielle pour manipuler des connaissances, principalement sur
les informations dont on dispose à propos de ce que représentent les images traitées.
La vision par ordinateur met en œuvre des caméras conventionnelles à champ de vue large
ou des systèmes permettant d’acquérir des images bidimensionnelles ou tridimensionnelles.
Elle décrit la géométrie et le traitement de ces images qui rendent possible l’utilisation de la
vision dans de nombreuses applications, parmi lesquelles figure l’augmentation de
l’autonomie perceptive des robots.
Page 35
Chapitre III Généralité sur le traitement d’image
Les images binaires codent l’information sur deux valeurs. Parmi les images numériques, les
images binaires sont les plus simple, un pixel peut prendre uniquement les valeurs noir ou
blanc (0,1). C’est typiquement le type d’image que l’on utilise pour scanner du texte quand
celui-ci est composé d’une seule couleur.
Page 36
Chapitre III Généralité sur le traitement d’image
Le niveau de gris est la valeur de l'intensité lumineuse en un point. La couleur du pixel peut
prendre des valeurs allant du noir au blanc en passant par un nombre fini de niveaux
intermédiaires. Donc pour représenter les images à niveaux de gris, on peut attribuer à
chaque pixel de l'image une valeur correspondant à la quantité de lumière renvoyée. Cette
valeur peut être comprise par exemple entre 0 et 255. Chaque pixel n'est donc plus
représenté par un bit, mais par un octet. Pour cela, il faut que le matériel utilisé pour afficher
l'image soit capable de produire les différents niveaux de gris correspondant.
Le nombre de niveaux de gris dépend du nombre de bits utilisés pour décrire la " couleur "
de chaque pixel de l'image. Plus ce nombre est important, plus les niveaux possibles sont
nombreux.
A) Principe
Une image couleur est en réalité composée de trois images, afin de représenter le rouge, le
vert, et le bleu. Chacune de ces trois images s’appelle un canal. Cette représentation en
rouge, vert et bleu mime le fonctionnement du système visuel humain.
Page 37
Chapitre III Généralité sur le traitement d’image
La figure suivante montre la décomposition d’une image couleur en ses trois canaux
constitutifs :
B) Codage RVB
Chaque pixel de l’image couleur contient ainsi trois nombres (r,v,b), chacun étant un
nombre entier entre 0 et 255. Si le pixel est égal à (r,v,b)=(255,0,0), il ne contient que de
l’information rouge, et est affiché comme du rouge. De façon similaire, les pixels
valant (0,255,0) et (0,0,255) sont respectivement affichés vert et bleu.
On peut afficher à l’écran une image couleur à partir de ses trois canaux (r,v,b) en
utilisant les règles de la synthèse additive des couleurs. La figure suivante montre les
règles de composition cette synthèse additive des couleurs. Un pixel avec les
valeurs (r,v,b)=(255,0,255) est un mélange de rouge et de vert, il est ainsi affiché comme
jaune.
III.4.1 Acquisition
Dans l’acquisition de l’image l’échantillonnage et la quantification sont deux étapes
nécessaires dans le passage d’une image analogique vers une image numérique :
A) L’échantillonnage
Page 39
Chapitre III Généralité sur le traitement d’image
B) La quantification
III.4.2 Prétraitement
Le prétraitement ou bien le traitement, regroupe toutes les techniques visant à améliorer la
qualité d’une image. De ce fait, la donnée de départ est l’image initiale et le résultat est
également une image. L’idéal est d’obtenir un résultat sans bruit. La qualité d’une image
n’est pas forcement la même pour un ordinateur ou pour un opérateur humain. C’est la
raison pour laquelle les techniques ne sont pas les mêmes. La notion de qualité est une
notion très subjective, assujettie à la réalisation d’un objectif. La qualité d’une image n’est
pas forcement la même pour un ordinateur ou pour un opérateur humain. Les capacités de
vision de l’être humain étant limitées, il est indispensable d’adapter la dynamique de l’image
à notre vision [16].
III.4.2.1 La restauration
La restauration a pour but d’inverser l’effet du phénomène dégradant. Il s’agit donc de
produire une image la plus proche de la réalité physique de la scène observée. Le plus
souvent, cette étape est la première dans la chaîne de traitements constituant un système
de vision.
Page 40
Chapitre III Généralité sur le traitement d’image
III.4.2.2 L’amélioration
L’amélioration de l’image a pour but d'améliorer la visualisation des images. Pour cela, elle
élimine/réduit le bruit de l'image et/ou met en évidence certains éléments (frontières, etc.)
de l'image. Elle est souvent appliquée sans connaissance à priori des éléments de l'image.
Les principales techniques sont [15] :
- l'amélioration de contraste (la modification d’histogramme).
- le filtrage linéaire (lissage, mise en évidence des frontières avec l'opérateur "Image - Image
lissée", etc.) et transformée de Fourier.
- filtrage non linéaire (filtres médians, etc.) pour éliminer le bruit sans trop affecter les
frontières...
L’histogramme des niveaux de gris ou des couleurs d’une image est une fonction qui donne
la fréquence d’apparition de chaque niveau de gris (couleur) dans l’image.
Pour diminuer l’erreur de quantification ou pour comparer deux images obtenues sous des
éclairages différents ou encore pour mesurer certaines propriétés de l’image, on modifie
souvent l’histogramme correspondant.
2500
2000
1500
1000
500
Page 41
Chapitre III Généralité sur le traitement d’image
L’histogramme peut être utilisé pour améliorer la qualité d’une image (Rehaussement
d’image) en introduisant quelques modifications, pour pouvoir extraire les informations
utiles de celle-ci [17].
Parmi les méthodes qui sont base sur l’utilisation de l’histogramme pour améliorer l’image :
- Le Recadrage de dynamique.
- Egalisation d’histogramme.
A) Le Recadrage de dynamique :
C’est une transformation des niveaux de gris de l’image afin que l’image utilise toute la dynamique
valable pour la représentation, en d’autre termes si l’image et coder sur 8bit, les pixels de cette
image on bien une valeur qui va de 0 jusqu'à 255 (Figure III.8) :
4000 4000
3000 3000
2000 2000
1000 1000
0 0
0 100 200 0 100 200
Page 42
Chapitre III Généralité sur le traitement d’image
B) Egalisation d’histogramme
Elle a pour but d'harmoniser la répartition des niveaux de luminosité de l'image, de telle
manière à tendre vers un même nombre de pixel pour chacun des niveaux de l'histogramme.
Cette opération vise à augmenter les nuances dans l’image (Figure III.9) :
On possède a un seuillage des niveaux de gris et on transforme tout le niveau compris entre
les seuils ‘a’ et ‘b’ en 255 (blanc), toutes les autres valeurs seront mise a zéro (le noir).
Page 43
Chapitre III Généralité sur le traitement d’image
III.4.2.2.2 Le filtrage
Entre une image réelle et l’image numérisée obtenue, un grand nombre de processus sont
venus l’altérer. Parmi ceux-ci, le bruit résultat du bruit électronique du capteur et de la
qualité de la numérisation joue un rôle fondamental. On peut définir le bruit dans une image
comme un phénomène de brusque variation d’un pixel isolé par rapport à ses voisins. On
peut en déduire que pour lutter contre les effets du bruit, il est nécessaire d’opérer des
transformations qui tiennent compte du voisinage de chaque pixel. L’une des méthodes
visant à atténuer les effets du bruit est un filtre passe-bas.
Différentes méthodes de filtrage passe bas ont été développées suivant le type et l’intensité
du bruit, ou les applications auxquelles on destine l'image. Les premières et les plus simples
de ces méthodes sont basées sur le filtrage linéaire stationnaire (invariant par translations),
mais les limitations de ces techniques (en particulier leur mauvaise conservation des
transitions) a conduit au développement des filtres "non-linéaire". Dans la plupart des cas
présentés ici, le filtrage consiste à balayer l'image par une fenêtre d'analyse de taille finie.
A) Filtrage linéaire
Le filtrage linéaire qui est la transformation d’un pixel par une combinaison linéaire des
pixels voisins. Une méthode simple consiste à considérer chaque point de l’image et d’en
faire la moyenne avec les 8 pixels qui lui sont voisins, ce qui aura pour effet d’adoucir l’image
en réduisant les fluctuations de luminosité [18].
Parmi les filtres linéaires on trouve le filtre moyen qui consiste à remplacer chaque pixel de
l’image et d’en faire la moyenne avec les 8 pixels voisins, et le filtre gaussien qui utilise la
moyenne pondérée.
B) Filtrage non-linéaire
Ils sont conçus pour régler les problèmes des filtres linéaires, sur tout pour ce qui concerne
la mauvaise conservation des contours. Leur principe est le même que celui des filtres
linéaires, il s’agit toujours de remplacer la valeur de chaque pixel par la valeur d’une fonction
calculée dans son voisinage, la seule différence c’est que cette fonction n’est plus linéaire
mais une fonction quelconque (elle peut inclure des opérateurs de comparaisons).
Page 44
Chapitre III Généralité sur le traitement d’image
L’exemple le plus classique de filtre non linaire est le filtre médian qui consiste à remplacer
le pixel central par la valeur médiane du voisinage centrée sur le pixel, il Élimine le bruit
impulsionnel et il préserve l’information de contour et peut être appliqué itérativement mais
il élimine
limine les contours très fins.
Figure
igure III.10
III. Image filtré par le médian
III.4.2.3 La compression
Le but de la compression est de réduire
rédu la taille des fichiers pour diminuer l’espace
nécessaire à leur stockage sur le disque ou leur transfert par le réseau. Ils encodent de
manières différentes les données de l’image afin de les rendre plus compactes.
Figure
igure III.11
III. Compression d’une image
Page 45
Chapitre III Généralité sur le traitement d’image
III.4.3 L’analyse
L’analyse est une suite d’opération permettant l’extraction de l’information essentielle
contenue dans une image. Elle est essentiellement composée par deux phases de la
segmentation qui fournit une partition d’image et de la caractérisation.
III.4.3.1 Segmentation
La segmentation, consiste à Identifier et définir des objets dans l’image en divisant l’image
en zones homogènes afin de séparer les divers composants visibles et de les identifier. Deux
approches sont nécessaires pour la réalisation de la segmentation, regroupement des pixels
présentant une caractéristique commune, dérivée par exemple de l’intensité des pixels
(région) et mise en place des frontières aux positions qui rendent localement maximale la
variation d’un critère (contour). Ces deux conceptions sont duales : une région définit son
contour, un contour définit une région.
Page 46
Chapitre III Généralité sur le traitement d’image
III.4.3.2 caractérisation
La caractérisation c’est l’extraction des attributs au caractéristique lies a :
Page 47
Chapitre III Généralité sur le traitement d’image
III.4.5 Interprétation
L'interprétation d'image est en général la dernière phase qui précède la prise de décision.
Elle donne une signification à l'information, par exemple en comparant cette information
avec une base de données pré-établie. Ainsi, il peut être établi qu'un ensemble connexe de
pixels d'une image. L'interprétation peut nécessiter des approches très complexes comme
l'intelligence artificielle, les réseaux neuronaux et la logique floue [15].
Topographie.
III.6 Conclusion
Dans ce chapitre nous avons vu brièvement les types des images numériques, on a présenté
les étapes et quelques notions sur la vision assisté par l’ordinateur ainsi que quelque
technique de traitement d’image.
Page 48
Chapitre IV Présentation générale du robot
Chapitre IV
Présentation générale du robot
Dans ce chapitre nous expliquerons le fonctionnement de notre robot ainsi que les
propriétés et les caractéristiques de tous ses composants, on citera les langages de
programmation utilisés. A la fin de ce chapitre on donnera les algorithmes utilisés dans le
projet sous forme d’organigrammes.
Page 49
Chapitre IV Présentation générale du robot
IV.2 Composants
Le robot est composé essentiellement de deux parties la partie mécanique et la partie
électronique :
IV.2.1.1 Moteurs
Le moteur de type EGM30 (codeur, moteur, boîte de vitesses 30: 1) est un motoréducteur
équipé d’encodeurs. Il est idéal pour les petites ou moyennes applications en robotique [21].
Tension nominale: 12 V
Couple nominal: 1.5kg.cm
Vitesse nominale: 170 RPM
Courant nominal: 530mA
Vitesse à vide: 216
Courant à vide: 150mA
Courant de blocage : 2.5A
Puissance nominale: 4.22 W
Nombre d’impulsions par tour : 360
Page 50
Chapitre IV Présentation générale du robot
Page 51
Chapitre IV Présentation générale du robot
Le modèle UNO de la série ARDUINO est une carte électronique dont le cœur est un
microcontrôleur ATMEL de référence ATMega328. Le microcontrôleur ATMega328 est un
microcontrôleur 8bits de la famille AVR dont la programmation peut être réalisée en langage
C.
L'intérêt principal des cartes ARDUINO (d'autres modèles existent) est leur facilité de mise
en œuvre. ARDUINO fournit un environnement de développement s'appuyant sur des outils
« open source ». Le chargement du programme dans la mémoire du microcontrôleur se fait
de façon très simple par port USB. En outre, des bibliothèques de fonctions "clé en main"
sont également fournies pour l'exploitation d'entrées-sorties courantes : gestion des E/S
TOR, gestion des convertisseurs ADC, génération de signaux PWM, exploitation de bus
TWI/I²C, exploitation de servomoteurs ...
Page 52
Chapitre IV Présentation générale du robot
Microcontrôleur : ATmega328
Tension d'alimentation interne = 5V
tension d'alimentation (recommandée)= 7 à 12V, limites =6 à 20 V
Entrées/sorties numériques : 14 dont 6 sorties PWM
Entrées analogiques = 6
Courant max par broches E/S = 40 mA
Courant max sur sortie 3,3V = 50mA
Mémoire Flash 32 KB dont 0.5 KB utilisée par le bootloader
Mémoire SRAM 2 KB
mémoire EEPROM 1 KB
Fréquence horloge = 16 MHz
A) Alimentation :
La carte Arduino Uno peut-être alimentée soit via la connexion USB (qui fournit 5V jusqu'à
500mA) ou à l'aide d'une alimentation externe. La source d'alimentation est sélectionnée
automatiquement par la carte.
L'alimentation externe (non-USB) peut être soit un adaptateur secteur (pouvant fournir
typiquement de 7V à 12V sous 500mA) ou des piles. L'adaptateur secteur peut être connecté
en branchant une prise 2.1mm positif au centre dans le connecteur jack de la carte. Les fils
en provenance d'un bloc de piles ou d'accumulateurs peuvent être insérés dans les
connecteurs des broches de la carte appelées Gnd (masse ou 0V) et Vin (Tension positive en
entrée) du connecteur d'alimentation.
Page 53
Chapitre IV Présentation générale du robot
• VIN. La tension d'entrée positive lorsque la carte Arduino est utilisée avec une source
de tension externe (à distinguer du 5V de la connexion USB ou autre source 5V
régulée). Nous pouvons alimenter la carte à l'aide de cette broche, ou, si
l'alimentation est fournie par le jack d'alimentation, accéder à la tension
d'alimentation sur cette broche.
• 5V. La tension régulée utilisée pour faire fonctionner le microcontrôleur et les autres
composants de la carte (les circuits électroniques numériques nécessitent une
tension d'alimentation parfaitement stable dite "tension régulée" obtenue à l'aide
d'un composant appelé un régulateur et qui est intégré à la carte Arduino). Le 5V
régulé fourni par cette broche peut donc provenir soit de la tension d'alimentation
VIN via le régulateur de la carte, ou bien de la connexion USB (qui fournit du 5V
régulé) ou de tout autre source d'alimentation régulée.
• GND. Broche de masse (ou 0V).
B) Mémoire :
L'ATmega 328 à 32Ko de mémoire FLASH pour stocker le programme (dont 0.5Ko également
utilisés par le bootloader). L'ATmega328 a également 2ko de mémoire SRAM (volatile) et
1Ko d'EEPROM (non volatile – mémoire). Le bootloader est un programme préprogrammé
une fois pour toute dans l'ATméga et qui permet la communication entre l'ATmega et le
logiciel Arduino via le port USB, notamment lors de chaque programmation de la carte.
Chacune des 14 broches numériques de la carte UNO (numérotées des 0 à 13) peut être
utilisée soit comme une entrée numérique, soit comme une sortie numérique, en utilisant
les instructions pinMode(), digitalWrite() et digitalRead() du langage Arduino. Ces broches
fonctionnent en 5V. Chaque broche peut fournir ou recevoir un maximum de 40mA
d'intensité et dispose d'une résistance interne de "rappel au plus" (pull-up) (déconnectée
par défaut) de 20-50 KOhms. Cette résistance interne s'active sur une broche en entrée à
l'aide de l'instruction digitalWrite(broche, HIGH).
Page 54
Chapitre IV Présentation générale du robot
D) Broches analogiques :
Les broches analogiques peuvent être utilisées en tant que broches numériques : elles sont
numérotées en tant que broches numériques de 14 à 19.
Page 55
Chapitre IV Présentation générale du robot
IV.2.2.1.2 RedBoard
La carte RedBoard est compatible avec Arduino UNO. Elle dispose de 14 broches d'E/S
numériques avec 6 sorties MLI, 6 entrées analogiques, une UART, une SPI et des
interruptions externes. La redBoard peut être programmée via un câble USB mini-B en
utilisant l'IDE Arduino[23].
Caractéristiques de RedBoard :
• Microcontrôleur ATmega328
• Programmation USB simplifiée grâce au FTDI FT231X omniprésent
• 14 broches d'E/S numériques (6 sorties MLI)
• Sorties de 0 à 5 V avec entrées compatibles 3,3 V
• Tension en entrée : de 7 à 15 V
• Mémoire Flash de 32 K
• Vitesse d'horloge de 16 MHz
• Construction totale par composants avec montage en surface (SMD)
• Bus série, I2C et SPI
Page 56
Chapitre IV Présentation générale du robot
La MD25 destinée à être commandée par le microcontrôleur au moyen d'une liaison série
(niveau logique 0 - 5 V) ou via un bus I²C, cette platine électronique intègre un double pont
en "H" permettant le pilotage indépendant de 2 moteurs à courant continu avec
encodeur (consommation: 2,5 A max. par moteur) [24].
Des ordres simples nous permettrons de définir le sens de rotation ainsi que la vitesse des
moteurs, de lire les informations en provenance des encodeurs des moteurs, de lire les
valeurs de la tension et du courant consommé par les moteurs, de connaître la vitesse de
rotation des moteurs, de définir les accélérations, etc ...
• Caractéristiques de MD25 :
- Alimentation: 12 Vcc (régulateur 5 Vcc intégré délivrant 300 mA)
- Consommation: jusqu'à 3 A pour chaque moteur
- Pilotage du module par bus I²C (jusque 8 modules MD25 adressables)
- Lecture des encodeurs des moteurs pour déterminer la distance parcourue et la
direction
- Lecture du courant des moteurs dans un registre
- Régulation de puissance
- Accélération réglable
Page 57
Chapitre IV Présentation générale du robot
Le Télémètre infrarouge utilisé c’est le SHARPGP2Y0D815, ce petit module est composé d'un
circuit imprimé associé à un télémètre infrarouge ainsi qu'à quelques composants (Leds,
condensateurs...), leur principe de fonctionnement est expliqué dans le chapitre 2.
Le micro-Switch, appelés aussi "Interrupteur de fin de course", sont des boutons poussoirs
simples à utiliser à leur déclenchement, ils passent à l'état bas (0 volt) et en position de
repos restent à l'état haut (5V). Ils coupent ou établissent un circuit lorsqu'ils sont actionnés
par un mobile ou par un obstacle.
La détection s’effectue par contact d’un objet extérieur sur le levier ou un galet. Ce capteur
peut prendre alors deux états : Enfoncé (en logique positive l'interrupteur est fermé) et
l’état Relâché (en logique positive l'interrupteur est ouvert).
Page 58
Chapitre IV Présentation générale du robot
IV.2.2.4 Webcam
On a utilisé une webcam pour effectuer l’acquisition en temps réel, dont les données
numériques seront transmises à l’ordinateur via le port USB. La résolution utilisée dans
l’acquisition est de 640*480 pixels.
On a utilisé le module radio fréquence RF24 qui est composé par deux modules émetteurs /
récepteurs et qui utilisent la bande de fréquence 2.4 GHz.
La vitesse de fonctionnement maximale est de 2 Mbps, avec une faible consommation
électrique, la distance de transmission est relativement élevée et permet le pilotage du
robot mobile. Ces modules peuvent être adressés par logiciel, et peuvent être accédés
directement par un large éventail de microcontrôleurs comme l’Arduino et Redboard.
Caractéristiques de RF24:
Construit en NRF24L01 + émetteur-récepteur.
Sélectionnable taux de données avec 2 mbit/s, 1 mbit/s, 250 kbit/s.
Plage d'alimentation: 1.9 à 3.6 V, entrée tolérée jusqu’à 5 V
Régulateur de tension intégré
Dimension: 29mm x 15.2mm.
Page 59
Chapitre IV Présentation générale du robot
IV.3.1.1 Caractéristiques
Le bus I²C (Inter Integrated Circuit) fait partie des bus série : 3 fils pour faire passer les
données, il permet de faire communiquer entre eux des composants électroniques très
divers grâce à seulement trois fils : un signal de données (SDA), un signal d'horloge (SCL), et
un signal de référence électrique (masse).
Il s'agit d'une liaison en mode série, ce qui signifie que la vitesse de transfert sera plus faible
qu'avec un bus de type parallèle. Le bus I²C permet cependant des échanges à la vitesse de
100 kbits par seconde. Certes, la vitesse de transfert du bus I²C n'est pas exceptionnelle,
mais dans bien des cas, la vitesse n'est pas l'élément prédominant.
L'utilisation d'un bus I²C permet de réduire la complexité des circuits imprimés à réaliser. Par
exemple, pour connecter une EEPROM ou une RAM à un microcontrôleur classique, il faut
relier entre eux les bits de données et les bits d'adresses des différents composants, et, en
plus, il faut bien souvent ajouter une logique de sélection. Avec des composants prévus pour
se connecter au bus I²C, il suffit de les relier par deux pistes seulement. Si, par la suite, on
souhaite ajouter des composants sur le circuit, le nombre de pistes à ajouter sera vraiment
plus réduit [22].
Page 60
Chapitre IV Présentation générale du robot
Lorsqu'un circuit, après avoir vérifié que le bus est libre, prend le contrôle de celui-ci, il en
devient le maître. C'est lui qui génère le signal d'horloge.
Le nombre de composants qu'il est possible de connecter sur un bus I²C étant largement
supérieur à deux, le maître doit pouvoir choisir quel esclave est censé recevoir les données.
Dans ce but, le premier octet que transmet le maître n'est pas une donnée mais une adresse.
Le format de l'octet d'adresse est un peu particulier puisque le bit D0 est réservé pour
indiquer si le maître demande une lecture â l'esclave ou bien au contraire si le maître impose
une écriture à l’esclave [22].
Chaque circuit connecté au bus I²C possède une adresse, qui doit être unique. L'adresse
associée à un composant est définie en partie par l'état de broches de sélections et d'autre
part par sa fonction. Par exemple, le circuit PCF8574, qui est un port d'entrées/sorties
bidirectionnel 8 bits, décompose son adresse de la façon suivante :
[0] [1] [0] [0] [A2] [A1] [A0] [R/W]. Les bits A2, A1 et A0 reflètent l'état des broches 1, 2 et 3
du circuit. Cela permet de placer 8 circuits PCF8574 sur le bus I²C. Lors de la conception d'un
système, il faut donc veiller à l'unicité des adresses attribuées aux différents composants.
Une fois l'adresse envoyée sur le bus, l'esclave concerné doit répondre en plaçant le bit ACK
à 0. Si le but ACK vaut 1, le maître comprend qu'il y a une erreur de sélection et il génère la
condition arrêt. En revanche, si le bit ACK vaut 0, le maître peut continuer les opérations
[22].
Page 62
Chapitre IV Présentation générale du robot
IV.3.2.1Caractéristique
Dans les circuits d’interface le bus SPI (Serial Peripheral Interface) n’est pas seul est se trouve
talonné depuis de nombreuses années par les circuits dotés d’une liaison série synchrone de
type SPI. Cette appellation rencontre cependant des signaux et des chronogrammes qui sont
beaucoup moins bien normalisés que ceux du bus I2C, tout simplement parce que la liaison
du bus SPI ne fait l’objet d’aucune norme officielle.
Certains circuits indiquent qu’ils sont munis d’une interface SPI, mais nous pouvons aussi
trouver comme appellation « Microwire » (qui est une marque déposée de National Semi-
conducteur) ou bien encore « bus série trois fils ». Un bus de ce type permet la connexion,
sous forme série maître-esclave, de plusieurs circuits disposant d’interfaces compatibles,
avec seulement trois fils de liaisons.
Les dernières versions d’Arduino incluent une bibliothèque qui permet la communication
avec les périphériques SPI.
SPI a des lignes labellisés « MOSI » : Master Output Slave Input, généré par le maître, des
lignes labellisées « MISO » : Master Input Slave Output, généré par l’esclave et une ligne
d’horloge (SCK : SPI Serial Clock). Ces trois lignes sont connectées à leurs lignes respectives
sur un ou plusieurs esclaves. Les esclaves sont identifiées grâce au signal de leur ligne SS
(Slave Select). Autres nommages possibles : SDO (Serial Data Out) et SDI (Serial Data
Input)[25].
Page 63
Chapitre IV Présentation générale du robot
Deux registres à décalages sont généralement mis en œuvre. Ils peuvent être de type
matériel ou logiciel, selon les dispositifs employés. Quel que soit leur mise en œuvre, ces
deux registres à décalage forment un buffer circulaire inter-puce, qui se trouve au cœur de la
liaison SPI.
Les communications sont initiées par le maître, qui commence par sélectionner l’esclave. Au
cours de chaque cycle d’horloge, le maître envoie un bit à l’esclave, qui le lit sur la ligne
MOSI. En parallèle, l’esclave envoie un bit au maître, qui le lit sur la ligne MISO. Ces lectures
et écritures simultanées entre le maître et l’esclave forment une communication Full-Duplex.
La gestion d’une liaison SPI avec l’Arduino est facile à mettre en œuvre. Les microcontrôleurs
d’AtmelAtmega disposent d’une interface SPI dont les entrées/sorties se répartissent
comme suit : SCK sur 13, MISO sur 12, MOSI sur 11 et SS (choix de l’esclave) sur 10 pour les
Uno [25].
Page 64
Chapitre IV Présentation générale du robot
Page 65
Chapitre IV Présentation générale du robot
IV.5 Programmation
IV.5.1 Matlab
Matlab est un langage qui utilise les données sous forme matricielle. Ce format est très
compatible avec le format de représentation des images, avec Matlab on peut réaliser
plusieurs opérations de traitement d’images telles que la détection de contours, la détection
des régions, le changement d'espace de couleur, le filtrage, l’amélioration de contraste...
aussi il ya des toolbox (bibliothèques) complet dans Matlab de traitement d’image prêt à
l'emploi.
Dans notre projet nous avons utilisées des bibliothèques de traitement d’image avec le
matlab comme :
- La binarisation
- Etiquetage
- Soustraction de la couleur
Page 66
Chapitre IV Présentation générale du robot
L'environnement de programmation Arduino (IDE) est une application écrite en Java inspirée
du langage de traitement. L'IDE permet d'écrire, de modifier un programme et de le
convertir en une série d'instructions compréhensibles par le microcontrôleur. Le logiciel
Arduino IDE a des fonctions principales:
Cet espace de développement intégré (IDE) qui est dédié à la programmation des cartes
Arduino et aussi Redboard comporte 3 parties principales :
Page 67
Chapitre IV Présentation générale du robot
IV.5.3
3 Les algorithmes de projet
Organigrammes de la détection des couleurs et l’extraction des coordonnées qui est utilisé
pour les deux méthodes:
Page 68
Chapitre IV Présentation générale du robot
1. L’organigramme de déplacement:
Page 69
Chapitre IV Présentation générale du robot
2. L’organigramme de l’émetteur :
L’Arduino est équipé de quatre boutons, un afficheur LCD et une communication par port
série avec Matlab, donc les commandes ou l'affichage se fait instantanément.
Page 70
Chapitre IV Présentation générale du robot
Page 71
Chapitre IV Présentation générale du robot
Page 72
Chapitre IV Présentation générale du robot
5. L’organigramme de réception :
Le robot est commandé par la carte RedBoard, une fois qu’elle reçoit une commande elle
sera communiquée directement aux roues et à la pince par le bus de communication I2C.
Page 73
Chapitre IV Présentation générale du robot
Page 74
Chapitre IV Présentation générale du robot
Page 75
Chapitre IV Présentation générale du robot
Page 76
Chapitre IV Présentation générale du robot
Page 77
Chapitre IV Présentation générale du robot
IV.6 Conclusion
Dans ce chapitre nous avons mentionné tous les composants de notre robot mobile, nous
avons aussi expliqué les systèmes de communications utilisés entre les constituants du robot
ainsi que la communication entre le micro-ordinateur et le robot.
Nous avons conclu que la bonne détection de couleur avec l'extraction de ces coordonnées
est une étape très importante dans notre travail pour que l’algorithme donne de bons
résultats sans problèmes particuliers.
Les deux algorithmes sont capables d'atteindre le but désiré de notre projet, la localisation
instantanée du robot permet au robot de naviguer d’une façon autonome vers la cible.
Page 78
Conclusion Générale
Conclusion générale
La réalisation d’un système robotisé autonome doit généralement accomplir trois tâches de
base qui sont la localisation, la planification et la navigation. La localisation est la tâche la
plus essentielle car elle détermine le bon déroulement des deux autres.
Dans ce travail on s’est intéressés à la localisation d’un robot mobile à roues. On a étudié
deux méthodes de localisation différentes, qui sont généralement utilisées en robotique
mobile, à savoir la localisation relative et la localisation absolue. On a utilisé la méthode de
localisation par vision avec une webcam. En effet pour être autonome, un robot mobile doit
être capable d'adapter l'exécution d'un ensemble d'actions suivant les variations dans son
environnement. Il a donc besoin de percevoir l'environnement et de raisonner sur les
données perceptuelles acquises.
La localisation par vision, utilisée dans notre projet est très riche en quantité d’informations,
ce qui implique un certain nombre de problèmes :
Malgré tout les problèmes cités précédemment, nous pouvons estimer que les résultats
expérimentaux que nous avons obtenus sont très satisfaisants dans le sens ou le cahier des
charges préalablement fixé a été atteint. Ceci n’empêche pas de prévoir un certain nombre
d’améliorations tels que l’utilisation d’une caméra de meilleure qualité munie d’un objectif
permettant découvrir une plus grande surface et donc élargir l’espace travail du robot. Ceci
permettra aussi d’envisager des applications pratiques dans plusieurs domaines tels que le
guidage de robot mobiles de transport dans un environnement industriel restreint, dans le
nettoyage des gares ou aéroports etc...
Page 79
Bibliographie
[1] Site web : http://fr.wikipedia.org/wiki/Robot#Historique
[3] Ph. Bidaud, Cours de Modélisation des Systèmes Robotiques, Université Pierre et Marie
Curie. Master Systèmes Intelligents et Robotiques
[5] CHERROUN Lakhmissi , « Navigation Autonome d’un Robot Mobile par des Techniques
Neuro-Floues » , Thèse de doctorat en automatique , Université Mohamed Khider – Biskra ,
2014.
[7] Omar AÏT-AIDER, « Localisation référencée modèle d'un robot mobile d'intérieur », Thèse
de doctorat en robotique , Université d’Evry. 2002.
[9] BALI Chaher eddine et ABAIDI Hakim, « Réalisation d’un robot mobile avec évitement
d’obstacle et trajectoire programmé », Mémoire de Fin d'Etudes Master, Université
Mohamed Khider Biskra.
[11] Sébastien GROS, Systèmes de positionnement d’un robot dans le cadre de la coupe
Eurobot, Club ROBOTIK2000.
[12] J. P. Laumond, “La robotique mobile”, Hermès Sience Publications, 2001, Paris, ISBN 2-
7462-0246-8.
Page 85
[13] David FILLIAT, “Robotique Mobile”, Cours C10-2, ENSTA, France, Octobre 2004.
[14] Hadjila Feth Allah et Bouabdallah Réda, « Reconnaissance des visages en utilisant les
réseaux de neurones ». Mémoire d’ingénieur. Université de Tlemcen. 2003.
[17] KADDOUR Chakib, AISSA BRAHIM Salim, « Généralités sur le traitement d’images ».
[20] Arnaud CAPRI, Caractérisation des objets dans une image en vue d’une aide à
l’interprétation et d’une compression adaptée au contenu : application aux images
échographiques, thèse doctorat, Université D’ORLÉANS. 2007.
[25] Cour Architecture fonctionnelle d’un système communicant, Transmission série : Le bus
SPI
Page 86
Annexe
Schéma simplifié de la carte Arduino UNO
Page 80
Caractéristiques d’Arduino Uno :
Tension nominale: 12 V
Couple nominal: 1.5kg.cm
Vitesse nominale: 170 RPM
Courant nominal: 530mA
Vitesse à vide: 216
Courant à vide: 150mA
Décrochage courant: 2.5A
Puissance nominale: 4.22 W
Codeur coups par Drive l'arbre tournant: 360
Page 81
Le moteur EMG30 est fourni avec un connecteur JST à 6 voies
Page 82
(1) GND : masse « marron »
(2) VCC : 3.3V « rouge »
(3) CE (Pin controls RX / TX) : résistance 10 kΩ : digital pin8 « vert »
(4) CSN (Chip select) : résistance 10 kΩ : digital pin7 « bleu »
(5) SCK --> résistance 10 kΩ : digital pin13 « blanc »
(6) MOSI --> résistance 10 kΩ : digital pin11 « noir »
(7) MISO --> digital pin12 « jaune »
(8) IRQ --> non utilisé « orange »
Page 83
Schéma de la carte RedBoard
Caractéristiques:
- alimentation: via port USB ou 7 à 15 V sur connecteur alimenté
- microprocesseur: ATMega328
- mémoire flash: 32 kB
- mémoire SRAM: 2 kB
- mémoire EEPROM: 1 kB
- 14 broches d'E/S dont 6 PWM
- 6 entrées analogiques 10 bits
- intensité par E/S: 40 mA
- cadencement: 16 MHz
- bus série, I2C et SPI
- gestion des interruptions
- fiche mini-USB
- dimensions: 70 x 53 x 13 mm
Page 84