Escolar Documentos
Profissional Documentos
Cultura Documentos
Mots clés : Robot ULM, asservissement visuel 2D, extraction des primitives, traitement
d’image
Abstract :
& Dédicaces &
KAMAL
& Dédicaces &
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.
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
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
VI
LISTE DES SYMBOLES
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 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.
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 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
4
Chapitre I : L’Asservissement visuel
• 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.
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].
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
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 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.
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
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
8
Chapitre I : L’Asservissement visuel
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].
9
Chapitre I : L’Asservissement visuel
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 :
- De la profondeur Z.
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.
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.
11
Chapitre I : L’Asservissement visuel
12
Chapitre I : L’Asservissement visuel
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) :
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.
13
Chapitre I : L’Asservissement visuel
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
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.
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
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 :
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.
Il est à noter que l’erreur des moteurs des six axes est de ± 0,09°.
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
17
1. http://ak-industries.com/fr/produits/lineaires/cable/incremental_principe.htm
Chapitre II : Modélisation géométrique du bras ULM
18
Chapitre II : Modélisation géométrique du bras ULM
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.
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.
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.
- 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
dcp : la distance entre l’axe optique et le centre de l’effecteur du bras (Fig. II-6).
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 :
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.
+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
• En fonction de θ2 :
(2.4) donne :
⎛ R − L1 sin θ 2 ⎞
θ 5 = Arc sin ⎜⎜ ⎟⎟ (2.5)
⎝ L2 ⎠
θ3 = π − θ2 − θ5
⎛ 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 ⎠
θ3 = π − θ2 − θ5
⎛ R − L2 sin θ 5 ⎞
θ 3 = π − θ 5 − Arc sin⎜⎜ ⎟⎟ (2.8)
⎝ L1 ⎠
Remarque :
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.
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)
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.
24
Chapitre II : Modélisation géométrique du bras ULM
- 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.
- 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).
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 .
25
Chapitre II : Modélisation géométrique du bras ULM
1) Calcul de R’k+1 :
R' k +1 = xd + y d
2 2
(2.9)
De plus :
x d = rs cos(Qs ) + x (2.10)
26
Chapitre II : Modélisation géométrique du bras ULM
D’autre part :
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
Nous avons toutes les données nécessaires au calcul des angles de rotations du robot.
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
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)
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 à
1. L3 au dessus de P :
28
Chapitre II : Modélisation géométrique du bras ULM
Donc :
2. P traversant L3:
Ainsi :
29
Chapitre II : Modélisation géométrique du bras ULM
3. L3 au dessous de P :
(2.34)
L3 ' ' = L3 + L3 '
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
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
La résolution de ce système donne les angles permettant d’atteindre l’objet par l’effecteur.
Résolution du système :
On pose :
F = Dobj − L0 + L3 .
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
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
⎛ ⎞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
A
cos φ sin θ 5 − sin φ cos θ 5 = (2.44)
R + F2
2
On trouve :
A (2.45)
sin(θ 5 − φ ) =
R +F 2 2
Finalement :
⎛ ⎞ A
θ 5 = φ + Arc sin ⎜⎜ ⎟ (2.46)
2 ⎟
⎝ R +F ⎠
2
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
⎠
⎛ R − L2 sin θ 5 ⎞ (2.48)
θ 2 = Arc sin⎜⎜ ⎟⎟
⎝ L1 ⎠
⎛ R − L2 sin θ 5 ⎞
θ 3 = π − θ 5 − Arc sin⎜⎜ ⎟⎟ . (2.49)
⎝ L1 ⎠
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
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
CHAPITRE III
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.
34
Chapitre III : Localisation d’objet par traitement 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 :
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é.
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 :
• 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 :
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
∑ 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
∫ 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
xG =
∫ (g (x ) × x )dx
D
∫ g (x )dx
D
(3.6)
∑ g (n) × x n
xG = n =1
n
. (3.7)
∑ g (n)
n =1
n n
∑ (1 × x ) i ∑ (1 × y )
i =1
i
xG = i =1
n
, yG = n
∑1
i =1
∑1
i =1
1 n
xG = ∑ xi
n i =1
(3.8)
1 n
yG = ∑ yi
n i =1
(3.9)
rc = xG + y G
2 2
(3.10)
yG
Qc = arctg .
xG (3.11)
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).
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 :
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 120 0,166666667 90
20 131 0,152671756 80
20 141 0,141843972 70
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 .
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)
90 0,166666667 8100 15
1 1
∑ xi y i − x y = 2,17194836 et V ( x) = ∑ xi − x = 1625 .
2
cov( x, y ) =
2
n n
cov( x , y ) 2,17194836
a= = = 0,00133658
V ( x) 1625
On trouve alors :
41
Chapitre III : Localisation d’objet par traitement d’images
Remarque :
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 :
d
Donc : Qs = Qc − 90° − Arctg (3.18)
R + dcp
42
Chapitre III : Localisation d’objet par traitement d’images
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
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
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).
1. http://docs.gimp.org/fr/plug-in-blur.html
44
Chapitre III : Localisation d’objet par traitement d’images
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 :
Fig. III-7 : A gauche image Seuillée (Seuil=70), à droite Image Seuillée (Seuil=100).
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 :
• Filtre passe-haut :
• 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
• 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 :
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
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⎥⎦
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⎥⎦
⎡− 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⎥⎦
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 ⎥⎦
⎧ 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 :
- 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)
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 Filtre de Canny 2 :
4. Calculer la direction du gradient qui est Arctan du rapport entre les deux images
horizontale et verticale.
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].
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...)
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.
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
52
Chapitre III : Localisation d’objet par traitement d’images
53
CHAPITRE IV
Implémentation de
l’asservissement visuel
CHAPITRE IV
Nous terminerons par présenter les tests effectués sur site réel, ainsi qu’une analyse
générale des résultats obtenus.
- Dispositif de transmission sans fil pour les images acquises par la caméra.
52
Chapitre IV : Implémentation de l’asservissement visuel
vidéo
scène
53
Chapitre IV : Implémentation de l’asservissement visuel
54
Chapitre IV : Implémentation de l’asservissement visuel
55
Chapitre IV : Implémentation de l’asservissement visuel
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
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)
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 :
Phase III :
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).
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
59
Chapitre IV : Implémentation de l’asservissement visuel
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.
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) :
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.
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 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).
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).
• 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
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).
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.
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).
On présentera dans le tableau (Tab. IV-1) les résultats de comparaison entre les
méthodes de détection de contours :
Sobel + + - +
Prewitt + + + +
Kirsch + + - ++
Canny - - + -
Laplacien 0 0 + +
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.
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).
66
Chapitre IV : Implémentation de l’asservissement visuel
Fig. IV-19 : A gauche : position initiale du robot, à droite : position finale du robot
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
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é.
68
Chapitre IV : Implémentation de l’asservissement visuel
69
Chapitre IV : Implémentation de l’asservissement visuel
• Angle 5 fixé à 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).
• Angle 5 fixé à 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.
71
Chapitre IV : Implémentation de l’asservissement visuel
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 ».
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.
73
Chapitre IV : Implémentation de l’asservissement visuel
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.
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
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é.
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.
75
Chapitre IV : Implémentation de l’asservissement visuel
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.
76
Chapitre IV : Implémentation de l’asservissement visuel
Fig. IV-36 : Nombre d’itération et temps d’exécution en fonction des tests par seuillage.
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.
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.
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.
80
Chapitre IV : Implémentation de l’asservissement visuel
81
Chapitre IV : Implémentation de l’asservissement visuel
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.
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.
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.
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.
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 :
¾ 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.
[DES 01] Jacky Desachy , Analyse d’image notes de cours-Version 1.3, Université des
Antilles et de la Guyane, Pointe à Pitre, Janvier 2001.
[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.
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.
[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.
[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
⎧ 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 ⎭ −∞
83
2. Approche gradient :
⎜ ⎟
⎝ ∂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 :
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 :
x2
∂f ⎛ x ⎞ −
= f '( x) = − k × ⎜ − ⎟ × e 2 πσ
2
∂x ⎝ πσ
2
⎠
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 ⎝ πσ ⎠
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
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
⎝ ∂x ∂y ⎠
Si l'on appelle εi l'écart vertical entre la droite X = aY + b et le point (Xi, Yi) tel que :
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
90 15 -0,00407689 1,6621E-05
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
Définition du Socket :
Primitives utilisées :
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 :
1. http://micmacfr.homeunix.org/progsysdet/progsys12.shtml
89
- TCP avec SOCK_STREAM
Dans notre serveur, la procédure est : Socket = socket (AF_INET, SOCK_STREAM, 0).
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.
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 :
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 :
91
ANNEXE C
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
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 :
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 :
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 :
96