Vous êtes sur la page 1sur 124

Résumé :

Le travail présenté dans ce mémoire consiste en la réalisation d’une application


logiciel de commande pour saisir des objets dans un système robotique, en utilisant une
technique d’asservissement visuel à partir d’une image 2D. Ce système comporte un bras
manipulateur, une caméra CCD embarquée sur l’effecteur du robot et un calculateur (PC).
Après l’acquisition de l’image une opération de traitement est lancée afin d’extraire les
informations géométriques de la cible, ces informations sont utilisées dans le calcul au
niveau du calculateur pour centrer l’objet dans le champs de vision de la caméra, et pour
assurer cela des algorithmes de seuillage, de segmentation et de détection de contours ont
été implémentés. Pour accomplir ce travail nous sommes passés par plusieurs étapes à
savoir la modélisation géométrique du robot, l’extraction des primitives pour la localisation
de l’objet dans l’image et enfin la saisie de l’objet.

Mots clés : Robot ULM, asservissement visuel 2D, extraction des primitives, traitement
d’image

Abstract :
& Dédicaces &

A mes très chers parents;


Aucun acte ou expression ne pourra exprimer mes
sentiments envers vous.
A mes frères Mohemed et Yacine;
Aucun mot ne pourra exprimer ma gratitude envers vous
mes très
chers frères.
Pour tout l’amour et le soutien que vous m’avez offert, je
vous dis
ME RCI.
A ma soeur bien aimée Amel;
A mes oncles Hakim et Madjid ;
A toute ma famille;
A mon binôme Bouchakri Rym que je remercie pour tous ses
efforts.
A tous mes chers amis;
Pour tous les instants inoubliables que j’ai passés avec vous,
je vous remercie.
A tous ceux qui m’aiment.

KAMAL
& Dédicaces &

ALHAMDOU LI ALLAH pour sa clémence et sa


miséricorde.

Je dédie ce mémoire à ma mère, mon soleil, ma raison d’être,


que dieu la protège.

A ma grand-mère qui est loin mais présente avec son amour


et son affection.

A la mémoire de mon grand-père qui était un père pour moi.

A mes oncles, leurs femmes et enfants, ici ou là-bas, où


qu’ils soient.

A mes amis, en particulier ma sœur de cœur Fadela.

A tous les membres du G2 que j’affectionnerai toute ma vie.

A mon binôme Behloul Kamel que je remercie pour tous ses


efforts.

RYM
Remerciements

Nous tenons à remercier de tout cœur, tous ceux qui ont contribué de près ou de loin à la
réalisation de ce présent mémoire.

Nous adressons notre profonde gratitude aux promoteurs M. M. KADRI et M. N. OUADAH qui
ont bien voulu diriger notre travail et pour les conseils qu’ils n’ont pas cessé de nous prodiguer.

Nous remercions M. M. LOUDINI notre promoteur et tous les enseignants de l’INI, en


particulier Mme ZAIDI et M. BENHOUHOU, qui ont contribué à notre formation et aussi pour
leurs précieux conseils.

Un sincère merci au personnel du C.D.T.A, au groupe de travail de la division robotique et


productique sous la direction de M. M.HAMERLAIN pour avoir mis à notre entière disposition
tous les moyens nécessaires à l’accomplissement de ce projet.

Nos remerciements vont également aux membres du jury qui ont accepté de juger ce travail.
SOMMAIRE

Introductiongénérale
Introduction générale.......................................................................................................
........................................................................................................
11

ChapitreI I: :L’Asservissement
Chapitre L’AsservissementVisuel
Visuel
Introduction: .........................................................................................
Introduction . .........................................................................................Erreur Erreur! Signet
! Signetnon
nondéfini.
défini.
I.1.Définition
I.1. Définitiondedel’asservissement
l’asservissementvisuel visuel: ......................................
. ......................................Erreur
Erreur! Signet
! Signetnon
nondéfini.
défini.
I.2.Configurations
I.2. ConfigurationsCaméra/Robot
Caméra/Robot: .................................................
. .................................................Erreur
Erreur! Signet
! Signetnon
nondéfini.
défini.
I.2.1.
I.2.1.Configuration
Configurationcaméra caméraembarquée
embarquée(eye-in-hand) (eye-in-hand): .............
. .............Erreur
Erreur! Signet
! Signetnon
nondéfini.
défini.
I.2.2. Configuration caméra déportée : ........................................ Erreur
I.2.2. Configuration caméra déportée . ....................................... Erreur ! Signet non défini. ! Signet non défini.
I.3. Techniques de l’asservissement visuel : .................................... Erreur ! Signet non défini.
I.3. Techniques de l’asservissement visuel . .................................... Erreur ! Signet non défini.
I.3.1. Approche « Static Look and Move »: ................................ Erreur ! Signet non défini.
I.3.1.Approche
I.3.2. Approche« «Dynamic Static Look Look andand Move Move ». »:
................................ Erreur! Signet
.......................... Erreur ! Signetnon
nondéfini.
défini.
I.3.2. Approche
I.4. Types d’asservissement « Dynamic visuel Lookpar andcommandeMove ».: .......................... Erreur! Signet
........................ Erreur ! Signetnon
nondéfini.
défini.
I.4.1.
I.4. Asservissement
Types d’asservissement visuel directpar
visuel : ............................................
commande . ........................Erreur Erreur! Signet
! Signetnon
nondéfini.
défini.
I.4.2. Asservissement visuel indirect : ......................................... Erreur
I.4.1. Asservissement visuel direct . ........................................... Erreur ! Signet non défini. ! Signet non défini.
I.5. Types d’asservissement visuel par grandeur asservie :.............. Erreur ! Signet non défini.
I.4.2. Asservissement visuel indirect . ........................................ Erreur ! Signet non défini.
I.5.1. Les asservissements 3D : ................................................... Erreur ! Signet non défini.
I.5. Types
I.5.2. Lesd’asservissement
asservissements 2D visuel par grandeur asservie . .............Erreur
: ................................................... Erreur! Signet
! Signetnon
nondéfini.
défini.
I.5.1.Les
I.5.3. Lesasservissements
asservissements2D 3D½. ...................................................
: ............................................... Erreur Erreur! Signet
! Signetnon
nondéfini.
défini.
I.5.4.
I.5.2.Les
Lesasservissements
asservissementsd2D/dt ............................................... Erreur
2D . ................................................... Erreur! Signet
! Signetnon
nondéfini.
défini.
I.6. Domaines d’application : ...........................................................
I.5.3. Les asservissements 2D ½ . ...............................................Erreur Erreur! Signet
! Signetnon
nondéfini.
défini.
I.6.1. Positionnement :................................................................. Erreur ! Signet non défini.
I.5.4. Les asservissements d2D/dt ............................................... Erreur ! Signet non défini.
I.6.2. Suivi de cible : ................................................................... Erreur ! Signet non défini.
I.6. Domaines
I.6.3. Navigation d’application . ...........................................................Erreur
: ........................................................................ Erreur! Signet
! Signetnon
nondéfini.
défini.
I.6.1. :Positionnement
Conclusion . ................................................................ Erreur
........................................................................................... Erreur !! Signet
Signetnon
nondéfini.
défini.
I.6.2. Suivi de cible . ................................................................... Erreur ! Signet non défini.
I.6.3. Navigation . ....................................................................... Erreur ! Signet non défini.
Chapitre
Conclusion II : Plate forme expérimentale
. ........................................................................................... Erreur ! Signet non défini.

Chapitre:II
Introduction : Modélisation géométrique du bras ULM
......................................................................................... Erreur ! Signet non défini.
II.1. Composition
Introduction du robot : ............................................................. Erreur
. ......................................................................................... ! Signet
Erreur non
! Signet défini.
non défini.
II.1.1. Base mobile RobuTER : ................................................... Erreur ! Signet non défini.
II.1. Composition
II.1.2. Bras Ultradu robotManipulateur
Léger . .............................................................
ULM : ............................. Erreur Erreur! Signet
! Signetnon
nondéfini.
défini.
II.1.1.Ordinateur
II.1.3. Base mobile RobuTER
embarqué . ...................................................Erreur
: ...................................................... Erreur! Signet
! Signetnon
nondéfini.
défini.
II.1.2.Codeurs
II.1.4. Bras Ultra Léger Manipulateur
incrémentaux ULM . ............................Erreur
: .................................................... Erreur! Signet
! Signetnon
nondéfini.
défini.
II.1.5.
II.1.3.Caméra
Ordinateur CCDembarqué
: ..................................................................
. ......................................................Erreur
Erreur! Signet
! Signetnon
nondéfini.
défini.
II.1.6. Dispositif de transmission sans fil : .................................. Erreur !
II.1.4. Codeurs incrémentaux . .................................................... Erreur ! Signet non défini.Signet non défini.
II.1.7. Carte d’acquisition :.......................................................... Erreur ! Signet non défini.
II.1.5.LeCaméra
II.1.8. logicielCCD SynDEx. .................................................................. Erreur! Signet
: ........................................................ Erreur ! Signetnon
nondéfini.
défini.
II.2. II.1.6. Dispositif
Modélisation de transmission
du bras ULM et saisie sansdefill’objet
................................... Erreur! Signet
......................... Erreur ! Signetnon
nondéfini.
défini.
II.1.7.Modélisation
II.2.1. Carte d’acquisition géométrique . .........................................................
du bras ULM : ....................... Erreur Erreur! Signet
! Signetnon
nondéfini.
défini.
II.2.2.
II.1.8.Modèle
Le logiciel2D du bras ULM
SynDEx adopté pour notre application :Erreur
. ........................................................ Erreur! Signet
! Signetnon
nondéfini.
défini.
II.2.2.1. Calcul des angles de
II.2. Modélisation du bras ULM et saisie de2l’objet rotations θ , θ , θ : .................... Erreur ! Signet non défini.
3 5........................ Erreur ! Signet non défini.

II.2.1. Modélisation géométrique du bras ULM . ....................... Erreur ! Signet non défini.

I
II.2.2. Modèle 2D du bras ULM adopté pour notre application :Erreur ! Signet non défini.
• Calcul des coordonnées polaires de l’objet dans le repère robot : .. Erreur ! Signet
II.2.2.1. Calcul des angles de rotations θ2, θ3, θ5 . .................... Erreur ! Signet non défini.
non défini.
II.2.2.2.
• Calcul Calcul de des coordonnées
la position angulairepolaires de lapour
du robot cibleleθ’positionnement
et R’. .. Erreur !:..Signet
Erreurnon défini.
! Signet
• défini.
non Vue de dessus du robot . .............................................. Erreur ! Signet non défini.
• Choix
II.2.3. Saisie de l’objet
du repère: ..............................................................
robot . ................................................Erreur
Erreur! !Signet
Signetnon
nondéfini.
défini.
II.2.3.1. Expression de la distance verticale pince/scène (Z)
• Calcul des coordonnées polaires de l’objet dans le repère robot .Erreur ! Signet no : . Erreur ! Signet non défini.
II.2.3.2. Calcul de la position angulaire du robot pour la saisie : ........ Erreur ! Signet non
• Calcul de la position angulaire du robot pour le positionnement .Erreur ! Signet no
défini.
II.2.3.: Saisie
Conclusion de l’objet . .............................................................. Erreur
........................................................................................... Erreur !! Signet
Signetnon
nondéfini.
défini.
II.2.3.1. Expression de la distance verticale pince/scène (Z) . . Erreur ! Signet non défini.
II.2.3.2. Calcul de la position angulaire du robot pour la saisie .Erreur ! Signet non défini
Conclusion III
Chapitre . ...........................................................................................
: Localisation d’objet par traitement d’images Erreur ! Signet non défini.

Chapitre:III
Introduction : Localisation d’objet par traitementErreur
......................................................................................... d’images
! Signet non défini.
Introduction . .........................................................................................
III.1. Généralités sur l’imagerie : ..................................................... Erreur Erreur ! Signet
! Signet nondéfini.
non défini.
III.1. Généralités
III.1.1. Définition surd’une
l’imagerie image. :..................................................... Erreur! !Signet
................................................. Erreur Signetnon
nondéfini.
défini.
III.1.2.
III.1.1.Les capteursd’une
Définition d’image image .......................................................
. .................................................Erreur
Erreur! !Signet
Signetnon
nondéfini.
défini.
• Capteurs à tube : .............................................................. Erreur
III.1.2. Les capteurs d’image ...................................................... Erreur ! Signet non défini. ! Signet non défini.
• Capteurs
III.1.3. L’imageintégrés
analogique : ...........................................................
........................................................Erreur
Erreur! !Signet
Signetnon
nondéfini.
défini.
III.1.3. L’image analogique : ....................................................... Erreur ! Signet non défini.
III.1.4.Numérisation
III.1.4. Numérisationdedel’image l’image: ...............................................
. ...............................................Erreur
Erreur! !Signet
Signetnon
nondéfini.
défini.
• • Définition
Définitiondedel’image l’imagenumérique numérique: ..................................
. ..................................Erreur
Erreur! !Signet
Signetnon
nondéfini.
défini.
• • Définition
Définitiondudupixel pixel: ........................................................
. ........................................................Erreur
Erreur! !Signet
Signetnon
nondéfini.
défini.
• • Codage de l’image : ......................................................... Erreur
Codage de l’image . ........................................................ Erreur ! Signet non défini.! Signet non défini.
• L’image monochrome : ................................................... Erreur ! Signet non défini.
• L’image monochrome . ................................................... Erreur ! Signet non défini.
• L’image trichrome : ......................................................... Erreur ! Signet non défini.
III.1.5.• Bruit
L’imagedans trichrome
les images.......................................................... Erreur! !Signet
: .................................................... Erreur Signetnon
nondéfini.
défini.
III.2.III.1.5. Bruit dans
Localisation d’objet les :images . ....................................................Erreur
............................................................... Erreur! !Signet
Signetnon
nondéfini.
défini.
III.2.1.
III.2. Localisation
Localisation dans................................................................
d’objet l’image : ............................................. Erreur Erreur! !Signet
Signetnon
nondéfini.
défini.
III.2.1.1. Centre de gravité, Aspect mathématique : ................ Erreur
III.2.1. Localisation dans l’image . ............................................. Erreur ! Signet non défini. ! Signet non défini.
III.2.1.2. Calcul du centre de gravité de l’objet dans l’image : Erreur ! Signet non défini.
III.2.1.1. Centre de gravité, Aspect mathématique . ................ Erreur ! Signet non défini.
III.2.1.3. Orientation de l’objet sur l’image : ........................... Erreur ! Signet non défini.
III.2.1.2.
III.2.2. Calcul du
Localisation surcentre
la scène de gravité de l’objet dans l’image Erreur
: ............................................... . Erreur! !Signet
Signetnon
nondéfini.
défini.
III.2.1.3.Calcul
III.2.2.1. Orientation
du module de l’objetrs : ................................................
sur l’image . ...........................Erreur Erreur! !Signet
Signetnon
nondéfini.
défini.
III.2.2.2.
III.2.2. Localisation sur la scèneQs
Calcul de l’argument :.......................................... Erreur
. ............................................... Erreur! !Signet
Signetnon
nondéfini.
défini.
III.3. Généralités sur le traitement d’images : .................................. Erreur
III.2.2.1. Calcul du module rs . ................................................ Erreur ! Signet non défini. ! Signet non défini.
III.3.1. Définition : ...................................................................... Erreur ! Signet non défini.
III.2.2.2. Calcul de l’argument Qs . ......................................... Erreur ! Signet non défini.
III.3.2. Convolution d’images : ................................................... Erreur ! Signet non défini.
III.3. Généralités
III.3.2.1. sur le traitement
Définition d’images . ..................................Erreur
: ................................................................ Erreur! !Signet
Signetnon
nondéfini.
défini.
III.3.1. Définition
III.3.2.2. Convolution . ......................................................................
d’images réelles : .................................. Erreur Erreur! !Signet
Signetnon
nondéfini.
défini.
III.3.2.3. Convolution d’image discrète : ................................. Erreur
III.3.2. Convolution d’images . ................................................... Erreur ! Signet non défini. ! Signet non défini.
III.3.3. Méthodes
III.3.2.1. de traitement
Définition d’images : ................................. Erreur
. ................................................................ Erreur! !Signet
Signetnon
nondéfini.
défini.
III.3.3.1. Seuillage : .................................................................. Erreur ! Signet non défini.
III.3.2.2. Convolution d’images réelles ................................... Erreur ! Signet non défini.
III.3.3.2. Filtrage : .................................................................... Erreur ! Signet non défini.
III.3.2.3.Détection
III.3.3.3. Convolution d’image: discrète
de contours . .................................Erreur
.............................................. Erreur! !Signet
Signetnon
nondéfini.
défini.
• Introduction
III.3.3. Méthodes de et traitement
Définitiond’images . .................................Erreur
: .............................................. Erreur! !Signet
Signetnon
nondéfini.
défini.
• Filtrage
III.3.3.1. Seuillage . ..................................................................
par différence finie (première dérivé) : .............. Erreur Erreur! !Signet
Signetnon
nondéfini.
défini.
• Filtrage
III.3.3.2. par différence
Filtrage finie (Seconde dérivées) : ........... Erreur
. .................................................................... Erreur! !Signet
Signetnon
nondéfini.
défini.
III.3.3.3. Détection de contours ............................................... Erreur ! Signet non défini.

II
• Filtrage
III.3.3.4. optimal : .............................................................
Segmentation ............................................................Erreur
Erreur! Signet
! Signetnon nondéfini.
défini.
III.3.3.4. Segmentation : ........................................................... Erreur ! Signet non défini.
Conclusion ................................................................................................................................... 51
Conclusion : ................................................................................................................................. 51
ChapitreIV
Chapitre IV: :Implémentation
Implémentationde
del’asservissement
l’asservissementvisuel
visuel
Introduction .......................................................................................... Erreur ! Signet non défini.
Introduction : ...............................................................................................................................
IV.1. Architecture de l’application ................................................. Erreur ! Signet non défini. 52
IV.1. Implémentation
IV.1.1. Présentation du traitement
du système d’images
expérimental: ...................................... Erreur !! Signet
........................... Erreur Signetnon nondéfini.
défini.
IV.1.2.Système
IV.1.1. Structure logicielle dud’image
d’acquisition système: .....................................
......................................Erreur
Erreur! Signet
! Signetnon nondéfini.
défini.
IV.1.2.1.
IV.1.2. Aspect Client/Serveur
Conventions ..............................................Erreur
: .................................................................. Erreur! Signet
! Signetnon nondéfini.
défini.
IV.1.3. Algorithmes de traitement d’images utilisées : ...............
IV.1.2.2. Développement du Serveur ...................................... Erreur ! Signet non défini.Erreur ! Signet non défini.
IV.1.3.1.
IV.1.2.3.Seuillage
Développement : ..................................................................
du Client ........................................Erreur Erreur! Signet
! Signetnon nondéfini.
défini.
IV.1.3.2. Détection de contours : ............................................. Erreur ! Signet non défini.
IV.1.3. Phases d’exécution de la tâche robotique ...................... Erreur ! Signet non défini.
• Masque de Roberts : ..................................................... Erreur ! Signet non défini.
IV.1.4.
• Chronogramme
Masque de Sobeld’exécution de l’asservissement visuelErreur
: ........................................................ Erreur! Signet
! Signetnon nondéfini.
défini.
• Masque
IV.1.4.1. Positionnement
de Prewitt :du bras ............................................Erreur
...................................................... Erreur! Signet
! Signetnon nondéfini.
défini.
• Masque
IV.1.4.2. SaisiededeKirsch l’objet: .......................................................
........................................................Erreur
Erreur! Signet
! Signetnon nondéfini.
défini.
• Laplacien
IV.2. Tests et résultats: ....................................................................
expérimentaux .............................................Erreur Erreur! Signet
! Signetnon nondéfini.
défini.
• Détecteur optimal de Canny : ....................................... Erreur
IV.2.1. Système d’acquisition d’image ...................................... Erreur ! Signet non défini. ! Signet non défini.
• Conventions
IV.2.2. Comparaison...................................................................
entre les détecteurs de contours : ........... Erreur Erreur! Signet
! Signetnon nondéfini.
défini.
IV.1.3.3. Segmentation :........................................................... Erreur ! Signet non défini.
IV.2.3. Algorithmes de traitement d’images utilisés ................. Erreur ! Signet non défini.
IV.2. Architecture de l’application :................................................. Erreur ! Signet non défini.
IV.2.3.1.
IV.2.1. Seuillage
Présentation du ..................................................................
système expérimental : .......................... Erreur Erreur! Signet
! Signetnon nondéfini.
défini.
IV.2.3.2.
IV.2.2. Détection
Structure logiciellede contours
du système .............................................. Erreur! Signet
: ..................................... Erreur ! Signetnon nondéfini.
défini.
IV.2.2.1.
IV.2.3.3.Aspect Client/Serveur
Segmentation : ............................................. Erreur
........................................................... Erreur! Signet
! Signetnon nondéfini.
défini.
IV.2.2.2. Développement du Serveur : .....................................
IV.2.4. Résultat de l’exécution d’une saisie d’objet . ................. Erreur ! Signet non défini. Erreur ! Signet non défini.
IV.2.2.3. Développement du Client : ....................................... Erreur ! Signet non défini.
IV.2.5. Influence des paramètres sur l’asservissement visuel . .. Erreur ! Signet non défini.
IV.2.3. Phases d’exécution de la tâche robotique : ..................... Erreur ! Signet non défini.
IV.2.5.1.
IV.2.4. Variation de
Chronogramme l’angle 2 ...............................................
d’exécution de l’asservissement visuel : .......... Erreur ! Signet
Erreur non défini.
! Signet non
IV.2.5.2.
défini. Variation de l’angle 5 ............................................... Erreur ! Signet non défini.
IV.2.4.1.
IV.2.5.3.Positionnement
Variation de vitesse du bras : ........................................... Erreur
.................................................. Erreur! Signet
! Signetnon nondéfini.
défini.
IV.2.4.2. Saisie de l’objet : .......................................................
IV.2.5.4. Coordonnées polaires en fonction du nombre d’itérations .Erreur ! Signet non d Erreur ! Signet non défini.
IV.3. Tests et résultats expérimentaux ............................................. Erreur ! Signet non défini.
IV.2.5.5. Nombre d’itérations et temps d’exécution moyens . Erreur ! Signet non défini.
IV.3.1. Résultat de l’exécution d’une saisie d’objet : ................. Erreur ! Signet non défini.
IV.2.5.6.
IV.3.2. Test des
Influence sur la butée d’un
paramètres surdes axes . ...............................
l’asservissement Erreur! Signet
: ............. Erreur ! Signetnon nondéfini.
défini.
IV.2.6. Test
IV.3.2.1. sur un objet
Variation mobile
de l’angle 2 :...............................................
...............................................Erreur
Erreur! Signet
! Signetnon nondéfini.
défini.
IV.3.2.2.
IV.2.6.1.Variation
Objet lent de. l’angle 5 :.............................................. Erreur
................................................................ Erreur! Signet
! Signetnon nondéfini.
défini.
IV.3.2.3. Variation de vitesse : ................................................. Erreur ! Signet
IV.2.6.2. Objet rapide . ............................................................ Erreur ! Signet non défini. non défini.
Conclusion • .............................................................................................
Variation de vitesse pour la méthode de seuillage : ..... Erreur ! Signet
Erreur ! Signetnon non défini.
défini.
• Variation de vitesse pour la méthode de Prewitt : ........ Erreur ! Signet non défini.
IV.3.2.4. Coordonnés polaire en fonction du nombre d’itérations :.... Erreur ! Signet non
défini.
Conclusion et perspectives .......................................................................................... 81
• Résultat obtenu par la méthode de seuillage : .............. Erreur ! Signet non défini.
Annexe A• . ....................................................................................................................................
Résultat obtenu par la méthode de Prewitt : ................. Erreur ! Signet non défini.83
Annexe IV.3.2.5. Nombre d’itérations et temps d’exécution moyens : Erreur ! Signet non défini.89
B . ....................................................................................................................................
Annexe C . .................................................................................................................................... 92
Annexe D . .................................................................................................................................... 93
Bibliographie . ............................................................................................................................. 97

III
LISTE DES FIGURES

Fig. I-1 : Caméra embarquée sur le robot. ...........................................


