Vous êtes sur la page 1sur 94

[Tapez un texte]

1
Partie I : ...................................................................................................................................... 6
Phase dtude et planification .................................................................................................... 6
Chapitre I : Introduction la robotique ............................................................................................ 7
I. Introduction : ......................................................................................................................... 7
II. Composition des systmes robotiques : ............................................................................. 8
1) Les processeurs embarqus: ........................................................................................... 9
2) Les capteurs : ................................................................................................................ 10
3) Les systmes de vision : ............................................................................................... 12
4) Les effecteurs ............................................................................................................... 14
5) Les systmes de locomotion :....................................................................................... 14
6) Systmes de communication : ...................................................................................... 16
III. Les fonctions de la robotique ........................................................................................... 17
Chapitre II : Etude thorique et Inception ...................................................................................... 18
I. Introduction : ....................................................................................................................... 18
II. Mise en contexte: ............................................................................................................. 18
1) Principe et fonctionnalits du safety-bot : .................................................................... 18
2) Schma explicatif du projet : ........................................................................................ 19
III. Etude dtaille du systme informatique embarqu sur le Safety-bot : ........................... 20
1) Systme de communication par WIFI : ........................................................................ 20
2) Systme de traitement : ................................................................................................ 21
3) Les entres /Sorties : .................................................................................................... 21
IV. Etude de la cinmatique du robot et de la commande des moteurs : ............................... 22
1) Commande des moteurs par PWM : ............................................................................ 22
2) Etude de la cinmatique du robot: ................................................................................ 22
V. Architecture matrielle adopte : ..................................................................................... 25
Chapitre III : Gestion de projet et planification ............................................................................. 27
I. Introduction : ....................................................................................................................... 27
II. Structure du projet et planification : ................................................................................ 28
1) La partie commande du robot : .............................................................................. 28
2) La partie Tlsurveillance et vision : ..................................................................... 28
3) La partie Construction et intgration : .................................................................... 28
4) Diagramme de gantt : ................................................................................................... 29
III. Conclusion ....................................................................................................................... 30
[Tapez un texte]



2
Partie II : ................................................................................................................................... 31
Commande du robot ................................................................................................................. 31
Chapitre I : Phase dtude et de modlisation ................................................................................ 32
I. Introduction : ....................................................................................................................... 32
II. Transmission des donnes: .............................................................................................. 33
1) Introduction sur la programmation socket : ................................................................. 33
2) Architecture Client/Serveur : ....................................................................................... 33
III. Carte lectronique utilise : ............................................................................................. 33
1) Description de la carte lectronique utilise : .............................................................. 33
2) Mode de fonctionnement de la carte : .......................................................................... 34
IV. Spcification gnrale de la partie commande : .............................................................. 35
Chapitre II : Phase de conception ................................................................................................... 37
I. Introduction : ....................................................................................................................... 37
II. Diagrammes dtats/Transitions et activits : .................................................................. 37
III. Mode de contrle du robot : ............................................................................................. 39
IV. Mode autonome : Excuter un circuit prenregistr : ...................................................... 41
V. Diagramme des classes : .................................................................................................. 42
VI. Elaboration de la base de donnes : ................................................................................. 44
1) Besoins : ....................................................................................................................... 44
2) Liste des donnes : ....................................................................................................... 44
3) Dictionnaire des donnes ............................................................................................. 45
4) Schma logique des donnes : ...................................................................................... 45
5) Modle relationnel : ..................................................................................................... 46
VII. Conclusion : ..................................................................................................................... 46
Chapitre III : Phase de ralisation .................................................................................................. 47
I. Introduction ......................................................................................................................... 47
II. Environnement logiciel .................................................................................................... 47
1) Rational Rose ............................................................................................................... 48
2) NetBeans ...................................................................................................................... 48
3) PostgreSQL .................................................................................................................. 48
4) Qt Jambi ....................................................................................................................... 49
5) La mise en place dune connexion rseau Ad-hoc ....................................................... 49
6) La cration et la connexion la base de donnes ......................................................... 51
[Tapez un texte]



3
III. De lmission de lordre la carte : .............................................................................. 53
IV. Afficher le chemin : ......................................................................................................... 57
V. Conclusion : ..................................................................................................................... 58
Partie III : ................................................................................................................................. 59
Tlsurveillance et vision ......................................................................................................... 59
Chapitre I Analyse Fonctionnelle .................................................................................................. 60
I. Introduction : ....................................................................................................................... 60
II. Diagrammes de cas dutilisation : .................................................................................... 61
Chapitre II : Conception ................................................................................................................. 64
I. Introduction : ....................................................................................................................... 64
II. Diagrammes de squences : ............................................................................................. 64
III. Diagrammes dactivits : ................................................................................................. 68
Chapitre III : Ralisation ................................................................................................................ 72
I. Les techniques de dtection du mouvement : ...................................................................... 72
1) Introduction : ................................................................................................................ 72
2) Techniques de Dtection du mouvement : ................................................................... 73
3) Soustraction de limage de fond : ................................................................................. 74
4) Mise jour de limage de fond : .................................................................................. 76
II. Transmission de donnes : ............................................................................................... 78
1) Introduction : ................................................................................................................ 78
2) Transmission de flux vido : ........................................................................................ 78
3) Importation de donnes : .............................................................................................. 80
III. Mode autonome : ............................................................................................................. 81
IV. Conclusion : ..................................................................................................................... 82
Partie IV : Phase dintgration ................................................................................................. 83
I. Interfaces de lapplication : ................................................................................................. 84
1) Menu principal : ........................................................................................................... 84
2) Mode autonome : .......................................................................................................... 85
II. Mise en uvre du Robot : ................................................................................................ 85


[Tapez un texte]



4

Introduction gnrale



Prsente dans tous les secteurs, linformatique simpose comme une discipline
scientifique pluridisciplinaire et dont les domaines dapplication restent trs nombreux. En effet,
parmi les diffrentes branches informatiques on peut citer linformatique scientifique,
linformatique de gestion, lingnierie des connaissances ou encore les systmes embarqus. Les
diffrents domaines dapplication vont de la biologie avec la bioinformatique laronautique et
lespace avec les systmes de transmission satellitaires ou lavionique en passant par la gestion du
flux dinformation en entreprise avec lingnierie des systmes dinformation.

Parmi les domaines dapplication en plein essor, lindustrie de la robotique simpose
comme lune des plus prometteuses. Il y a une vingtaine dannes, la robotique sest dveloppe
initialement dans le domaine manufacturier sous forme de bras manipulateurs destins des tches
de soudure, de peinture, de manutention, dassemblage. Cette robotique, dite industrielle, a permis
un accroissement important de la productivit et de la flexibilit des ateliers de production en
soulageant lhomme de travaux pnibles.
Toutefois, lunivers de la production est relativement bien structur et dterministe, si bien que le
robot industriel peut travailler le plus souvent "en boucle ouverte" par rapport son environnement.

Au-del de lactivit manufacturire, la robotique a diffus dans de nombreux autres
domaines o lenvironnement est moins bien connu, voire incertain ou mme hostile. Cest le cas
par exemple en robotique agricole o les tracteurs robotiss voluent dans un environnement naturel
peu structur avec des conditions dadhrence trs variables, mais aussi dans les domaines du
nuclaire, de la route automatise, de la robotique spatiale et sous-marine, sans oublier la robotique
humanode.




La robotique est par essence une discipline transversale qui met contribution lessentiel
des domaines scientifiques des sciences de lingnieur : la mcanique au niveau des modles des
systmes poly-articuls, de la locomotion et de la prhension, lautomatique pour la planification de
[Tapez un texte]



5
trajectoires et la commande en boucle ouverte ou ferme, llectronique pour limplmentation des
contrleurs en temps rel et linstrumentation, linformatique au niveau du traitement des donnes
capteurs et des langages de programmation, la vision par ordinateur et le traitement dimages
jusquaux sciences sociales et politiques qui doivent prendre en compte lirrversibilit du progrs
technique dans lorganisation des socits humaines du futur.

Attirs par cet aspect gnraliste et pluridisciplinaire nous avons dcid de nous lancer le
dfi de concevoir et dvelopper un robot. A travers ce robot nous voulions appliquer lensemble des
connaissances acquises lESTI et nous ouvrir sur dautres comptences et connaissances
scientifiques comme limagerie numrique, llectronique ou mme la mcanique.

Nous avons dcompos ce rapport en 4 parties, qui dcrivent lenchainement logique que
nous avons adopt afin de mener bien ce projet. Dans la premire partie nous allons voquer
ltude que nous avons faite du domaine de la robotique ainsi que la spcification du projet quon
en a dduite. Dans les deux autres parties nous allons aborder la conception et la ralisation des
deux modules qui composent notre Robot.













[Tapez un texte]



6



Partie I :
Phase dtude et planification

















[Tapez un texte]



7
Chapitre I : Introduction la robotique

I. Introduction :
La robotique est un domaine dont limportance crot danne en anne, et qui est considre comme
lun des domaines scientifiques et industriels les plus stratgiques au niveau mondial. Plusieurs
centaines dentreprises et de multinationales se spcialisent dans la recherche et la fabrication du
matriel de robotique. De plus, la robotique trouve son application dans des champs de recherche
trs varis comme la mdecine, lastrophysique, les tlcommunications, le transport et la
production de matriels et dquipements de haute technologie.
La robotique regroupe un trs vaste domaine dactivits du gnie humain. Plus de 700 000 robots
sont l'uvre aujourdhui dans lindustrie mondiale et des milliers dautres sont utiliss pour les
sciences de lthologie, de la mdecine et de la recherche spatiale.
peine ge de cinquante ans, la robotique profite de la progression rapide des micros technologies
et des nanotechnologies pour voluer vers une forme dintelligence artificielle qui dpasse
limagination des plus prolifiques auteurs de science-fiction.
Pourtant, cest un auteur de science-fiction, Isaac Asimov (1926-1996), que lon doit le terme
robotique et les trois lois qui doivent rgir la fabrication des robots.
Premire loi : Un robot ne peut porter atteinte un tre humain ni, restant passif, laisser cet
tre humain expos au danger.
Deuxime loi : Un robot doit obir aux ordres donns par les tres humains, sauf si de tels
ordres sont en contradiction avec la premire loi.
Troisime loi : Un robot doit protger son existence dans la mesure o cette protection nest
pas en contradiction avec la premire et la deuxime loi.
Ainsi, la robotique est dfinie comme devant servir et protger ltre humain. Nous pourrions aussi
ajouter : et sen inspirer. Car, en comparant les fonctions humaines et celles des systmes
robotiques existants, nous dcouvrons que les chercheurs et les inventeurs sinspirent depuis
toujours de la physiologie humaine, que ce soit pour crer des machines simples, des robots
industriels ou des androdes.
La robotique est ne, il y a trs longtemps, du dsir des humains de se dpasser. Aprs avoir invent
des machines pour se servir et se protger, l'humain a voulu aller plus loin. Jusque dans lespace,
mme.



[Tapez un texte]



8
II. Composition des systmes robotiques :
Un robot est une machine complexe, parce quelle peut apprendre faire des travaux rptitifs,
dangereux ou aller dans des endroits inaccessibles (trs petits) ou hostiles (comme dans lespace ou
sous la mer). Le robot est donc une machine ou un dispositif qui fonctionne de faon automatique
ou en rponse une commande distance. Un grille-pain automatique ou un four micro-ondes
sont des robots au mme titre que le robot manipulateur de la Station spatiale internationale. Les
robots peuvent presque tout faire : respirer des parfums, dtecter des produits dfectueux dans une
chane de montage, voir comme un il humain, assembler des pices compliques avec minutie
et perfection. Il y a aussi des robots dits intelligents , capables de sinstruire, de travailler et de
prendre des dcisions.
La robotique est ltude et la technologie des robots. Elle permet dlaborer des mcanismes
automatiss capables de remplacer ltre humain dans certaines fonctions. On peut classer les
systmes qui composent les robots en six grandes familles, qui sont semblables aux fonctions du
corps humains :
Le systme humain Le systme robotique
Fonctions
Le cerveau Les processeurs embarqus
Ils ont des fonctions de
direction des oprations.
Exemple : Les
microcontrleurs industriels
La peau, le nez, les oreilles,
les papilles
Les capteurs
Ils permettent de capter de
linformation tactile,
lumineuse ou sonore.
Les yeux Les systmes de vision
Ils fonctionnent avec des
signaux optiques, capables de
voir . Exemple : une
webcam.
Les bras, les mains Les effecteurs
Ils excutent toutes les
fonctions de manipulation ou
de soutien doutils : pinces,
perceuses, perches,
marteaux, balais, etc.
Les pieds Les systmes de transport
Ils utilisent des mcanismes
relis au mouvement : roues,
pieds, ailes, hlices, fuses,
etc.
[Tapez un texte]



