Vous êtes sur la page 1sur 4

Cycle ISMIN Projet Matlab 1

Mini-projet 2 : Simulation de l'interaction visuelle environnement-photodiode

Motivation : Étudiant motivé par la programmation, le calcul matriciel, et les algorithmes.

Mot-clés : Modélisation numérique d’environnement, phototransduction, filtrage

Objectif du projet :
Le mini-robot autonome est guidé par la vision du mouvement. Pour cela, il utilise un système visuel bio-
inspiré (Fig. 1b) et des capteurs de mouvement bio-inspirés (cf. mini-projet 3).
L’objectif du projet est de simuler l’interaction visuelle environnement-photodiode. Le mouvement du
mini-robot étant seulement simulé dans le plan horizontal, l’environnement visuel (mur de 4 mètres de
long tapissé d’un code barre vertical codé en niveaux de gris) pourra être simulé en 1D (Fig. 1a).

(a) (b)

Figure 1. (a) Environnement visuel balayé par deux photodiodes dont la sensibilité angulaire est gaussienne. Les signaux
analogiques sont ensuite filtrés passe-bande avant numérisation. (b) Un œil composé est formé petits yeux élémentaire. Leur
agencement est caractérisé par l’angle inter-récepteur . La directivité d'un photorécepteur est caractérisée par une
sensibilité angulaire gaussienne de largeur à mi-hauteur .

Quelques données à utiliser :

- Luminance codée sur 8 bits (Vecteur environnement I)


- la matrice A pré-calculant les intégrales au format double
-  = = 3,8°,
- Fréquence d’échantillonnage temporelle de la simulation : 2 kHz.

Les étapes du projet :


1) Développer un algorithme sous Matlab (fonction env.m) permettant de créer l’environnement visuel
en niveau de gris aléatoire codé sur 8 bits. Le vecteur environnement I obtenu décrit un mur tapissé de
bandes verticales sur une longueur de 4 mètres. Chaque bande possède une largeur aléatoire comprise
entre 1 et 10 cm. On décrira l’environnement avec une résolution x = 1 mm.

 Pour cela, utiliser les fonctions Matlab: round, rand, floor…

2) Développer un algorithme sous Matlab (fonction matrice.m) permettant de créer la matrice A. Cette
matrice sera une table de correspondance permettant le d’estimer l’intégrale de la sensibilité

Module : Sciences Page 1/4 Julien SERRES


Semestre 1 - A1S1  Copyright
Cycle ISMIN Projet Matlab 1

gaussienne entre deux angles de transition de contraste. Cette matrice A vise à réduire
considérablement le temps de calcul pour simuler les sorties photodiodes Ph 1 et Ph2. On pré-calculera A
avec une résolution  = 0,005°.

Rappels mathématiques sur la fonction gaussienne :

 : position azimutale dans le champ visuel du photorécepteur


max  : position azimutale donnant une réponse maximale du photorécepteur
 : largeur à 95% de la hauteur de la gaussienne (écart-type)
 : largeur à 50% de la hauteur de la gaussienne (angle d’acceptance)

Il existe une relation entre  et  :

Justifier sommairement que la matrice A est triangulaire inférieure et de taille 1976x1976.

Il faudra également normaliser la matrice A, en affectant un poids de 1 (100%) à l’index de ligne


i = 1976 et de colonne j = 1, tel que A(1976 , 1) = 1.

Figure 2. (a) Fonction de la luminance du mur perçue à un instant donné par un photorécepteur. (b) La sortie photorécepteur est
calculée en intégrant par morceaux diverses luminances présentes dans son champs visuel et les pondérant par la sensibilité
angulaire gaussienne.

3) La partie la plus difficile de ce mini-projet est de programmer au sein d’une même fonction que nous
appellerons « sorties_photorecepteurs.m » au moyen de l’organigramme représenté sur la page
suivante.

Module : Sciences Page 2/4 Julien SERRES


Semestre 1 - A1S1  Copyright
Cycle ISMIN Projet Matlab 1

Organigramme de la fonction sorties_photorecepteurs.m


(x,y) {xn ;yn = 0} de I

Fonction
atan2

n de l’ensemble de bords contrastés de I

Fonction
find

Ensemble de bords contrastés de I dans le Ensemble de bords contrastés de I dans le


champs visuel de Ph2 champs visuel de Ph1
Recalage Recalage
Recalibration Recalibration
numérique numérique

1  n  1976

Matrice A
In
 
Ph2 Ph1

Créer ensuite un fichier Simulink (.mdl) pour simuler la sortie des deux photodiodes en fonction de leur
position (x,y). On supposera que le système visuel peut seulement se déplacer parallèlement au mur
(rotation autour de l’axe vertical non simulé).

Pour calculer les sorties photorécepteurs, vous utiliserez un bloc « Embedded Matlab Function » en y
insérant votre fonction .m développée à partir de l’organigramme.
(x,y)

2,n
1,n

In
Figure 3. Paramétrage des angles sous-tendus par un contraste.

Pour conduire cette étape vous devrez :


 Utiliser la fonction  Matlab « atan2 » (tangente 4 quadrants mathématiques) pour déterminer tous
les angles n.

Module : Sciences Page 3/4 Julien SERRES


Semestre 1 - A1S1  Copyright
Cycle ISMIN Projet Matlab 1

 Sélectionner les angles qui sont dans le champ visuel de chacun des photorécepteurs, sachant qu’ils
sont écartés de /2 par rapport à l’aplomb du mur. On pourra utiliser la fonction Matlab « find »
pour les sélectionner.

 Utiliser la matrice A pour déterminer la sortie de chacun des photorécepteurs en effectuant la


sommation .

Dans un premier temps, le système visuel pourra se déplacer par rapport au mur à une distance de
30 cm et une vitesse constante de 0,5 m/s.

4) Finaliser votre simulation Simulink en ajoutant un filtre numérique basse-bande [20 Hz ; 116 Hz] du
2nd ordre, puis contrôler le format des données de sortie du filtre en imposant des nombres entiers 16
bits pour mimer la conversion analogique-numérique du microcontrôleur.

 Pour cela, utiliser la fonction  Matlab : butter pour « filtre de Butterworth », puis utiliser les
coefficients calculés par Matlab dans un bloc « Discrete Transfer Fcn » de Simulink.

5) Tester la simulation pour plusieurs distances par rapport au mur 25 cm, 50 cm, et 1 m, par exemple,
puis représenter sous la forme d’un graphique les résultats (signaux de modulation de sortie des
photorécepteurs) de votre simulation.

 Pour cela, utiliser la fonction  Matlab : plot, subplot …

**** FIN ****

Module : Sciences Page 4/4 Julien SERRES


Semestre 1 - A1S1  Copyright

Vous aimerez peut-être aussi