.......................................... Erreur ! Signet non défini.
Fig. I-2 : Caméra déportée du robot .....................................................
.................................................... Erreur ! Signet non défini.
...........................................................Erreur ! Signet non défini.
Fig. I-3 : Static Look and Move ..........................................................
.....................................................Erreur ! Signet non défini.
Fig. I-4 : Dynamic Look and Move ....................................................
Fig. I-5 : Schéma de l’asservissement visuel direct .............................
............................ Erreur ! Signet non défini.
Fig. I-6 : Schéma de l’asservissement visuel indirect ..........................
......................... Erreur ! Signet non défini.
..............................Erreur ! Signet non défini.
Fig. I-7 : Structure d’un asservissement visuel 3D .............................
Fig. I-8 : Traitement d’image d’une cible. ...........................................
.......................................... Erreur ! Signet non défini.
..............................Erreur ! Signet non défini.
Fig. I-9 : Structure d’un asservissement visuel 2D .............................
........................Erreur ! Signet non défini.
Fig. I-10 : Structure d’un asservissement visuel 2D ½ .......................
.....................Erreur ! Signet non défini.
Fig. I-11 : Structure d’un asservissement visuel d2D/dt .....................
Fig. I-12 : Positionnement d’un bras manipulateur par rapport à un objet.Erreur .... Erreur ! Signet
! Signet nonnon
déf
défini.
Fig. I-13 : Suivi d’une cible mobile par un bras manipulateur. .......... Erreur ! Signet non défini.
I-13 : Navigation
Fig. I-14 Suivi d’unedans
cibleune
mobile
scène parà obstacle.
un bras manipulateur. ...........Erreur ! Signet non défini.
...............................
Fig. I-14 : Navigation dans une scène à obstacle. ............................... Erreur ! Signet non défini.
Fig. II-1 : RobuTER et bras Manipulateur Ultra Léger (Ultra Light Manipulateur ULM)Erreur !
II-1 : Description
Fig. II-2 RobuTER etdu bras Manipulateur
bras Ultra Léger (Ultra Light Manipulateur
ULM................................................... Erreur ! SignetULM)Erreur
non défini.!
Signet
Fig. non
II-3 défini.
: Débattement des axes du bras manipulateur. ..................... Erreur ! Signet non défini.
II-2 : Principe
Fig. II-4 Description du brasincrémental
du codeur ULM. ..................................................
.......................................... Erreur ! Signet non défini.
II-3 : Représentation
Fig. II-5 θ ' etduRbras
Débattement desdeaxes ' suemanipulateur. ......................Erreur ! Signet non défini.
le plan. .............................
Fig. II-6
Fig. II-4 :: vue
Principe du codeur
latérale du bras incrémental
manipulateur. .......................................... Erreur !! Signet
..................................... Erreur Signet non
non défini.
défini.
Fig. II-7
Fig. II-5 :: Représentation de θ ' et R' sue
Représentation géométrique du lebrasplan. ..............................
manipulateur. Erreur !! Signet
........... Erreur Signet non
non défini.
défini.
vue latérale
II-6 : Repère
Fig. II-8 du bras
angulaire pourmanipulateur. ......................................Erreur ! Signet non défini.
l’axe 2. ...........................................
Représentation
II-7 : Relation
Fig. II-9 géométrique
géométrique duangles
entre les bras manipulateur.
du bras ULM. ............
........ Erreur ! Signet non défini.
II-8 : :Repère
Fig. II-10 vue deangulaire pour
dessus réel du l’axe 2. ............................................
bras ULM. ..................................... Erreur ! Signet non défini.
II-9 : :Relation
Fig. II-11 géométrique
Représentation entre les............................................
géométrique. angles du bras ULM. .........Erreur ! Signet non défini.
vue de dessusdu
II-10 : Déplacement
Fig. II-12 réel du vers
bras bras la
ULM.
cible......................................
.................................... Erreur ! Signet non défini.
Représentation
II-11 : Position
Fig. II-13 désiréegéométrique.
du robot dans.............................................
le repère de référence. ..... Erreur ! Signet non défini.
Déplacement dudubras
II-12 : Représentation
Fig. II-14 vers
robot la cible
avec L3 au....................................
dessus de P. ............. Erreur ! Signet non défini.
Fig. II-15 Position désiréedu
II-13 : Représentation durobot
robotavec
dansPletraversant
repère deLréférence.
3. Erreur ......! Erreur
Signet non ! Signet non défini.
défini.
Fig. Représentation du robot avec L au dessous de P. ...........
Fig. II-14 : Représentation du robot avec L33 au dessus de P. .............. Erreur ! Signet non défini.
II-16 : Erreur ! Signet non défini.
Fig. II-17 : Représentation de la distance Dobj. .................................
Fig. II-15 : Représentation du robot avec P traversant L3. Erreur ! Signet non défini. Erreur ! Signet non défini.
Fig. II-16 : Représentation du robot avec L3 au dessous de P. ............ Erreur ! Signet non défini.
Fig. III-1 Représentation
II-17 :: Coordonnées dede la distance
l’objet Dobj. ..................................
dans l’image Erreur
............................................... ! Signet
Erreur non
! Signet nondéfini.
défini.
Fig. III-2 : Exemples d’angles de rotations d’objets .......................... Erreur ! Signet non défini.
Coordonnéesde
III-1 : Localisation
Fig. III-3 del’objet
l’objetdans
danslel’image
repère ................................
image/scène/robot . Erreur ! Signet non défini.
Exemples d’angles
III-2 : Convolution
Fig. III-4 d’image dematricielle
rotations d’objets ...........................Erreur ! Signet non défini.
......................................
Localisation d’image
III-3 : Convolution
Fig. III-5 de l’objetréelle
dans ..............................................
le repère image/scène/robot .Erreur ! Signet non défini.

IV
Fig. III-4 :: Image
Fig. III-6 Originale
Convolution ................................................................
d’image matricielle .......................................ErreurErreur !! Signet
Signet non
non défini.
défini.
Fig. III-7 : A gauche image Seuillée (Seuil=70), à droite Image Seuillée (Seuil=100). Erreur
Fig. III-5 : Convolution d’image réelle ............................................... Erreur ! Signet non défini. ! Sign
Fig. III-6 :: Types
Fig. III-8 Image de contours
Originale ............................................................. Erreur
................................................................. Erreur !! Signet
Signet non
non défini.
défini.
Fig. III-7 : A gauche image Seuillée (Seuil=70), à droite Image Seuillée (Seuil=100). ....Erreur !
Fig. IV-1
Signet non: Plate-forme
défini. expérimentale ................................................ Erreur ! Signet non défini.
Fig. III-8 :: Structure
Fig. IV-2 Types de logicielle de l’application .................................. Erreur
contours .............................................................. Erreur !! Signet
Signet non
non défini.
défini.
Fig. IV-3 : Organigramme de communication Client/Serveur ........... Erreur ! Signet non défini.
Fig. IV-1 :: Changement
Fig. IV-4 de repère pour.................................................
Plate-forme expérimentale l’axe 2 .................................. Erreur
Erreur !! Signet
Signet non
non défini.
défini.
Fig. IV-5 : Organigramme de l’asservissement visuel ....................... Erreur ! Signet
Fig. IV-2 : Structure logicielle de l’application ................................... Erreur ! Signet non défini. non défini.
Fig. IV-3 :: Chronogramme
Fig. IV-6 Organigramme de de communication
l’asservissementClient/Serveur
visuel.......................
............Erreur
Erreur !! Signet
Signet non
non défini.
défini.
Fig. IV-7 : Chronogramme de la saisie d’un objet ............................. Erreur
Fig. IV-4 : Changement de repère pour l’axe 2 ................................... Erreur ! Signet non défini.! Signet non défini.
Fig. IV-5 :: Schéma
Fig. IV-8 du système
Organigramme d’acquisition .....................................
de l’asservissement visuel ........................Erreur
Erreur !! Signet
Signet non
non défini.
défini.
Fig. IV-9 : Repère image .................................................................... Erreur
Fig. IV-6 : Chronogramme de l’asservissement visuel ....................... Erreur ! Signet non défini. ! Signet non défini.
Fig.
Fig. IV-10 Image réelle acquise
IV-7 : :Chronogramme par lad’un
de la saisie caméra objet.................................
..............................Erreur
Erreur !! Signet
Signet non
non défini.
défini.
Fig. IV-11 : Image traitée par seuillage (seuil=100). .......................... Erreur !
Fig. IV-8 : Schéma du système d’acquisition ...................................... Erreur ! Signet non défini. Signet non défini.
Fig.
Fig. IV-12 Image image
IV-9 : :Repère traitée.....................................................................
par masque de Roberts .............................. Erreur Erreur !! Signet
Signet non
non défini.
défini.
Fig. IV-13 : Image traitée par masque de Sobel ................................. Erreur !
Fig. IV-10 : Image réelle acquise par la caméra .................................. Erreur ! Signet non défini. Signet non défini.
Fig. IV-11 :: Image
Fig. IV-14 Image traitée
traitée par
par masque
seuillagede(seuil=100).
Prewitt ...............................
..........................Erreur
Erreur !! Signet
Signet non
non défini.
défini.
Fig. IV-15 : Image traitée par masque de Kirsch ................................ Erreur
Fig. IV-12 : Image traitée par masque de Roberts ............................... Erreur ! Signet non défini. ! Signet non défini.
Fig. IV-13 :: Image
Fig. IV-16 Image traitée
traitée par
par Laplacien
masque de.............................................
Sobel ..................................Erreur
Erreur !! Signet
Signet non
non défini.
défini.
Fig. IV-17 : Image traitée par le détecteur de Canny .......................... Erreur
Fig. IV-14 : Image traitée par masque de Prewitt................................ Erreur ! Signet non défini. ! Signet non défini.
Fig. IV-15 :: Segmentation
Fig. IV-18 Image traitée par d’unemasqueimagedeà Kirsch
deux objets ....................... Erreur
................................ Erreur !! Signet
Signet non
non défini.
défini.
Fig. IV-19 : A gauche : position initiale du robot, à droite : position finale du robot
Fig. IV-16 : Image traitée par Laplacien ............................................. Erreur ! Signet non défini. Erreur ! Signet
Fig. IV-17 :: Variation
Fig. IV-20 de l’erreur
Image traitée en fonction
par le détecteur du temps.
de Canny .................... Erreur
.......................... Erreur !! Signet
Signet non
non défini.
défini.
Fig. IV-21 : Position de l’objet dans l’image après chaque itération. Erreur
Fig. IV-18 : Segmentation d’une image à deux objets ........................ Erreur ! Signet non défini. ! Signet non défini.
Fig. IV-19 :: Saisie
Fig. IV-22 d’un: position
A gauche objet..............................................................
initiale du robot, à droite : position finale Erreurdu!robot
Signet non
........ défini.!
Erreur
Fig. IV-23
Signet Saisie du premier objet ................................................... Erreur ! Signet non défini.
non:défini.
Fig. IV-20 :: Saisie
Fig. IV-24 du second
Variation de l’erreur objeten.....................................................
fonction du temps. .....................Erreur Erreur !! Signet
Signet non
non défini.
défini.
Fig. IV-25 : L’erreur en fonction du temps pour θ =0°. ....................
Fig. IV-21 : Position de l’objet dans l’image après5 chaque itération. . Erreur ! Signet non défini. Erreur ! Signet non défini.
IV-22 : L’erreur
Fig. IV-26 Saisie d’unen objet
fonction du temps pour θ 5 =5°. .................... Erreur ! Signet non défini.
..............................................................
IV-23 : L’erreur
Fig. IV-27 Saisie duen fonction
premier objet temps pour θ 5 =10°. .................. Erreur ! Signet non défini.
du ....................................................
Fig. IV-28 Saisie duen
IV-24 : L’erreur second
fonction objet temps pour θ 5 =15°. .................. Erreur ! Signet non défini.
du......................................................
IV-25 : L’erreur en fonction du temps pour θ 55 =-9°.
Fig. IV-29 =0°. .....................
................... Erreur ! Signet non défini.
IV-26 : L’erreur en fonction du temps pour θ 5 =-4°.
Fig. IV-30 ................... Erreur ! Signet non défini.
=5°. .....................
Fig. IV-27 :: Nombre
Fig. IV-31 L’erreur d’itération
en fonctionetdutemps pour θ 5 =10°.
tempsd’exécution en fonction θ 5 , cas Prewitt.
de Erreur
................... ! SignetErreur ! Sign
non défini.
Fig. IV-32 : Nombre d’itération et temps d’exécution en fonction de la vitesse, cas seuillageErreur
Fig. IV-28 : L’erreur en fonction du temps pour θ 5 =15°. ................... Erreur ! Signet non défini.
Fig. IV-33 : Nombre d’itération et temps d’exécution en fonction de la vitesse, cas PrewittErreur
Fig. IV-34
Fig. L’erreur en fonction
IV-29 :: Coordonnées polairesduettemps
erreurpour θ 5 =-9°.du
en fonction ................... Erreur ! Signet
nombre d’itérations, non défini.
cas seuillage. Erreu
Fig. IV-35 L’erreur en fonction
IV-30 : Coordonnées du temps pour θ
polaire et erreur en fonction
5 =-4°. ................... Erreur ! Signet
du nombre d’itérations par Prewitt.Erreur ! non défini.
Fig. IV-31 :: Nombre
Fig. IV-36 Nombre d’itération
d’itération et
et temps
temps d’exécution
d’exécution enen fonction
fonction des de θtests par seuillage.Erreur ! S
5 , cas Prewitt. .....Erreur !
Fig. IV-37
Signet Nombre d’itération et temps d’exécution en fonction des tests par Prewitt.Erreur ! Sig
non:défini.

V
Fig. IV-38
Fig. Erreur en
IV-38 :: Erreur en fonction
fonction du du temps
temps pourpour objet
un axe qui...................
lent. butte......... Erreur
Erreur !! Signet
Signet non non défini.
défini.
Fig. IV-39
Fig. Erreur en
IV-39 :: Erreur en fonction
fonction du du temps
temps pourpour objet
objet rapide.
lent. .................. Erreur !! Signet
............... Erreur Signet non non défini.
défini.
Fig. IV-40 : Erreur en fonction du temps pour objet rapide. .............. Erreur ! Signet non défini.
Fig. A-1 : Représentation de la fonction f(x) continue. ................................................................ 85
Fig. A-2
Fig. Représentation de
A-1 :: Représentation de la
la fonction
fonction f(x)f(x) discrète.
continue...................................................................
.................................................................85
85
Fig. D-1
Fig. Représentation
A-2 :: Interface de la fonction
de l’application f(x) discrète.
logicielle. ..................................................................93
............................................................................. 85
Fig. D-2 : Critères de traitement d’images ................................................................................... 94
Fig. D-3
Fig. Interface depour
D-1 :: Commande l’application logicielle.
l’asservissement .............................................................................95
................................................................................ 93
Fig. D-4
Fig. Critères dedetraitement
D-2 :: Propriétés d’images
l’application ....................................................................................96
............................................................................................ 94
Fig. D-3 : Commande pour l’asservissement ................................................................................ 95
Fig. D-4 : Propriétés de l’application ............................................................................................ 96

LISTE DES TABLEAUX

Tab. III-1 : Tableau de correspondance entre Z, rs et rc. ............................................................ 40


Tab. III-2 : Résultats statistiques pour l’application de la régression ......................................... 41
Tab. IV-1 : Tableau de comparaison entre les méthodes de détection de contours..................... 65
Tab. A-1 : Tableau récapitulatif de l’erreur ................................................................................. 87

VI
LISTE DES SYMBOLES

d : Distance entre l’axe 1 et le plan qui passe par les liaisons 1 et 2.


dcp : Distance entre l’axe optique du capteur visuel et la liaison 3.
Dobj : Distance entre centre de gravité de l’objet et le plan perpendiculaire a l’axe 1.
f : Filtre de convolution.
G : Fonction gaussienne.
I : Fonction d’intensité/niveau de gris de l’image.
Kp : Gain entre le module du centre de gravité de l’objet dans le repère image et celui dans le
repère scène.
Li : Longueur de la liaison i.

Qc : Argument du centre de gravité de l’objet dans le repère image.


Qs : Argument du centre de gravité de l’objet dans le repère scène.
R : Distance entre l’effecteur et l’axe 1.
R1 : Projection horizontale de la liaison 1.
R2 : Projection horizontale de la liaison 2.
R' : Module du centre de gravité de l’objet dans le repère robot.
rc : Module du centre de gravité de l’objet dans le repère image.
rs : Module du centre de gravité de l’objet dans le repère scène.
Z: Distance verticale entre l’effecteur et le plan perpendiculaire à l’axe 1.

θi : Angle de rotation de l’articulation i.

θ' : Argument du centre de gravité de l’objet dans le repère robot.

VII
INTRODUCTION
GENERALE

0
INTRODUCTION GENERALE