9
Scientifiquement non
identifi ce jour chez
lhumain !
Les systmes de
tlcommunications
Ils servent communiquer ou
agir distance. Exemple :
le tlphone, lInternet, le
tlcopieur.
Tableau I : Analogie Homme/ Robot


1) Les processeurs embarqus:
Le processeur est lquivalent du cerveau en robotique. Il contrle, dcide, oriente et interprte les
programmes et commande les actions. Les ordinateurs, les puces avec mmoire, les systmes
informatiques sont des processeurs. Lorsque ces appareils sont minuscules, on les nomme
microprocesseurs.


Figure I.II.1 : microprocesseurs

Pour construire une habitation dans lespace comme la station spatiale, le cerveau humain doit
dployer des prodiges dimagination et de logique. Mais aujourdhui, il nest plus seul. Des
ordinateurs superpuissants font pour lui les calculs les plus complexes, excutent des programmes
haute vitesse commandant de nombreux systmes robotiques. Les plus rcents systmes robotiques
sont si petits quils sont pratiquement invisibles! Bientt, ces nano machines vont permettre de
construire des usines microscopiques et des robots qui nagent dans les artres et les rparent! Ainsi,
la taille et le poids des interfaces dordinateur se rduisent de plus en plus, ce qui est un avantage
fabuleux dans lespace.
Les styles architecturaux de ces processeurs varient selon la fonction et le domaine dapplication du
robot. Parmi les processeurs les plus utiliss on a :
Les processeurs DSP : Principalement utilis dans le traitement numrique du signal. Les DSP
sont utiliss dans la plupart des applications du traitement numrique du signal en temps rel.
Exemple : Robot contrl distance via une connexion WIFI.
[Tapez un texte]



10

Les processeurs ARM : Ce sont des processeurs architecture RISC. les processeurs ARM
font partie des processeurs dominants sur le march de linformatique embarque en
particuliers dans le secteur de la tlphonie mobile et les tablettes.

Les microcontrleurs : Un microcontrleur se prsente sous la forme dun circuit intgr
runissant tous les lments dune structure base de microprocesseur. Voici gnralement
ce que lon trouve lintrieur dun tel composant :
Un microprocesseur (C.P.U)
De la mmoire de donne (RAM et EEPROM)
De la mmoire programme (ROM, OTPROM, UVPROM ou EEPROM)
Des interfaces parallles pour la connexion des entres / sorties
Des interfaces sries (synchrone ou asynchrone) pour le dialogue avec dautres
units
Des timers pour gnrer ou mesurer des signaux avec une grande prcision
temporelle
Parmi les circuits imprims dans lesquels on peut trouver des microcontrleurs, et qui sont trs
utiliss en robotique, on peut citer les modules Arduino.
Les circuits logiques programmables (FPGA) : Ce type de produit peut intgrer dans un seul
circuit plusieurs fonctions logiques programmables par lutilisateur. Sa mise en uvre se fait
trs facilement laide dun programmateur, dun micro-ordinateur et dun logiciel adapt.
2) Les capteurs :
Les capteurs sont des systmes permettant au robot de recueillir de linformation dans le milieu qui
lentoure. Il y a des capteurs tactiles (toucher), sonores, lumineux et calorifiques (chaleur). Le
systme de vision artificielle est une version part de ce type de systme.
Les capteurs sapparentent beaucoup nos sens. De fait, nos mains, qui peuvent toucher et ressentir
la chaleur, nos oreilles, qui peuvent entendre, nos yeux, qui peuvent voir, et mme notre nez, qui
peut sentir, sont de parfaits exemples de capteurs.
Nos sens captent des sensations et les transmettent notre cerveau, notre processeur . On voit
bien que lhumain a vraiment conu le robot pour quil lui ressemble... en quelque sorte!
Voici un aperu des types de capteurs quon peut trouver dans lindustrie de la robotique :




[Tapez un texte]



11



LES CAPTEURS LES PLUS FREQUENTS...
Inductif.
Produisent dans l'axe du capteur un champ magntique oscillant.
Ce champ est gnr par systme constitu d'une selet d'une
capacit monte en parallle. Lorsqu'un objet mtallique pntre
dans ce champ, il y a perturbation de ce champ, attnuation du
champ oscillant.
Capacitif.
Capteurs de proximit qui permettent de dtecter des objets
mtalliques ou isolants. Lorsqu'un objet entre dans le champ de
dtection des lectrodes sensibles du capteur, la frquence des
oscillations est modifie en mme temps que la capacit de
couplage du condensateur.
Capteur photolectrique ou
optique.
se compose d'un metteur de lumire associ un rcepteur. La
dtection d'un objet se fait par coupure du faisceau lumineux
Capteur de position.
Ce sont des capteurs contact. Ils peuvent tre quipe d'un galet,
d'une tige souple, d'une bille. L'information donne par ce type de
capteur est de type tout ou rien et peut tre lectrique ou
pneumatique.
Capteur ILS (Interrupteur
Lame Souple)
Un capteur ILS est un capteur de proximit compos d'une lame
souple sensible la prsence d'un champ magntique mobile.
Lorsque le champ se trouve sous la lame, il ferme le contact du
circuit provoquant la commutation du capteur. Ce capteur se monte
directement sur un vrin et permet de dtecter des positions autres
que les positions extrmes. Pour utiliser ce type de capteur, il est
ncessaire d'utiliser un vrin comportant un aimant sur le piston.
Capteurs fuite.
Les capteurs fuite sont des capteurs de contact. Le contact avec
l'objet dtecter peut se faire soit par une tige souple, soit par une
bille. Pour pouvoir fonctionner correctement, ces capteurs doivent
tre coupls avec un relais pour capteur fuite. Le capteur est
aliment en pression par le relais. L'air peut alors s'chapper de ce
capteur par un orifice prvu cet effet. Lorsque la bille ou la lame
souple est dplace dans son logement, elle obture l'orifice
d'vacuation d'air et le relais pour capteur fuite se dclenche et
met un signal la pression industrielle.
Capteur de temprature :
pyromtre, thermomtre, sonde PT100, thermocouple,
thermistance...
Capteur de pression :
tube de Bourdon, capsule anrode, pizo-lectrique, corde
vibrante, baromtre, hypsomtre...
Capteur de lumire :
photodiode ou phototransistor, capteur photographique, cellule
photolectrique...
Capteur de dbit :
dbitmtre turbine, roues ovales, plaque orifice, tube de Pitot,
dbitmtre effet vortex, dbitmtre, lectromagntique,
dbitmtre Venturi, dbitmtre ultrasons, dbitmtre ionique,
dbitmtre massique...
Capteur de courant : Capteur de courant effet Hall, Shunt...
Capteur de son : microphone, hydrophone...
[Tapez un texte]



12



3) Les systmes de vision :
Les systmes de vision artificielle, tout comme lil humain, recueillent des signaux optiques. Ils
peuvent voir dautres parties du spectre lectromagntique tel que les hyperfrquences et
linfrarouge, contrairement notre il.
Par exemple le systme canadien de vision spatial, mis bord des navettes et de la Station spatiale
internationale, fournit en temps rel des donnes sur lorientation, lemplacement et la position dans
lespace dun objet. Sa prcision est telle quil peut dire si lobjet avance, recule ou tourne, en
utilisant des repres visuels synthtiques, puisque dans un environnement comme lespace, il ny a
pas de repres naturels pour identifier o se trouvent le haut et le bas.
Parmi les disciplines connexes qui nous permettent dextraire de linformation ou partir dune
suite dimage on a :
La reconnaissance des formes : Le problme que cherche rsoudre la reconnaissance des
formes est d'associer une tiquette une donne qui peut se prsenter sous forme d'une image
ou d'un signal. Des donnes peuvent recevoir la mme tiquette, ces donnes sont les
ralisations ou les exemplaires de la classe identifie par l'tiquette. Par exemple, le son /a/
prononc par diffrents locuteurs conduit des signaux diffrents mais ces diffrences ne sont
pas significatives du point de vue de l'identification du son, ces signaux sont des ralisations
de la classe /a/. De mme, l'criture manuscrite du caractre A varie d'un scripteur l'autre
mais le lecteur identifiera le caractre A pour chacune de ces ralisations.
Des mthodes gnrales ont t dveloppes en reconnaissance des formes pour extraire
automatiquement des informations des donnes sensibles afin de caractriser les classes de
formes (apprentissage) et d'assigner automatiquement des donnes ces classes
(reconnaissance). La mise en uvre de ces mthodes gnrales pour des problmes
particuliers amne introduire la notion de processus de reconnaissance qui pose la question
de l'intgration des mthodes de la reconnaissance de formes dans un systme qui a pour but
de reconnatre des formes.
Paralllement aux travaux sur les mthodes de reconnaissance, se dveloppaient le traitement
d'image, la vision par ordinateur, et le traitement de la parole. Ces domaines ont focalis le
problme de la reconnaissance sur des donnes spcifiques, mais par ailleurs ils ont permis de
situer la reconnaissance dans un processus plus vaste d'interprtation d'image ou de
comprhension de la parole impliquant des niveaux de perception et des connaissances
propres au domaine.
Vision industrielle : La vision industrielle est utilise au niveau des chaines de production afin
de contrler la cadence de production ou encore grer le flux dobjet au niveau de ces chaines.
Par ailleurs la vision industrielle peut tre utilise dans la robotique non dterministe o la
machine doit prendre une dcision en fonction des vnements auxquelles elle est confronte.

Parmi les applications de la vision par ordinateur au domaine de la robotique on peut citer :
Tableau II : Les types de capteurs

[Tapez un texte]



13
vitement d'obstacle
reconstruction 3D
environnement non structur / hostile
temps rel primordial
Le system de vision varie selon le domaine dapplication, le milieu physique et les fonctions du
robot.


Phnomne Physique Grandeur mesure Capteur

mission et rflexion
de la lumire visible
Rflectance, luminance,...
CCD, CMOS,
Barrettes CCD,...

Rayonnement
infrarouge
Luminance IR (chaleur), ... Bolomtres,...

cho ultrasonore
Distance, densit de tissus,...
chographie,
sonar,

Rsonance magntique
Prsence d'un corps
chimique,...
IRM, RMN,...

cho lectromagntique
Distance, spcularit de
surfaces,
Radar, SAR,...
Absorption des rayons X Densit de tissus,...
Radiographie,
tomographie,...

Tableau III : Phnomnes physiques, image et capteurs
[Tapez un texte]



14
4) Les effecteurs
Dans le corps humain, les effecteurs sont les messagers qui ragissent quand un des sens (capteurs)
demande une action. En robotique, les effecteurs effectuent les tches manuelles demandes
par lutilisateur laide de leurs terminaisons-outils. Exemple : Bras manipulateur.

5) Les systmes de locomotion :
Pour vous dplacer dune pice lautre dans la maison, vous avez le choix de marcher, ramper,
sauter ou encore de vous y prendre dune multitude d'autres faons. Lorsqu'on fabrique un robot, il
est important de dterminer comment celui-ci se dplacera. Certains robots sont munis de roues,
comme les tracteurs. Dautres font partie dune chane de montage, ce qui signifie quils demeurent
au mme endroit pendant que les objets qui sont fabriqus, ou rpars se dplacent sur un tapis
roulant.
Concernant la robotique mobiles voici un chantillon des bases mobiles les plus utilises :
Les plateformes diffrentielles :