De nos jours, les robots manipulateurs sont utilisés dans plusieurs domaines tel que les
applications d’assemblage et de manipulation. Ils sont parfaitement adaptés à des tâches
répétitives qu'ils accomplissent avec précision tant que les conditions de fonctionnement restent
les mêmes (absences d'obstacles par exemple, ....). Cela est dû au fait qu’ils présentent une plus
grande souplesse contrairement à des machines (simples ou sophistiquées) dédiées à réaliser
la tâche pour laquelle elles ont été conçues. Cependant, le robot est souvent appelé à
effectuer des tâches qui exigent une interaction avec son environnement, et en absence de
capteur adéquat donnant une information sur cet environnement, le robot reste aveugle.
Dans de tels cas, il est restreint à des tâches préalablement définies [BEG 04].

Le besoin industriel exigeant des tâches d’interactions a permis un développement


technologique considérable de divers capteurs qui permettent aux robots de mieux
appréhender leur environnement. Les capteurs les plus utilisés sont les caméras, les
télémètres laser, les capteurs d’effort, les capteurs tactiles et les capteurs à ultrasons.

L'introduction de la vision en robotique permet au robot d’améliorer ses performances et


d’effectuer des applications d’interaction avec plus d’efficacité. Un capteur de vision fournit
l’information sous forme d’images qui subissent différents traitements afin d’extraire les
informations utiles pour l’accomplissement de la tâche. Ces traitements sont en générale la
détection de contours, le seuillage, la segmentation et l’extraction des indices images.

Généralement, l'utilisation de l’information visuelle en robotique use à inclure la mesure


extraite de l’image dans la boucle d’asservissement du robot. On parle alors d’asservissement
visuel qui représente un correcteur entre le capteur et le système à commander. Il doit non
seulement assurer la stabilité de l'ensemble du système, mais aussi permettre de suivre des
consignes avec les meilleures performances possibles. C'est une discipline nouvelle qui
combine la vision et la robotique. Les applications qui en découlent sont très diversifiées aussi
bien pour les robots manipulateurs que pour les robots mobiles [OUA 02].

Le travail décrit dans ce mémoire est intégré dans un projet de recherche au niveau du
CDTA (Centre de Développement des Technologies Avancées) d’Alger. Ce projet porte sur un

1
robot composé d’une base mobile sur laquelle est monté un bras manipulateur appelé bras
ULM

La tâche qu’on doit réaliser est l’asservissement visuel du bras ULM pour la saisie
d’un objet. Le bras est muni d’un capteur visuel (caméra) monté sur l'organe terminal. Les
informations visuelles acquises pas la caméra contribuent au calcul de la commande
adéquate qui permettra au robot de saisir l’objet.

Les travaux déjà effectués sur le bras ULM du CDTA concerne la réalisation de
l’asservissement en position des articulations. Mais pour l’asservissement visuel, notre travail
est le premier du genre. Il intègre la vision au bras pour le calcul de la position articulaire qui
permet le positionnement et la saisie de l’objet. Pour la commande du bras et déplacement des
articulations, on utilise l’asservissement en position déjà accompli.

Notre travail est organisé en quatre chapitres dont le premier sera consacré essentiellement
à l’introduction de l'asservissement visuel en énumérant ses différentes techniques.

Dans le deuxième chapitre, on décrira le robot manipulateur sur lequel porte la réalisation
de l’asservissement visuel. Puis, on présentera le modèle géométrique qui permettra de
positionner le bras manipulateur pour saisir l’objet.

Au niveau du troisième chapitre, on évoquera les étapes requises pour localiser l’objet par
la caméra. Ensuite, on citera les méthodes de traitement d’images existantes dans la littérature
qui représentent un outil pour la localisation de l’objet.

Enfin, le dernier chapitre sera consacré à la description générale de l’application et la


présentation des résultats qui ont été obtenus sur site expérimental (en implémentation).

La conclusion sera un résumé du travail, des résultats obtenus et des problèmes


rencontrés avec quelques perspectives qui sont tracées en guise de travaux futurs dans ce domaine.

2
CHAPITRE I

L’Asservissement Visuel
Chapitre I : L’Asservissement visuel

CHAPITRE I

L’Asservissement Visuel

I. Introduction :
L'adjonction de la faculté de vision aux robots, permet d'améliorer de manière
significative leurs performances et le développement de nouvelles applications. En effet, les
tâches que doivent réaliser les robots peuvent toujours se ramener à des interactions précises
avec leur environnement. Par exemple, lorsqu'il s'agit d'un bras manipulateur, le robot interagit
avec un objet (cible) et doit réaliser des mouvements précis par rapport à celui-ci.

Dans ce chapitre, on va présenter le processus d’utilisation de la vision dans la commande


des robots. Ce processus est connu sous le nom d’Asservissement visuel. On commencera par
une définition de ce processus. Par la suite, on évoquera les différentes configurations entre un
robot et le capteur visuel. Après énumération des techniques d’asservissement visuel, on
terminera par une classification des types existants de ce dernier.

I.1. Définition de l’asservissement visuel :


L’asservissement visuel est une tâche robotique qui consiste à commander le robot grâce
à des informations visuelles issues d’une ou plusieurs caméras. Il implique la mise en oeuvre
d'au moins 3 sous-systèmes :

- Un capteur visuel qui est une caméra.

- Un dispositif d'acquisition/traitement, autrement dit un ordinateur, qui est chargé du


traitement d'images et de la commande.

- Un sous-système mécanique actionné représentant le robot qui est chargé de l’exécution de


cette commande [GAN 04]. Le robot génère ses mouvements de façons à ce que sa cible
visuelle atteigne une certaine configuration dans l’image qu’il perçoit.

Dans notre travail, on ne considère que le cas d’une seule caméra ayant une liaison rigide
avec le robot. C’est ce qu’on appelle l’asservissement visuel monoculaire.

3
Chapitre I : L’Asservissement visuel

I.2. Configurations Caméra/Robot :


En asservissement visuel, on rencontre deux types de configurations caméra/robot [JAC 92] :

I.2.1. Configuration caméra embarquée (eye-in-hand) :


La caméra est montée directement sur l’effecteur du robot (Fig. I-1 [GAN 04]). Dans ce
cas, il existe une relation entre la position de la caméra et celle du robot.

Fig. I-1 : Caméra embarquée sur le robot.

I.2.2. Configuration caméra déportée :


Elle consiste en une ou plusieurs caméra(s) fixe(s) et située(s) dans l’espace de travail
(Fig. I-2 [GAN 04]), sans liaison mécanique avec le robot. Dans ce cas, l’image est
indépendante des mouvements du robot. Il existe une relation (transformation de coordonnées)
entre la base du système de coordonnées du robot et celle des caméras, ainsi qu’une relation
distincte entre le robot et l’objet cible.

Fig. I-2 : Caméra déportée du robot

4
Chapitre I : L’Asservissement visuel

I.3. Techniques de l’asservissement visuel :


I.3.1. Approche « Static Look and Move »:
Elle consiste en un enchaînement séquentiel des deux étapes suivantes (Fig. I-3 [OUA 02]) :

• L’image acquise par une caméra est traitée afin d’extraire les informations nécessaires à
l’estimation de la situation courante entre la caméra et l’environnement.

• La loi de commande calcule un déplacement en fonction de l’erreur qui existe entre la


position à atteindre p et l’effecteur du robot. Ensuite cette loi de commande envoie au
robot les consignes, dans l’espace articulaire, qui lui permettront de rejoindre la cible.
p

Fig. I-3 : Static Look and Move

Théoriquement, une seule boucle devrait être suffisante pour asservir la position de la
caméra à la situation voulue. Cependant, des erreurs relatives à l’extraction d’information dans
les images, à l’interprétation des résultats ou bien à des modèles trop approximatifs peuvent
nécessiter l’exécution de plusieurs boucles d’asservissement « Dynamic Look and move »
[OUA 02].

L’inconvénient fondamental de cette méthode est qu’il faut attendre la fin du mouvement
du robot avant de pouvoir acquérir une nouvelle image. Elle est caractérisée par de faibles
performances au niveau temps. Elle ne permet pas de contrôler le trajet de déplacement (pas
d’évitement d’obstacle possible, par exemple), mais uniquement les positions finales. Il n’est
pas possible, non plus, d’utiliser cette méthode dans des scènes non statiques [OUA 02].

I.3.2. Approche « Dynamic Look and Move »:


Elle assez semblable à la précédente approche. La différence est que les étapes « look » et
« move » ne s’effectuent plus de manière séquentielle mais simultanément (Fig. I-4 [OUA 02]),
bien que ce soit souvent à des cadences différentes. Cette méthode s’utilise dans des scènes où
l’objet est en mouvement, puisque les informations visuelles peuvent êtres prises en compte

5
Chapitre I : L’Asservissement visuel

dès leur apparition [OUA 02]. Dans la suite du travail, l’asservissement visuel sera basé sur
cette méthode.
p Commande

Fig. I-4 : Dynamic Look and Move

I.4. Types d’asservissement visuel par commande :


Les systèmes de commande, utilisés dans la vision, sont généralement classés suivant le
niveau auquel la vision intervient dans la structure de la boucle de contrôle du robot.

Avant d’énumérer les différents types d’asservissement et vu que les axes d’un robot sont
actionnés par des moteurs, il est primordial de définir les types de commande d’un moteur :

• Commande en couple : En mécanique (physique), le terme « couple » désigne un travail


produisant la rotation d’un axe. Par conséquent, la commande en couple consiste
simplement à envoyer des impulsions à chaque moteur, pendant un certain temps.

• Commande en vitesse : C’est le maintien de la vitesse à une valeur désirée, ou dans une
gamme désirée de valeur et ce, en comparant à tout instant sa valeur réelle à sa valeur
désirée.

I.4.1. Asservissement visuel direct :


C’est une première structure de contrôle, où le système de vision fournit directement une
estimation de l’état du robot et se substitue au contrôleur bas niveau. Une commande en couple
ou en vitesse est alors implémentée pour contrôler les axes ou les degrés de liberté du robot
(Fig.I-5 [OUA 02]).

Corke fut l’un des pionniers en matière d’asservissement visuel direct [GAN 04]. Il
proposa différentes stratégies de contrôle pour les systèmes simple à deux ou trois degrés de
liberté. Il étudia l’influence d’une commande en couple ou en vitesse sur la boucle de vision.
En raison de l’utilisation d’une caméra CCD standard, la fréquence des asservissements visuels
qu’il réalisa était limitée à 50Hz, une telle cadence est compatible avec la structure
d’asservissement visuel direct

6
Chapitre I : L’Asservissement visuel

Contrôle de la Contrôle du
boucle de couple et de la
vision vitesse

Fig. I-5 : Schéma de l’asservissement visuel direct

I.4.2. Asservissement visuel indirect :


Contrairement au schéma précédent, l’asservissement indirect permet de générer les
consignes de couple et vitesse par un contrôleur de position (Fig.I-6 [OUA 02]). Ce contrôleur
reçoit les coordonnées articulaires comme consignes d’entrée et calcule les consignes de
couple et vitesse [OUA 02]. Ce schéma d’asservissement introduit la boucle de vision dans un
niveau plus haut. On parle alors d’un asservissement visuel indirect.

Contrôle de la Contrôleur Contrôle du


boucle de numérique de couple et de la
vision position vitesse

Fig. I-6 : Schéma de l’asservissement visuel indirect

Vu qu’on dispose d’un robot structuré comme illustré dans la figure Fig.I-6, on a été
contraint d’utiliser cette classe d’asservissement pour la réalisation de notre tâche robotique.
Donc on commande le robot en position articulaire, non pas en couple et vitesse.

7
Chapitre I : L’Asservissement visuel

I.5. Types d’asservissement visuel par grandeur asservie :


I.5.1. Les asservissements 3D :
Dans un asservissement 3D ou la caméra est montée sur l’organe terminal, la grandeur
asservie est exprimée sous la forme d’une attitude p d’un repère lié à un objet vu par la caméra
par rapport à un repère lié à l’organe terminal. L’attitude d’un repère par rapport à un autre est
définie par une translation et une rotation. Ainsi, la mesure désirée est notée p* et la mesure
utilisée dans l’asservissement est une estimation de l’attitude courante ^p entre l’organe terminal
et l’objet.

Cette mesure s’obtient grâce aux primitives extraites de l’image et à un modèle


géométrique de l’objet. Mais cette mesure est très sensible aux erreurs de calibration de la
caméra. A cause des erreurs de modélisation, la position réelle du robot par rapport à la cible
est biaisée. Ce problème est néanmoins contournable par annulation de l’erreur entre l’attitude
courante ^p et l’attitude voulue p* dans un système à boucle fermée (Fig.I-7 [GAN 04]).

Fig. I-7 : Structure d’un asservissement visuel 3D

Dans les techniques d’estimation de l’attitude entre la caméra et l’objet, la complexité de


la géométrie de l’objet entraîne la complexité des calculs nécessaires à l’estimation de
l’attitude. C’est pourquoi l’objet est souvent simplifié au maximum. Par exemple, il est
constitué d’un tétraèdre dont les sommets sont matérialisés par des points lumineux [GAN 06].

8
Chapitre I : L’Asservissement visuel

Fig. I-8 : Traitement d’image d’une cible.

De nombreuses manipulations mettent en œuvre l’objet constitué uniquement de


plusieurs disques coplanaires sur un fond uniforme [MAL 98]. Le traitement d’image se limite
alors à une détection des contours des disques et à un calcul du centre de gravité des points de
contour afin de déterminer le centre de chaque disque (Fig.I-8 [GAN 06]).

Le modèle de l’objet, à savoir la position relative de tous les centres des disques, est
connu par le système de vision qui peut donc calculer une estimation de l’attitude. Il a été
montré qu’il est nécessaire de connaître la projection d’au moins quatre primitives de type
points pour pouvoir obtenir cette attitude de manière univoque. Néanmoins, la connaissance de
l’attitude à un instant d’échantillonnage précédent permet, dans certains cas, d’estimer la
nouvelle attitude en choisissant celle qui se rapproche le plus de la précédente [GAN 06].

Le problème de la reconstruction de l’attitude, à partir de la projection de trois ou quatre


points, est abordé par de nombreux auteurs. Dans certains cas, une solution analytique à ce
problème est proposée [FIS 81, DEM 92]. Un des développements les plus récents en matière
d’asservissement 3D est décrit dans [WIL 96]. Une cible qui contient 5 trous circulaires non
coplanaires est utilisée. L’asservissement est réalisé suivant 5 degrés de liberté grâce à un bras
manipulateur. Le système de vision utilisé est capable de mesurer la position de la projection
des 5 trous dans une image binarisée de la cible à la cadence de 61Hz [GAN 06].

I.5.2. Les asservissements 2D :


L’asservissement visuel 2D (Fig.I-9), contrairement au 3D qui exige une connaissance
d’un modèle tridimensionnel de l’objet, utilise des primitives visuelles extraites de l’image.
Ces primitives, qui servent à modéliser la projection de l’objet dans le plan image, sont des
formes géométriques élémentaires telles que : point, segment de droite, portion d’ellipse…
[GAN 06].

9
Chapitre I : L’Asservissement visuel

Fig. I-9 : Structure d’un asservissement visuel 2D

Weiss, dans ces travaux, donna une relation entre le repère de la caméra et les vitesses de
déplacements des primitives dans l’image [WEI 87]. Son travail fut développé par Feddma
[FED 89], notamment du point de vue expérimental. Ce concept a été étendu à différentes
types de primitives visuelles (droites, plans, cercle, sphères) qui dépendent :

- Des constantes issues du calibrage de la caméra.

- De l’état courant des indices visuels.

- De la profondeur Z.

La plupart des travaux qui traitent de l’asservissement 2D utilisent des primitives


constituées de points. Ces points peuvent être situés à l’intersection de segments dans l’image
ou encore être extraits du centre de gravité de la projection des disques coplanaires. Ceux-ci
nécessitent un temps de traitement d’image faible.

Dans le cas où les primitives sont des points, si on dispose d’une estimation de la
profondeur de la cible, les informations contenues dans l’image suffisent à déterminer le
déplacement de la caméra par rapport à la cible [GAN 06]. C’est pour ces avantages qu’on a
adopté ce type d’asservissement pour la réalisation de notre tâche.

I.5.3. Les asservissements 2D ½ :


Afin d’améliorer le contrôle de la position de la cible dans l’image lors des régimes
transitoires, l’asservissement «2D ½» utilise une combinaison d’informations exprimées dans
l’image et dans le repère caméra [GAN 06].

Cette approche est basée sur l’estimation de l’homographie (méthode d’estimation de la


profondeur « r » (Fig.I-10 [GAN 06]) entre caméra et objet). Elle permet de calculer le

10
Chapitre I : L’Asservissement visuel

déplacement en rotation Ω que la caméra doit effectuer pour atteindre sa position spécifiée,
ainsi que la direction de son déplacement en translation V (torseur cinématique).
L’homographie fournit également le rapport d/d* entre les distances courantes et désirées de la
caméra à l’objet.

On peut ainsi séparer les boucles d’asservissement en rotation et en translation de la


caméra, ce qui permet :
1. Un fort découplage de la loi de commande.
2. Un contrôle partiel dans l’image permettant de conserver l’objet en permanence dans le
champ de vision de la caméra.
3. Une étude de la stabilité et du domaine de convergence de la loi de commande.

Fig. I-10 : Structure d’un asservissement visuel 2D ½

I.5.4. Les asservissements d2D/dt


Dans ce type d’asservissement (Fig.I-11 [GAN 06]). La grandeur asservie est une vitesse
relative entre la caméra et la cible. Elle est définie dans le plan image par un champ de vitesse
des points. Le principe de la commande consiste alors à contrôler les mouvements de la caméra
de telle sorte que le mouvement 2D mesuré atteigne un champ de vitesse désiré, d’où
l’appellation d’asservissement d2D/dt.

Ce type d’asservissement est à un stade émergeant. Actuellement, les traitements


d’images qu’il nécessite sont encore très longs et fournissent des informations très bruitées.
Des applications pratiques ont néanmoins été réalisées. Par exemple, un asservissement de
l’alignement de l’axe optique d’une caméra animée d’un mouvement de translation suivant la
direction de cette translation est décrit dans [SUN 96].

11
Chapitre I : L’Asservissement visuel

Contrairement au cas de mesures géométriques, la mesure s (Fig.I-11) ainsi que sa valeur


désirée s* correspondent désormais à des paramètres Pi du modèle de mouvement 2D dans
l’image. On voit alors que la loi de commande ne contraint plus seulement le torseur
cinématique V de la caméra mais aussi son accélération Г [GAN 06].

Fig. I-11 : Structure d’un asservissement visuel d2D/dt

I.6. Domaines d’application :


I.6.1. Positionnement :
Grâce à l’asservissement visuel, il est possible de réaliser le positionnement du robot par
rapport à un objet vu par la caméra. Le robot démarre d’une position initiale et essaie d’amener
l’objet à la configuration désirée dans l’image (Fig.I-12).

Fig. I-12 : Positionnement d’un bras manipulateur par rapport à un objet.

I.6.2. Suivi de cible :


L’asservissement visuel permet d’effectuer le suivi d’une cible mobile (Fig.I-13). A
chaque déplacement, les coordonnées de celle-ci sont calculées relativement au repère du
robot. Le robot peut alors se déplacer et suivre la cible en mouvement [GAN 06].

12
Chapitre I : L’Asservissement visuel

Fig. I-13 : Suivi d’une cible mobile par un bras manipulateur.

I.6.3. Navigation :
Dans le domaine de la robotique mobile, l’asservissement visuel permet d’effectuer le
suivi de trajectoire ou de réaliser des tâches d’évitement d’obstacles dans les scènes statiques
ou dynamiques (Fig.I-14) :

Fig. I-14 : Navigation dans une scène à obstacle.

II. Conclusion :
Dans ce chapitre, on a introduit l’asservissement visuel qui permet à un robot de prendre
conscience de son environnement et d’évoluer à travers les informations acquises par le capteur
visuel.

Différentes méthodes d’asservissement ont été présentées. Puis deux types de


classifications ont été évoqués. La première selon le type de commande appliquée au robot. La
seconde concerne les différents asservissements selon la grandeur asservie.

Dans notre travail, on prendra en considération un asservissement visuel indirect 2D.

Dans le chapitre qui suit, on décrira la composition du bras manipulateur, son


fonctionnement ainsi que le modèle géométrique que nous avons mis en œuvre pour le
commander.

13
Chapitre I : L’Asservissement visuel

Fig. I-1 : Caméra embarquée sur le robot. ...................................................................................... 4


Fig. I-2 : Caméra déportée du robot ................................................................................................ 4
Fig. I-3 : Static Look and Move ...................................................................................................... 5
Fig. I-4 : Dynamic Look and Move ................................................................................................ 6
Fig. I-5 : Schéma de l’asservissement visuel direct ........................................................................ 7
Fig. I-6 : Schéma de l’asservissement visuel indirect ..................................................................... 7
Fig. I-7 : Structure d’un asservissement visuel 3D ......................................................................... 8
Fig. I-8 : Traitement d’image d’une cible. ...................................................................................... 9
Fig. I-9 : Structure d’un asservissement visuel 2D ....................................................................... 10
Fig. I-10 : Structure d’un asservissement visuel 2D ½ ................................................................. 11
Fig. I-11 : Structure d’un asservissement visuel d2D/dt .............................................................. 12
Fig. I-12 : Positionnement d’un bras manipulateur par rapport à un objet. .................................. 12
Fig. I-13 : Suivi d’une cible mobile par un bras manipulateur. .................................................... 13
Fig. I-14 : Navigation dans une scène à obstacle. ........................................................................ 13

I. Introduction : ........................................................................................................................ 3
I.1. Définition de l’asservissement visuel : ................................................................................. 3
I.2. Configurations Caméra/Robot : ............................................................................................ 4
I.2.1. Configuration caméra embarquée (eye-in-hand) : ........................................................ 4
I.2.2. Configuration caméra déportée : ................................................................................... 4
I.3. Techniques de l’asservissement visuel : ............................................................................... 5
I.3.1. Approche « Static Look and Move »: ........................................................................... 5
I.3.2. Approche « Dynamic Look and Move »: ..................................................................... 5
I.4. Types d’asservissement visuel par commande : ................................................................... 6
I.4.1. Asservissement visuel direct : ....................................................................................... 6
I.4.2. Asservissement visuel indirect :.................................................................................... 7
I.5. Types d’asservissement visuel par grandeur asservie :......................................................... 8
I.5.1. Les asservissements 3D : .............................................................................................. 8
I.5.2. Les asservissements 2D : .............................................................................................. 9
I.5.3. Les asservissements 2D ½ : ........................................................................................ 10
I.5.4. Les asservissements d2D/dt ........................................................................................ 11
I.6. Domaines d’application : .................................................................................................... 12
I.6.1. Positionnement :.......................................................................................................... 12
I.6.2. Suivi de cible : ............................................................................................................ 12
I.6.3. Navigation : ................................................................................................................. 13
II. Conclusion : ........................................................................................................................ 13

14
CHAPITRE II

Modélisation géométrique du
bras ULM
Chapitre II : Modélisation géométrique du bras ULM

CHAPITRE II

Modélisation géométrique du bras ULM


II. Introduction :
La réalisation d’un asservissement visuel nécessite plusieurs ressources matérielles et
logicielles. Du point de vue matériel, le bras de robot manipulateur représente la partie la plus
essentielle pour effectuer la tâche désirée. Sa commande nécessite un logiciel qui permet de
gérer tous les éléments composant le robot. Ce logiciel est fourni par le constructeur.

Le travail présenté dans ce mémoire est expérimenté sur un robot réel du CDTA. A cet
effet, ce chapitre sera consacré, en premier lieu, à la présentation générale du robot, puis à
l’élaboration du modèle géométrique et géométrique inverse permettant de positionner le bras
par rapport à un objet fixe pour le saisir.

II.1. Composition du robot :


Le robot est composé d’un bras manipulateur et d’une base mobile (Fig.II-1). Il est géré par
un logiciel nommé SynDEx :

Bras
manipulateur
ULM Ordinateur
embarqué
Capteur d’effort
Caméra CDD
Dispositif de
Base mobile transmission sans fil
RobuTER
Capteurs
Capteur LMS ultrasons
(à Laser)

Fig. II-1 : RobuTER et bras Manipulateur Ultra Léger (Ultra Light Manipulateur ULM)

14
Chapitre II : Modélisation géométrique du bras ULM

II.1.1. Base mobile RobuTER :


La base mobile, comme le montre la figure Fig.II-1, est une plate forme à 4 roues, de
dimension 695 mm par 1017 mm. Elle pèse environ 150 kg, d’une capacité de charge de 120
kg. Deux des 4 roues sont motrices d’une capacité de charge de 150kg, elles sont actionnées
par deux moteurs électriques à courant continue, sa vitesse varie de 5 cm/s à 1,25 m/s, avec des
roues de 250 mm de diamètre. Les deux autres roues sont des roues folles qui assurent la
stabilité de l’ensemble de la plate forme. La base est équipée de 4 batteries de 12 volts chacune
qui fournissent l’énergie nécessaire au fonctionnement du robot [LAH 05]. La base mobile est
dotée d’un capteur LMS (Laser) et une ceinture de capteurs à ultrasons pour la navigation et
quatre cartes à contrôleurs MPC555 assurant la gestion des différentes ressources matérielles.

II.1.2. Bras Ultra Léger Manipulateur ULM :


Le bras manipulateur (ULM) (Fig.II-2 [POM 04]) est un bras ultra léger à six axes, muni
d’une pince électrique à deux doigts à son extrémité. Elle fonctionne en tout ou rien avec un
signal de commande et deux signaux d’état de la pince. Le bras est constitué de segments
(liaisons), de dimensions données dans la figure Fig.II-3, reliés entre eux par des articulations.
Sa capacité de charge est de 2 kg lorsque le bras est totalement déployé. Le bras est constitué
de 7 moteurs à courant continu, 6 pour les 6 axes et un pour la pince. Le mouvement de chaque
axe est détecté par un capteur de position (codeur incrémental). Sur chaque axe on trouve une
butée électrique et une autre mécanique qui apporte une sécurité au bras contre une mauvaise
manipulation au-delà des débattements angulaires permis [LAH 05].

Fig. II-2 : Description du bras ULM.

15
Chapitre II : Modélisation géométrique du bras ULM

Chaque axe du bras ULM a un intervalle de débattement, ceux-ci sont illustrés dans la
figure Fig. II-3 [POM 04] suivante :

Fig. II-3 : Débattement des axes du bras manipulateur.

II.1.3. Ordinateur embarqué :


Pour effectuer la commande du bras manipulateur et de la base, le robot est doté d’un
ordinateur industriel embarqué qui tourne sous le système d’exploitation Linux. Grâce à un
compilateur C, Il est possible d’exécuter des algorithmes de calculs de positions et de
commande du bras manipulateur et de la base, ou de connexion avec d’autres ordinateurs pour
des traitements plus complexes.

II.1.4. Codeurs incrémentaux :


Les codeurs incrémentaux sont des codeurs rotatifs permettant de délivrer une
information d'angle, en mesurant la rotation effectuée autour d'un axe1.

1. http://fr.wikipedia.org Mot clé : Codeur incrémental.

16
Chapitre II : Modélisation géométrique du bras ULM

Ce sont des codeurs relatifs qui ajoutent ou soustraient (selon le sens de rotation) une
unité à un compteur à chaque rotation supérieure à la résolution du capteur (nombre
d'impulsions délivrées par le capteur pour un tour complet). Le compteur est remis à zéro
lorsque l'appareil est allumé. C'est le cas de la souris à boule d'un ordinateur. Le codeur est
constitué d’un disque doté de trous sur toute sa circonférence1. Les parties non trouées cause
la coupure d’un signal lumineux réceptionné par des photodiodes, celles-ci délivrent un
signal carré permettant le comptage (Fig.II-41). C’est ce type de codeurs qui compose les
axes du bras manipulateur ULM.

Fig. II-4 : Principe du codeur incrémental

Il est à noter que l’erreur des moteurs des six axes est de ± 0,09°.

II.1.5. Caméra CCD :


C’est une caméra de type XC-ST50CE de chez Sony placée sur l’effecteur du bras. Elle

est compacte avec une taille de 44(L) x 29(H) x 57,5(P) mm et légères (110g). C’est une

caméra noir et blanc offrant des images d’excellente qualité et une grande sensibilité. Elle est
dotée de capteurs d’images CCD Sony de la dernière génération avec une fréquence

d’échantillonnage de 50Hz et une résolution de 320 x 240. Elle est idéale pour les applications

exigeantes de l’industrie, de la microscopie, du traitement d’image et de la vision industrielle


[LAH 05].

II.1.6. Dispositif de transmission sans fil :


Le dispositif de transmission est appelé Falcon PLUSTM. Il est composé de deux
antennes, une émettrice connectée à la caméra et une autre réceptrice connectée au PC de

17
1. http://ak-industries.com/fr/produits/lineaires/cable/incremental_principe.htm
Chapitre II : Modélisation géométrique du bras ULM

traitements. Il transmet, au PC de traitements en temps réel, le signal vidéo acquis par la


caméra. Il est caractérisé par :

- Une bande de fréquence vidéo de 5.8 MHz.

- Une bande de fréquence audio de 50Hz-15KHz.

- Connecteur de données RJ11.

- Un porté de 1,6 km en absence d’obstacle.

II.1.7. Carte d’acquisition :


La carte d’acquisition est appelée Pinnacle 500-PCI. Elle est installée sur PC de
traitement et est connectée directement à l’antenne réceptrice du dispositif de transmission.
Elle reçoit le signal vidéo analogique puis le numérise et le stocke dans la RAM du PC de
traitement. Elle est caractérisée par :

- Format visuel PAL/SECAM

- Fréquence d’échantillonnage pour PAL : 25 image/secondes.

- Fréquence d’échantillonnage pour NTSC : 30 image/secondes.

- Résolution de l’image pour PAL : 720 x 576.

- Résolution de l’image pour NTSC : 768 x 480

- Méthodes de compression du signal vidéo : MPEG-2, MPEG-1, DV, MJPEG.

II.1.8. Le logiciel SynDEx :


Le robot est livré avec un logiciel de gestion des ressources (base et bras) qui a pour nom
SynDEx v5.1 (Synchronized Distributed Executive) et supportant la méthodologie AAA
(Algorithme Architecture Adéquation). Il a été conçu et développé dans l’unité de recherche
INRIA de Rocquencourt en France [GRA 98].

Il est destiné à la conception et à la réalisation de systèmes en temps réel complexes


embarqués pour des algorithmes de commande comprenant le traitement de signal et d’image,
s’exécutant sur des machines multi composants (réseau de processeurs et circuits intégrés
spécialisés).

Il permet de gérer les programmes en cours d’exécution et l’ordonnancement des


processus sur tous les processeurs du robot (processeurs de la base et processeur du PC

18
Chapitre II : Modélisation géométrique du bras ULM

embarqué). Il gère également les données et informations concernant le déplacement de la


base, les données ultrasons, les données laser et la position de chaque articulation du bras
manipulateur. La programmation est faite principalement à travers l’élaboration de schéma de
contrôle, ayant des entrées et donnant les sorties ou résultats attendues.

La méthodologie AAA a pour but de trouver la meilleure correspondance entre un


algorithme et une architecture tout en satisfaisant la contrainte temps réel. Elle est basée sur
des modèles de graphiques afin de montrer le potentiel du parallélisme de l’algorithme et le
parallélisme disponible dans l’architecture matérielle. Des heuristiques, prenant en compte la
durée du temps d’exécution du calcul et de la communication inter composants, sont utilisées
afin d’optimiser les performances de l’allocation des ressources des applications embarquées.

La partie qui nous intéresse est la gestion des données du bras manipulateur. SynDEx
réserve un segment de données pour le stockage de la position articulaire actuelle du robot, et
un autre segment pour la réception de la position articulaire future du bras manipulateur. Dès
qu’une différence entre les deux données est détectée, le déplacement du bras manipulateur est
effectué par un asservissement en position de chaque articulation. Une fois l’erreur annulée,
l’asservissement du bras (des articulations) s’arrête.

Le SynDEx réserve une variable booléenne qui est a faux si l’une des articulations du
bras est en cours d’asservissement, a vrai sinon.

II.2. Modélisation du bras ULM et saisie de l’objet


II.2.1. Modélisation géométrique du bras ULM :
Le bras manipulateur étant composé d’articulations, celles-ci sont dotées de repère
tridimensionnel où l’un des axes représente l’axe de rotation et les deux autres sont le repère
des angles de rotations.

Le modèle géométrique direct d’un bras manipulateur est un transformateur de


coordonnées qui permet d’exprimer la position et l’orientation de l’effecteur du bras en
fonction de la position de chacune des articulations.

La fonction inverse qui consiste à déterminer la configuration des articulations en


fonction de la position de l'effecteur est le modèle géométrique inverse (MGI).

19
Chapitre II : Modélisation géométrique du bras ULM

La modélisation 3D du bras manipulateur prend en compte ses six degrés de liberté. Elle
n’inclut aucune contrainte sur les articulations et permet de couvrir tout l’espace atteignable
par l’effecteur, quelle que soit sa position courante.

II.2.2. Modèle 2D du bras ULM adopté pour notre application :


La tâche à accomplir consiste à saisir un objet se trouvant dans un plan perpendiculaire à
l’axe 1 (Fig.II-5). Pour parcourir ce plan il suffit de connaître les coordonnées polaires de
l’objet ( θ ' , R' ). Dans le cas de bras ULM, l’axe 1 permet de parcourir l’angle θ ' , et les axes 2,3
et 5 permettent de parcourir la distance R' .

Fig. II-5 : Représentation de θ ' et R' sue le plan.

Le modèle 3D peut être dans ce cas réduit, pour les besoins spécifiques à notre application,
à un modèle 2D regroupant les articulations 2,3 et 5.

Dans l’établissement du modèle 2D du bras manipulateur, il faut tenir compte d’une


contrainte qui exige que le plan image de la caméra soit parallèle au plan de l’objet. Du fait que
la caméra est portée par l’effecteur, on introduit donc une contrainte sur l’axe 5 pour que
l’effecteur reste tout le temps perpendiculaire au plan objet.

La modélisation du bras manipulateur va se faire en deux étapes :

- On exprime tout d’abord les axes 2, 3 et 5 en fonction de la distance R' dans la scène
entre l’axe 1 et l’effecteur.

- On calcule ensuite la position de l’objet (coordonnées polaires ( θ ' , R' )) par rapport au
bras manipulateur dans le plan objet.

20
Chapitre II : Modélisation géométrique du bras ULM

II.2.2.1. Calcul des angles de rotations θ2, θ3, θ5 :

Fig. II-6 : vue latérale du bras manipulateur.

dcp : la distance entre l’axe optique et le centre de l’effecteur du bras (Fig. II-6).

Pour définir le modèle géométrique du bras ULM, on considère les axes 2, 3 et 5. Le


robot manipulateur devient alors un robot planaire à 3 degrés de liberté (figure II-6).

Fig. II-7 : Représentation géométrique du bras manipulateur.

Sur la figure Fig.II-7, Li sont les longueurs des liaisons du robot, θ i les angles de
rotation des axes, R est la projection de l’effecteur sur le plan perpendiculaire à l’axe 1. Z est
la distance entre pince et scène le long de l’axe optique.

Pour effectuer le calcul des angles de rotations, il est important de fixer la position
initiale (ou zéro) de chaque articulation, on prend comme zéro d’une articulation
l’alignement des deux liaisons qui la composent.

21
Chapitre II : Modélisation géométrique du bras ULM

Dans la figure Fig.II-8, le zéro pour θ 2 est représenté par l’alignement de la liaison L0

avec L1 , les valeurs positives étant au dessous du zéro et les valeurs négatives au dessus :

Fig. II-8 : Repère angulaire pour l’axe 2.

On obtient à partir de la représentation planaire du bras ULM (Fig.II-7) les équations


suivantes :

R1 = L1 sin θ 2 (2.1)
R2 = L2 sin θ 5 (2.2)
Ces deux équations permettent de déterminer R. Connaissant θ1 , on a les coordonnées
polaires de l’effecteur dans la scène, ce qui donne le modèle géométrique 2D direct du robot.

Sur la figure Fig.II-9, On considère le pintagone de côtés : L0 , L1 , L2 , R et L3 + Z , et si on


le divise comme suit :

+Z

R
Fig. II-9 : Relation géométrique entre les angles du bras ULM.
On a la somme des angles des trois triangles est égale à 3π . On déduit que :

π − θ 2 + π − θ 3 + π − θ 5 + π = 3π

Ce qui donne :

θ 2 + θ3 + θ5 = π (2.3)

22
Chapitre II : Modélisation géométrique du bras ULM

Puisque R = R1 + R2 , on a de (2.1) et (2.2) :

R = L1 sin θ 2 + L2 sin θ 5 (2.4)

On a deux équations à trois inconnus. Ainsi, le système à une infinité de solutions. On


exprime alors deux angles en fonction du troisième. De ce fait, deux méthodes existent :

• En fonction de θ2 :

(2.4) donne :

⎛ R − L1 sin θ 2 ⎞
θ 5 = Arc sin ⎜⎜ ⎟⎟ (2.5)
⎝ L2 ⎠

L’équation (2.3) donne :

θ3 = π − θ2 − θ5

On remplace θ 5 par sa valeur et on trouve :

⎛ R − L1 sin θ 2 ⎞
θ 3 = π − θ 2 − Arc sin ⎜⎜ ⎟⎟ (2.6)
⎝ L2 ⎠

• En fonction de θ5 :

(2.4) donne :

⎛ R − L2 sin θ 5 ⎞
θ 2 = Arc sin⎜⎜ ⎟⎟ (2.7)
⎝ L1 ⎠

L’équation (2.3) donne

θ3 = π − θ2 − θ5

On remplace θ 2 par sa valeur et on trouve :

⎛ R − L2 sin θ 5 ⎞
θ 3 = π − θ 5 − Arc sin⎜⎜ ⎟⎟ (2.8)
⎝ L1 ⎠

Remarque :

- l’expérimentation va nous permettre de trouver la méthode la plus convenable et la


meilleure valeur pour l’angle fixé.

23
Chapitre II : Modélisation géométrique du bras ULM

- Les valeurs calculées des angles seront prises en compte dans le domaine de définition
de Arcsin.

Grâce aux équations (2.5), (2.6), (2.7) et (2.8), et connaissant R, on obtient la position
angulaire du bras ULM. Ceci constitue le modèle géométrique 2D inverse du robot.

L’existence d’une infinité de solutions ne présente pas de problème pour


l’accomplissement de la tâche, car il suffit de trouver une seule position angulaire qui permet
de positionner le bras manipulateur par rapport à l’objet.

II.2.2.2. Calcul des coordonnées polaires de la cible θ’ et R’:

Pour calculer ces coordonnées polaires, on utilise les coordonnées polaires de l’objet
dans la scène. Elles sont calculées grâce aux données extraites de l’image acquise par le
capteur visuel (cf. paragraphe III.2.2)

Avant d’introduire le calcul de ces coordonnées, il est impératif de présenter les


conventions prises pour le choix du repère du bras ULM.

• Vue de dessus du robot :

Selon la figure Fig.II-10, si on considère cette position comme le zéro de l’axe 1, les
valeurs positives sont vers le bas et les valeurs négatives vers le haut.

Fig. II-10 : vue de dessus réel du bras ULM.

On remarque sur la figure Fig.II-10 qu’il y a un décalage entre le plan de l’axe 1 et


celui des axes 2, 3 et 5. Ce décalage doit être pris en compte (Fig.II-11).

Fig. II-11 : Représentation géométrique.


R' représente la distance entre l’axe 1 et le centre de la caméra.

24
Chapitre II : Modélisation géométrique du bras ULM

• Choix du repère robot :

Ce repère est défini comme suit :

- Vu de dessus, l’axe 1 est un point, c’est l’origine du repère.

- Dans ce repère, le robot est représenté par le segment R' et non pas par la longueur
réelle du bras qui est R.

- L’axe des X coïncide avec le segment R' (Fig. II-11).

- Ce repère est relatif, l’axe X coïncide toujours avec la position actuelle du robot
représentée par R' . Une fois le repère fixé, la nouvelle position désirée du robot est
calculée (Fig. II-12).

Fig. II-12 : Déplacement du bras vers la cible

La figure Fig.II-12 résume les deux repères dans lesquels les coordonnées polaires de
l’objet doivent être exprimées :

1) Un repère scène qui est le repère robot translaté de R ' (dont l’origine est la projection
du centre de la caméra dans la scène). Les coordonnées de l’objet sont Qs et rs .

2) Un repère robot où les coordonnées sont R' et θ ' .

On note R'k le R' en cours (à l’instant k ) et R'k +1 le R' désiré (à l’instant k + 1 ).

25
Chapitre II : Modélisation géométrique du bras ULM

• Calcul des coordonnées polaires de l’objet dans le repère robot :

On va devoir calculer la position angulaire des axes du robot pour le positionner de


telle sorte que l’objet soit centré dans l’image. Pour ce faire, on calcule R' k +1 à partir de la
position actuelle du robot et la position de l’objet sur scène.

Fig. II-13 : Position désirée du robot dans le repère de référence.

Sur la figure Fig.II-13, on a :

- xd et y d , les coordonnées du point désiré (centre de la caméra).

- x , l’abscisse du point courant (centre de la caméra), il coïncide avec le R'k .

On peut désormais procéder au calcul de R'k +1 et θ ' :

1) Calcul de R’k+1 :

A partir de la figure Fig.II-13 on a :

R' k +1 = xd + y d
2 2
(2.9)

De plus :

x d = rs cos(Qs ) + x (2.10)

y d = rs sin (Qs ) (2.11)

26
Chapitre II : Modélisation géométrique du bras ULM

(2.10) et (2.11) dans (2.9) donnent :

R' k +1 = (rs cos(Qs ) + x )2 + (rs sin(Qs ))2 (2.12)

Après simplification de (2.12) on trouve :

R ' k +1 = rs 2 + x 2 + 2( xrs cos(Qs )) (2.13)

D’autre part :

x = R' k = ( R + dcp) 2 + d 2 (Voir figure II-11) (2.14)

D’après les formules (2.1) et (2.2) du modèle géométrique on trouve :

x= (L1 sin θ 2 + L2 sin θ 5 + dcp )2 + d 2 (2.15)

Vu que la position angulaire du robot est connue, en particulier θ 2 et θ 5 , il est possible de

trouver le R'k +1 en mettant (2.15) dans (2.13) :

R'k+1 = rs2 + (L1 sinθ2 + L2 sinθ5 + dcp) + d 2 + 2⎛⎜ (L1 sinθ2 + L2 sinθ5 + dcp) + d 2 rscos(Qs)⎞⎟ (2.16)
2 2

⎝ ⎠

2) Calcul de θ’ :

⎛y ⎞
θ ' = Arctg ⎜⎜ d ⎟⎟ (2.17)
⎝ xd ⎠
En remplaçant xd et y d par leurs valeurs on obtient :

⎛ rs sin (Qs ) ⎞
θ ' = Arctg ⎜⎜ ⎟⎟ (2.18)
⎝ rs cos(Qs ) + x ⎠
(2.15) dans (2.18) donne :

⎛ rs sin (Qs ) ⎞
θ ' = Arctg ⎜⎜ ⎟ (2.19)
2 ⎟
⎝ rs cos(Qs ) + (L1 sin θ 2 + L2 sin θ 5 + dcp ) + d ⎠
2

• Calcul de la position angulaire du robot pour le positionnement :

Nous avons toutes les données nécessaires au calcul des angles de rotations du robot.

Dans ce qui suit, on note le θ i désiré par θ i (k + 1) et le θ i en cours par θ i (k ) .

a) Calcul de θ1 :
Selon le repère de l’axe 1 :

θ1 (k + 1) = θ1 (k ) − θ ' (2.20)

27
Chapitre II : Modélisation géométrique du bras ULM

b) Calcul de θ2, θ3, θ5 :


A partir de l’équation (2.14) on récupère la valeur de R :

R = R' 2 − d 2 − dcp . (2.21)

Une fois que R est déterminé, on utilise le modèle inverse du bras représenté par les
équations (2.5), (2.6) ou (2.7), (2.8). En fixant soit θ 2 soit θ 5 , on retrouve les

angles θ 2 ,θ 3 ,θ 5 .

c) Calcul θ4 :
L’angle θ 4 n’est pas utilisé dans la modélisation, il est fixé à la valeur 0.
d) Calcul θ6 :
L’angle θ 6 est calculé à partir de l’angle d’orientation de l’objet dans l’image noté α ,
(cf. paragraphe III.2.1.3). Cet angle permet d’orienter la pince pour saisir l’objet. Le
repère choisi pour l’axe 6 positionne la pince à un angle de 90 degrés par rapport à un
objet dont α = 0 . Pour trouver l’angle θ 6 adéquat, on utilise la formule suivante :

θ 6 (k + 1) = 90 − α (2.22)

II.2.3. Saisie de l’objet :


II.2.3.1. Expression de la distance verticale pince/scène (Z) :

Pour calculer la distance pince/scène, on introduit dans le schéma du robot planaire deux
nouvelles grandeurs strictement positives : L3 ' et L3 ' ' . On note par P le plan perpendiculaire à

L0 au point de rencontre de L0 et L1 . Trois cas de figure existent alors :

1. L3 au dessus de P :

Fig. II-14 : Représentation du robot avec L3 au dessus de P.

28
Chapitre II : Modélisation géométrique du bras ULM

Sur la figure Fig.II-14, on a :

Z = L3 ' '+ L0 (2.23)

L3 ' = L3 ' '+ L3 (2.24)

Donc :

L3 ' ' = L3 '− L3 (2.25)

D’un autre côté, on déduit l’expression de L3 ' :

L3 ' = L1 cos θ 2 − L2 cos θ 5 (2.26)

(2.26) dans (2.25) donne :

L3 ' ' = L1 cos θ 2 − L2 cos θ 5 − L3 (2.27)

(2.27) dans (2.23) donne :

Z = L0 − L3 + L1 cos θ 2 − L2 cos θ 5 (*)

2. P traversant L3:

Fig. II-15 : Représentation du robot avec P traversant L3.


Sur la figure Fig.II-15, on a :

Z = L0 − L3 ' ' (2.28)


De plus :

L3 = L3 '+ L3 ' ' (2.29)

Ainsi :

L3 ' ' = L3 − L3 ' (2.30)

29
Chapitre II : Modélisation géométrique du bras ULM

D’un autre côté on déduit l’expression de L3 ' :

L3 ' = L1 cos θ 2 − L2 cos θ 5 (2.31)

(2.31) dans (2.30) donne :

L3 ' ' = L3 − L1 cos θ 2 + L2 cos θ 5 (2.32)


(2.32) dans (2.28) donne :

Z = L0 − L3 + L1 cos θ 2 − L2 cos θ 5 (*)

3. L3 au dessous de P :

Fig. II-16 : Représentation du robot avec L3 au dessous de P.

Sur la figure Fig.II-16, on a :

Z = L0 − L3 ' ' (2.33)

(2.34)
L3 ' ' = L3 + L3 '

D’un autre côté, on déduit l’expression de L3 ' :

L3 ' = − L1 cos θ 2 + L2 cos θ 5 (2.35)

(2.35) dans (2.34) donne :

L3 ' ' = L3 − L1 cos θ 2 + L2 cos θ 5 (2.36)

(2.36) dans (2.33) donne :

Z = L0 − L3 + L1 cos θ 2 − L2 cos θ 5 (*)

On déduit que pour les trois cas de figures on aboutit à la même formule donnant Z.

30
Chapitre II : Modélisation géométrique du bras ULM

II.2.3.2. Calcul de la position angulaire du robot pour la saisie :

Pour saisir l’objet, il suffit d’utiliser le modèle direct du robot avec la condition d’annuler
la distance entre pince et objet. Pour cela, il faut introduire la distance entre l’objet et le plan
perpendiculaire à l’axe 1 Dobj. Annuler cette distance revient à mettre Z égale à la distance
Dobj (Fig.II-17), elle peut être soit positive dans le cas ou l’objet est au dessus du plan base,
soit négative dans le cas contraire.

Dobj

Fig. II-17 : Représentation de la distance Dobj.

En plus des équations (2.3) et (2.4), on dispose de l’équation suivante :

Z = L0 − L3 + L1 cos θ 2 − L2 cos θ 5 = Dobj (2.37)

La résolution de ce système donne les angles permettant d’atteindre l’objet par l’effecteur.

Résolution du système :

On considère les équations (2.4) et (2.37), on a :

L1 sin θ 2 = R − L2 sin θ 5 (2.38)

L1 cos θ 2 = Dobj − L0 + L3 + L2 cos θ 5 (2.39)

On pose :

F = Dobj − L0 + L3 .

En élevant (2.38) et (2.39) au carré et en les sommant, on trouve :

L1 sin 2 θ 5 + L1 cos 2 θ 5 = R 2 + L2 sin 2 θ 5 − 2 RL2 sin θ 5 + F 2 + L2 cos 2 θ 5 + 2 FL2 cosθ 5 .


2 2 2 2

d’où :

L1 = R 2 + F 2 + L2 − 2 L2 (R sin θ 5 − F cosθ 5 )
2 2
(2.40)

31
Chapitre II : Modélisation géométrique du bras ULM

et donc :

R 2 + F 2 + L2 − L1
2 2
(2.41)
R sin θ 5 − F cos θ 5 =
2 L2

R 2 + F 2 + L2 − L1
2 2

On pose : A = , on aura alors :


2L2
(2.42)
R sin θ 5 − F cos θ 5 = A

1
En multipliant les deux côtés de l’équation (2.42) par , on trouve :
R2 + F 2

R F A
sin θ 5 − cos θ 5 = (2.43)
R2 + F 2 R2 + F 2 R2 + F 2

Soit l’angle φ tel que :

⎛ ⎞R ⎛ F ⎞
φ = Arc cos⎜⎜ ⎟ = Arc sin ⎜ ⎟
2 ⎟ ⎜ ⎟
⎝ R +F ⎠ ⎝ R +F ⎠
2 2 2

2 2
⎛ R ⎞ ⎛ F ⎞
(On peut toujours trouver cet angle φ car ⎜⎜ ⎟ +⎜
⎟ ⎜
⎟ = 1 ce qui vérifie la

⎝ R +F ⎠ ⎝ R +F ⎠
2 2 2 2

relation cos 2 φ + sin 2 φ = 1 ).

L’équation (2.43) devient :

A
cos φ sin θ 5 − sin φ cos θ 5 = (2.44)
R + F2
2

En appliquant la formule trigonométrique :

sin(α − β ) = cos β sin α − sin β cos α

On trouve :

A (2.45)
sin(θ 5 − φ ) =
R +F 2 2

Finalement :

⎛ ⎞ A
θ 5 = φ + Arc sin ⎜⎜ ⎟ (2.46)
2 ⎟
⎝ R +F ⎠
2

En remplaçant A et F par leurs expressions on trouve :

32
Chapitre II : Modélisation géométrique du bras ULM

⎛ R 2 + F 2 + L2 − L1
2 2 ⎞

θ 5 = φ + Arc sin ⎜ ⎟
⎟ (2.47)
⎝ 2 L2 R + (Dobj − L0 + L3 )
2 2

Une fois θ 5 obtenu, on calcule θ 2 et θ 3 par le modèle géométrique inverse :

⎛ R − L2 sin θ 5 ⎞ (2.48)
θ 2 = Arc sin⎜⎜ ⎟⎟
⎝ L1 ⎠

⎛ R − L2 sin θ 5 ⎞
θ 3 = π − θ 5 − Arc sin⎜⎜ ⎟⎟ . (2.49)
⎝ L1 ⎠

En utilisant l’équation (2.22), on calcule la valeur de θ 6 pour orienter la pince.

De la même manière, on peut calculer la valeur de l’angle θ 2 , puis on utilise le modèle


géométrique inverse correspondant pour trouver θ 3 et θ5 .

III. Conclusion :
On a présenté dans ce chapitre le bras manipulateur sur lequel porte notre travail, ainsi
que son modèle géométrique que on a mis en œuvre pour le commander. De plus, on a exposé
la méthode à suivre pour saisir un objet vu par la caméra.

Il est à noter que la position de l’objet par rapport au robot n’est pas absolue, mais elle
est calculée relativement à la position en cours du robot et change au fur et à mesure de son
déplacement.

Dans le chapitre qui suit, on commencera par introduire quelques définitions dans
l’imagerie. Ensuite on exposera les étapes à suivre pour localiser l’objet dans l’image. Pour
finir, on présentera les différentes méthodes de traitements d’images qui existent dans la
littérature.

33
Chapitre II : Modélisation géométrique du bras ULM

II. Introduction : ......................................................................................................................... 14


II.1. Composition du robot : ...................................................................................................... 14
II.1.1. Base mobile RobuTER : ............................................................................................. 15
II.1.2. Bras Ultra Léger Manipulateur ULM : ....................................................................... 15
II.1.3. Ordinateur embarqué : ................................................................................................ 16
II.1.4. Codeurs incrémentaux : .............................................................................................. 16
II.1.5. Caméra CCD : ............................................................................................................ 17
II.1.6. Dispositif de transmission sans fil : ............................................................................ 17
II.1.7. Carte d’acquisition :.................................................................................................... 18
II.1.8. Le logiciel SynDEx : .................................................................................................. 18
II.2. Modélisation du bras ULM et saisie de l’objet.................................................................. 19
II.2.1. Modélisation géométrique du bras ULM : ................................................................. 19
II.2.2. Modèle 2D du bras ULM adopté pour notre application : ......................................... 20
II.2.2.1. Calcul des angles de rotations θ2, θ3, θ5 : ............................................................. 21
II.2.2.2. Calcul des coordonnées polaires de la cible θ’ et R’: ........................................... 24
• Vue de dessus du robot : .......................................................................................... 24
• Choix du repère robot :............................................................................................. 25
• Calcul des coordonnées polaires de l’objet dans le repère robot : ........................... 26
• Calcul de la position angulaire du robot pour le positionnement :........................... 27
II.2.3. Saisie de l’objet : ........................................................................................................ 28
II.2.3.1. Expression de la distance verticale pince/scène (Z) : .......................................... 28
II.2.3.2. Calcul de la position angulaire du robot pour la saisie : ...................................... 31
III. Conclusion :....................................................................................................................... 33

34
Chapitre II : Modélisation géométrique du bras ULM

Fig. II-1 : RobuTER et bras Manipulateur Ultra Léger (Ultra Light Manipulateur ULM) ......... 14
Fig. II-2 : Description du bras ULM. ........................................................................................... 15
Fig. II-3 : Débattement des axes du bras manipulateur. ............................................................... 16
Fig. II-4 : Principe du codeur incrémental ................................................................................... 17
Fig. II-5 : Représentation de θ ' et R' sue le plan. ....................................................................... 20
Fig. II-6 : vue latérale du bras manipulateur. ............................................................................... 21
Fig. II-7 : Représentation géométrique du bras manipulateur. ..................................................... 21
Fig. II-8 : Repère angulaire pour l’axe 2. ..................................................................................... 22
Fig. II-9 : Relation géométrique entre les angles du bras ULM. .................................................. 22
Fig. II-10 : vue de dessus réel du bras ULM. ............................................................................... 24
Fig. II-11 : Représentation géométrique....................................................................................... 24
Fig. II-12 : Déplacement du bras vers la cible ............................................................................. 25
Fig. II-13 : Position désirée du robot dans le repère de référence. ............................................... 26
Fig. II-14 : Représentation du robot avec L3 au dessus de P. ....................................................... 28
Fig. II-15 : Représentation du robot avec P traversant L3. ........................................................... 29
Fig. II-16 : Représentation du robot avec L3 au dessous de P. ..................................................... 30
Fig. II-17 : Représentation de la distance Dobj. ........................................................................... 31

35
CHAPITRE III

Localisation d’objet par


traitement d’images
Chapitre III : Localisation d’objet par traitement d’images

CHAPITRE III

Localisation d’objet par traitement


d’images
III. Introduction :
Le capteur visuel (caméra) permet au robot une perception de l’environnement qui
l’entoure. Grâce à la vision, le robot est en mesure d’effectuer la tâche désirée. Dans notre cas,
c’est la saisie d’un objet présent dans le champ de vision de la caméra.

Dans ce chapitre, on commencera par présenter quelques définitions de l’imagerie. Ensuite,


on parlera des étapes à suivre pour l’extraction des données nécessaires pour la localisation de
l’objet dans l’image. Ceci consiste à extraire le centre de gravité de l’objet pour avoir ses
coordonnées polaires.

Après cela, on présentera la transformation des coordonnées polaires de l’objet dans


l’image vers ses coordonnées polaires dans la scène. Ces derniers permettront, à travers le
modèle géométrique inverse, de calculer la position articulaire du bras pour accomplir la tâche
désirée.

Enfin, en terminera par exposer les méthodes de traitements d’image existantes en mettant
l’accent sur les travaux effectués dans ce domaine. Ces méthodes permettront de rendre les
images exploitables pour la localisation de l’objet.

III.1. Généralités sur l’imagerie :


III.1.1. Définition d’une image :
Une image est une représentation spatiale d’un objet, d’une scène bidimensionnelle ou
tridimensionnelle. Elle peut être réelle ou virtuelle. En vision par ordinateur, le terme image
réfère usuellement à une donnée enregistrée, telle que l’image vidéo, l’image digitale ou la
photographie [BRE 99].

34
Chapitre III : Localisation d’objet par traitement d’images

III.1.2. Les capteurs d’image


Les capteurs d’images sont formés de capteurs optiques sur lesquels est projetée l’image.
Un capteur optique délivre un signal électrique proportionnel à l’éclairement moyen de sa
surface photosensible ou photosite [BRE 99]. Les signaux électriques subissent des traitements
électroniques permettant la transmission et la reconstitution de l’image sur un écran
cathodique. Il existe deux types de capteurs d’images :

• Capteurs à tube :

Le principe est d’effectuer un balayage d’un faisceau d’électrons issu d’une cathode,
accéléré et concentré au moyen d’électrodes portées à des potentiels élevés. Ce faisceau est
dévié par des champs magnétiques crées par des bobines. Néanmoins, ce type de capteurs
présente les inconvénients suivants : encombrement, durée de vie limitée, puissance
consommée importante [BRE 99].

• Capteurs intégrés :

Ce sont des puces de silicium comprenant des circuits nécessaires à la conversion


photoélectrique et à l’analyse de l’image, à savoir les photoéléments ou capteurs optiques
organisés en ligne ou en matrice. Divers capteurs intégrés existent: les capteurs à transfert de
charges CCD (“Charge Coupled Device”) ou à injection de charges CID (“Charge Injection
Device”) dérivés de la technologie MOS [BRE 99].

C’est une caméra CCD qui est utilisée dans ce mémoire pour la capture d’image. Elle
présente les avantages résultant de sa structure intégrée : miniaturisation, robustesse, fiabilité.

III.1.3. L’image analogique :


Elle est assimilable à une fonction continue I de deux variables réelles u et v, elle est
définie sur une région rectangulaire bornée d’un plan. I (u, v) est la valeur de la fonction image
I au point (u, v) du plan. Cette valeur est proportionnelle à l’énergie lumineuse reçue au niveau
du capteur d’image. Ainsi, l’image est appelée image d’intensités ou de luminances [BRE 99].

III.1.4. Numérisation de l’image :


• Définition de l’image numérique :
Une image numérique est représentée par une matrice de valeurs numériques
correspondant à des valeurs d’intensités quantifiées discrètes. Ainsi, I forme une matrice et
I (u, v) représente la valeur d’intensité de l’élément (u, v) de la matrice [BRE 99].

35
Chapitre III : Localisation d’objet par traitement d’images

• Définition du pixel :

Le plus petit élément d’une photo conventionnelle est un grain. L’élément digital
équivalent est le pixel. Le pixel d’un écran a une taille physique qui est déterminée lors de la
fabrication. Le pixel numérique a une taille physique lorsqu’on on choisit la résolution de
l’image numérique.

• Codage de l’image :

- Un BIT : Pour le codage à un bit, on ne peut représenter que deux intensités


lumineuses noir ou blanc, sans avoir d’état intermédiaire possible (pas de gris).

- n BIT : A chaque fois qu’on augmente de un le nombre de bit, on double le nombre


de combinaisons pour définir le nombre total de niveau de gris.

• L’image monochrome :

Dans le contexte des images monochromes noir et blanc, qui nous intéresse plus
particulièrement, les valeurs d’intensités associées aux pixels sont appelées niveaux de gris.
Le niveau de gris d’un pixel représente une mesure de l’accumulation de la lumière
collectée dans la région du plan occupée par ce pixel [BRE 99].

• L’image trichrome :

Dans le contexte des images trichromes couleur, la représentation fonctionnelle de


l’image fait intervenir 3 fonctions d’intensités IR (u, v), IV (u, v), IB (u, v) relatives aux trois
composantes primaires rouge, verte et bleue constitutives de la couleur [BRE 99].

III.1.5. Bruit dans les images :


Un système d'enregistrement d'image ne restitue pas l'image de manière parfaite. Des
informations parasites s'ajoutent de manière aléatoire aux détails de la scène d'origine
constituant le bruit. Le bruit n'a pas les mêmes origines, mais provoque des effets assez
semblables comme la perte de netteté sur les détails ou l’apparition de grains.

Le bruit est d'autant plus présent que l'intensité du signal baisse, il se distingue mieux sur
les zones sombres. C'est pour cette raison que l'on mesure l'effet du bruit par le rapport
signal/bruit. Quand cette valeur augmente, cela signifie que la proportion du signal parasite
dans le signal d'origine diminue. Pour parvenir à un bon résultat, il faut donc soit augmenter le
signal, soit baisser le bruit. Pour baisser le bruit dans l’image, on procède par filtrage de
l’image bruitée (cf. parag.III.3.3.2).

36
Chapitre III : Localisation d’objet par traitement d’images

III.2. Localisation d’objet :


III.2.1. Localisation dans l’image :
Pour la localisation de l’objet dans l’image, On doit calculer son centre de gravité, puis
exprimer ces coordonnées polaires dans le repère image (Fig. III-1) :

Le module du centre de gravité rc .

L’argument du centre de gravité Qc .

Fig. III-1 : Coordonnées de l’objet dans l’image

III.2.1.1. Centre de gravité, Aspect mathématique :

La construction d'Archimède du point d'équilibre de deux points affectés de deux


masses positives a été généralisée progressivement à des ensembles plus complexes1. Le
n
barycentre des points A1 , A2 ... An , affectés des masses a1 , a 2 ...a n (avec ∑ ai ≠ 0 ), est l'unique
i =1

point G tel que :


n

∑ a GA
i =1
i i =0
(3.1)
Les coordonnées sont données par les formules, pour j = 1...n :

∑ ax
n

x j ,G = i =1 i j , Ai (3.2)
∑ a
n
i =1 i

Le nombre de points peut même devenir infini, permettant de trouver le barycentre


d'une courbe ou d'une surface.

Si l'ensemble constitue un domaine D continu, à chaque point M du domaine on affecte


une densité g(M) où g est une fonction continue (fonction de pondération).