Figure I.II.5.a : Pioneer 2 DX de la socit ActivMedia
Une des configurations les plus utilises pour les robots mobiles dintrieur est la configuration
diffrentielle qui comporte deux roues commandes indpendamment. Une ou plusieurs roues folles
sont ajoutes lavant ou larrire du robot pour assurer sa stabilit. Cette plate-forme est trs
simple commander, puisquil suffit de spcifier les vitesses des deux roues, et permet de plus au
robot de tourner sur place.






L
V


r

1
Figure I.II.5.b : Exemple de plate-forme diffrentielle

[Tapez un texte]



15
Lestimation du dplacement par odomtrie est galement trs simple partir de la mesure des
vitesses de rotation des deux roues 1 et 2. Les vitesses de translation v et de rotation sont en
effet donnes par :
V= (1r + 2r)/2
= (1r - 2r)/2L
Ce type de plate-forme peut galement tre utilis avec des chenilles ce qui fournit une capacit de
franchissement de petits obstacles intressante Ces plates-formes peuvent ainsi tre utilises en
milieu urbain, ou dans des dcombres. Lutilisation de chenilles conduit cependant une odomtrie
trs bruite cause du contact mal dfini entre les chenilles et le sol.

Les plates-formes omnidirectionnelles :
Les plates-formes omnidirectionnelles permettent de dcoupler de manire encore plus nette le
contrle de la rotation et de la translation dun robot. Elles utilisent pour cela 3 ou quatre roues qui
tournent la mme vitesse pour fournir une translation et un mcanisme qui permet dorienter
simultanment ces roues dans la direction du dplacement souhaite. Le corps du robot lui-mme
neffectue pas de rotation mais uniquement des translations. Ce systme permet un contrle trs
simple et relativement rapide car les changement de direction ne concernent que les roues et
peuvent donc se faire trs vite. Par contre ces plateformes sont relativement limites en capacit de
franchissement et requirent un sol trs plan.










Figure I.II.5.c : Exemple de plate-forme diffrentielle
Les plates-formes non holonomes :
[Tapez un texte]



16
Des plates-formes non holonomes, de type voiture, sont galement utilises en robotique mobile.
Ces plates-formes sont toutefois plus difficiles commander car elles ne peuvent pas tourner sur
place et doivent manuvrer, ce qui peut tre difficile dans des environnements encombrs.





Figure I.II.5.d : Exemple de plate-forme non holonome.
Les plateformes pattes :
Des plates-formes deux, quatre ou six pattes peuvent galement tre utilises. Les plates-formes
six pattes sont relativement pratiques car le robot est en quilibre permanent, ce qui facilite le
contrle. Les plates-formes deux ou quatre pattes sont plus complexes commander et le simple
contrle de la stabilit et dune allure de marche correcte reste aujourdhui difficile, ce qui les
rend en gnral relativement lentes. Lodomtrie de ce type de plates-formes est de plus
gnralement de trs faible qualit. Ces diffrents facteurs font que ces plateformes sont rarement
utilises quand lapplication vise a un besoin prcis de positionnement et de navigation. De telles
plates-formes commencent cependant apparatre relativement grande chelle (par exemple le
robot Aibo de Sony) et peuvent tre utilises en conjonction avec certaines mthodes de
navigation prcises.
6) Systmes de communication :
Les systmes robotiques peuvent communiquer avec des ordinateurs, des tlphones portables, ou
encore avec dautres robot. Cette communication peut tre cble, comme elle peut se faire grce
aux signaux transmis dans lespace. Afin de rendre cette communication possible le robot dispose
de bus et autre systmes muni de protocoles de communication qui jouent le rle dinterfaces entre
le microprocesseur et le monde extrieur. Les bus et protocoles de communication les plus connu
sont :
Bus USB
Bus CAN
RS232
WIFI
Bluetooth
Bus Ethernet
Bus I2C
Zig-Bee

[Tapez un texte]



17
III. Les fonctions de la robotique
Les robots jouent un rle d'une importance cruciale dans nos vies. Et cette importance s'accrot
vue d'il! Il existe des milliers d'applications possibles la robotique et encore plus explorer. Les
robots sont dj largement utiliss dans les milieux hostiles afin de rduire les risques encourus par
les humains. On utilise aussi des robots dans les usines d'assemblage, de production, etc.
On se sert de robots pour effectuer certaines tches qui sont ennuyantes, rptitives ou qui
demandent une extrme prcision. Un robot ne se plaint jamais... Il ne s'endort ni ne mange non
plus!
Il existe presque autant de fonctions de la robotique qu'il existe de robots. Ils nous appuient dans
notre vie quotidienne, au travail, l'cole... partout!
Devant toutes ces perspectives, nous avons dbut notre projet par une phase dtude afin de dfinir
les fonctionnalits ainsi que larchitecture tant matrielle que logicielle de notre futur robot.

















[Tapez un texte]



18
Chapitre II : Etude thorique et Inception

I. Introduction :
Partant dun niveau dabstraction lev, nous allons voir dans ce chapitre les tapes par lesquelles
nous sommes passes pour aboutir une ide bien dfinie, qui est celle du robot de surveillance
contrl par ordinateur. Par ailleurs, vu quun robot peut tre considr comme un Systme
complexe , cette phase dtude nous a permis de dcomposer notre systme en un ensemble de
sous systmes dont linteraction permettrait daboutir au rsultat escompt. Grce aux diffrents
modles mathmatiques que nous avons utiliss nous avons pu choisir les principaux composants
du robot en loccurrence ceux des systmes lectroniques et mcaniques. La partie Informatique
quand elle nous permis de commander le robot tout en lui procurant une certaine forme
dintelligence, lanalyse fonctionnelle et la conception des modules informatiques dont est
compos le systme informatique seront dtailles dans les parties 2 et 3 du rapport .

II. Mise en contexte:
Notre dmarche de conception et ralisation dun robot de surveillance contrl par ordinateur est
une dmarche personnelle travers laquelle nous voulions mettre en application une grande partie
des connaissances que nous avions pu acqurir lESTI tout en explorant dautre domaines
scientifiques comme llectronique ou encore la mcanique.
1) Principe et fonctionnalits du safety-bot :

Principe : Safety-bot est un robot quip dune camera et pouvant tre command
distance via une connexion WIFI.

Fonctionnalits : Safety-bot peut tre contrl par lutilisateur distance dans un
environnement donn sans que celui-ci ne soit prsent sur le mme lieu que le robot. En effet
grce la camra embarque au bord du robot, celui-ci peut tre pilot grce aux images
transmises en temps rel au poste de commande, ainsi lutilisateur peut prendre les dcisions
ncessaires en se basant sur les images reues. Profitant de cette camra embarque et
voulant nous ouvrir sur le domaine du traitement de limage nous avons inclus une fonction
de dtection du mouvement permettant dalerter lutilisateur dun mouvement suspect
produit lorsque le robot est immobile et au moment o lutilisateur ntait pas devant son
centre de contrle. Nous avons aussi travaill sur un mode autonome. Ce mode procure au
robot une intelligence qui lui permet de dtecter un obstacle et lviter. Voici un rcapitulatif
de lensemble des fonctions du Safety-bot :

Commande distance via une connexion Wifi
Tlsurveillance
[Tapez un texte]



19
Dtection du mouvement et alerte dintrusion
Mode autonome grce une fonction de dtection dobstacles et une autre base
de circuit prenregistr.

2) Schma explicatif du projet :



Centre de contrle



Voies de communication
(Connexion WIFI ad-hoc)





Le robot (Safety-bot)




Figure II.II.2 : Schma explicatif de lacheminement de linformation
Messages N1 : Ces messages sont mis partir du centre de commandes vers le robot. ils se
dcomposent en deux catgories :
Messages de commande de robot (avancer, tourner droite, reculer.)
Messages de contrle de la camra (Ouvrir, fermer)

Ordinateur
Systme
Informatique
embarqu

Camera

1

4

Moteurs
2
3
[Tapez un texte]



20
Messages N2 : Ces messages sont les ordres directs envoys aux moteurs aprs traitement des
messages N1 au niveau de lunit de traitement embarque.
Messages N3 : Ces messages se dcomposent en deux catgories :
Ordres vers la camra
Images transmises de la camra vers lunit de traitement embarque.
Messages N4 : Ces messages reprsentent les images transmises en temps rel vers le centre
de contrle.

III. Etude dtaille du systme informatique embarqu sur le
Safety-bot :
Afin de pouvoir traiter les requtes envoyes depuis le poste de commande, le robot doit tre
muni dun rcepteur WIFI lui permettant dextraire linformation partir dun signal analogique.
Ensuite pour pouvoir transformer cette information en ordre effectif le robot besoin dun
microprocesseur qui, aprs avoir trait linformation, transmettra lordre directement la cible
travers une sortie spcifique. Ayant opt pour des moteurs courant continu, et pour pouvoir en
contrler la vitesse il tait ncessaire davoir un systme embarqu muni de sorties permettant ce
genre de manuvres.
De mme, afin de pouvoir traiter les images et les envoyer au poste contrle, le robot a besoin dun
microprocesseur assez puissant et dun metteur WIFI, dont la vitesse de modulation permet un
transfert haut dbit et ce pour avoir un ratio Images/seconde raisonnable.










1) Systme de communication par WI FI :
Afin de pouvoir communiquer distance avec le Safety-bot, il faut que celui-ci soit muni
dun systme de communication lui permettant dmettre et recevoir des donnes. Puisque nous avons
intgr une fonction de streaming vido notre projet, ce systme de communication doit proposer
Systme de communication par
WIFI

Systme de traitement de
linformation

Entres/Sorties adquates

Camra Moteurs
Figure II.III : Architecture abstraite du systme informatique Embarqu sur le
Safety-
[Tapez un texte]



21
un dbit de transmission assez lev. Cest ainsi que nous avons dcid dutiliser le protocole de
communication WIFI.

2) Systme de traitement :
Pour avoir une grande puissance de calcul deux possibilits se sont offertes nous :
Les kits de dveloppement embarqus : Ce sont des solutions embarques, gnralement
munies dun systme dexploitation embarqu type Linux embarqu ou Windows CE .
Ces kit permettent de dvelopper des applications diverses dans des domaines comme la
robotique, la domotique ou encore les transports. Au dbut nous avons trouv un kit de
dveloppement muni dun processeur ARM9 32bit et dun systme de transmission WIFI,
dune entre USB pour brancher une Webcam ainsi que de plusieurs sorties PWM trs utiles
pour faire fonctionner les moteurs (nous expliquerons leurs principes par la suite). Cest sur
cette solution que cest port notre intrt vu que le processeur offrait la puissance ncessaire
pour dvelopper nos diffrents modules, surtout celui de la dtection du mouvement.
Seulement lacquisition de ce genre de carte ncessite son importation depuis ltranger, ce
qui nous a pousss chercher une autre solution.


Un ordinateur portable (de prfrence lger) : Un ordinateur portable a plusieurs avantages.
La premire cest quil offre une puissance de calcul trs satisfaisante il peut tre muni dune
webcam intgre et du WIFI. En contre partie ordinateur noffre pas les sorties permettant de
commander les moteurs. Le choix de cette option nous a impos de rechercher un systme qui
joue le rle dinterface entre les effecteurs (Moteur) et lunit de traitement (Ordinateur). Ainsi
une carte qui, munie de deux sorties PWM et de huit sorties numriques, nous a permis
dinterfacer entre lordinateur et les moteurs. Nous allons tudier le signal PWM et voir son
utilit par la suite.

3) Les entres /Sorties :
Lacheminement de linformation travers notre systme, suppose lexistence dentres et de
sorties. Les entres et sorties dont nous avons besoin sont les suivantes :

Entre USB : pour brancher la camera sur le systme de traitement de linformation.
Sorties Analogiques PWM : pour faire varier la vitesse des moteurs
Sorties numriques : pour faire fonctionner les moteurs en mode tout ou rien.



[Tapez un texte]