1. http://fr.wikipedia.org Mot clé : Centre de gravité.


37
Chapitre III : Localisation d’objet par traitement d’images

Le barycentre est alors le point G tel que :

∫ g (M ) PM dv = 0 dans l'espace
D
(3.3)

ou

∫ g (M ) PM ds = 0 dans le plan.
D
(3.4)

Si les points M ont pour coordonnées (x1, x2), la fonction de densité s'écrit g(x1, x2) et
les coordonnées de G s'écrivent :

x j ,G =
∫ ∫ (g (x , x ) × x )dx dx
D
1 2 j 1 2
, j ∈ {1,2} (3.5)
∫ ∫ g (x , x )dx dx
D
1 2 1 2

Si l'on se ramène à une dimension, ou bien si l'on considère chaque coordonnée


séparément, on aboutit à la formule de la moyenne pondérée :

xG =
∫ (g (x ) × x )dx
D

∫ g (x )dx
D
(3.6)

Dans le cas discret, la formule (3.6) est donnée comme suit1 :


n

∑ g (n) × x n
xG = n =1
n
. (3.7)
∑ g (n)
n =1

III.2.1.2. Calcul du centre de gravité de l’objet dans l’image :

Après traitement d’image (seuillage, détection de contours, seuillage/segmentation), on


obtient une image binarisée où la scène est blanche et l’objet est noir. L’objet devient donc
un ensemble de n pixels noirs de coordonnées (x, y). On peut alors appliquer la formule (3.7)
pour le calcul du centre de gravité. Vu que les pixels ont tous le même poids, la fonction de
pondération est donnée par : g(x)=1.

La formule (3.7) devient :

n n

∑ (1 × x ) i ∑ (1 × y )
i =1
i
xG = i =1
n
, yG = n

∑1
i =1
∑1
i =1

Ce qui induit les formules suivantes :

1. http://fr.wikipedia.org Mot clé : Centre de gravité.


38
Chapitre III : Localisation d’objet par traitement d’images

1 n
xG = ∑ xi
n i =1
(3.8)

1 n
yG = ∑ yi
n i =1
(3.9)

A partir de la, on exprime les coordonnées polaires du centre du gravité de l’objet :

rc = xG + y G
2 2
(3.10)
yG
Qc = arctg .
xG (3.11)

III.2.1.3. Orientation de l’objet dans l’image :

On doit prendre en considération l’orientation de l’objet dans l’image, car il faut


orienter la pince du bras afin de pouvoir saisir l’objet. On note cette orientation α .

Quand l’objet est rond, l’angle d’orientation est nul, mais pour un objet d’une autre
géométrie, l’angle existe. Cet angle est exprimé dans le repère image (Fig. III-2).

On illustre dans la figure suivante des exemples d’orientation d’objets :

Fig. III-2 : Exemples d’angles de rotations d’objets

III.2.2. Localisation dans la scène :


Les coordonnées de l’objet dans l’image doivent être exprimées dans le repère de la
scène. On doit donc calculer le module rs et l’argument Qs du centre de gravité de l’objet dans
le repère scène à partir des coordonnées polaires de l’objet dans l’image rc et Qc. Une fois ces
coordonnées obtenues, on pourra déplacer le robot vers la direction de l’objet pour le centrer
(cf. paragraphe II.2.2.2.).

III.2.2.1. Calcul du module rs :

Par expérimentation, nous avons remarqué que la distance rc ne correspondait pas à la


distance rs et que le rapport ou gain Kp = rs rc varie par changement de la hauteur entre
caméra et scène.

39
Chapitre III : Localisation d’objet par traitement d’images

On fixe la caméra à une certaine hauteur Z par rapport à la scène. On détermine pour
cette hauteur le gain Kp. On varie la hauteur et à chaque fois, on détermine le Kp résultant.
Ces résultats sont illustrés dans le tableau (Tab.III-1) suivant :

Rs Rc Y : Gain Kp=rs/rc X: Hauteur z

20 64 0,3125 200

20 66 0,303030303 190

20 69 0,289855072 180

20 72 0,277777778 170

20 75 0,266666667 160

20 80 0,25 150

20 83 0,240963855 140

20 87 0,229885057 130

20 92 0,217391304 120

20 101 0,198019802 110

20 108 0,185185185 100

20 120 0,166666667 90

20 131 0,152671756 80

20 141 0,141843972 70

Tab.III-1 : Tableau de correspondance entre Z, rs et rc

En dessinant le graphe de nuage de points, qui ont comme abscisse la hauteur Z et


ordonné le Kp , nous avons remarqué que les points ont tendance à être rectilignes. Donc, il
existe une relation linéaire entre Kp et Z . Tel que Kp = f ( Z ) .

Pour trouver cette relation, nous avons eu recours à la méthode de la régression linéaire
qui nous a permis d’exprimer Kp en fonction de Z. Une fois cette relation établie, il suffira
de calculer rs à partir de rc en multipliant ce dernier par Kp .

Pour la régression linéaire on a :

Kp ( Z ) = aZ + b (3.12)
On note Kp : X et Z : Y avec :

40
Chapitre III : Localisation d’objet par traitement d’images

cov( x , y )
a=
V ( x) (3.13)

b = y − ax (3.14)

X: Hauteur Z Y : Gain Kp = rs rc X*X X*Y


200 0,3125 40000 62,5

190 0,303030303 36100 57,5757576

180 0,289855072 32400 52,173913

170 0,277777778 28900 47,2222222

160 0,266666667 25600 42,6666667

150 0,25 22500 37,5

140 0,240963855 19600 33,7349398

130 0,229885057 16900 29,8850575

120 0,217391304 14400 26,0869565

110 0,198019802 12100 21,7821782

100 0,185185185 10000 18,5185185

90 0,166666667 8100 15

80 0,152671756 6400 12,2137405

70 0,141843972 4900 9,92907801

x = 135 y = 0,230889816 x 2 = 19850 xy = 33,3420735

Tab.III-2 : Résultats statistiques pour l’application de la régression.


On a :

1 1
∑ xi y i − x y = 2,17194836 et V ( x) = ∑ xi − x = 1625 .
2
cov( x, y ) =
2

n n

On calcule les valeurs de a et b a partir de (3.13) et (3.14):

cov( x , y ) 2,17194836
a= = = 0,00133658
V ( x) 1625

b = y − a x = 0,230889816 − 0,00133658 × 135 = 0,05045103

On trouve alors :

Kp( Z ) = 0,00133658 × Z + 0,05045103 (3.15)

41
Chapitre III : Localisation d’objet par traitement d’images

Pour toute valeur de Z on récupère le gain, combinée avec rc de l’image, on trouve rs


(distance réelle entre projection du centre la caméra sur scène et centre de gravité de l’objet).

Remarque :

Par application de la régression linéaire pour estimer la fonction f ( Kp = f ( Z ) ), une


erreur est commise sur l’estimation du paramètre a et le remplacement de la valeur mesurée
yi par le point de la droite axi – b (cf. Annexe A paragraphe 5)

III.2.2.2. Calcul de l’argument Qs :

A partir de la représentation du repère robot (cf. paragraphe II.2.2.2.) et le repère


images, on peut déterminer l’argument de l’objet dans la scène (Fig. III-3).

Fig. III-3 : Localisation de l’objet dans le repère image/scène/robot

dec : l’angle de décalage entre l’axe X et l’axe qui passe par le segment R. Ainsi
l’angle Qs peut être calculé par :

Qs = Qc − 90° − dec (3.16)


d
Avec : dec = Arctg (3.17)
R + dcp

d
Donc : Qs = Qc − 90° − Arctg (3.18)
R + dcp

42
Chapitre III : Localisation d’objet par traitement d’images

III.3. Généralités sur le traitement d’images :


III.3.1. Définition :
Il désigne en informatique l'ensemble des opérations automatisées permettant, à partir
d'images numérisées, de produire d'autres images numériques ou d'en extraire de l'information.
Il a été développé à partir des années 1970 dans le but d'extraire des informations noyées dans
le bruit ou abîmées par les défauts optiques des capteurs 1. Il s'agit donc d'un sous-ensemble du
traitement de signal dédié aux images et aux données dérivées comme la vidéo.

En mathématiques, le produit de convolution de deux fonctions réelles ou complexes f et


g se note « » et s'écrit 2 :
+∞ +∞
( f ∗ g )( x) = ∫ f ( x − t ).g (t )dt = ∫ f (t ).g ( x − t )dt
−∞ −∞

III.3.2. Convolution d’images :


III.3.2.1. Définition :

En mathématiques, le produit de convolution de deux fonctions réelles ou complexes f


et g se note « » et s'écrit :
+∞ +∞
( f ∗ g )( x) = ∫ f ( x − t ).g (t )dt = ∫ f (t ).g ( x − t )dt
−∞ −∞

III.3.2.2. Convolution d’images réelles :

On considère l’image comme une fonction continue I à valeur dans IR 2 . Sa convolution


par une fonction g continue sur IR 2 également est exprimée comme suit :
+∞ +∞
( g ∗ I )( x, y ) = ∫ ∫ g ( x' , y' ) × I ( x − x' , y − y' )dx' dy'
− ∞− ∞

III.3.2.3. Convolution d’image discrète :

Dans le cas discret, le produit de convolution s’appliquant à une zone de l’image,


permet pour chaque pixel de modifier sa valeur en fonction des valeurs des pixels
avoisinants, affectées de coefficients.

1. http://xmcvs.free.fr/astroart/Chapitre4.pdf
2. http://fr.wikipedia.org Mot clé : Produit de convolution.
43
Chapitre III : Localisation d’objet par traitement d’images

• Masque ou Noyau de Convolution :

Le masque de convolution représente une matrice carrée de taille inférieure ou égale


au minimum entre le nombre de lignes et de colonnes de l’image. On l’appelle aussi noyau
parce que c'est le "coeur" de tous les changements affectant l'image et agissant sur chacun
des pixels.

• Procédé de la convolution d’une image :

Etant donné une matrice image I de dimension n × m et un noyau k × k noté g , on


considère l’élément ( x, y ) de I. Deux cas de convolution se présentent :

2p 2p
- k = 2 p + 1 : la formule est donnée par : g * I ( x, y) = ∑ ∑ g (i, j ) × I ( x + i − p, y + j − p)
i =0 j =0

La valeur du pixel convolué est multipliée par celle du pixel central du noyau.
2p 2p
- k = 2 p : la formule est la suivante : g * I ( x, y ) = ∑ ∑ g (i, j ) × I ( x + i, y + j )
i =0 j =0

La valeur du pixel convolué est multipliée par le premier élément du masque.

Pour les deux cas, on additionne à la valeur du pixel convolué la valeur des pixels
adjacents multipliés par le facteur correspondant dans le noyau. Il reste à diviser le résultat
par le nombre d'éléments du noyau, pour garder la dynamique de l'image (différence entre
le niveau du pixel le plus élevé et le plus faible).

Cette opération de convolution discrète fonctionne par décalages et multiplications


du masque de convolution par tous les pixels image. Les pixels de bord ne peuvent être
convolués que si le masque reste intérieur à l’image.

Exemple : On convolue une image de taille 5x5 pixels par un masque de


⎡0 −1 0⎤
convolution ⎢− 1 5 − 1⎥⎥
de taille 3x3, le résultat est le suivant (Fig.III-4 et III-51) :

⎣⎢ 0 − 1 0 ⎦⎥

Fig. III-4 : Convolution d’image matricielle

1. http://docs.gimp.org/fr/plug-in-blur.html
44
Chapitre III : Localisation d’objet par traitement d’images

Fig. III-5 : Convolution d’image réelle


III.3.3. Méthodes de traitement d’images :
III.3.3.1. Seuillage :

Le seuillage transforme l’image initiale en une image contenant deux niveaux de gris :
le noir est le blanc (Fig. III-6 et Fig. III-7). Pour cela, il suffit de fixer un seuil ou plus selon
lequel ou lesquels, on affecte au pixel en cours la couleur noire ou blanche. On défini en
conséquence deux type de seuillage :

• Seuillage simple :

On se fixe un seuil entre 0 et 255, on décide d’affecter la couleur noire ou blanche à


un pixel de l’image selon que le niveau de gris est inférieur ou supérieur au seuil.

Fig. III-6 : Image Originale

Fig. III-7 : A gauche image Seuillée (Seuil=70), à droite Image Seuillée (Seuil=100).

• Seuillage par Hystérésis :

On choisi deux seuils A et B tels que A<B. En parcourant l’image initiale, on crée
une nouvelle en affectant la couleur noire au pixel donc le niveau de gris est soit inférieur à
A soit supérieur à B et la couleur blanche ailleurs. Ce type de seuillage permet de mettre en
évidence un ensemble précis de pixels où leur niveau de gris est entre A et B.

45
Chapitre III : Localisation d’objet par traitement d’images

Pour notre application, on a opté pour un seuillage simple qui est suffisant pour traiter
les images acquises par caméra du robot. Cette image est composée d’objets foncés dans une
scène claire. Ainsi, on a deux classes de niveaux de gris pouvant être séparées par un seul
seuil, ce qui permet de mettre en évidence l’objet dans la scène.

III.3.3.2. Filtrage :

Il consiste à appliquer une transformation à l’ensemble ou une partie d'une image


numérique en utilisant des filtres. Ces filtres sont des noyaux de convolution permettant
d'appliquer des effets aux images (effets artistiques ou esthétiques, déformations, textures) 1.

Soit une image I à laquelle on applique un filtre f , on note la convolution de l’image


par le filtre comme suit : I f ( x, y ). On distingue généralement les types de filtres suivants :

• Filtre passe-haut :

Atténue les composantes de basse fréquence de l'image et permet d'accentuer les


détails et le contraste. C’est pour cela qu’on les appelle aussi « filtre d'accentuation »2.

• Filtre passe-bas :

Consiste à atténuer les composantes de l'image ayant une fréquence haute ainsi que le
bruit de l'image. On l’appelle aussi « filtre de lissage »2. Ces filtres peuvent être linéaires
ou non linéaire. f est dit linéaire si étant donnée deux images I1 , I 2 :
I 1 f ( x, y ) + I 2 f ( x, y ) = ( I 1 + I 2 ) f ( x, y ) . On peut citer comme exemple le filtre suivant :

Filtre Gaussien :

C’est un opérateur de lissage utilisé pour estomper les « détails » et le bruit. A partir
( x − µ 1) 2 + ( y − µ 2 ) 2
1 −
2 πσ 2
de la distribution gaussienne en deux dimensions G(x, y) = e et
2 πσ 2

pour des moyennes nulles et écart type égal à 1.4, on construit le filtre discret 5x5
⎡2 4 5 4 2⎤
suivant : ⎢4 9 12 9 4 ⎥⎥ .

1 / 115 * ⎢ 5 12 15 12 5⎥
⎢ ⎥
⎢4 9 12 9 4⎥
⎣⎢ 2 4 5 4 2 ⎦⎥

1. http://www.photofiltre-studio.com/doc/filtres.htm
2. http://fr.wikipedia.org Mot clé : Filtre passe-bas, Filtre passe-haut. 46
Chapitre III : Localisation d’objet par traitement d’images

III.3.3.3. Détection de contours :

• Introduction et Définition :

C’est un filtrage permettant de mettre en évidence les points présentant une variation
brusque sur un paramètre (comme le niveau de gris). Il consiste à convoluer l’image par
des masques caractéristiques des contours. Ces masques sont rapides et faciles à
implémenter [DES 01]. Ils sont basés sur des contours idéalisés (Fig. III-8 [DES 01]) qui
restent loin de la réalité.

Il est à noter qu’on peut trouver divers types de contours qu’on représente ci-dessous
par un profil dans l’image :

Fig. III-8 : Types de contours

• Filtrage par différence finie (première dérivé) :

Cette méthode est basée sur le calcul du gradient de l’image (cf.Annexe A


paragraphe 2). Pour détecter un point contour, il faut déceler la variation brusque du niveau
de gris de ce point. Cette variation est caractérisée par un maximum de la première dérivé
de l’image qui n’est autre que le gradient. Ainsi, pour récupérer les contours, il suffit
d’obtenir les points dont le gradient représente un maximum.

Le calcul des dérivés (gradient) par une méthode de différences finies correspond à
une opération de convolution avec des masques qui mettent en évidence les contours de
l’image. On peut citer les opérateurs suivants :

47
Chapitre III : Localisation d’objet par traitement d’images

¾ Masque de Roberts (1965) :

C’est un filtre de convolution travaillant sur un voisinage 2x2. Il permet de calculer


le gradient en un point en traitant chacune de ses composantes suivant les directions 45°
et 135° (au lieu de 0° et 90° pour les méthodes classiques). Les filtres utilisés par cette

méthode sont : ⎡⎢1 0⎤



et ⎡⎢ 0 1⎤⎥ [LIN 04].
⎣0 −1⎦ ⎣ − 1 0⎦

¾ Masque de Prewitt (1970) :

Le gradient est calculé, suivant les directions 0° et 90°, par la racine de la somme
des carrés des deux images qui résultent de la convolution de l’image initiale avec les
⎡1 0 − 1⎤ ⎡1 1 1⎤
deux filtres suivant : ⎢1 0 − 1⎥ / 3 et ⎢0 0 0⎥ / 3 [LIN 04].
⎢ ⎥ ⎢ ⎥
⎢⎣1 0 − 1⎥⎦ ⎢⎣−1 −1 −1⎥⎦

¾ Masque de Sobel (1970) :

Son fonctionnement est identique à celui de Prewitt sauf pour la composition des
⎡1 0 − 1⎤ ⎡1 1⎤
2
filtres : ⎢2 0 − 2⎥ / 4 et ⎢ 0 0 0 ⎥⎥
/ 4 [LIN 04].
⎢ ⎥ ⎢
⎢⎣1 0 − 1 ⎥⎦ ⎢⎣− 1 − 2 − 1⎥⎦

¾ Masque de Kirsch (1971) :

La méthode proposée consiste à filtrer l’image avec 8 masques directionnels.


L’intensité du gradient représente le maximum des 8 intensités calculées. Comme
⎡− 3 − 3 − 3⎤
exemple de tels filtres: ⎢− 3 0 − 3⎥ /15, les sept autres filtres sont obtenu par rotations de
⎢ ⎥
⎣⎢ 5 5 5 ⎥⎦

⎡− 3 − 3 − 3⎤ ⎡ 5 − 3 − 3⎤
45 degrés : ⎢5 0 − 3⎥⎥
/15, ⎢5 0 − 3⎥ /15…[LIN 04]
⎢ ⎢ ⎥
⎢⎣ 5 5 − 3⎥⎦ ⎢⎣5 − 3 − 3⎥⎦

• Filtrage par différence finie (Seconde dérivés) :

Détecter les maxima du gradient d’une image revient à détecter les points qui
représentent un changement de signe au niveau de Laplacien (somme des dérivés
partielles de l’image, (cf.Annexe A paragraphe 4). Les dérivés partielles secondes d’une
image peuvent être obtenues par convolution de cette image avec les masques
⎡0 0 0 ⎤ ⎡0 1 0 ⎤
suivants : ⎢ ⎥ pour la dérivé en x et ⎢0 − 2 0 ⎥ pour la dérivé en y.
⎢1 − 2 1⎥ ⎢ ⎥
⎢⎣0 0 0⎥⎦ ⎢⎣0 1 0⎥⎦

48
Chapitre III : Localisation d’objet par traitement d’images

L'opérateur Laplacien, qui donne une approximation directe de la somme des dérivés
⎡0 1 0 ⎤ 1
secondes, est obtenu par sommation des deux matrices précédentes : ⎢1 − 4 1⎥ .
⎢ ⎥
⎢⎣0 1 0⎥⎦

⎡− 1 − 1 − 1⎤ ⎡1 −2 1 ⎤
D’autres masques sont utilisés : ⎢− 1 8 − 1⎥ et ⎢− 2 4 − 2⎥⎥ .
⎢ ⎥ ⎢
⎢⎣− 1 − 1 − 1⎥⎦ ⎢⎣ 1 − 2 1 ⎥⎦

La détection de contours, après application de l’opérateur Laplacien à l’image,


s'effectue en trois étapes1 :

⎧ I ( x, y ) = o si∇( x, y ) > 0
- Détermination de la polarité Ip telle que : ⎨ p .
⎩ I p ( x, y ) = 1 si∇( x, y ) ≤ 0

- Détection des passages par zéro : On détecte les points de l’image convoluée qui
présentent un changement de signe. Pour cela, on calcule une image Iz telle que :

⎧ I z ( x, y ) = o Si (x, y) correspond à une transition 1-0 ou 0-1 dans Ip



⎩ I z ( x, y ) = 1 Sinon

- Seuillage : Les pixels, qui ne sont pas des passages par zéro et ceux qu’ils le sont
mais dont la norme est faible, seront affectés de la couleur blanche. Les autres auront
le noir pour niveau de gris.

• Filtrage optimal :

Des chercheurs ont développé des critères mathématiques afin d’estimer les
performances des détecteurs de contours. Les procédures associées à ces critères visent à
améliorer les contours en définissant le filtre qui optimise le critère de qualité
correspondant. Canny [CAN83, CAN86] fut le premier à spécifier à la fois la qualité de la
détection et la précision de la localisation du contour sous une forme mathématique.
L’opération de convolution est réalisée sur un signal d’entrée Si(x), qui est la superposition
d’un signal représentant un profil de contour idéal S(x) et d’un bruit Gaussien G(x) de
moyenne nulle et de variance E (G 2 ( x )) : Si(x) = S(x) + G(x)

Canny a proposé plusieurs critères permettant de formaliser les notions de bonne


détection et de bonne localisation du contour détecté.

1. http://bnazarian.free.fr/Cours/IN_GBM_04.PDF
49
Chapitre III : Localisation d’objet par traitement d’images

¾ Le critère de détection 1 :

Dans la détection de contours, il est fort probable de considérer un point qui n’est
pas contour ou au contraire d’ignorer un point contour, alors Canny a prouvé que le
rapport signal sur bruit du filtre gaussien est un bon critère de détection.

¾ Le critère de localisation 1 :

Le critère de localisation défini par Canny repose sur l’évaluation de la distance


moyenne entre la position du maximum du signal de sortie et celle du contour réel.
Puisque le critère doit être maximal lorsque la localisation est bonne, il est défini comme
l’inverse de cette distance qui doit être nulle.

¾ Le Filtre de Canny 2 :

Canny a montré que la dérivé première d’une fonction Gaussienne permet


−α
d’obtenir des contours optimaux. Il propose donc d’utiliser le filtre : f can ( x) = x.e
2 2
x
.

Le déroulement de l’algorithme de détection de Canny est donné comme suit :

1. Filtrer l’image par le filtre gaussien.

2. Calculer l’image horizontale et verticale en utilisant un opérateur de convolution


comme Sobel.

3. Calculer la magnitude du gradient de l’image en prenant la somme des carrés des


images obtenues en 2.

4. Calculer la direction du gradient qui est Arctan du rapport entre les deux images
horizontale et verticale.

5. Supprimer les non-maxima du gradient : en met à 0 la valeur de tout pixel qui a un


voisin de même direction de gradient et de magnitude supérieur.

6. On applique un seuillage par hystérésis pour mettre en évidence les points contours.
Les points dont le gradient est supérieur au seuil maximum est un point contours,
ainsi que les points dont le gradient est entre les deux seuils et ayant un voisin déjà
considéré comme contour.

Parmi les méthodes de détection de contours, on a opté pour celles issus de la première
dérivé et de la seconde dérivé. Ceci grâce à leurs simplicité d’implémentation, efficacité et
rapidité d’exécution, ainsi que l’approche par filtrage optimal qui donne de bons contours.

1. http://www.tsi.enst.fr/tsi/enseignement/ressources/mti/criteres/index.htm
2. http://fr.wikipedia.org Mot clé : Algorithme de Canny 50
Chapitre III : Localisation d’objet par traitement d’images

III.3.3.4. Segmentation :

C’est une opération qui a pour but de rassembler des pixels entre eux suivant des
critères prédéfinis. Chaque groupe de pixels forme une région de l’image. Il peut s'agir par
exemple de séparer les objets du fond. Si le nombre de classes est égal à deux, elle est
appelée aussi binarisation (seuillage). Mettre au point des algorithmes de segmentations haut
niveau (chaque région est un objet sémantique) est encore, en 2006, un des thèmes de
recherche les plus courants en traitement d'images [OUD 06].

Il existe de nombreuses méthodes de segmentation que l'on peut regrouper en quatre


principales classes d'algorithmes :

1. Segmentation basée sur les régions (en anglais : region-based segmentation). On y


trouve par exemple : la croissance de région (en anglais : region-growing),
décomposition/fusion (en anglais : split and merge)

2. Segmentation basée sur les contours (en anglais : edge-based segmentation)

3. Segmentation basée sur une approche globale de l'image (par exemple : seuillage (en
anglais : thresholding), histogramme, approches basées sur le nuage couleur...)

4. Segmentation basée sur la coopération entre les trois premières segmentations.

Conclusion :
Nous avons présenté dans ce chapitre les différentes méthodes de traitement d’images
permettrant de transformer des images brutes en images utiles pour la localisation d’objet.

Pour la commande visuelle d’un bras manipulateur, les traitements doivent être les plus
rapides possibles. C’est ainsi qu’on a opté pour la localisation basée sur le centre de gravité de
l’objet, puis le calcul de ses coordonnées polaire dans le repère image.

Pour l’implémentation de l’asservissement visuel, il faut concevoir et réaliser une


application qui gère d’un côté les images et leurs traitements et d’un autre côté la génération de
la commande du robot.

L’implémentation de l’application sur cite réel va être détaillée dans le chapitre suivant,
après quoi, nous allons présenter les tests réalisés.

51
Chapitre III : Localisation d’objet par traitement d’images

III. Introduction : ................................................................................................................... 34


III.1. Généralités sur l’imagerie : .............................................................................................. 34
III.1.1. Définition d’une image : .......................................................................................... 34
III.1.2. Les capteurs d’image ................................................................................................ 35
III.1.3. L’image analogique : ................................................................................................ 35
III.1.4. Numérisation de l’image : ........................................................................................ 35
• Définition de l’image numérique : ..................................................................... 35
• Définition du pixel : ........................................................................................... 36
• Codage de l’image :............................................................................................ 36
• L’image monochrome : ...................................................................................... 36
• L’image trichrome : ............................................................................................ 36
III.1.5. Bruit dans les images : ............................................................................................. 36
III.2. Localisation d’objet : ........................................................................................................ 37
III.2.1. Localisation dans l’image : ...................................................................................... 37
III.2.1.1. Centre de gravité, Aspect mathématique : ......................................................... 37
III.2.1.2. Calcul du centre de gravité de l’objet dans l’image : ......................................... 38
III.2.1.3. Orientation de l’objet dans l’image : .................................................................. 39
III.2.2. Localisation dans la scène : ...................................................................................... 39
III.2.2.1. Calcul du module rs : ......................................................................................... 39
III.2.2.2. Calcul de l’argument Qs :................................................................................... 42
III.3. Généralités sur le traitement d’images : ........................................................................... 43
III.3.1. Définition : ............................................................................................................... 43
III.3.2. Convolution d’images : ............................................................................................ 43
III.3.2.1. Définition : ......................................................................................................... 43
III.3.2.2. Convolution d’images réelles : ........................................................................... 43
III.3.2.3. Convolution d’image discrète : .......................................................................... 43
• Masque ou Noyau de Convolution : ................................................................... 44
• Procédé de la convolution d’une image : ........................................................... 44
III.3.3. Méthodes de traitement d’images : .......................................................................... 45
III.3.3.1. Seuillage : ........................................................................................................... 45
• Seuillage simple : ............................................................................................... 45
• Seuillage par Hystérésis : ................................................................................... 45
III.3.3.2. Filtrage : ............................................................................................................. 46
• Filtre passe-haut : ............................................................................................... 46
• Filtre passe-bas : ................................................................................................. 46
III.3.3.3. Détection de contours : ....................................................................................... 47
• Introduction et Définition : ................................................................................. 47
• Filtrage par différence finie (première dérivé) : ................................................. 47
• Filtrage par différence finie (Seconde dérivés) : ................................................ 48
• Filtrage optimal : ................................................................................................ 49
III.3.3.4. Segmentation : .................................................................................................... 51

52
Chapitre III : Localisation d’objet par traitement d’images

Fig. III-1 : Coordonnées de l’objet dans l’image ......................................................................... 37


Fig. III-2 : Exemples d’angles de rotations d’objets .................................................................... 39
Fig. III-3 : Localisation de l’objet dans le repère image/scène/robot .......................................... 42
Fig. III-4 : Convolution d’image matricielle ................................................................................ 44
Fig. III-5 : Convolution d’image réelle ........................................................................................ 45
Fig. III-6 : Image Originale .......................................................................................................... 45
Fig. III-7 : A gauche image Seuillée (Seuil=70), à droite Image Seuillée (Seuil=100). .............. 45
Fig. III-8 : Types de contours ....................................................................................................... 47

53
CHAPITRE IV

Implémentation de
l’asservissement visuel

« Tout instrument doit être le fruit de l’expérience. »


Leonard De Vinci
Chapitre IV : Implémentation de l’asservissement visuel

CHAPITRE IV

Implémentation de l’asservissement visuel


IV.Introduction :
Le travail effectué dans ce mémoire a été implémenté sur un robot réel présent au niveau
du CDTA. Il comprend tous les éléments nécessaires pour la réalisation de la tâche robotique, à
commencer par le robot, la caméra, les outils de transmission et les ordinateurs de calculs et de
traitements.

Nous exposerons dans ce chapitre, en premier lieu, l’implémentation et les résultats du


traitement d’images, puis une comparaison entre les différentes méthodes afin de designer les
plus adéquates à utiliser pour l’asservissement visuel.

Nous décrirons ensuite l’architecture générale de l’application, d’une part l’architecture


matérielle et d’autre part l’architecture logicielle.

Nous terminerons par présenter les tests effectués sur site réel, ainsi qu’une analyse
générale des résultats obtenus.

IV.1. Architecture de l’application :


IV.1.1. Présentation du système expérimental :
Le système expérimental utilisé pour la réalisation de notre application est composé des
éléments suivants :

- Bras manipulateur ULM.

- Caméra CCD monochrome.

- Ordinateur industriel embarqué sur le robot.

- Ordinateur de traitements muni d’une carte d’acquisition vidéo.

- Dispositif de transmission sans fil pour les images acquises par la caméra.

52
Chapitre IV : Implémentation de l’asservissement visuel

- Système de transmission (réseau) entres les deux PC pour la commande à distance du


bras ULM.

La disposition de ces éléments est illustrée dans la figure Fig. IV.1 :

vidéo
scène

Fig. IV-1 : Plate-forme expérimentale

IV.1.2. Structure logicielle du système :


Notre application a une architecture client/serveur où le serveur s’exécute sur le PC
embarqué et le client sur le PC de traitement (Fig.IV-2). Le serveur et le client communiquent
par sockets. Les images acquises par la caméra sont transmises au client à travers le dispositif
de transmission sans fil. La position articulaire du bras manipulateur est transmise du bras vers
les contrôleurs qui les stockent dans une mémoire partagée. Le serveur récupère le contenu de
cette mémoire et le transmet au client.

53
Chapitre IV : Implémentation de l’asservissement visuel

Fig. IV-2 : Structure logicielle de l’application

IV.1.2.1. Aspect Client/Serveur :


La transmission des données par sockets (cf. Annexe B) entre les deux PC est présentée
dans un schéma général de communication (Fig.IV-3).

54
Chapitre IV : Implémentation de l’asservissement visuel

Calculs des positions


articulaires désirées
(après traitement d’images)

Fig. IV-3 : Organigramme de communication Client/Serveur

IV.1.2.2. Développement du Serveur :


Le serveur est programmé en langage C et exécuté sur le PC embarqué sous le système
d’exploitation Linux. Il transmet au client la position du robot récupérée à partir du segment
mémoire de la base mobile, reçoit les positions et les vitesses désirées à partir du client et les
injecte au robot à travers le segment mémoire réservé à la position désirée si le robot n’est
pas en mouvement.

55
Chapitre IV : Implémentation de l’asservissement visuel

Le SynDEx détecte une modification du segment des positions désirées et démarre un


asservissement en position sur chaque articulation.

IV.1.2.3. Développement du Client :


Le client est exécuté sur le PC de traitement muni du système d’exploitation Windows,
il contient une application développée sous l’environnement BuilderC++ v 6 de Borland.
Cette application permet de visualiser en temps réel ce que la caméra acquiert comme image.
Ceci est possible grâce à une bibliothèque installée sur Builder appelée VideoLab v2.2. Elle
est munie d’un composant VLDSCapture qui récupère le flux image à partir de la carte
d’acquisition, et d’un autre composant VLGenericFilter qui résume l’image dans une
structure de données contenant une matrice permettant d’exécuter les traitements d’images
selon la cadence de la caméra.

IV.1.3. Phases d’exécution de la tâche robotique :


L’application est structurée en quatre parties. La première consiste à calibrer les axes du
bras afin de détecter la position de chaque axe lors de la mise en marche du robot. La seconde
est une initialisation des paramètres de l’application. La troisième représente l’asservissement
visuel du bras ULM et enfin la dernière étape consiste à saisir l’objet. Ces quatre étapes sont
détaillées comme suit :

Phase I :

Le robot étant muni de codeurs incrémentaux, la position de chaque axe est initialisée à
zéro à chaque allumage du robot. Par conséquent, tout déplacement se fera par rapport à ce
repère d’allumage (a) (Fig.IV-4).

Pour les besoins de notre application, nous devons amener le robot vers un repère de
départ (b). Mais le repère (a) du robot n’est pas connu. Pour résoudre ce problème, il faut faire
une calibration des axes. Nous amenons toutes les articulations du bras ULM à leurs butées
basses et nous sauvegardons dans un fichier les déplacements obtenus ( ai ) sous forme d’un

vecteur. Une fois cette opération effectuée, le vecteur contiendra alors la position des axes à
l’allumage du robot.

Nous exprimons les positions bi de notre repère par rapport aux butées basses. Ainsi,

nous obtenons un vecteur des écarts entre les deux repères ( ai - bi ). A chaque fois que nous

transmettons une position articulaire au robot, nous lui soustrayons l’écart correspondant.

56
Chapitre IV : Implémentation de l’asservissement visuel

Positiona = Positionb − (ai − bi )

Comme illustré sur la figure Fig.IV-15, les positions articulaires négatives sont au
dessous du zéro et celles positives au dessus.

_ à (a)
(b)

Fig. IV-4 : Changement de repère pour l’axe 2

En résumé, cette phase consiste à détecter les positions d’allumage du robot puis à
l’amener vers le repère de l’application.

Phase II :

Pour démarrer l’asservissement visuel du robot, il faut spécifier certains paramètres de départ :

1) Indiquer si le robot doit saisir un ou plusieurs objets.

2) Choisir la méthode de traitement d’images pour la localisation d’objets. Pour la saisie de


plusieurs objets, le choix de la segmentation est imposé implicitement.

3) Fixer le seuil dans le cas du seuillage ou de la segmentation.

4) Introduire la vitesse de déplacement pour chaque axe.

5) Spécifier le caractère du modèle géométrique inverse (calcul par fixation de l’axe 5 ou de


l’axe 2 avec introduction de la valeur fixée).

6) Introduire la distance entre l’objet et le plan perpendiculaire à l’axe 1 (Dobj).

7) Choisir la cadence d’exécution du traitement d’images.

Phase III :

Le PC client reçoit les images vidéo provenant de la caméra et la position de chaque


articulation provenant du serveur via le réseau. Les images sont traitées afin de récupérer la
position de l’objet dans l’image. En se basant sur la profondeur Z (calculée à partir des positions

57
Chapitre IV : Implémentation de l’asservissement visuel

articulaires) et le gain Kp, on obtient les coordonnées de l’objet dans la scène. Puis en utilisant le
modèle géométrique inverse, on obtient la position désirée pour centrer l’objet qui sera envoyée
au PC serveur qui la transmet au robot (Fig. IV.5).

Fig. IV-5 : Organigramme de l’asservissement visuel

Phase IV :

Saisir un objet revient à annuler la distance qui le sépare de la pince en tenant compte de
la distance entre l’objet et le plan de la base (Dobj). L’application calcule la position angulaire
qui permet la saisie et l’envoie au serveur qui l’injecte au robot.

58
Chapitre IV : Implémentation de l’asservissement visuel

IV.1.4. Chronogramme d’exécution de l’asservissement visuel :


IV.1.4.1. Positionnement du bras :
On présente dans la figure Fig. IV-6 le déroulement d’une itération de la tâche
robotique sur le client et le serveur. Cette itération est exécutée après initialisation du serveur
et du client et positionnement du bras à l’état initial.

Fig. IV-6 : Chronogramme de l’asservissement visuel


1: Démarrage et création du socket.
2: a : Serveur : Demande de connexion.
b : Client : Démarrage de l’application.
3: Traitement d’images et calcul de la position de l’objet dans l’image.
4: Création du socket et acceptation de la connexion.
5: Envoi de la position initiale du bras.
6: Réception de la position initiale et sa transmission au bras.
7: Envoi de la position articulaire du bras.
8: Réception de la position articulaire du bras.
9: Calcul des coordonnées de l’objet dans la scène.
10 : Calcul de la nouvelle position articulaire du bras.
11 : Envoi de la nouvelle position articulaire du bras.
12 : Réception de la nouvelle position articulaire et sa transmission au bras.
Les actions de 1 à 6 concernent l’initialisation de l’application, les actions de 7 à 12
représentent une itération de l’asservissement visuel.

IV.1.4.2. Saisie de l’objet :


Le déroulement de la phase de saisie de l’objet et détaillée dans la figure Fig.IV-7.

Fig. IV-7 : Chronogramme de la saisie d’un objet

59
Chapitre IV : Implémentation de l’asservissement visuel

1 : a : Serveur : Demande de connexion.


b : Client : Traitement d’images et calcul de la position de l’objet dans l’image.
2 : Calcul de la position articulaire du bras pour la saisie.
3 : Acceptation de la connexion.
4 : Envoi de la position articulaire du bras.
5 : Réception de la position articulaire et transmission au bras.

IV.2. Tests et résultats expérimentaux


IV.2.1. Système d’acquisition d’image :
L’acquisition des images est effectuée à l’aide d’un système de vision par ordinateur
comme le montre la figure Fig.IV-8. Il est composé d’une caméra CCD montée sur l’effecteur
du bras ULM. Les images acquises sont transmises à un ordinateur Pentium IV 2,1Ghz, à
512Mo de Ram équipé d’une carte d’acquisition vidéo et tournant sous le système
d’exploitation Windows. La transmission est réalisée grâce à un émetteur-récepteur vidéo sans
fil à haute fréquence.

Fig. IV-8 : Schéma du système d’acquisition

Une fois l’acquisition faite, l’image est numérisée par ordinateur grâce à la carte
d’acquisition, on peut ainsi appliquer les traitements désirés sur la matrice image récupérée.

60
Chapitre IV : Implémentation de l’asservissement visuel

IV.2.2. Conventions :
Dans notre travail, nous considérons une scène claire sur laquelle sont posés des objets
foncés. Cette condition permettra de mettre en évidence l’objet par rapport à la scène après
application des algorithmes de traitement d’images. Durant le déroulement de la tâche
robotique, nous supposons une intensité d’éclairage de la scène fixe.

L’image est représentée par une grille de 240 lignes et 320 colonnes. Les coordonnées de
chaque pixel sont exprimées par rapport à un repère dont l’origine coïncide avec le centre de
l’image (Fig. IV-9). Les vecteurs unités sont de longueur 1 pixel.

Fig. IV-9 : Repère image

IV.2.3. Algorithmes de traitement d’images utilisés :


Les images sont acquises par une caméra CCD de haute qualité, elle fournit des images
claires non bruitées, ceci est dû également au fait que notre scène est bien éclairée. Ainsi, il
n’est pas nécessaire de filtrer l’image avant le traitement, on applique directement l’algorithme
de traitement d’images et l’objet est mis en évidence.

On va illustrer dans ce qui suit les résultats de l’applications de chacun des algorithmes
de traitement d’images sur des images réelles (Fig. IV-10) :

Fig. IV-10 : Image réelle acquise par la caméra

61
Chapitre IV : Implémentation de l’asservissement visuel

IV.2.3.1. Seuillage :
Le seuillage permet de binariser l’image par affectation de la couleur blanche à la scène
et la couleur noire à l’objet (Fig. IV-11). Ce dernier devient alors une surface noire sur un
environnement blanc. Grâce à cela, l’objet est localisé dans l’image et est représenté par les
pixels de couleurs noires dont on connaît les coordonnées.

Cette méthode a pour avantage d’être rapide en exécution et facile à implémenter.


Cependant, elle reste très sensible à la lumière car le changement de celle-ci entraîne un
changement de l’intensité lumineuse de chaque pixel, ce qui implique un changement de la
forme de l’objet.

Fig. IV-11 : Image traitée par seuillage (seuil=100).

On peut palier à ce problème en utilisant un seuil automatique, calculé par


histogramme (distribution des fréquences des pixels pour chaque niveau de gris), changeant
de valeur par variation de la luminosité de la scène. Dans notre cas, l’intensité lumineuse de
la scène est fixée au départ, il suffit alors de choisir un seuil convenable et l’utiliser pendant
tout le traitement, ce qui a comme conséquence l’obtention d’un gain en temps d’exécution.

IV.2.3.2. Détection de contours :


Les algorithmes de détection de contours, principalement utilisés dans notre travail,
sont les méthodes de filtrage par différences finies (première et seconde dérivé) et de filtrage
optimal.

On va montrer dans ce qui suit les résultats obtenus pour chaque méthode de détection
de contours pour l’image représentée par la figure Fig. IV-10.

62
Chapitre IV : Implémentation de l’asservissement visuel

• Masque de Roberts :

On convolue l’image acquise avec le masque de convolution de Roberts horizontal et


vertical. On a ainsi deux images traitées dont les contours sont accentués en horizontal pour
l’une et en vertical pour l’autre. Après cela, on calcule le gradient.

On obtient une image dont les contours sont mis en évidence. Il suffit alors de
seuiller l’image pour récupérer les contours de l’objet (Fig. IV-12).

Fig. IV-12 : Image traitée par masque de Roberts

Le principal problème de cette méthode de détection est le bruit généré dans l’image
résultante à cause de la taille réduite du masque.

• Masque de Sobel :

L’application du masque est faite de la même manière que pour Roberts, on obtient
une image plus claire et moins bruitée (Fig. IV-13).

Fig. IV-13 : Image traitée par masque de Sobel

• Masque de Prewitt :
De la même manière, on applique le masque de Prewitt et on obtient l’image
suivante :

63
Chapitre IV : Implémentation de l’asservissement visuel

Fig. IV-14 : Image traitée par masque de Prewitt

La différence entre le résultat des deux masques est que les contours de Prewitt
(Fig. IV-14) sont plus accentués que ceux de Sobel.

• Masque de Kirsch :
Après application du détecteur de Kirsch, on remarque que le résultat est très sensible
surtout à la lumière et à la présence d’ombre (Fig. IV-15).

Fig. IV-15 : Image traitée par masque de Kirsch


• Laplacien :

La détection de contours par le Laplacien a été effectuée par convolution de l’image


avec le masque ⎡⎢− 1 − 1 − 1⎤⎥ .
⎢− 1 8 − 1⎥
⎢⎣− 1 − 1 − 1⎥⎦

Fig. IV-16 : Image traitée par Laplacien

64
Chapitre IV : Implémentation de l’asservissement visuel

On remarque que l’image résultante (Fig.IV-17) est très bruitée. Ceci est dû au fait
que la détection de contours par seconde dérivé est très sensible au bruit, elle nécessite un
filtrage avant d’appliquer le détecteur de Laplacien. Ceci augmente le temps de traitement.

• Détecteur optimal de Canny :

On remarque que les contours obtenus par filtrage optimal sont meilleurs que ceux
trouvés en appliquant la méthode des différences finies (Fig. IV-17). L’inconvénient est
que ce détecteur est complexe du point de vu implémentation. Ceci alourdit les traitements
qui doivent s’exécuter en temps réel (selon la cadence de la caméra).

Grâce à la simplicité de l’image acquise (présence de un ou plusieurs objets), la


détection de contours par différences finies suffit pour l’extraction des primitives visuelles.

Fig. IV-17 : Image traitée par le détecteur de Canny


• Comparaison entre les détecteurs de contours :

On présentera dans le tableau (Tab. IV-1) les résultats de comparaison entre les
méthodes de détection de contours :

Rapidité Facilité Stabilité des Sensibilité


d’exécution d’implémentation contours aux bruits
Roberts ++ + - +

Sobel + + - +

Prewitt + + + +

Kirsch + + - ++

Canny - - + -

Laplacien 0 0 + +

Tab. IV-1 : Tableau de comparaison entre les méthodes de détection de contours

65
Chapitre IV : Implémentation de l’asservissement visuel

+ : caractéristique présente.

- : caractéristique absente.

0 : caractéristique neutre.

A partir du tableau IV-1, on peut déduire que le détecteur le plus approprié pour notre
travail est l’opérateur de Prewitt. En plus de sa rapidité d’exécution et sa facilité
d’implémentation, cet opérateur présente une stabilité des contours détectés. Ainsi, l’objet est
bien localisé dans l’image. C’est la différence qu’il présente par rapport à Roberts, Sobel et
Kirsch.

L’opérateur de Prewitt est moins sensible au bruit que le détecteur de Laplacien. En


plus, il est meilleur que le détecteur de Canny en temps d’exécution, car ce dernier pourrait
ralentir les traitements et alourdir ainsi la tâche robotique.

Donc, pour la détection de contours, on choisit la méthode de Prewitt pour les


avantages qu’elle présente.

IV.2.3.3. Segmentation :
L’utilité d’intégrer la segmentation est de permettre au robot de distinguer plusieurs
objets présents dans la scène, en prenant en compte la contrainte temps réel induite par la
nécessité de faire un traitement à chaque acquisition d’image. Pour cela, nous avons choisi
d’implémenter un algorithme de segmentation dédié au besoin de notre travail qui consiste à
détecter des objets foncés sur une scène claire (Fig. IV-18). Ceci rend le traitement plus léger
que les algorithmes de segmentation connus dans la littérature et plus rapide en temps
d’exécution (cf.Annexe D).

Voici un exemple de segmentation, seul l’objet en rouge est pris en compte :

Fig. IV-18 : Segmentation d’une image à deux objets

66
Chapitre IV : Implémentation de l’asservissement visuel

IV.2.4. Résultat de l’exécution d’une saisie d’objet :


Pour effectuer ce test, nous commençons par positionner le bras afin de centrer l’objet.
Nous notons les variations de l’erreur en position dans l’image (rc) en fonction du temps ainsi
que le nombre d’itérations. Nous sauvegardons pour chaque itération la position de l’objet dans
l’image.
Ce test est réalisé avec seuillage pour un seuil de 100. La vitesse des axes est de
7,2°/s et l’angle 5 est fixé à 15 degrés. L’erreur à atteindre est de 0 pixel. Le choix de ces
paramètres est arbitraire car on effectuera des tests qui détailleront l’influence de chaque
paramètre sur le déroulement de l’asservissement visuel.
Dans la figure Fig.IV-19, l’image de gauche représente la position du robot avant le
démarrage de l’asservissement, celle de droite illustre l’objet centré par le bras manipulateur

Fig. IV-19 : A gauche : position initiale du robot, à droite : position finale du robot

Le graphe de la figure Fig.IV-20 représente la variation de l’erreur en fonction du temps :

Fig. IV-20 : Variation de l’erreur en fonction du temps.

67
Chapitre IV : Implémentation de l’asservissement visuel

Sur ce graphe, l’asservissement est achevé en 6 secondes pour une erreur de 0 pixels. Il
est effectué en 4 itérations. Le bras a réduit l’erreur de 140 pixels à 60 pixels après la première
itération. Ensuite, l’erreur atteint 10 pixels à la seconde itération, 3 pixels à la troisième pour
enfin s’annuler après la dernière itération.
On présente dans la figure Fig. IV-21 les positions de l’objet dans l’image pour chaque
itération :
Avant Première Deuxième Quatrième
asservissement itération itération itération

Fig. IV-21 : Position de l’objet dans l’image après chaque itération.

Après que le bras manipulateur ait centré l’objet, il effectue la saisie. Cette phase ne
dépend que d’un seul paramètre qui est la vitesse des axes (7,2 degrés/s pour ce test). On
illustre dans la figure Fig. IV-22 la descente du bras, la saisie puis la remonté.

Fig. IV-22 : Saisie d’un objet

Pour la saisie de deux objets, la méthode de traitement d’images utilisée est la


segmentation. Elle consiste à binariser l’image par seuillage. L’objet pris en compte est
représenté par ses coordonnées dans l’image. A partir de ces données, le bras réalise la tâche de
saisie en effectuant les étapes suivantes :
1 : Se positionner à l’état initial.
2 : Effectuer le positionnement pour centrer le premier objet.
3 : Saisir l’objet.
4 : Se déplacer pour relâcher l’objet hors de portée du champ de vision de la caméra.
5 : Se repositionner à l’état initial.
6 : Effectuer le positionnement pour centrer le second objet.
7 : Saisir l’objet.
8 : Se déplacer pour relâcher l’objet hors de portée du champ de vision de la caméra.

68
Chapitre IV : Implémentation de l’asservissement visuel

Fig. IV-23 : Saisie du premier objet

Fig. IV-24 : Saisie du second objet

IV.2.5. Influence des paramètres sur l’asservissement visuel :


Le traitement d’images et le calcul de la position angulaire du bras doivent s’effectuer à
chaque acquisition d’image. Nous avons remarqué que la durée de traitement et de calcul
dépasse la cadence de la caméra. Pour palier à ce problème, nous avons réduit la fréquence de
traitement et calcul à la moitié de celle de la caméra.
Nous allons présenter dans ce qui suit les tests effectués sur le bras ULM. Ces tests
permettront de comparer les méthodes de traitement d’images et d’obtenir pour chaque
méthode la meilleure valeur de l’angle fixé ( θ 2 ou θ 5 ) et la vitesse adéquate des axes. Il est à

noter que l’objet se trouve à une distance Dobj égale à -100mm.

IV.2.5.1. Variation de l’angle 2 :


L’utilisation du modèle par fixation de θ 2 réduit l’espace atteignable par l’effecteur.
Ceci est causé par la position que doit toujours respecter le bras. En effet, l’axe 3 est 5 sont
proche de leurs butées basses de 14° et 9° respectivement et les faire varier en fixant θ 2 ne
laisse pas un grand déplacement possible du bras. Mais pour le modèle fixant θ 5 , l’axe 2 est a

55,5° de sa butée basse laissant ainsi un plus grand choix de positions.

IV.2.5.2. Variation de l’angle 5 :


Pour cette expérience, nous avons choisi de centrer l’objet avec une erreur de 0 pixel.
Ceci permettra de tester la précision de la modélisation et des calculs effectués. La méthode
de traitement d’images utilisée est le seuillage avec un seuil de 100. Nous fixons une vitesse
des axes de 9°/s. Nous présentons dans ce qui suit les tests effectués pour la variation de θ 5 :

69
Chapitre IV : Implémentation de l’asservissement visuel

• Angle 5 fixé à 0° :

Le graphe sauivant illustre la variation de l’erreur en fonction du temps pour θ 5 = 0° :

Fig. IV-25 : L’erreur en fonction du temps pour θ 5 =0°.

On remarque que le robot a démarré d’une position où la cible est située dans la
partie droite basse du le champ de vision de la caméra (Fig.IV-21). Il a fini par centrer la
cible après 4 itérations comme illustré dans le graphe d’asservissement (Fig.IV-25).

Dans la première itération, le robot a réduit la distance entre le centre de l’image et


l’objet de 140 pixels à 38 pixels. Dans la deuxième de 38 à 2 pixels. L’erreur a, ensuite,
varié entre 1 et 5 pixels jusqu’à ce que le robot centre l’objet à la fin de la 4ème itération.