22
IV. Etude de la cinmatique du robot et de la commande des
moteurs :
Pour pouvoir choisir les moteurs, le systme informatique embarqu ainsi que la
plateforme ncessaire, une tude fondamentale faisant appel quelques modles mathmatiques
tait ncessaire. En effet il ne fallait pas se trouver avec une carte ne permettant pas de commander
les moteurs avec une vitesse variable, ou des moteurs ne pouvant pas supporter le poids du robot.
1) Commande des moteurs par PWM :
Il est trs souvent ncessaire de faire varier la puissance transmise une charge. Par exemple,
l'intensit d'une lampe doit varier ou la vitesse d'un moteur doit tre rgle. La premire ide qui
vient l'esprit est de faire varier la tension ou le courant dans la charge. Mais il faut pour cela des
circuits lectroniques complexes. Il est gnralement beaucoup plus simple d'alterner les moments
o la puissance maximale est transmise la charge avec les moments o aucune puissance n'est
transmise.

Figure II.IV: Principe de PWM
Comme indiqu sur la figure, le signal est de priode constante, mais la dure de la partie active du
signal varie. Dans la premire partie, 25% de la puissance maximale est envoye la charge, vu que
le signal est 1 durant 25% du temps, alors qu'il est 0 le reste du temps. De mme, la
puissance passe 50% au milieu du trac et 75% sur la dernire partie.
La frquence du signal va dpendre de l'application. Pour commander une diode lumineuse, la
frquence doit tre suprieure 100Hz, pour que l'oeil humain ne voie pas le clignotement. Dans ce
cas, c'est bien l'il qui effectue l'intgration du signal pour en percevoir une valeur moyenne. Pour
un moteur courant continu, ce sont la fois l'inductance de son circuit lectrique et son inertie qui
participent cette intgration. Les frquences des signaux PWM peuvent aller couramment jusqu'
des centaines de kHz. Mais plus la frquence est leve, plus les pertes lectriques l'instant des
commutations sont importantes et peuvent dissiper de l'nergie dans les lments de commutation.

2) Etude de la cinmatique du robot:
Le choix du moteur qui correspond le plus nos besoins et qui fait dplacer le robot est tributaire du
calcul de la puissance ncessaire que doit avoir celui-ci.
Pour calculer la puissance du moteur, on a utilis le thorme de l'nergie cintique.
Ce thorme traduit la variation de l'nergie cintique entre l'instant 0 et l'instant t est gale la
somme des travaux des forces extrieures. Le travail d'une force est gal la multiplication du
[Tapez un texte]



23
vecteur force par le vecteur de dplacement...)
Mathmatiquement :


Avec :

Et :

Voici un schma simple pour visualiser le problme :






Alpha



Donc :

- La force moteur qui fait avancer le robot (force vers l'avant et parallle au sol : le robot monte
la pente). Le travail est positif car la force est dans le mme sens que le mouvement du robot :






- Le poids du robot qui a tendance lui faire descendre la pente. L'angle entre la verticale et la
F
R
P
[Tapez un texte]



24
force est gal l'angle de la pente Le travail est ngatif car le mouvement est en sens inverse de
la force :




D'aprs la formule, s'il n'y a pas de pente alors il n'y a pas de travail de la part de cette force.
Inversement, plus l'angle est grand, et plus le travail est important, il faudra donc un travail plus
important de la part du moteur pour faire avancer le robot.
Do :



Et donc :










De ce fait on connait la force F que doit fournir le moteur par lintermdiaire des roues pour une
vitesse v. Or un moteur fournit un couple :



On peut donc calculer la puissance ncessaire au moteur :

[Tapez un texte]



25


Lapplication des valeurs numriques selon les donnes correspondantes notre cas nous permet de
dterminer la puissance ncessaire dont a besoin notre moteur.

V. Architecture matrielle adopte :
Etant dans limpossibilit dacqurir kit de dveloppement embarqu, nous avons opt pour la
solution de lordinateur portable embarqu sur le robot et reli une carte lectronique qui servira
dinterface entre lordinateur et les moteurs. Pour la webcam nous avons la possibilit dutiliser
celle intgre lordinateur portable ou en brancher une, via le port USB. Voici le schma de
larchitecture du systme informatique embarqu sur notre robot :














[Tapez un texte]



26










Figure II.V: Architecture matrielle du robot




Transmission
dordres
Transmission
dimages
[Tapez un texte]



27
Chapitre III : Gestion de projet et planification

I. Introduction :

Vu la complexit du projet et linteraction entre ses diffrentes composantes, il nous a fallu trouver
une solution nous permettant de travailler en parallle sur les diffrents sous systmes du robot.
Cela permet de dcomposer le projet en plusieurs parties peu lies, ou indpendantes les unes des
autres. Cette modularit nous a permis de gagner beaucoup de temps et defforts.

















Figure II.I: Modularit du projet


Projet

Module 1
(quipe 1)


Module n
(quipe n)



Module 2
(quipe 2)


Rsultat
P
h
a
s
e

d

t
u
d
e


C
o
n
c
e
p
t
i
o
n

e
t

R

a
l
i
s
a
t
i
o
n


I
n
t

g
r
a
t
i
o
n

[Tapez un texte]



28
II. Structure du projet et planification :
Nous avons dcompos notre projet en plusieurs modules relativement indpendants afin de
parallliser notre travail et ainsi gagner en temps et en effort. Notre projet tant de dvelopper un
robot de tlsurveillance assist par ordinateur, nous avons dcid de diviser le travail en trois
grandes parties. La premire concerne la conception et ralisation de la partie commande du robot,
la deuxime partie concerne le systme de tlsurveillance et de vision du robot. Enfin la troisime
partie fut celle de la ralisation de la plateforme mobile du robot, sur laquelle allaient tre intgres
les autres parties.

1) La partie commande du robot :
Cette partie concerne la mise en place dun systme permettant de contrler les mouvements du
robot distance. En effet aprs la phase dtude thorique nous avions dcid de communiquer avec
notre robot en utilisant une connexion WIFI. La technique de communication utilise est la
programmation socket. Utilisant une carte lectronique munie dune DLL il fallait dvelopper
une application sur lordinateur embarqu sur le robot permettant de contrler et manipuler les
sorties de celle-ci en fonction du message reu de la part du centre de contrle.
La partie commande du robot est donc elle-mme dcompose en 3 modules :
Conception et ralisation de lapplication du centre de contrle
Conception et ralisation de lapplication embarque sur lordinateur du robot
Ralisation du module de communication par socket

2) La partie Tlsurveillance et vision :
Dans cette partie nous avons essay de rassembler tous les modules en rapport avec la manipulation
des images et leur transmission. En effet il nous fallait dvelopper un systme de transmission
dimages en temps rel afin davoir un ratio images/secondes nous permettant de contrler notre
robot sans lavoir dans notre champ de vision. Un autre module trs important est celui de la
dtection du mouvement qui nous permet de dtecter une intrusion dans le champ de la camra.
Enfin nous avions intgr une fonction appele mode autonome qui permet au robot dviter un
obstacle soudain qui pourrait se mettre au travers de son chemin.

3) La partie Construction et intgration :
Cest la partie ou on assemble tous les modules afin daboutir un rsultat final. Dans notre cas il
nous fallait construire une plateforme mobile au dessus de laquelle nous devions installer
lordinateur, la carte et les moteurs. Une fois la plateforme prte, il nous restait qu attendre la
finalisation des autres parties afin de les y intgrer.

[Tapez un texte]



29
4) Diagramme de gantt :


Figure III.II.a: Ensemble des tches




Figure III.II.b: Diagramme de gant


[Tapez un texte]



30
III. Conclusion

Dans cette partie, nous avons essay dintroduire et de mettre en contexte notre projet, en prsentant
les diffrents aspects thoriques tudis, et ce pour dgager une mthode de travail permettant de
raliser nos objectifs et mettre en uvre ce robot, tout en tenant en compte du temps disponible.
Nous avons aussi expliqu les raisons pour lesquelles nous avons divis ce travail en 3 parties qui
seront prsentes dans les pages qui suivent.
Dans la prochaine partie de ce rapport, nous allons nous intresser essentiellement tout ce qui est
en rapport avec la commande distance du robot, en expliquant le principe de transmission de
donnes par socket, le fonctionnement de la carte de contrle, ainsi que les diffrents dtails
concernant lacheminement des ordres de lutilisateur, partant de linterface et arrivant la carte de
contrle.


















[Tapez un texte]



31




Partie II :
Commande du robot
















[Tapez un texte]



32
Chapitre I : Phase dtude et de modlisation

I. Introduction :
La partie commande consiste dvelopper un robot mobile de surveillance, pilot distance par
connexion wifi. Sa commande est donc tributaire dune architecture client/serveur, en effet une
application cliente, situe sur lordinateur de commande, est connecte au robot serveur afin de le
piloter.

Nous avons durant trois mois rflchi aux fonctionnalits mettre en uvre, tenant compte de la
dure de temps disponible nous avons finalement dcid de retenir les fonctionnalits estimes
ralisables.

Initialement, notre objectif tait limit au contrle distance des mouvements dun robot. plus tard
il a t question dlargir les possibilits de contrle. Nous avons alors dcid de ne pas nous suffire
notre objectif initial, mais den rajouter dautres modes ou possibilits de commande savoir le
dplacement en mode autonome, en circuit prenregistr, ou en dtectant et vitant des obstacles.
Pour ce dernier cas, le dplacement du robot se fait indpendamment de lintervention de
lutilisateur.

Nous allons donc en premier lieu faire une pr-tude thorique sur la transmission de donnes par
socket, dcrire la carte lectronique utilise et prsenter ensuite la phase dtude et de modlisation
pour enfin traiter la phase de ralisation du centre de contrle du robot.



[Tapez un texte]



33
II. Transmission des donnes:

1) I ntroduction sur la programmation socket :
Le socket permet la communication entre divers processus aussi bien sur une mme machine qu'
travers un rseau TCP/IP.
On distingue deux modes de communication le mode connect et le mode non connect
Etant donne que le mode connect et plus garanti que celui du non connect, on a opt pour le
choix du mode connect qui utilise le protocole TCP et permet une communication fiable, do le
choix de ce protocole pour la transmission des ordres au robot.
2) Architecture Client/Serveur :
Un Socket client est un Socket qui se connecte sur un Socket serveur pour lui demander d'effectuer
des tches.
Principe de fonctionnement :
1) Cration dun "socket serveur" associ un port
2) Connexion au socket serveur situ au pc intgr au robot, en lui envoyant lordre de
sexcuter.
3) Communication client /serveur par sockets, tant que lutilisateur ne sest pas dconnect.


III. Carte lectronique utilise :
1) Description de la carte lectronique utilise :
Le module VM110 ou de Velleman est une carte dexprimentation USB fournissant des
entres/sorties pilotes depuis un ordinateur connect un PC. En effet grce cette carte, il est
possible de connecter les moteurs.
[Tapez un texte]



34

Carte K8055
Elle a les caractristiques suivantes :
5 entres numriques TTL 5V
2 entres analogiques
8 sorties numriques
2 sorties analogiques avec conversion analogique et PWM
2 compteurs
Pour accder aux ressources analogiques ou numriques de la carte, il suffit de programmer un
module en Java pour la contrler via une DLL fournie par le constructeur de la carte, contenant
toutes les fonctions et les procdures de la DLL.
2) Mode de fonctionnement de la carte :

2.1) Principe daccs une DLL depuis Java
Une DLL est considre comme une ressource "native", car il sagit dun binaire appelant des
ressources bas-niveau du systme dexploitation. Dans notre cas (DLL fournie par un constructeur),
il est impossible de recompiler le code pour indiquer quon souhaite utiliser JNI. Il faut donc
trouver une solution dinterface Java / natif qui laisse la DLL inchange.

2.2) Les oprations daccs aux fonctions de la carte:
Etudier la DLL cible pour connatre les fonctions quont trouvent sur le DataSheet de la
carte
Installer la DLL dans le rpertoire c :/Windows/system32
Crer une classe Java base sur JNative
Ecrire les oprations qui implmentent les accs chaque fonction de la DLL
Ecrire de nouvelles fonctions simplifies indpendantes de JNative
Compiler et tester le programme Java
[Tapez un texte]



35
IV. Spcification gnrale de la partie commande :
Nous considrons que lutilisateur est le commandant du robot, ainsi toutes les composantes du
systme de commande du robot fonctionnent selon les choix de lutilisateur. Cest dans ce contexte
que la notion de mode de commande est retenue. Lutilisateur dispose de divers choix de
contrles du robot, il peut le faire en temps rel en indiquant, la direction prendre et la vitesse de
mouvement tenir, ou le garder en mode autonome avec la possibilit de choisir un des deux sous
modes suivants:
1) Suivi dun circuit enregistr au pralable par lutilisateur sur la base de donnes, et ce
en simulant une succession bien prcise de mouvements