• Angle 5 fixé à 5° :

Pour ce cas, le graphe est donné par la figure Fig. IV-20 :

Fig. IV-26 : L’erreur en fonction du temps pour θ 5 =5°.

70
Chapitre IV : Implémentation de l’asservissement visuel

Pour ce cas (Fig.IV-26), le robot a exécuté huit itérations pour achever son
asservissement. Pour la première, la deuxième et la troisième itération, le robot a pu
rapprocher le centre de l’image du centre de gravité de l’objet pour atteindre une erreur
d’un pixel. Mais pour aboutir à 0 pixel, l’erreur a varié autour de 1 pixel. Ceci est dû au
mouvement vibratoire du bras qui ne permet pas, à l’échelle de petits déplacements,
d’obtenir des mouvement exacts et donc de capturer l’emplacement exact de l’objet. C’est
pour cela que l’asservissement peut durer jusqu’à 17 secondes pour une erreur de 0 pixel.

• Angle 5 fixé à 10° :

On présente dans le graphe suivant le résultat pour θ 5 = 10° :

Fig. IV-27 : L’erreur en fonction du temps pour θ 5 =10°.

• Angle 5 fixé à 15° :

Le graphe suivant illustre le résultat pour θ 5 = 15° :

Fig. IV-28 : L’erreur en fonction du temps pour θ 5 =15°.

71
Chapitre IV : Implémentation de l’asservissement visuel

• Angle 5 fixé à -9° (buté minimale) :

On présente dans le graphe suivant le résultat pour θ 5 = 10° :

Fig. IV-29 : L’erreur en fonction du temps pour θ 5 =-9°.

• Angle 5 fixé à -4° :

Fig. IV-30 : L’erreur en fonction du temps pour θ 5 =-4°.


En ce qui concerne ces quatre derniers graphes, on remarque que la durée
d’asservissement est de 7 secondes pour les figures Fig.IV-27 et Fig.IV-29 et de 6 secondes
pour la figure Fig.IV-28. Nous avons obtenu les meilleurs résultats en temps d’exécution (4
secondes) et en nombre d’itérations (3 itérations) pour θ 5 =-4° (Fig.IV-30). Malgré son
comportement vibratoire, le robot a pu centrer l’objet en trois itérations grâce à la variation
du gain Kp en fonction de celle du Z pendant l’asservissement. Ceci donne une bonne
estimation de rs à partir de rc. Pour le graphe de la figure Fig.IV-30, la position de l’objet
dans l’image est illustrée après chaque itération.

72
Chapitre IV : Implémentation de l’asservissement visuel

Les tests précédents sont effectués par seuillage. Ainsi, nous présentons dans la
figure Fig. IV-31 le résultat de la variation de l’angle 5 par la méthode de détection de
contours « Prewitt ».

Fig. IV-31 : Nombre d’itération et temps d’exécution en fonction de θ 5 , cas Prewitt.

On remarque, pour le graphe de la figure Fig. IV-31, que le meilleur résultat en temps
d’exécution est de 5 secondes pour 9 itérations. Ceci est dû au choix de l’erreur à atteindre
qui est zéro pixels. Les résultats obtenus pour le seuillage sont meilleurs (4 secondes pour 4
itérations), puisque le centre de gravité est plus stable que pour la détection de contours. En
plus, les vibrations causées par le bras pour de faibles valeurs de l’erreur (entre 0 et 4
pixels), faussent le centre de gravité dans le cas de Prewitt.

Pour la suite des tests et en conséquence des vibrations du bras ULM, nous fixons
l’erreur à atteindre à 4 pixels au plus.

IV.2.5.3. Variation de vitesse :


Pour les graphes des figures (Fig. IV-25, Fig. IV-26), l’erreur n’atteint pas le zéro
rapidement à cause des vibrations du bras. Ces vibrations sont dues à l’arrêt brusque de
chaque moteur. Cet arrêt brusque est conséquence du passage quasi instantané des vitesses
d’une valeur constante à une valeur nulle. Ceci engendre un pic d’accélération qui dépend de
la vitesse donnée pour chaque moteur. Cette accélération crée des forces qui causent ces
vibrations. Ainsi, nous déduisons que la variation des valeurs de vitesse entraîne la variation
du nombre d’itérations et aussi le temps d’exécution de la tâche. Pour trouver la vitesse
convenable, afin d’obtenir de bons résultats, nous avons pensé à varier la vitesse et à relever,
pour chaque valeur, le temps d’exécution et le nombre d’itérations. Nous avons obtenu les
graphes suivants :

73
Chapitre IV : Implémentation de l’asservissement visuel

• Variation de vitesse dans le cadre de la méthode de seuillage :

Fig. IV-32 : Nombre d’itération et temps d’exécution en fonction de la vitesse, cas seuillage

Sur le graphe de la figure Fig.IV-32, on remarque que pour une vitesse de 9°/s, nous
avons obtenu un meilleur résultat. Le robot a, en effet, pu achever son asservissement
seulement en 4 itérations durant 3,6 secondes. On peut dire que cette vitesse est convenable
pour l’utilisation du seuillage. Au-delà de cette valeur, les performances se dégradent
sensiblement. A titre d’exemple, pour une vitesse de 14,4°/s, on note 11 itérations pendant
6,5 secondes. Ceci est expliqué par le fait que, pour cette plage de vitesses, les vibrations
du robot augmentent.

• Variation de vitesse pour la méthode de Prewitt :

Fig. IV-33 : Nombre d’itération et temps d’exécution en fonction de la vitesse, cas Prewitt

74
Chapitre IV : Implémentation de l’asservissement visuel

Contrairement au graphe précédent, ce graphe (Fig.IV-33) illustre l’obtention de 8


itérations durant 9 secondes pour l’asservissement visuel à une vitesse de 2,7°/s. Ensuite,
pour une vitesse de 3,6°/s, l’asservissement est exécuté en 5 itérations pendant 6 secondes.

Pour les valeurs de la vitesse entre 3,6°/s et 9°/s, le nombre d’itérations a augmenté
rapidement pour attendre 13 itérations, ainsi que la durée de l’asservissement qui est de 7,7
secondes. Mais à partir de 9°/s, on remarque que le nombre d’itérations et le temps
d’exécution décroissent rapidement avec l’augmentation de la vitesse. On a obtenu, pour
une vitesse égale à 14,4°/s un asservissement achevé en seulement 3 itérations pendant 3,8
secondes. Ceci n’est pas toujours vrai, car comme cité précédemment, l’utilisation de la
détection de contours à des vitesses élevées, en plus du mouvement vibratoire du bras, peut
donner un centre de gravité faussé.

IV.2.5.4. Coordonnées polaires en fonction du nombre d’itérations :


Pour effectuer un test sur l’évolution des coordonnées polaires de l’objet et l’erreur rc
en fonction du nombre d’itérations, nous avons appliqué le seuillage et la détection de
contours par Prewitt. On a ainsi obtenu les résultats suivants :

• Résultat obtenu avec la méthode de seuillage :

On utilise pour cette méthode de traitement d’images la vitesse des axes la plus
appropriée qui est de 9°/s.

Fig. IV-34 : Coordonnées polaires et erreur en fonction du nombre d’itérations, cas seuillage.

Pour ce graphe (Fig. IV-34), l’asservissement est exécuté seulement en 4 itérations en


conséquence de l’utilisation du seuillage avec la meilleure valeur de la vitesse trouvée dans
les tests précédents.

75
Chapitre IV : Implémentation de l’asservissement visuel

Le bras a démarré d’une position où les coordonnées polaires de l’effecteur sur le


repère robot sont de 650mm et 0° respectivement pour R' et θ 1 , avec une erreur de 140
pixels. A la première itération, on remarque une diminution importante de l’erreur de 140 à
35 pixels. En parallèle à cela, les coordonnées polaires de l’effecteur sont passés de 650mm
à 774,64mm pour R' et de 0° à 7,06° pour θ1 . Ensuite pour les 3 dernières itérations l’erreur
décroît progressivement pour atteindre 1 pixel à la quatrième itération et R ' et θ1 atteignent
800mm et 7,08° respectivement. Mais on remarque une faible diminution de 10mm pour
R' et de 0,59° pour θ1 à la deuxième itération. Le robot c’est éloigné de sa cible, mais le
modèle géométrique arrive à le ramener vers l’objet. Cet éloignement est causée, des fois,
par l’acquisition de fausses données pendant la vibration du bras.

• Résultat obtenu par la méthode de Prewitt :

On fixe, pour ce test, la vitesse des axes à 3,6°/s qui a donné les meilleurs résultats
pour Prewitt (Fig. IV-33) :

Fig. IV-35 : Coordonnées polaire et erreur en fonction du nombre d’itérations par Prewitt.

Sur le graphe de la figure Fig.IV-35, on obtient les mêmes résultats que pour
seuillage du point de vu nombre d’itérations. Mais contrairement au graphe de la figure
Fig.IV-34, le bras a maintenu R' , pour les trois dernières itérations, à 784,88 mm. L’erreur
est annulée par la croissance de θ1 vers 3,55°.

Ce test ne donne pas une grande différence entre les deux méthodes de traitement
d’images, vu que pour chaque cas, l’asservissement visuel est effectué en quatre itérations.

IV.2.5.5. Nombre d’itérations et temps d’exécution moyens :


En expérimentation, et pour les mêmes conditions de travail, on peut refaire un même
test et obtenir des résultats différents. Par conséquent, pour estimer l’asservissement visuel

76
Chapitre IV : Implémentation de l’asservissement visuel

de notre application, il est intéressant d’estimer le temps moyen d’exécution et le nombre


moyen d’itérations. Pour ce faire, on a effectué dix tests d’asservissement visuel d’une
position de l’objet dans l’image rc égale à 138 pixels. Pour pouvoir comparer entre seuillage
et Prewitt, on choisi une vitesse des axes de 7,2 °/s qui est un compromis entre la meilleure
vitesse de seuillage (9°/s) et la meilleure vitesse de Prewitt (3,6°/s). Pour chaque test, on note
le nombre d’itérations et le temps d’exécution. On a obtenu les résultats suivants :

• Résultat obtenu par la méthode de seuillage :

Fig. IV-36 : Nombre d’itération et temps d’exécution en fonction des tests par seuillage.

• Résultat obtenu par la méthode de Prewitt :

Fig. IV-37 : Nombre d’itération et temps d’exécution en fonction des tests par Prewitt.

Pour les deux graphes des figures (Fig.IV-36) et (Fig.IV-37), nous avons obtenus un
nombre d’itérations moyen de 8 itérations et un temps d’exécution moyen de 5,86 secondes
pour le seuillage. En ce qui concerne Prewitt, le nombre d’itération moyen et le temps

77
Chapitre IV : Implémentation de l’asservissement visuel

d’exécution moyen sont de 9 itération et 4,95 secondes respectivement. On peut dire que
pour un asservissement de 8 ou 9 itérations, la durée moyenne de l’asservissement est
autour de 5 secondes.

Pour ces deux tests, on remarque une mauvaise stabilité en nombre d’itérations par
rapport au temps d’exécution. Il est important de noter que ces deux grandeurs peuvent ne
pas évoluer de la même manière. On peut obtenir pour un même temps d’exécution, un
nombre d’itérations différentes (Fig. IV-37, test 4 et 6). Ceci est expliqué par le fait que le
temps d’exécution d’une seule itération varie d’une itération à une autre et dépend du
déplacement que doivent effectuer les axes du bras pour atteindre la position désirée.

IV.2.5.6. Test sur la butée d’un des axes :

Fig. IV-38 : Erreur en fonction du temps pour un axe qui butte.

Pour ce test, nous avons placé l’objet à une distance rc égale à 102 pixels dans la partie
basse du champ de vision de la caméra avec R' égal à 650 mm. Nous appliquons la méthode
par fixation de l’angle θ 5 à la valeur 0°. Selon la position initiale du robot, l’axe 2 et l’axe 3
sont positionnés à 67,3° et 12,6° respectivement par rapport à leurs butées basses.

Sur le graphe (Fig. IV-38), on remarque que l’erreur a été réduite de 102 à 91 pixels.
Mais l’asservissement s’est arrêté car un des axes (axe 2 ou axe 3) a buté. Par rapport à la
position initiale de l’objet, pour le centrer, le bras doit déployer l’axe 2 et plier l’axe 3 qui est
à 12,6° de sa buté basse. On déduit que c’est l’axe 3 qui a buté.

On peut dire que le robot ne peut pas toujours atteindre sa cible, que ce soit avec le
modèle géométrique 2D (qui est implémenté pour notre travail) ou le 3D, car il existe des
zones non atteignable par l’effecteur du robot. On peut palier à ce problème en intégrant la

78
Chapitre IV : Implémentation de l’asservissement visuel

base mobile du robot. Ce qui améliore le travail et donne plus d’espace atteignable pour le
bras.

IV.2.6. Test sur un objet mobile :


Nous avons voulu effectuer un test sur un objet mobile. Cet objet s’est déplacé de
300mm puis il s’est arrêté. On présente dans ce qui suit la variation de l’erreur en fonction du
temps pour deux vitesses différentes de l’objet (10mm/s et 30mm/s) :

IV.2.6.1. Objet lent :

Fig. IV-39 : Erreur en fonction du temps pour objet lent.

IV.2.6.2. Objet rapide :

Fig. IV-40 : Erreur en fonction du temps pour objet rapide.

Pour les deux graphes des figures (Fig.IV-38) et (Fig.IV-39), nous représentons la
variation de rc en fonction du temps. L’objet a été déplacé avec une vitesse constante pour
les deux tests. Mais la vitesse pour le premier test est supérieure à celle du second.

79
Chapitre IV : Implémentation de l’asservissement visuel

Pour le test d’un objet lent, l’objet est positionné à 93 pixels du centre de l’image.
Après cela, l’erreur varie dans un intervalle de 5 à 70 pixels en présentant des pics.

Pour le test d’un objet rapide, l’objet est positionné à 125 pixels. Comme l’objet se
déplace rapidement l’erreur augment pour attendre 175 pixels tout en marquant des pics.

Ceci est dû au mouvement saccadé du bras, car après chaque tentative d’annulation de
l’erreur, l’objet s’éloigne à nouveau, mais le modèle géométrique arrive à rapprocher le
centre de l’image de celui de l’objet.

Il est à noter que l’asservissement se termine car l’objet devient inerte. Pour réaliser un
suivi de cible, il faut intégrer d’autres paramètres comme la prédiction du mouvement de la
cible pour appréhender ces déplacements.

V.Conclusion
Ce dernier chapitre a été consacré à l’implémentation de la technique « Dynamic Look and
Move » qui nous a permis de réaliser la tâche de positionnement de la caméra par rapport à un
objet fixe. Le choix de cette technique est due au fait que le bras manipulateur ne centre pas
l’objet dès la première itération, car il subsiste des erreurs de modélisations et d’estimation du
module du centre de gravité de l’objet dans le repère de la scène (rs), qui est important dans le
calcul de la nouvelle position du robot manipulateur.

Les tests effectués dans ce chapitre on permis de conclure que le seuillage est le traitement
d’images le plus adéquat pour notre travail car il présente une stabilité du centre de gravité de
l’objet dans l’image.

Le modèle géométrique du robot présente une ambiguïté au niveau de la non unicité de la


solution. Ceci est dû au fait qu’on veut exprimer la position angulaire du bras manipulateur par
rapport à la projection de l’effecteur dans la scène et non pas par rapport à la distance réelle. Par
conséquence, il existe une plage de valeurs pour les trois articulations prises en compte (2, 3 et 5)
qui permettent de positionner l’effecteur à cette distance. Le meilleur résultat a pu être trouvé par
expérimentation. Nous en déduisons que, par rapport à la nature de la tâche à réaliser, cette
ambiguïté ne présente aucun problème vu que ce modèle aboutit dans la plupart des cas à
positionner le bras pour centrer l’objet.

80
Chapitre IV : Implémentation de l’asservissement visuel

IV. Introduction ............................................................................................................................ 52


IV.1. Architecture de l’application ........................................................................................... 52
IV.1.1. Présentation du système expérimental ..................................................................... 52
IV.1.2. Structure logicielle du système ................................................................................ 53
IV.1.2.1. Aspect Client/Serveur ....................................................................................... 54
IV.1.2.2. Développement du Serveur ............................................................................... 55
IV.1.2.3. Développement du Client .................................................................................. 56
IV.1.3. Phases d’exécution de la tâche robotique ................................................................ 56
IV.1.4. Chronogramme d’exécution de l’asservissement visuel .......................................... 59
IV.1.4.1. Positionnement du bras ..................................................................................... 59
IV.1.4.2. Saisie de l’objet ................................................................................................. 59
IV.2. Tests et résultats expérimentaux ...................................................................................... 60
IV.2.1. Système d’acquisition d’image ................................................................................ 60
IV.2.2. Conventions ............................................................................................................. 61
IV.2.3. Algorithmes de traitement d’images utilisés ............................................................ 61
IV.2.3.1. Seuillage ............................................................................................................ 62
IV.2.3.2. Détection de contours ........................................................................................ 62
IV.2.3.3. Segmentation ..................................................................................................... 66
IV.2.4. Résultat de l’exécution d’une saisie d’objet : ........................................................... 67
IV.2.5. Influence des paramètres sur l’asservissement visuel : ............................................. 69
IV.2.5.1. Variation de l’angle 2 :....................................................................................... 69
IV.2.5.2. Variation de l’angle 5 :....................................................................................... 69
IV.2.5.3. Variation de vitesse : .......................................................................................... 73
IV.2.5.4. Coordonnées polaires en fonction du nombre d’itérations : .............................. 75
IV.2.5.5. Nombre d’itérations et temps d’exécution moyens : ......................................... 76
IV.2.5.6. Test sur la butée d’un des axes : ........................................................................ 78
IV.2.6. Test sur un objet mobile : .......................................................................................... 79
IV.2.6.1. Objet lent : .......................................................................................................... 79
IV.2.6.2. Objet rapide : ...................................................................................................... 79
V. Conclusion............................................................................................................................... 80

Fig. IV-1 : Plate-forme expérimentale .......................................................................................... 53


Fig. IV-2 : Structure logicielle de l’application ............................................................................ 54
Fig. IV-3 : Organigramme de communication Client/Serveur ..................................................... 55
Fig. IV-4 : Changement de repère pour l’axe 2 ............................................................................ 57
Fig. IV-5 : Organigramme de l’asservissement visuel ................................................................. 58
Fig. IV-6 : Chronogramme de l’asservissement visuel ................................................................ 59
Fig. IV-7 : Chronogramme de la saisie d’un objet ....................................................................... 59
Fig. IV-8 : Schéma du système d’acquisition ............................................................................... 60
Fig. IV-9 : Repère image .............................................................................................................. 61
Fig. IV-10 : Image réelle acquise par la caméra ........................................................................... 61
Fig. IV-11 : Image traitée par seuillage (seuil=100). ................................................................... 62
Fig. IV-12 : Image traitée par masque de Roberts ........................................................................ 63
Fig. IV-13 : Image traitée par masque de Sobel ........................................................................... 63
Fig. IV-14 : Image traitée par masque de Prewitt......................................................................... 64

81
Chapitre IV : Implémentation de l’asservissement visuel

Fig. IV-15 : Image traitée par masque de Kirsch ......................................................................... 64


Fig. IV-16 : Image traitée par Laplacien ...................................................................................... 64
Fig. IV-17 : Image traitée par le détecteur de Canny ................................................................... 65
Fig. IV-18 : Segmentation d’une image à deux objets ................................................................. 66
Fig. IV-19 : A gauche : position initiale du robot, à droite : position finale du robot .................. 67
Fig. IV-20 : Variation de l’erreur en fonction du temps. .............................................................. 67
Fig. IV-21 : Position de l’objet dans l’image après chaque itération. .......................................... 68
Fig. IV-22 : Saisie d’un objet ....................................................................................................... 68
Fig. IV-23 : Saisie du premier objet ............................................................................................. 69
Fig. IV-24 : Saisie du second objet............................................................................................... 69
Fig. IV-25 : L’erreur en fonction du temps pour θ 5 =0°. .............................................................. 70
Fig. IV-26 : L’erreur en fonction du temps pour θ 5 =5°. .............................................................. 70
Fig. IV-27 : L’erreur en fonction du temps pour θ 5 =10°. ............................................................ 71
Fig. IV-28 : L’erreur en fonction du temps pour θ 5 =15°. ............................................................ 71
Fig. IV-29 : L’erreur en fonction du temps pour θ 5 =-9°. ............................................................ 72
Fig. IV-30 : L’erreur en fonction du temps pour θ 5 =-4°. ............................................................ 72
Fig. IV-31 : Nombre d’itération et temps d’exécution en fonction de θ 5 , cas Prewitt. ............... 73
Fig. IV-32 : Nombre d’itération et temps d’exécution en fonction de la vitesse, cas seuillage ... 74
Fig. IV-33 : Nombre d’itération et temps d’exécution en fonction de la vitesse, cas Prewitt ...... 74
Fig. IV-34 : Coordonnées polaires et erreur en fonction du nombre d’itérations, cas seuillage. . 75
Fig. IV-35 : Coordonnées polaire et erreur en fonction du nombre d’itérations par Prewitt. ...... 76
Fig. IV-36 : Nombre d’itération et temps d’exécution en fonction des tests par seuillage. ......... 77
Fig. IV-37 : Nombre d’itération et temps d’exécution en fonction des tests par Prewitt. ............ 77
Fig. IV-38 : Erreur en fonction du temps pour un axe qui butte. ................................................. 78
Fig. IV-39 : Erreur en fonction du temps pour objet lent. ............................................................ 79
Fig. IV-40 : Erreur en fonction du temps pour objet rapide. ........................................................ 79

82
CONCLUSION ET
PERSPECTIVES
CONCLUSION ET PERSPECTIVES

La vision est devenue un outil essentiel dans un système robotique, elle permet au robot
d'accomplir des tâches nouvelles afin d’évoluer et de s’adapter à son environnement et aux
changements pouvant survenir. Néanmoins, l'utilisation d'informations visuelles va
inévitablement rendre la commande des robots plus complexe. C’est ainsi que des techniques ont
été mises au point pour répondre au mieux à ces problèmes.

Dans ce mémoire, on a traité principalement le problème de positionnement d'un bras


manipulateur vis-à-vis d'un objet fixe pour pouvoir le saisir, ceci est réalisé à l'aide
d'une commande référencée vision nommée « Asservissement visuel ».

La réalisation de notre application est passée par plusieurs étapes, à savoir la modélisation
du bras manipulateur ULM, l’extraction des données visuelles pour la localisation d’objet et
enfin l’implémentation des méthodes qui en résultes pour commander le bras.

Donc, dans un premier temps, on a présenté les différentes approches de l’asservissement


visuel Monoculaire en mettant l’accent sur celles adoptées dans notre travail.

Ensuite, le bras manipulateur, sur lequel repose notre implémentation, a fait l’objet d’une
présentation et d’une modélisation géométrique pour permettre son positionnement afin de centre
centrer et saisir un objet se trouvant dans le champs de vision de la caméra.

Pour localiser l’objet dans l’image acquise par la caméra, on a détaillé la méthode de
calcul du centre de gravité a partir duquel on obtient les coordonnées polaires sur images. Puis
on a exposée la transformation de ces coordonnées en coordonnées polaires dans le repère
scène. Ces coordonnées permettent de localiser l’objet par rapport au robot pour obtenir la
position articulaire du bras manipulateur.

Finalement, on a implémenté les méthodes de traitement d’images. Ces méthodes sont le


seuillage, la détection de contours pour mettre en évidence l’objet par rapport à la scène et une
segmentation dans le cas où plusieurs objets sont présents dans le champ de vision de la caméra.
Après comparaison des méthodes de détection de contours, on a conclu que le masque de
Prewitt est le plus approprié pour notre application car il est rapide en exécution, facile a
implémenté et ses contours sont plus stables que ceux d’autres masques. Ensuite, on a établie
une comparaison entre la détection de contours par de Prewitt et le seuillage. Les résultats

81
obtenus pour le seuillage sont meilleurs en temps d’exécution et nombre d’itération que
l’asservissement visuel, car le centre de gravité de l’objet est plus stable que dans le cas de
Prewitt.

Malgré l’application concerne uniquement des objets fixes, on a voulu tester la faisabilité
pour un objet mobile. Le bras arrivait toujours à poursuivre sa cible à condition qu’elle reste
dans le champ de vision de la caméra et également dans l’espace atteignable du bras ULM.

L’application permet de saisir un objet ayant une quelconque orientation. Et durant


l’expérimentation, le test d’orientation a été effectué mais malheureusement les résultats ne
figurent pas dans le document à cause d’une défaillance de l’axe 6 vers la fin de notre travail.

Comme montré dans les résultats expérimentaux, le bras présente des vibrations lors d’un
déplacement. Ces vibrations sont causées par l’utilisation de courroies au niveau de l’articulation 3.
Ainsi, il faut trouver un compromis entre la précision qui diminue par augmentation de la vitesse des
articulations et le temps d’exécution qui augmente par diminution de la vitesse.

Enfin, ce travail est le premier du genre sur le bras ULM du laboratoire Robotique et
Productique du CDTA, il est nécessaire de contribuer à améliorer les performances du robot (base
RobuTER et bras manipulateur ULM) et à renforcer les travaux dans le domaine d'asservissement
visuel, notre travail ouvre alors de très nombreuses perspectives d'application :

¾ Réaliser la tâche de suivi de cible mobile par vision en introduisant des


algorithmes de détection de mouvement dans l'image. Ceci est effectué grâce à la localisation
de l’objet relativement à la position du bras.

¾ Améliorer les algorithmes de segmentation en utilisant des fonctions de reconnaissance des


formes dans le module de vision pour les scènes complexes ou contenant plusieurs objets.

¾ Intégrer la base mobile afin d’élargir l’espace de travail du bras, ceci permet d’éviter que
les axes du robot ne buttent.

¾ Effectuer la modélisation 3D du bras en incluant les six axes du robot manipulateur pour
pourvoir ainsi couvrir un espace de travail plus grand.