2) Dplacement libre du robot une vitesse fixe et inchange, avec dtection des
obstacles laide dune camra et vitement de ces derniers (ce sous-mode est expliqu
dans la partie imagerie)

Ceci aboutit donc au diagramme de cas dutilisations gnral suivant :

[Tapez un texte]



36
Le diagramme suivant dcrit l'interaction entre l'utilisateur et le systme, en prsence d'une interface
intermdiaire.


En un premier temps, l'utilisateur doit s'authentifier, c'est sur l'interface qu'il va entrer ses
donnes de connexion pour quelles soient transfres au systme pour la vrification de validit.
Un principe similaire est adopt quand l'utilisateur choisit un mode de commande : le choix est
manifest par un appui sur un bouton de l'interface, puis il est transmit au systme qui excute le
code spcifique ce choix.







[Tapez un texte]



37
Chapitre II : Phase de conception

I. Introduction :
Dans ce chapitre, nous allons aborder avec plus de dtails, la commande du robot en fonction des
diffrents modes. Une description globale des diffrents tats possibles du robot sera succde
dune prsentation des choix de lutilisateur, pour enfin dtailler le fonctionnement de chaque
mode de commande.

II. Diagrammes dtats/Transitions et activits :
Ce diagramme dcrit les tats du systme qui varient en fonction des choix de l'utilisateur travers
l'interface.


Une fois la connexion au systme est tablie (authentification) lutilisateur choisi le mode
excuter, sachant que chaque mode propose un ensemble d'options qui lui sont propres (choix d'une
direction pour le mode contrle, choix d'un circuit dj enregistr pour le mode autonome). Il est
signaler lexistence doptions communes plusieurs modes (arrt du robot, enregistrement du
circuit). Ces tats communs sont accessibles partir de tous les modes. Il est remarquer que
plusieurs possibilits sont donnes l'utilisateur qui peut, par exemple, quitter ou changer de mode
son gr.
[Tapez un texte]



38

Ainsi l'utilisateur, passe par trois tats principaux : dconnect au dbut et la fin, connect aprs
authentification et commander le robot selon le mode choisi. Pour ce dernier tat, l'utilisateur peut
ce dconnecter directement comme il peut quitter le mode en restant connect, pour en choisir un
autre. Le tout est modlis par ce diagramme :

A partir de ces deux derniers diagrammes dtat/ transition, on peut dduire le diagramme dactivit
dcrivant les diffrents vnements possibles lors de la commande du robot.




[Tapez un texte]



39
III. Mode de contrle du robot :
Mode de contrle du robot :
Description : lutilisateur choisit le mode de contrle distance.
Les Acteurs : Lutilisateur
Pr-conditions : Obligation lutilisateur de sauthentifier
Scnario nominal :
Suite lauthentification, lutilisateur accde au mode de contrle distance pour ensuite piloter le
robot via linterface de direction.
Une chane contenant la direction et la vitesse de mouvement choisi par lutilisateur est envoye du
package client vers la classe socket en utilisant la fonction recep(). En effet, cest la classe
socket qui assure le transfert de donnes entre les classes client et serveur . Cette chane sera
ensuite traite par la classe action qui lenvoie dabord la classe Lecture Clavier pour
diviser la chane en 2 parties, une partie contenant la direction (en utilisant la fonction ordre() et
retourne une chaine c contenant seulement la direction) et une partie contenant la vitesse du
mouvement (en utilisant la fonction param() qui retourne une chaine p contenant la
vitesse). Ces 2 chanes seront ensuite transmises la classe mouvement qui, selon les valeurs des
chanes, se connecte la carte K8055D et active les sorties appropries chaque mouvement
comme le dcrit ce diagramme suivant:








Ce mode offre galement la possibilit dafficher le circuit parcouru par le robot une fois arrt.




[Tapez un texte]



40

Afficher le schma du circuit emprunt :
Description : lutilisateur choisit dafficher le chemin que le robot vient de parcourir.
Les Acteurs : Lutilisateur
Pr-conditions :
Lutilisateur doit sauthentifier
Le robot doit tre en tat darrt et avoir fait au moins un mouvement.

Scnario nominal :
Aprs la commande du robot, lutilisateur clique sur arrter robot , pour pouvoir afficher la
trajectoire parcourue et ce en cliquant sur le bouton afficher chemin . Une nouvelle interface
souvre et affiche la trajectoire.
Ce diagramme dcrit linteraction entre les diffrentes classes du package affichage du
chemin .

La classe principale main est celle qui interagit avec toutes les autres classes : Elle envoie dabord
la chane reue de lutilisateur (qui contient la direction et la vitesse dun mouvement donn) la
classe lecture clavier , qui va en extraire la direction et la retourner main , cette dernire la
transmet vers la classe chemin pour lajouter un tableau qui va englober, aprs la mise en arrt
du robot, toutes les trajectoires suivies. Ainsi une reprsentation des dplacements est gnre partir
de ce tableau, par la classe canvas , et affich ensuite sur linterface.
[Tapez un texte]



41









IV. Mode autonome : Excuter un circuit prenregistr :


Excuter circuit enregistr :
Description : lutilisateur donne lordre au robot dexcuter un circuit parmi les circuits dj
enregistrs.
Les Acteurs : Lutilisateur
Pr-conditions :
Lutilisateur doit sauthentifier
Il doit y avoir au moins un circuit enregistr

Scnario nominal :
Lutilisateur clique sur le bouton importer un chemin , une liste contenant les circuits
enregistrs dans la base de donnes saffiche, selon le choix de lutilisateur, le robot excute
lensemble des dplacements y affrents.
Cette liste des circuits est en effet cre par le serveur qui accde la base de donnes, il la
transfre linterface charge de son affichage lutilisateur. La dcomposition du circuit
choisi par lutilisateur en un ensemble de mouvements ainsi que lexcution successive de ces
mouvements est assure par le centre de commande du robot, ainsi expliqu par le diagramme
de squence suivant :



[Tapez un texte]



42

V. Diagramme des classes :

A partir de tous les scnarios dcrits dans les diagrammes des squences, on peut merger le
diagramme de classes technique suivant :















[Tapez un texte]



43









- La classe client contient une fonction main qui sera activ au clic de lutilisateur sur un bouton
de linterface du contrle. Cette fonction a pour rle denvoyer lordre de mouvement par
lutilisateur (sous forme de chaine) vers le serveur, via socket.
- La classe sock reoit la chane envoye par Client et la transmet vers le serveur.
- La classe serveur reoit la chane par socket et la transmet vers la partie ddie au mouvement.
- La classe lecture clavier transforme la chane contenant lordre du mouvement en 2 sous
chanes, une premire qui contient la direction du mouvement (avancer, reculer, tourner
droite) et une deuxime qui va contenir la vitesse du mouvement.
- La classe action va tre lintermdiaire entre les classes lecture clavier et mouvement.
- La classe mouvement reoit les deux sous chanes retournes par lecture clavier selon
lesquelles elle va activer les sorties de la carte.
- K8055D est la carte qui sont lis les moteurs du mouvement.
- La classe affichage contient la fonction main qui sera active quand l'utilisateur demande
d'afficher le chemin parcouru par le robot. Cette fonction rcupre de la classe Lecture Clavier
la partie de la chane de l'ordre de mouvement contenant la direction, puis l'envoie la classe
chemin, o elle sera ajout au chemin parcouru. Cette classe reoit aussi le dessin du circuit de
la classe Canvas pour l'afficher sur l'interface.
- La classe chemin contient un tableau o on sauvegarde successivement les mouvements
effectus par le robot, qui constituent le chemin parcouru.
- La classe canvas rcupre le chemin parcouru (le tableau) de la classe chemin une fois le
robot stopp par l'utilisateur. Elle contient une fonction paint qui, partir du tableau, gnre le
dessin du circuit parcouru par le robot. C'est ce dessin qui sera affich l'utilisateur.






[Tapez un texte]



44













VI. Elaboration de la base de donnes :
1) Besoins :
L'utilit majeure de notre base de donnes est qu'elle permet d'ajouter plus de fonctionnalits au
robot, ainsi que donner plus de dtails sur les vidos et les images captures par le robot.
En effet le principal atout de la base de donnes est l'enregistrement du chemin contenant
l'ensemble des dplacements parcourus par le robot.



2) Liste des donnes :
Nous avons trois entits videntes que sont :
Contenu_media
[Tapez un texte]



45
Chemin
Authentification

Dont les informations contenues dans ces entits sont :
Contenu_media Chemin Authentification
-Id_media
-Libelle
-Type
-Taille
-Dure
-Id_chemin
-circuit
-id_auth
-login
-password


3) Dictionnaire des donnes :


Lutilisation de Analyse SI nous a permis de construire le dictionnaire de donnes.
4) Schma logique des donnes :
Voici le schma relationnel rsultant

[Tapez un texte]



46


5) Modle relationnel :
Lapplication des rgles de passage du schma relationnel au modle relationnel nous dextraire les
tables suivantes :
contenu_media (id_media, libelle, type, taille, duree)
chemin (id_chemin, circuit)
authentification(id_auth,login,password)

Les attributs souligns dsignent les cls primaires de la table.


VII. Conclusion :
Au cours de ce chapitre nous avons abord la conception de lapplication en essayant de dtailler la
dmarche qui sera suivie pour la ralisation de cette partie. Vu la complexit de cette tche, nous
avons eu recours au formalisme UML. Cette tape est de nature claircir le rsultat final, ce qui
facilitera la tche de ralisation, objet du chapitre suivant.







[Tapez un texte]



47














Chapitre III : Phase de ralisation


I. Introduction
Aprs avoir spcifi les diffrents besoins, modlis les diffrentes parties qui constituent le
volet relatif au contrle du robot et expliqu le principe de transmission des donnes, nous passons
prsent la phase de ralisation. Nous prsentons dans une premire partie lenvironnement du
travail, pour ensuite expliciter la dmarche suivre pour crer la base de donnes et configurer un
rseau Ad-hoc. Pour finir, nous allons prsenter des aperus du fonctionnement des deux modes de
commande.

II. Environnement logiciel
[Tapez un texte]



48

1) Rational Rose
Rational Rose est un AGL compos dun ensemble doutils pour
assister le concepteur durant les phases danalyse, de conception
et de construction du logiciel. Il se base sur le formalisme UML.


2) NetBeans
NetBeans est un environnement de dveloppement intgr open
source dit par Sun. NetBeans permet de supporter plusieurs
langages (C++, Java, PHP, ) grce aux plugins quil intgre.
NetBeans est un logiciel multiplateforme et comprend les
caractristiques dun IDE moderne. [wikipdia]





3) PostgreSQL
PostgreSQL est un systme de gestion de base de
donnes relationnelle et objet (SGBDRO). C'est un outil
libre disponible selon les termes d'une licence de type
BSD.
Ce systme est concurrent d'autres systmes de gestion de
base de donnes, qu'ils soient libres (comme MySQL et
Firebird), ou propritaires (comme Oracle, Sybase, DB2
et Microsoft SQL Server). Comme les projets libres Apache et Linux, PostgreSQL n'est pas
contrl par une seule entreprise, mais est fond sur une communaut mondiale de dveloppeurs et
d'entreprises. [Wikipdia]

[Tapez un texte]



49
4) Qt J ambi
Qt Jambi est un framework Java permettant de crer
des applications riches bases sur la bibliothque
logicielle Qt. C'est la seule version de Qt utilisant un
autre langage de programmation que le C++ support
officiellement par Qt Software.Mme si Qt Jambi utilise
Java Native Interface (JNI) pour faire des appels la
bibliothque Qt C++, rien n'est prvu dans l'interface de
programmation pour qu'une application Qt Jambi puisse s'interfacer avec une application Qt C++.
[Wikipdia]