¾ Remplacer la carte d'acquisition actuelle par une autre carte programmable et plus rapide,
ceci sera d'une très grande importance pour la poursuite des travaux dans cette discipline.

¾ Améliorer la loi de commande du bras ULM par synchronisation des axes pour minimiser
les vibrations.

82
BIBLIOGRAPHIE
BIBLIOGRAPHIE

[BEG 04] Fares Beggas et Lakhdar Laoubi, Positionnement d’un bras manipulateur
par rapport à un motif par asservissement visuel, Mémoire de fin d’études
pour l’obtention du diplôme d’ingénieur d’état en génie électrique, Ecole
Militaire Polytechnique, 2004.

[BRE 99] Stéphane Breton, Une approche neuronale du contrôle robotique utilisant la
vision binoculaire par reconstruction tridimensionnelle, Thèse de Doctorat,
Université de Haute-Alsace U.F.R des Sciences et Techniques, pages 21-28, 1999.

[CAN 83] J. Canny, Finding edges and lines in images, Internal Report AI. TR. 720, MIT
Artificial Intelligence Laboratory, Cambridge, 1983.

[CAN 86] J. Canny, A computational approach to edge detection, IEEE Transactions, on


Pattern Analysis and Machine Intelligence, 8(6): 679–698, 1986.

[DEM 92] D. DeMenthon et L. S. Davis, Exact and approximate solutions of the


perspective three-point problem, IEEE Trans. On Pattern Analysis and Machine
Intelligence, 11 : 1100-1105, 1992.

[DES 01] Jacky Desachy , Analyse d’image notes de cours-Version 1.3, Université des
Antilles et de la Guyane, Pointe à Pitre, Janvier 2001.

[FED 89] J. Feddema et O. Mitchell, Vision-guided servoing with feature-based trajectory


generation, IEEE Transactions on Robotics and Automation, 5(5): 691-700,
Octobre 1989.

[FIS 81] M. A. Fischler et R. C. Bolles, Random sample consensus: a paradigm for model
fitting with applications to image analysis and automated cartography,
Communications of the ACM, 24: 381-395, Juin 1981.

[GAN 04] Jacques Gangloff, Asservissements visuels et chirurgie robotisée, Mémoire pour
l’obtention de l'habilitation à diriger des recherches (Spécialité Robotique),
Décembre 2004.

[GAN 06] Jacques Gangloff, Asservissements visuels rapides d’un robot manipulateur à
six degrés de liberté, suivie de cible et de profilé, Thèse de l’université de Louis
Pasteur, Ecole Nationale Supérieur de Physique de Strasbourg, 25 Avril 2006.

[GRA 98] T. Grandpierre, C. Lavarenne et Y. Sorel, Modèle d’exécutif distribués temps réel
pour SynDEx, Rapport de Recherche, INRIA, N° 3476, Août 1998.

[JAC 92] W.Jacque, Paradigme connexionniste pour l’apprentissage de fonctions


robotiques : application au problème asservissement visuel de bras
manipulateur, Thèse de Doctorat, Université de Haute-Alsace, Mars 1992.

97
[LAH 05] Lahcen Laib, Redouane Bessaih, Contrôle d’un robot manipulateur mobile
base sur une architecture Client/Serveur, Mémoire de projet de fin d’études
pour l’obtention du diplôme d’Ingénieur d’Etat en Informatique, Faculté des
Sciences, Département Informatique, 2005.

[LIN 04] Diane Lingrand, Cours de Traitement d’Images, Projet RAINBOW, Université de
Nice, Sophia Antipolis, octobre 1987, 22 Janvier 2004.

[MAL 98] E. Malis, Contributions à la modélisation et à la commande en asservissement


visuel, Thèse de doctorat, Université de Rennes I, 1998.

[OUA 02] N.Ouadeh, Asservissement visuel d’un bras manipulateur, Thèse de magistère,
l’Ecole Militaire Polytechnique, Novembre 2002, Thèse de magistère, l’Ecole
Militaire Polytechnique, Novembre 2002.

[OUD 06] Salima Ouadfel, Contributions à la Segmentation d’images basées sur la


résolution collective par colonies de fourmis artificielles, Thèse En vue de
l'obtention du diplôme de Doctorat en Informatique, Université Hadj Lakhdar de
Batna Faculté des Sciences de l’Ingénieur, 04 Juin 2006.

[POM 04] P. Pomiers, Robosoft Developement Toolchain, Avril 2004.

[SUN 96] V. Sundareswaran, P. Bouthemy, et F. Chaumette, Exploiting image motion for


active vision in a visual servoing framework, Int. Journal of robotics research,
15(6): 629-645, Décembre 1996.

[WEI 87] LE. Weiss et A.C. Sanderson, Dynamic sensor-based control of robuts with
visual feedback, IEEE Journal of Robotic and Automation, pages 404-417,
octobre1987.

[WIL 96] W. J. Wilson, C. Williams Hulls et G. S. Bell, Relative end-effector control using
cartesian position based visual servoing, IEEE Transactions on Robotics and
Automation, 12(5) : 684-696, 1996.

98
ANNEXES
ANNEXE A

1. Propriétés des filtres linéaires :


∂( I ∗ f ) ∂f
Montrer que =I∗ [DES 01]
∂x ∂y
Soit I un signal (image) et un filtre spatial linéaire de réponse impulsionnelle f alors :
( I * f )' = I * f ' et ( I * f )' ' = I * f ' '
Démonstration:
+∞
F{f } = ∫ f (t ).e
− jωt
dt = F ( jω ) signal 1 dimension. (A.1)
−∞

⎧ df ⎫
Donc F ⎨ ⎬ = jω × F ( jω ) (A.2)
⎩ dt ⎭
+∞
⎧ df ⎫ df (t ) − jωt
car F ⎨ ⎬ = ∫ × e dt , et par intégration par partie, on trouve :
⎩ dt ⎭ −∞ dt
+∞
⎧ df ⎫
F ⎨ ⎬ = f × e − jωt [ ]
+∞
−∞ − ∫ f × ( − jω ) × e
− jωt
dt = jω × F ( jω ) (A.3)
⎩ dt ⎭ −∞

on a aussi que le produit de convolution s’écrit :


+∞
f ( x) ∗ g ( x) = ∫ f ( x − τ ) × g (τ )dτ
−∞
(A.4)
+∞+∞
Donc : F { f (t ) ∗ g (t )} = ∫ ∫ f (t − τ ) × g (τ ).dτ × e
− jωt
dt (A.5)
− ∞− ∞
+∞+∞ +∞ +∞
= ∫∫
− ∞− ∞
f (t − τ ) × e − jω ( t −τ ) dt × g (τ ) × e − jωτ dτ = ∫
−∞
f (t − τ ) × e − jω ( t −τ ) dt × ∫ g (τ ) × e − jωτ dτ
−∞
+∞ +∞
= ∫ f ( x) × e
− jωx
dx × ∫ g (τ ) × e − jωτ dτ = F { jω}× G{ jω} (A.6)
−∞ −∞

De (A.3) et (A.6), on trouve :


⎧d ( f ∗ g) ⎫
F⎨ ⎬ = jω × F ( jω ) × G ( jω ) (A.7)
⎩ dt ⎭
On appliquant la transformée de Fourier inverse :
d ( f ∗ g)
= F −1 { jω × F ( jω ) × G ( jω )} = F −1{ jω × F ( jω )} ∗ F −1 {G ( jω )} =
df
∗g
dt dt
= F −1{F ( jω )} ∗ F −1 { jω × G ( jω )} = f ×
dg
(A.8)
dt

83
2. Approche gradient :

Le gradient d’une image I, dans le domaine continu ou discret, représente sa dérivé


première. C’est un vecteur noté ∇I ( x, y ) dont les coordonnées sont les dérivés partielles de I
t
⎛ ∂I ∂I ⎞
selon la directions x (horizontale) et y (verticale) : ∇I = ⎜⎜ ⎟⎟ . [DES 01].
⎝ ∂x ∂y ⎠

Il est caractérisé par sont module : | ∇ I |= ⎛⎜ ∂ I + ∂ I ⎞⎟ , et sa direction dans l’image :


2 2

⎜ ⎟
⎝ ∂x ∂y ⎠

⎛ ∂I ⎞
⎜ ⎟
Arg (∇ I ( x , y )) = Arc tan ⎜ ∂ y ⎟ (le module est l’argument représentent des matrices).
⎜ ∂I ⎟
⎜ ∂x ⎟
⎝ ⎠

Pour calculer le vecteur gradient, il faut calculer les dérivés partielles de l’image suivant les
lignes et les colonnes. Or l’image sur laquelle on veut faire ce traitement est en général lissée
(par convolution avec un filtre de lissage), donc le gradient aura pour expression :
t
⎛ ∂( I ∗ f ) ∂( I ∗ f ) ⎞
∇I = ⎜⎜ , ⎟ où f est le filtre de lissage
⎝ ∂x ∂y ⎟⎠

∂( I ∗ f ) ∂f
Mais on sait que =I∗
∂x ∂x

Ainsi, le gradient d’une image peut être calculé directement par convolution de l’image
initiale avec des filtres dérivés, en horizontale (par rapport à x ou suivant la direction 0 degré) et
en verticale (par rapport à y ou suivant la direction 90 degré). En utilisant les deux matrices
résultantes, on calcule le module en chaque point de l’image et on obtient la matrice module du
gradient.

Vu qu’on travaille avec des images discrètes, il faut passer par une étape de discrétisation
de filtre pour pouvoir l’appliquer à l’image. On présente dans ce qui suit un exemple de calcul de
masque de convolution :

3. Exemples de discrétisation de filtres pour le calcul de gradient :

Prenant le cas d’un signal à une dimension, on recherche les contours de type marche dans
le cadre continu, puis dans le cas discret. Ensuite, on étend à 2D (image). Soit donc une fonction
2
x

de filtrage du bruit : f ( x ) = k × e
2
2 πσ
(Fig. A-1 [DES 01]).

84
Fig. A-1 : Représentation de la fonction f(x) continue

Dans le domaine discret, on obtient la fonction f(x) discrète par échantillonnage (Fig. A-2
[DES 01]). Les valeurs correspondantes aux valeurs de x : -1, 0 et 1 sont exprimées sur le
graphe :

Fig. A-2 : Représentation de la fonction f(x) discrète

On procède maintenant à la dérivation du filtre :

x2
∂f ⎛ x ⎞ −
= f '( x) = − k × ⎜ − ⎟ × e 2 πσ
2

∂x ⎝ πσ
2

On récupère ensuite les valeurs correspondantes à -1, 0 et 1 :

x2
k −
f ' (1) = α = ×e , f ' ( 0 ) = 0 , f ' ( − 1) = − α .
2
2 πσ
πσ 2

x2 + y 2

En deux dimensions, le filtre devient un filtre gaussien de fonction f ( x, y ) = k × e 2πσ 2

1
avec k = et les moyennes sont nulles. On calcule alors les deux dérivés partielles :
2πσ 2
x2 + y 2
∂f ⎛ x ⎞ − 2πσ 2 ∂f ⎛ y ⎞ − 2πσ 2
x2 + y2
= k × ⎜− 2 ⎟
×e et = k ×⎜− 2 ⎟
×e [DES 01].
∂x ⎝ πσ ⎠ ∂y ⎝ πσ ⎠

Il suffit maintenant de calculer les composantes horizontales et verticales du gradient, on


combine les valeurs -1, 0 et 1 pour x et y :

85
⎡ ∂f ∂f ∂f ⎤
(1,−1)⎥ ⎡ ⎤
2 2
⎢ ∂x (−1,−1) ∂x (0,−1)

∂x ⎢k × e 1 2πσ 2
0 k ×e ⎥ 2πσ 2

⎢ ∂f ∂f ∂f ⎥ ⎢ −
1
2 ⎥
⎢ (−1,0) (1,0) ⎥ = ⎢k × e 2πσ 0 k × e 2πσ ⎥
2
(0,0)
⎢ ∂x ∂x ∂x ⎥ ⎢ −
2 2

⎢ ∂f (−1,1) ∂f
(0,1)
∂f
(1,1) ⎥ ⎢
k ×e 2πσ 2
0 k ×e 2πσ 2

⎢⎣ ∂x ∂x ∂x ⎥
⎦ ⎣ ⎦

⎡ ∂f ∂f ∂f ⎤
⎢ ∂y (−1,−1) ∂y
(0,−1)
∂y
(1,−1)⎥ ⎡ −
2

1 2

× 2πσ 2
k ×e 2πσ 2
k × e 2πσ ⎥
2
⎢ ⎥ ⎢ k e
⎢ ∂f (−1,0) ∂f
(0,0)
∂f
(1,0) ⎥ = ⎢ 0 0 0 ⎥
⎢ ∂y ∂y ∂y ⎥ ⎢ −
2 1 2 ⎥
⎢ ∂f ∂f ∂f ⎥ ⎢ k ×e 2πσ 2
k ×e 2πσ 2
k × e 2πσ ⎥
2

⎢ (−1,1) (0,1) (1,1) ⎥ ⎣⎢ ⎦⎥


⎢⎣ ∂y ∂y ∂y ⎥⎦

Après convolution de l’image avec ces deux masques, on peut calculer le module et la
direction du gradient.

La mise en évidence d’un contour en un point de l’image peut se faire par simple analyse
de ce vecteur : si son amplitude est importante, c’est que le niveau de gris varie de façon
significative dans le voisinage. Dans ce cas, le vecteur gradient est orthogonal à la direction du
contour. Un contour est alors défini comme le lieu des maxima du gradient dans la direction du
gradient [DES 01].

4. Approche Laplacien :

Cette approche consiste à calculer le Laplacien qui est constitué des deux dérivés partielles
t
secondes de l’images : ⎛ ∂2I ∂2I ⎞ .
∇ I = ⎜⎜ 2 ⎟⎟
⎝ ∂x ∂y
2

Cette méthode a été proposée en 1976. Elle utilise le fait que le passage par zéro du
Laplacien permet de bien mettre en évidence les maxima du gradient dans la direction du
gradient, mais l’estimation de la dérivé seconde étant très sensible aux bruits, il convient de
filtrer très fortement l’image avant d’en mesurer le Laplacien 1.

Comme pour le gradient, au lieu de calculer le Laplacien d’une image filtrée, on applique
le Laplacien au filtre qu’on applique à l’image. Cela conduit au filtrage suivant :
⎛ ∂2I ∂2I ⎞ ⎛ ∂2 ∂2 ⎞
f ∗ ⎜⎜ + ⎟ = ⎜ + ⎟[ f ∗ I ] .
⎝ ∂x ∂y ⎟⎠ ⎜⎝ ∂x ∂y ⎟⎠

Après application du Laplacien dans l’image, il faut effectuer le passage par zéro. Ce qui

donne : image de contour = passage par zéro I ∗ ⎛⎜⎜ ∂ f + ∂ f ⎞⎟⎟


2 2

⎝ ∂x ∂y ⎠

1. http://fr.wikipedia.org Mot clé : Laplacien.


86
5. Erreur commise par application de la régression linéaire 1 :

Si l'on appelle εi l'écart vertical entre la droite X = aY + b et le point (Xi, Yi) tel que :

ε i = y i − axi − b (cf. tab. A.1)


Alors l'estimateur de la variance résiduelle σ²ε est :

1 n
σˆ ε 2 = ⋅ ∑ ε i tel que n est la taille de l’échantillon (n=14)
2

n − 2 i =1
La variance de a, σ²a, est estimée par :

σˆ ε 2
σˆ a 2 =
n ⋅ V ( x)

X Y ε ε2

200 62,5 -0,0526775 2,77492E-05

190 57,5757576 -0,00137161 1,88132E-06

180 52,173913 -0,00118101 1,39477E-06

170 47,2222222 0,00010754 1,1564E-08

160 42,6666667 0,00236226 5,58028E-06

150 37,5 -0,00093857 8,80913E-07

140 33,7349398 0,00339112 1,14997E-05

130 29,8850575 0,00567816 3,22415E-05

120 26,0869565 0,00655024 4,29057E-05

110 21,7821782 0,00054458 2,96564E-07

100 18,5185185 0,0010758 1,15734E-06

90 15 -0,00407689 1,6621E-05

80 12,2137405 -0,00470596 2,21461E-05

70 9,92907801 -0,00216791 4,69983E-06

Tab.A-1 : Tableau récapitulatif de l’erreur

A travers ce tableau, on effectue l’application numérique :

1. http://fr.wikipedia.org Mot clé : Régression linéaire


87
1 n
σˆ ε 2 = ⋅ ∑ ε i = 1,40888.E - 5
2

n − 2 i =1

Donc :

σˆ ε 2
σˆ a =
2
= 6,19288.E - 10 (V(x)=1625)
n ⋅ V ( x)

La variance résiduelle sur le paramètre a est d’ordre 10-10, donc la relation trouvée par
régression linéaire est adéquate pour estimer Kp à partir de Z.

88
ANNEXE B

Primitives utilisées dans la communication 1 :

Définition du Socket :

C'est un mécanisme de communication bidirectionnelle interprocessus sur machines


indépendantes. Il est matérialisé par un fichier spécial représentant un point de communication
par lequel un processus peut émettre et recevoir des informations.

Primitives utilisées :

• Création d'un socket :

Socket : int socket (int domain, int type, int protocol)

Cette fonction crée un point de communication et retourne un descripteur. En cas de


succès, elle retourne le descripteur du socket, sinon -1. La librairie à utiliser est sys/types.h et
sys/socket.h.

domain spécifie le domaine de la communication qui aura lieu. On utilise


généralement les domaines suivants :

- AF_LOCAL (anciennement AF_UNIX) pour les communications locales

- AF_INET pour les communications externes.

type spécifie le type de communication. Il indique le séquencement, la fiabilité, le


mode de connexion et l'encodage. On utilise souvent les deux types suivants :

- SOCK_STREAM pour une communication bidirectionnelle full-duplex, en mode


connecté, fiable et séquencée, composée de flux de bytes.

- SOCK_DGRAM pour le mode non connecté, non fiable, composé de datagrammes


de taille maximum fixée (les messages sont en général de petite taille).

protocol est le type de protocole à utiliser sur le socket. En général, il est unique, mais
il se peut que plusieurs protocoles gèrent un type de socket, auquel cas on indique avec ce
paramètre le protocole souhaité. Spécifications les plus communes :

- 0 : le système choisit le protocole par défaut

1. http://micmacfr.homeunix.org/progsysdet/progsys12.shtml
89
- TCP avec SOCK_STREAM

- UDP avec SOCK_DGRAM

- IPPROTO_UDP : UDP dans domaine AF_INET

- IPPROTO_TCP : TCP dans domaine AF_INET

Dans notre serveur, la procédure est : Socket = socket (AF_INET, SOCK_STREAM, 0).

• Attachement d'une adresse réseau à un socket :

Bind : int bind(int s, const struct sockaddr-un *name, int namelen):

Donne le nom name de longueur namelen à un socket anonyme (après création par
socket(), le socket créé est anonyme) de descripteurs. Elle retourne 0 si succès, -1 sinon.

Dans le domaine UNIX, le nom est du type chemin d'accès complet à un fichier. Dans
le domaine INET, le nom correspond à une adresse IP.

name est un pointeur sur l'adresse du socket dont le format dépend de ce dernier.

Format de l'adresse du domaine AF_UNIX

struct sockaddr-un {
uint8_t sun_len; // longueur de la structure
sa_family_t sun_family; // AF_UNIX
char sun_path[104]; // référence
}
Format de l'adresse IPv4 du socket

struct sockaddr-in {
uint8_t sin_len; // longueur de la structure
sa_family_t sin_family; // AF_INET
in_port_t sin_port; // numéro de port TCP ou UDP
struct in_addr sin_addr; // adresse IPv4 de la machine
char sin-zero[8]; // bits de bourrage
}
Format de l'adresse IPv4 de la machine

struct in-addr {
in_addr_t s_addr; }

90
• Utilisation :

Après la création du socket, la communication est établie après exécution de la fonction


suivante :

SockUsed = accept(name, (struct sockaddr-un *) & SockUsed Addr, &size SockUsed))!=0)

SockUsed est le socket qui servira à envoyer et recevoir les données entre client et
serveur à travers les primitives Send et Receive munies d’un buffer de stockage des données :

send(SockUsed, &buffer,sizeof(buffer), 0);

recv(SockUsed, &buffer,sizeof(buffer), 0);

91
ANNEXE C

Segmentation adoptée pour notre application :

L'image acquise est seuillée, puis balayée à la recherche des zones connexes de l'image. En
effet, à chaque zone connexe correspond une forme qui est l'image d'un objet à manipuler (sauf
si deux objets sont empilés ou accolés, dans ce cas l'algorithme ne verra qu'un objet là où il y en
a plusieurs). Une forme est déterminée par la liste des pixels qui la composent. Dès la détection
d'un point ayant la valeur FOND comme niveau de gris, cet algorithme utilise une méthode
analogue à celle utilisée dans le remplissage des logiciels de dessin pour extraire tous les pixels
appartenant à la même forme connexe que lui 1.

A partir de l'image seuillée, on construit une liste de formes (c’est une liste de pixels).
• Soient :
o Lformes, liste des formes extraites.
o Lcandidats, liste des pixels candidats pour appartenir à la forme en cours d'extraction.
o Lacceptés, liste des pixels acceptés comme appartenant à la forme en cours d'extraction.
o Initialisation des listes :Lformes := vide, Lcandidats := vide, Lacceptés := vide.
o Pour tout pixel p de l'image binaire faire :
o Si p != FOND et p != VU Alors :
ƒ Lcandidats := Lcandidats + p.
ƒ p := VU
ƒ Tant queLcandidats n'est pas vide faire :
ƒ extraire pixel p' de Lcandidats.
ƒ Lacceptés := Lacceptés + p'.
ƒ Pour tout voisin p'' de p' faire :
ƒ Si p'' != FOND et p'' != VU alors :
ƒ Lcandidats := Lcandidats + p''.
ƒ p'' := VU.
o Lformes := Lformes + Lacceptés (*)
ƒ Lacceptés := vide
• Fin

Remarque : On insère la forme extraite dans la liste seulement si la liste des pixels acceptés
contient plus d'un certain nombre d'élément (pixels), Ce nombre est fixé au préalable. Il peut en
effet subsister des tâches parasites après seuillage1.

1. http://sde.eduvax.net/artcs/chap02.html
92
ANNEXE D

Présentation générale de l’application logicielle :

Fig.D-1 : Interface de l’application logicielle.


L’interface de notre application (Fig. D-1) est composée de quatre parties :
1 : Repère image où l’objet doit être localisé.
2 : Graphe d’asservissement de l’erreur en fonction du temps qui peut être mis à zéro par le
bouton « Reset ».
3 : Table d’affichage des informations concernant l’objet et le bras manipulateur, tel qu’elle
comprend les deux panneaux suivants :
• Caractéristiques de l’objet : Elles représentent l’objet par les coordonnées cartésiennes
du centre de gravité (Centre de gravité) et les coordonnées polaires (Distance D, Angle de
rotation) de ce dernier. Ainsi que l’orientation de l’objet par rapport à la pince
(Orientation de l’objet).
• Articulations du robot : Ce panneau contient les différentes valeurs des angles des cinq
axes.

93
En plus de ces deux panneaux, la table d’affichage contient les grandeurs suivantes :
¾ Distance axe caméra/axe1 : Détermine la valeur de R' .
¾ Profondeur caméra/objet : Détermine la valeur de Z.
¾ Nombre d’itérations : C’est nombre d’itération de l’asservissement visuel pour accomplir
la tâche.
Il est à noter que ces informations sont tous affichées en temps réel.
4 : C’est une table structurée en trois anglets : critères, commande et propriété. Ils servent à gérer
l’application en spécifiant les différents paramètres qu’ils contiennent. Ils sont présentés comme
suit :
• Critères :

Fig. D-2 : Critères de traitement d’images.

Cet anglet (Fig.D-2) contient trois panneaux qui concernent les méthodes de
traitement d’image qui sont :
¾ Seuillage : Qui contient le paramètre seuil à introduire
¾ Détection de contours : Une seule méthode à choisir parmi Roberts, Prewitt, Sobel,
Kircsh et Laplacien pour la méthode des différences finies, et Canny pour la méthode
des différences optimales.
¾ Segmentation : Qui présente la valeur Seuil comme paramètre à introduire.

94
• Commande :

Fig. D-3 : Commande pour l’asservissement.

Cet anglet (Fig. D-3) comporte deux panneaux qui concernent la commande du robot
et l’asservissement visuel qui sont :
¾ Commander le robot : Comprenant une grille de 12 paramètres, 6 pour les angles et 6
pour les vitesses des axes, permet de faire bouger le robot à l’aide du bouton
« Bouger ».
¾ Asservissement : C’est le panneau qui permet de démarrer l’asservissement. Soit
d’une manière continuelle à l’aide du bouton « Continue », soit étape par étape et cela
un utilisant le bouton « Par étape ». mais avant de démarrer l’asservissement, d’abord
il faut cocher l’une des méthodes à choisir « Angle2 ou Angle5 » ensuite, introduire
la distance DObj, et le Kp s’il est coché à manuel. Ce panneaux contient aussi les
boutons Descendre et Remonter, qui permettent à l’effecteur du robot une descente et
une remonté verticales. Et on a le bouton Lâcher Obj pour l’ouverture de la pince afin
de lâcher l’objet saisi. On peut toujours arrêter l’asservissement volontairement à
l’aide du bouton Stop.

95
• Propriétés :

Fig. D-4 : Propriétés de l’application.

Il contient les panneaux suivants :


¾ Cadence : C’est un paramètre qui concerne la cadence d’acquisition pour le
traitement d’image, afin de garantir un mouvement non saccadé du bras manipulateur.
¾ Angle de déplacement axe1 : Ce paramètre permet de faire pivoter le bras
manipulateur d’un angle, dans le cas de saisie sans remise de plusieurs objets.
¾ Connexion : qui contient les champs adresse IP et numéro de port du PC embarqué.
¾ Repère : Il englobe tous les propriétés qui concernent le graphe d’asservissement qui
se représentent par : la couleur de la courbe, son épaisseur et la légende de la courbe.

96