5) La mise en place dune connexion rseau Ad-hoc
a) Prsentation du rseau WiFi Ad-Hoc
Possdant deux ordinateurs quips dadaptateurs sans fil (cartes Wifi), et afin dassurer la
communication entre le PC1 reli au robot et le PC2 contenant lapplication. On a opt pour la mise
en place dun rseau Ad Hoc cest--dire gal gal qui ne ncessite pas lutilisation dun point
daccs.
b) Configuration du rseau Ad-Hoc
Afin de mettre en place le rseau Ad-Hoc il faut aller au Panneau de configuration pour
ensuite ouvrir le Centre Rseau et partage o on trouve loption Configurer une connexion ou
un rseau (voir limage ci-dessous).

Parmi les options de la liste qui va safficher, on choisit llment Mettre en place un rseau sans fil
ad hoc (ordinateur ordinateur) rseau (voir limage ci-dessous).

[Tapez un texte]



50

Sur lcran suivant on dfinit un nom de rseau et un mot de passe, il est galement possible
denregistrer le rseau en cochant la case Enregistrer ce rseau

Le rseau configur, la connexion peut tre trouve dans les rseaux sans fil de la fentre.

[Tapez un texte]



51
6) La cration et la connexion la base de donnes
c) Cration
Pour permettre une sauvegarde des donnes saisie par lutilisateur de lapplication Une base de
donnes doit tre cree, le systme de gestion de bases de donnes relationnelle PostgreSQL permet
la cration des diffrentes tables de la base de donnes.


Interface graphique PostgreSQL
Une fois les tables sont cres et la base est prte tre remplie, et pour quon puisse insrer,
modifier et mettre jour des donnes via lapplication, il est ncessaire de faire linterfaage entre
lIDE en loccurrence NetBeans et le SGBD donc PostgreSQL.

d) Prsentation de JDBC
L'API JDBC a t dveloppe pour permettre un programme de se connecter n'importe quelle
base de donnes en utilisant la mme syntaxe, c'est--dire que l'API JDBC est indpendante du
SGBD.
De plus, JDBC bnficie des avantages de Java, dont la portabilit du code, ce qui le rend
indpendant de la base de donnes et de la plate-forme sur laquelle il s'excute.
e) Laccs la base de donnes avec JDBC
Une application Java est intimement lie avec une base de donnes. A cet effet, il faut bien
videmment disposer, pour la base de donnes concerne, d'un pilote JDBC adquat, dans le cas de
PostgeSQL on doit charger le driver org.postgresql.Driver . Les instructions SQL sont
directement envoyes la base, qui son tour renvoie les rsultats par un biais tout aussi direct. La
base de donnes peut tre excute sur la machine locale (celle sur laquelle l'application Java
fonctionne) ou bien sur un ordinateur du rseau (Intranet ou Internet).
[Tapez un texte]



52

Schma explicatif de la connexion avec diffrents SGBD

f) Connexion
Suite la cration de la base sous PostgreSQL, il est ncessaire dtablir la connexion de la base de
donne avec java, le principe est analogue linstallation dune imprimante qui ncessite un driver,
de mme Netbeans utilise un driver pour se connecter la base de donnes. La connexion une
base de donnes avec Java, ncessite un fichier .jar qui correspond au pilote permettant la
connexion.


Intgration de lODBC sur NetBeans

[Tapez un texte]



53
Enfin JDBC met notre disposition un ensemble de classes qui nous permettent de nous connecter,
manipuler et nous dconnecter de la base de donnes.




III. De lmission de lordre la carte :
Nous allons prsent expliquer, travers un exemple, le fonctionnement du robot en mode
contrle distance . Nous allons prendre lexemple o lutilisateur envoie au robot lordre
davancer.

[Tapez un texte]



54



Linterface de commande affiche que lutilisateur donn lordre au robot davancer avec une
vitesse quantifie 76 (cette valeur est fixe selon la position du slider haut). Cet ordre est transmis
de linterface vers la classe client du code de contrle, sous forme dune chane comme indiqu sur
les lignes ci-dessous :

Lordre est transmis au serveur de contrle par socket. Le serveur le transmet son tour vers une
classe action o il sera trait et envoy vers la carte de contrle.
[Tapez un texte]



55

Lordre qui inclut la fois la direction et la vitesse du mouvement est contenu dans une seule
chane. Cette chane est donc transmise une classe LectureClavier, qui contient une fonction ordre
qui extrait la direction de la chane de lordre, et une fonction param qui en extrait la vitesse.

Ltape suivante consiste appeler une fonction de la classe mouvement, la fonction appeler
dpend de la direction du mouvement indique par lutilisateur (cest l o le rsultat de la fonction
ordre trouve son utilit), tout en passant en paramtre la vitesse de lordre galement (retourn par
la fonction param).
[Tapez un texte]



56


Les sorties numriques de la carte K8055D permettent, dans notre cas, de contrler le sens de la
rotation des moteurs. Quant aux sorties analogiques, elles contrlent la vitesse de rotation des
moteurs. Les deux moteurs menant les deux roues doivent tourner une mme vitesse pour que le
robot avance tout droit.





Activation
des sorties
PWM, en
rponse
lordre de
mouvement
[Tapez un texte]



57
IV. Afficher le chemin :
Linterface de contrle offre galement la possibilit dafficher le chemin parcouru par le robot
pendant la session de commande. En effet, chaque fois o lutilisateur envoie un ordre de
mouvement, la direction ainsi que la vitesse de ce mouvement (spars par les fonctions de la classe
Lecture Clavier) seront stocks dans un tableau statique contenu dans une classe Chemin.


Ce tableau sera utilis par la classe Canvas pour dessiner le chemin parcouru.

Ce dessin sera enfin affich lcran :

[Tapez un texte]



58




V. Conclusion :

Cette partie nous a permis de raliser la commande distance du robot via une connexion
sans fil. Une commande qui se prsente selon plusieurs modes en fonction du choix de lutilisateur.
Aussi nous avons expliqu comment transmettre les donnes entre deux pc par lintermdiaire des
sockets, ce volet sera aussi prsent dans la deuxime partie de notre projet, rserve laspect
imagerie.







[Tapez un texte]



59




Partie III :
Tlsurveillance et vision










[Tapez un texte]



60
Chapitre I Analyse Fonctionnelle

I. Introduction :

Notre projet fait appel deux grandes branches de l'informatique qui sont les systmes embarqus
d'une part et l'imagerie numrique d'une autre. Afin de rduire la complexit, engendre par la
difficult coordonner entre ces deux aspects, nous avons dcompos notre projet en deux modules,
l'un traitant l'aspect dveloppement base de dll et l'autre concernant le traitement de l'image et le
streaming vido. La communication entre le centre de commande et le robot est assure grce au
module de la programmation rseau. Ceci fait de la partie consacre la programmation rseau un
module fondamental de notre projet, grce auquel nous parvenons assurer une communication en
temps rel entre Safety-Bot et le PC central sur lequel application est excute. Au dbut du
projet, nous avons prvu lachat dune carte lectronique de dveloppement qui supporte une
connexion wifi. Cette carte tant base sur un systme dexploitation type linux embarqu, nous
avions entam la phase de documentation en matire de programmation rseau en langage C.
Mais pour plusieurs raisons nous navons pas pu nous procurer cette carte ainsi nous avons opter
pour que Safety-Bot soit menu dun PC au lieu de la carte ce qui nous viter de programmer
en C. Nous tions donc dans lobligation de reprendre la phase de documentation de nouveau.
Lide tait dassurer une connexion entre un client Java et un serveur MATLAB via des sockets
pour dclencher la dtection de mouvement puis entre un client java et un serveur Java afin de
transmettre le flux vido en streaming via le protocole RTP. En ce qui concerne la dtection de
mouvement, nous nous sommes trouvs face plusieurs choix techniques, il tait possible de
programmer soit en Java soit sous Matlab, finalement le deuxime choix tait retenu ceci nous
permet denrichir nos connaissances par la maitrise du langage le plus utilis dans le domaine du
traitement dimages. Egalement, nous avons choisi la technique de dtection de mouvement qui
rpond mieux nos besoins et qui offre des performances respectables. Ensuite, un mode de
commande autonome est ajout notre robot pour renforcer davantage ses capacits. Ce mode est
dvelopp aussi sous Matlab et il se base sur des algorithmes de traitements dimages utiliss pour
dtecter les obstacles.






[Tapez un texte]



61
II. Diagrammes de cas dutilisation :
On entame la partie dexpression de besoin. Pour cela, nous allons reprsenter le diagramme de cas
dutilisations dans lequel nous spcifions les besoins de ce projet. Or dans notre systme, nous
avons quun seul acteur qui va tre responsable du contrle du robot.
Ci-suit les cas dutilisations de cette application. Elle prsente les diffrentes options mises
disposition de lutilisateur.


Description des cas dutilisation :

Dclencher la dtection :
Description : Lutilisateur donne lordre au systme de dclencher la dtection automatique pour
mettre lalgorithme en marche et pour dtecter un mouvement.
Les Acteurs : Utilisateur.
Pr-condition : Obligation lutilisateur de sauthentifier.
Scnario nominal : Lutilisateur donne lordre au Robot douvrir sa camra et de dclencher la
dtection qui compare chaque image reue avec limage de fond, si la diffrence obtenue dpasse
un seuil prdfini alors il dtecte un mouvement et commence lenregistrer.

s'authentifier
Dclencher la dtection
<<include>>
Enregistrer vido
<<include>>
<<extend>>
Visualiser Vido
<<include>>
Importer donnes
<<include>>
Dtecter obstacle
<<include>>
Utilisateur
Dmarrer la tlsurveillance
<<include>>
[Tapez un texte]



62
Dmarrer lenregistrement vido :
Description : Lutilisateur donne lordre au systme, partir de linterface de commande, de
dmarrer un enregistrement vido.
Les Acteurs : Utilisateur.
Pr-condition : Lutilisateur doit sauthentifier.
Scnario nominal : Lutilisateur demande au systme de dmarrer un enregistrement vido. Le robot
ouvre sa camra et commence lenregistrement dans un laps de temps bien dtermin.
Visualiser Vido :
Description : Lutilisateur demande au systme de visualiser une vido donne partir de linterface
de dtection.
Les Acteurs : Utilisateur.
Pr-condition : Il faut que lutilisateur soit authentifi.
Scnario nominal : Lutilisateur une fois authentifi demande au systme de visualiser les
vidos(lire, arrter ) travers un lecteur implment dans linterface de dtection.

Importer des donnes :
Description : Lutilisateur demande au systme dimporter les donnes. Ces donnes sont des flux
vido qui seront visualiss ensuite sur le terminal de lutilisateur.
Les Acteurs : Utilisateur.
Pr-condition : Il faut que lutilisateur soit authentifi.
Scnario nominal : Lutilisateur, aprs avoir dclench la dtection de mouvement ou enregistr une
vido, demande au systme dimporter cette vido pour pouvoir la visualiser.
Dtecter obstacle :
Description : Lutilisateur demande au systme de dtecter un obstacle via son interface de
commande.
Les Acteurs : Utilisateur.
Pr-condition : Il faut que lutilisateur soit authentifi.
Scnario nominal : Lutilisateur demande au systme, aprs avoir activ le mode autonome, de
dtecter les obstacles qui peuvent bloquer le robot pendant son mouvement.


[Tapez un texte]



63
Dmarrer la tlsurveillance :
Description : lutilisateur demande au systme de dmarrer la tlsurveillance pour pouvoir contrler
les mouvements du robot.
Les Acteurs : Utilisateur.
Pr-condition : Il faut que lutilisateur soit authentifi.
Scnario nominal : Lutilisateur va demander au systme de dmarrer la tlsurveillance. Cette tche
consiste dmarrer la camra du robot et envoyer le flux vido captur vers lutilisateur pour quil
puisse commander le robot.



















[Tapez un texte]



64
Chapitre II : Conception
I. Introduction :
********************************************************************************
********************************************************************************
********************************************************************************
****************************
II. Diagrammes de squences :
Ci-dessous la conception des traitements du processus dimportation des donnes, schmatise
travers un diagramme de squences :

En un premier temps, l'utilisateur doit s'authentifier sur de connexion. Cette interface va transfrer
ces donnes au systme pour la vrification de validit. Un principe similaire est adopt quand
l'utilisateur demande dimporter les vidos enregistres sur le robot : La demande est manifeste
par un appui sur un bouton de l'interface, qui transmet cette demande au systme et c'est ce dernier
qui va transfrer les vidos disponibles.

: Utilisateur
:interface systme
1: s'authentifier
2: transfert login mot de passe
3: verification
4: Donnes valide [login et mot de passe valides]
5: Utilisateur authentifi [donnes valides]
6: Donnes invalides [login et mot de passe invalides]
8: Demande d'importer vido
9: Connexion systme
10: transfert des vido disponibles par paquets
11: Afficher vido
7: Resaisir donnes
[Tapez un texte]



65


- Interface : Cette classe reprsente le moyen que nous utilisons pour contrler et communiquer
avec le code de lapplication. Dans ce cas ci-dessus, nous communiquons avec linterface de
dtection du mouvement.
-Client : Cest une classe implmente au niveau du poste de lutilisateur o il va excuter sa
fonction main() en prenant comme argument une chane de caractres (Importer ) pour
indiquer au systme dimporter les vidos.
-Sock : Cest une classe qui permet de transmettre le message en utilisant les sockets. Elle est
appele dans la classe server par la fonction recep ( ) qui prend en paramtre une chane de
caractre indiquant la tche excuter.
-Server : Cette instance reprsente le serveur de lapplication. Elle nous permet de recevoir les
messages mis par lutilisateur et les traiter en communiquant avec les autres classes. Ltat
dcoute du serveur se fait en excutant la fonction main ( ).
-SendEcoute : Cette classe est appele par la classe server. Elle nous offre la possibilit denvoyer
une vido situe dans un chemin bien prcis ( laide de la fonction envoi(fichier)) vers la classe
ReceiveFile situe au niveau de linterface de dtection du mouvement.
-ReceiveFile : laide de cette classe, nous arrivons rcuprer une vido envoye par
SendEcoute qui sera affiche par la suite au niveau de linterface laide de la fonction lire().
:Client :Interface :Soc :Server :SendEcoute ReceiveFile
1: main("importer")
2: recep("importer")
3: accept("importer")
4: main(null)
5: Envoi(fichier)
6: lire()
[Tapez un texte]



66

Le schma ci-dessus reprsente la tche de tlsurveillance offert par le robot. Dans cette tche,
nous allons demander lutilisateur de sauthentifier tout dabord. Ensuite, lutilisateur demande au
systme de lancer la tlsurveillance via linterface de cette dernire. Par la suite, linterface
transfre cet ordre au systme qui va traiter cette demande et enverra le flux vido courant qui sera
affich sur linterface de lutilisateur.





: Utilisateur
:Interface :Systme
1: S'authentifier
2: Transfert login et mot de passe
3: Verfication donnes
4: Donnes valides
5: Authentification russite
6: Demande du lancement de tlsuveillance
7: Transfert d'ordre
9: Transfert flux vido
8: Traitement d'ordre
10: Lancer la tlsurveillance
[Tapez un texte]



67




Avtransmit : Cette classe sert ouvrir la camra du robot et envoyer le flux captur vers
lutilisateur via la fonction start ( ) qui demande louverture de la camra laide du fonction
initialize ( ).
AvReceive : Cest une classe qui a pour rle de recevoir le flux vido courant de la classe
AvTransmit et lafficher linterface avec la fonction ouvrircam ( ).










:Interface :Client :Sock :Serveur :AvTransmit :AvReceive
1: main("Ouvrircam")
2: recep("Ouvrircam")
3: accept("Ouvrircam")
4: Start()
5: initialize()
6: ouvrircam()
[Tapez un texte]



68
III. Diagrammes dactivits :
Ci-dessous la dscription schmatise de lactivit de la dtection du mouvement :

Le principe de dtection du mouvement pour lequel nous avons opt est simple et le
plus fiable selon les recherches que nous avons effectues. Le diagramme dactivits ci-dessus nous
permet de comprendre le principe de fonctionnement de la dtection du mouvement.
Ds que nous activons le mode dtection du mouvement , le robot capture une premire image
(appele image de fond ou background) et il la compare avec le flux d'images successives en
prvenance de la Webcam. Si la diffrence entre ces deux images dpasse le seuil(x), il commence
enregistrer une vido. La comparaison se rpte entre la mme image de fond et les images
suivantes jusqu ce que la condition darrt soit satisfaite (lorsque 15 images successives soient
presque identiques limage de fond (nb=15)).
S'authentifier
[Refuse]
Capturer image
Background (F)
[ Accepte ]
Capturer flux
vido
Comparer image de fond
avec image courante
Dmarrer
enregistrement vido
comparer l'image de fond
avec image courante
Arrter enregistrement
vido
[ x>seuil, nb=0 ] [x<seuil,nb++]
[nb=15]
[ x<seuil ]
[x>seuil]
[Tapez un texte]



69

Ci-dessous la description schmatise de lactivit de mise jour image de fond :

Ce diagramme d'activit nous aide mieux prsenter la mthode utilise pour faire la mise jour de
limage de fond. Tout dabord, le robot commence par une capture de la premire image prise par
la camra, celle-ci reprsentera par la suite l'image de rfrence. Ensuite, chaque image du flux
vido va tre compar avec limage de rfrence, ici deux conditions se prsentent:
-La diffrence entre les 2 images dpasse le seuil, dans ce cas un mouvement initial est dtect.
Pour sassurer de la fiabilit de ce rsultat, une autre comparaison se fait entre limage enregistre
dans le tampon et limage courante (cest--dire, limage t+1). Si aucune diffrence nest
dtecte aprs quinze tentatives, une mise de limage de fond aura lieu afin de dtecter un autre
mouvement.
-Dans le cas o la diffrence note est infrieure au seuil, la dtection se poursuit et limage de
fond reste inchange.



Capturer image de
fond (1re image F)
Prendre l'image
courante (Cour)
[Tampon=F]
Comparer image de fond (F)
avec image courante (Cour)
Mettre jour
image de fond
[ F=Cour ]
Dtecter
mouvement
[ F<>Cour ]
Comparer image courante
(J) avec Tampon
Incrmenter
nbre(nbre++)
Mettre jour
Tampon
[ Cour=Tampon ]
[Tampon=Cour, Nbre=0]
[Tampon<>Cour]
[Nbre=15]
[Nbre<15]
[Tapez un texte]



70

Ci-dessous la description schmatise de lactivit de mise jour image de fond :

Dans ce qui suit, nous dtaillerons le diagramme dactivit dcrivant le module de la dtection
dobstacle. Avant tout, lutilisateur doit sauthentifier pour pouvoir accder lapplication.
La premire tape de lalgorithme consiste comparer deux images conscutives. Une image
capture du flux est prise un instant t suivie dune autre capture dune autre image un instant
t+1. Celles-ci seront compares lune lautre et deux cas se prsentent :
La diffrence entre les deux images dpasse le seuil.
La diffrence entre les deux images est infrieure au seuil.
S'authentifier
[Refuse]
Prendre une image i
du flux vido
[Accepte]
Prendre une
nouvelle image J
Comparer image i
avec image j
[Diff<seuil]
(1) i=j
(2) j=prendre une nouvelle
image
Dtection
d'obstacle
[Diff>seuil]
Comparer moiti gauche de i avec
moiti gauche de j
Comparer moiti droite de i avec
moiti droite de j
Comparer difference droite
avec difference gauche
Demander au robot
de tourner gauche
[ Diff droite> Diff gauche ]
Demander au robot de
tourner droite
[ Diff droite< Diff gauche ]
(1) i=j
(2) j=prendre une
nouvelle image
(1) i=j
(2) j=prendre une
nouvelle image
Diff gauche = moiti gauche (i)- moiti gauche (j)
Diff droite = moiti droite (i) - moiti droite (j)
[Tapez un texte]



71
- Dans le premier cas, lobstacle est dtect mais un problme est pos, cest o cet obstacle est
situ dans limage ( droite ou bien gauche). Pour y remdier, chaque image sera divise en deux
plans gauche et droit. Chaque plan de limage de rfrence est compar son quivalent dans
lautre image. Par la suite, une autre comparaison seffectue entre les diffrences obtenues dans les
deux plans et deux autres cas se prsentent :
La diffrence du plan droit dpasse celle du plan gauche : Un ordre est donn au robot pour
se tourner gauche pour viter lobstacle.
La diffrence du plan gauche dpasse celle du plan droit : Un ordre est donn au robot pour
se tourner droite pour viter lobstacle.
-Dans le deuxime cas, aucun ordre ne sera transmis au robot, lopration est reprise ds le dbut.















[Tapez un texte]



72
Chapitre III : Ralisation
I. Les techniques de dtection du mouvement :
1) I ntroduction :
Face la ncessit de lajout dun module assurant la fonctionnalit de surveillance dune
manire plus efficace et plus performante, pouvant en grande partie remplacer le
fonctionnement classique dun tre humain assurant la mme tche, nous avons intgr
Safety-Bot un module de dtection du mouvement. En revanche, ceci permettra notre robot
de ne pas se limiter la tche de la transmission en flux vido de ce quil voit en face, mais
en plus de dtecter et de signaler lutilisateur de lapplication lapparition de tout corps dans
son champ de vision que ce soit un tre humain, un objet quelconque en dplacement ou un
objet initialement en tat stable subissant un mouvement.
Notre solution pour ce problme est purement informatique. Nous nous sommes appuys sur
des algorithmes de traitement dimages dvelopps sous Matlab et non pas des capteurs
dtecteurs du mouvement.
Le dclenchement de la dtection du mouvement se fait par un ordre de lutilisateur comme
lindique le schma ci-dessous.



[Tapez un texte]



73
2) Techniques de Dtection du mouvement :
Dans la phase de recherche nous nous sommes renseigns sur les diffrentes techniques de dtection
du mouvement. Ci-dessous une brve description de chacune delles :
a) La diffrence temporelle des images :
Cette technique consiste dtecter la rgion du mouvement grce la diffrence pixel par pixel de
deux trames conscutives dans un flux vido. Cette mthode est moins efficace, car elle calcule la
diffrence dans chaque laps de temps. Grce cette technique, nous dtectons seulement une partie
de la rgion en mouvement par exemple : la main ou la tte. Aussi nous dtectons le vide do il
devient plus difficile extraire les proprits du mouvement (la taille, la position, la vitesse ).

(a) (b)
Figure : Un exemple de diffrence temporelle (a) : Une scne avec deux objets en mouvements (b) :
les rgions rouges sont la diffrence entre deux images conscutives.

b) Double de diffrence temporelle des images et caractre de contour :
Dans cette mthode, nous utilisons aussi la diffrence pixel par pixel des trames conscutives dans
un flux vido. Cette faon nous donne un rsultat meilleur que celui de la premire
technique, tandis quelle adapte aussi le changement de la scne.


c) Soustraction de limage de fond :
Dans la troisime mthode, nous utilisons une image de fond. Cette mthode est trs populaire. Elle
utilise aussi la stratgie de diffrence pixel par pixel en soustrayant limage de fond de limage
courante. nous avons opt cette mthode.


[Tapez un texte]



74
3) Soustraction de limage de fond :
Cette technique consiste capturer une premire image au dmarrage de la dtection qui
servira dimage de fond qui est idalement non bruite et ne contient aucun objet en mouvement,
celle-ci sera compare ses successeurs pixel par pixel. Le mouvement est dtect si la diffrence
dpasse un seuil prdfini. Ce seuil est le nombre de pixel changs de limage courante par rapport
limage de fond.
Il existe trois manires pour crer limage de fond :
Le calcul de moyenne de N premires images.
Nous choisissons limage de fond qui a le moins de changement ou dans laquelle il n y a
pas du mouvement pendant une dure longue.
Nous choisissons la premire image dans le flux vido.
Ensuite nous appliquons un filtre qui sert principalement minimiser le bruit sur une image.
Le bruit est les interfrences qui peuvent altrer la qualit dune image. Ceci permet dliminer les
pixels isols qui pourraient conduire de faux rsultats.


Figure 1 Rsultat binaire d'une image filtr Figure 2 Rsultat binaire d'une image
non filtr


Dans notre application, la dtection du mouvement entraine lenregistrement de la scne dans la
mmoire de Safety-Bot , la fin de lenregistrement vido se fait ds quune image semblable
limage de fond est capture (dans ce cas, la diffrence devra tre infrieure au seuil).





Filtre
[Tapez un texte]



75
Exemple de dtection du mouvement :


Figure 1 Capture de l'image de fond (image 0) Figure 2 dtection du mouvement (image 3

Figure 3 Continuit de dtection du mouvement (image 5) Figure 4 Continuit de dtection du mouvement (image 7)


Figure 5 Retour l'image de fond (image 10) Figure 6 Retour l'image de fond (image 25)

Dans la figure 1 : notre robot est en tat de surveillance alors il va prendre la premire image
comme image de fond.
Dans la figure 2 : notre robot a dtect un mouvement par consquence il dclenche
lenregistrement vido.
Dans les figures 3 et 4 : continuit de dtection du mouvement.
partir de la figure 5 jusqu la figure 6 nous avons 15 images Successives qui sont presque
identiques limage de fond, pour cette raison lenregistrement vido est arrter.
[Tapez un texte]



76
4) Mise jour de limage de fond :
Dans notre technique de dtection du mouvement (soustraction de limage de fond) on peut se
trouver dans des cas o le rsultat devient fauss si l'image de fond nest pas mise jour.
Le cas le plus courant, lobjet stoppe dans une dure du temps longue. On a besoin de mettre jour
cet objet limage de fond. Evidemment, on a besoin dun seuil pour dterminer quun objet sera
additionn sil a stopp dans N trames. Alors, on doit mettre jour limage de fond.

Exemple de la mise jour de limage de fond (objet : une chaise) :

Figure 1 Capture de l'image de fond (image 0) Figure 2 Dtection du mouvement
(image3)

Figure 3 Continuit de dtection du mouvement (image 5) Figure 4 Changement de place de la chaise (image 6)

Figure 5 Continuit de dtection du mouvement (image 10) Figure 6 Mise jour de l'image de fond (image 25)
[Tapez un texte]



77

Dans la figure 1 : notre robot est en tat de surveillance alors il va prendre la premire image
comme image de fond avec une chaise situe droite de limage.
Dans la figure 2 : notre robot a dtect un mouvement par consquence il dclenche
lenregistrement vido.
Dans les figures 3, 4 : dplacement de la chaise gauche de limage
Figure 5 :
La chaise est considre comme tant un objet en mouvement vu quon la chang de place.
Dans la figure 6 :
Suite la prise de 15 images successives le robot a considr cette chaise comme un objet immobile
donc il change son image de fond et lenregistrement vido sera arrt.










Dclencher la
dtection du
mouvement
Enregistrement
dune squence
vido
Mise jour de la
liste des vidos
importes
Activer
tlsurveillance
Liste des vidos
importes depuis
le robot
Outils de lecture des
vidos importes
[Tapez un texte]



78
II. Transmission de donnes :

1) I ntroduction :
tant la fonction fondamentale de tout systme de tlsurveillance, la transmission du flux vido est
doublement ncessaire dans notre cas car nous y ferons appel dans le processus de la
tlsurveillance et galement pour pouvoir commander le robot distance (quand il nest pas visible
directement). En effet, ceci nous offrira la possibilit de suivre son dplacement et de le guider se
mettre en place travers la visualisation de ce quil affiche dans linterface de commande en
provenance de sa camra intgre . Ces images mmes seront traites rgulirement pour
assurer la dtection du mouvement.

2) Transmission de flux vido :

La transmission du flux vido en temps rel est une tche primordiale, elle consiste faire visualiser
la camera de Safety-bot distance afin dassurer la commande du robot. Pour cela, nous avons
eu recours un systme client-serveur dvelopp en java bas sur lutilisation du protocole RTP de
la bibliothque Java Media Framework. Pour diffuser le contenu vido du serveur, le client envoie
une demande via un socket java pour dmarrer la camra et commencer le transfert. Le serveur
traite la demande, il cre un processor qui gre le localisateur de la source mdia en vrifiant le
format support, ensuite il cre une session RTP pour transmettre la sortie du processeur vers
ladresse IP du client.
RTP (Real-time Transfer Protocol):
Cest un protocole de communication en temps rel, il accorde des fonctions temporelles en tant que
service pour des applications multimdia telles que la diffusion de vido en direct et la tlphonie
sur IP. Le but de ce protocole est de fournir un moyen uniforme de transmettre sur IP des donnes
soumises des contraintes de temps rel telles que laudio et la vido.
Le rle principal de RTP consiste mettre en uvre des numros de squence de paquets IP pour
reconstituer les informations de voix ou vido mme si le rseau sous-jacent change l'ordre des
paquets.
Plus gnralement, RTP permet :
d'identifier le type de l'information transporte,
d'ajouter des marqueurs temporels et des numros de squence l'information
transporte
de contrler l'arrive destination des paquets.

[Tapez un texte]



79
De plus, RTP peut tre vhicul par des paquets multicast afin d'acheminer des conversations vers
des destinataires multiples.
Le protocole RTCP est bas sur des transmissions priodiques de paquets de contrle par tous les
participants dans la session. C'est un protocole de contrle des flux RTP, permettant de vhiculer
des informations basiques sur les participants d'une session, et sur la qualit de service.

















[Tapez un texte]



80
3) Importation de donnes :
Au niveau serveur du robot et aprs chaque dtection dun objet en mouvement, lenregistrement
vido de cette scne est lanc automatiquement pour donner la possibilit au poste de commande
dimporter les fichiers enregistrs et les visualiser.
Cette tche consiste galement crer un serveur de transmission et un client pour la rception des
donnes. Ce dernier envoie une demande via un socket java au serveur qui lance une recherche des
fichiers, en utilisant le protocole TCP/IP qui se distingue par lefficacit pour la transmission des
donnes enregistres au pralable, la vido demande sera dcoupe en paquets afin dassurer
lacheminement de ces derniers au client. Ds la fin de la transmission, la poste de commande aura
la possibilit de visualiser toutes les vidos envoyes par le serveur (robot).

Ci-dessous la description schmatise de limportation vido





[Tapez un texte]



81
III. Mode autonome :
Le mode autonome permet Safety-Bot de sautoguider sans avoir besoin de lintervention dun
utilisateur pour lorienter vers une direction prcise ou bien lui viter dentrer en collision avec un
corps tranger. Pour ce faire un module de dtection dobstacles bas sur le traitement dimage a t
mis en place. La technique que nous avons utilise sappelle dtection par soustraction dimages
successives .

A la diffrence de la mthode utilise dans le processus de la dtection du mouvement, dans le cas
dune dtection dobstacle le traitement dimage ne se fait pas sur la totalit de limage mais sur
chacune de ses moitis de manire indpendante. Tout dabord, chaque moiti est compare son
homologue dans limage suivante, la diffrence est donc calcule en soustrayant le nombre de pixel
de limage 1 dans sa moiti droite par le nombre de pixel de limage 2 dans sa moiti droite aussi.
La mme opration de calcul est applique chaque moiti gauche. Ceci permet dans une dernire
tape de comparer le nombre total de pixels changs dans la moiti droite celui de la moiti
gauche pour en conclure la partie qui a subi plus de changements. Sur la base de cette conclusion,
la bonne direction sera prise de faon viter au robot dentrer en collision avec lobstacle en face.
Autrement, si la partie gauche compte plus de pixels changs, lordre envoy au robot est de se
tourner droite et si la partie droite compte plus de pixels changs, lordre envoy au robot est de se
tourner gauche.

Lordre du mouvement dans le mode autonome que nous avons mis en place englobe plusieurs
traitements squentiels. Lopration commence par lenvoi dune requte de connexion par un code
client crit en langage Java un serveur Java. Ensuite, lordre de mise en marche est transmis au
robot paralllement au lancement de lopration de dtection dobstacle dclench par un autre
client Java et excut par un Serveur Matlab qui retransmet en rponse des sockets contenant la
bonne direction prendre. Le mme message est finalement retransmis au robot pour quil change
de direction et vite lobstacle.
Ci-dessous la description schmatise Mode autonome

[Tapez un texte]



82
IV. Conclusion :
Dans cette partie, nous nous sommes intresss laspect imagerie de notre robot, en expliquant le
principe de dtection du mouvement, le principe de dtection dobstacles ainsi que la transmission
de flux vido entre la camra de surveillance et le serveur de contrle.
Ainsi nous avons prsent les diffrents aspects fonctionnels et techniques concernant le
dveloppement du robot. En passant par la commande distance et le mouvement dans la partie II,
et arrivant tout ce qui concerne limagerie sur cette partie. La prochaine et dernire partie sera
donc rserve lintgration de toutes les parties prcdentes, en reliant les diffrentes applications
ralises et appliquant tous les principes adoptes pour enfin faire fonctionner le robot avec toutes
les options quil peut offrir.



















[Tapez un texte]



83









Partie IV : Phase dintgration



[Tapez un texte]



84

I. Interfaces de lapplication :

1) Menu principal :



Figure 3: Menu principal


Cette interface reprsente le menu principal de lapplication. Elle englobe cinq possibilits de
traitement fondamentales :
La tlsurveillance
La commande du robot
La dtection de mouvement
Le mode autonome
Les chemins enregistrs
Ainsi, on dispose de plusieurs fonctionnalits en rapport avec les interactions du robot.

[Tapez un texte]



85

2) Mode autonome :




Figure 4: Mode Autonome


Cette figure, prsente linterface qui illustre le mode autonome du robot.











II. Mise en uvre du Robot :
[Tapez un texte]



86

Dans cette partie, on va procder la prsentation et la description des diffrents lments
qui constituent notre robot command, accompagns de plusieurs images les illustrant afin
de mieux visualiser le systme.


Figure 5: Vue d'ensemble du systme

Voici une vue densemble du systme dont lordinateur de rception !!!!! va recevoir les
instructions ncessaires au dplacement et lexcution des ordres par le robot et qui lui sont
transmis par un 2
me
ordinateur de contrle.



[Tapez un texte]



87

Figure 6: Carte d'acquisition VM110

La carte reoit les ordres mis par lutilisateur et les transmet aux moteurs. Lutilisateur dispose une
varit de choix savoir Avancer , Avancer gauche , STOP ,










[Tapez un texte]



88


Figure 7: Moteur Rf : C6073

Il sagit dun moteur de haute qualit, fabriqu en Angleterre. Tous les engrenages sont en laiton et
lensemble compact est mont sur un support en acier de 1mm. La rduction est fixe (1024 :1) et
permet de dvelopper un couple important.
Cest un moteur idal pour de nombreuses applications en modlisme, maquette, robotique et pour
des usages industriels simples. Son poids est de 72g.
Tension 6V - 12V - 18V - 24V
Couple nominal 1500 g-cm
Couple maximal instantan 4500 g-cm













[Tapez un texte]



89


Figure 8: Vue de dessus











Plaque dessai
Fils conducteurs
[Tapez un texte]



90

Figure 9: Vue du dessous

Sur cette figure, on peut visualiser la disposition des 3 moteurs ; ceux placs sur un mme axe
servent principalement la marche avant du robot et aussi au changement de direction selon lordre
reu ou lobstacle dtect, tandis que le moteur se situant au milieu sert la marche arrire.
Les fils conducteurs servent relier les trois moteurs la carte et aux piles dalimentation.








[Tapez un texte]



91

Figure 10: Vue de face


Cette figure prsente les diffrents composants du systme, le premier niveau comporte la carte de
commande et le second lordinateur de rception.








[Tapez un texte]



92

Figure 11: Vue de derrire

Ce plan rapproch permet de voir la roue arrire relie au moteur ainsi que lordinateur de
rception, toujours pos en quilibre sur le robot.







[Tapez un texte]



93

Figure 12: Vue de profil

Cette figure montre la disposition des roues vues de profil. Ce sont des roues en bois poli et
plastifies afin de faciliter le mouvement du robot.










[Tapez un texte]



94

Figure 13: Axe support

Sur cette figure, on voit clairement laxe et la roue arrire. Il sagit dun axe support qui maintient
cette roue droite et lempche de tourner. Les deux roues avant sont les roues directrices du robot.