# OMNIBOT - De la Vision Omnidirectionnelle à la Commande de Robot Mobile

François Berry, Pierre Chalimbaud, Philippe Martinet, Youcef Mezouar, François Chaumette, Eric Marchand, Frédéric Comby, Olivier Strauss, El Mustapha Mouaddib, Pascal Vasseur

► To cite this version:

François Berry, Pierre Chalimbaud, Philippe Martinet, Youcef Mezouar, François Chaumette, et al. OMNIBOT - De la Vision Omnidirectionnelle à la Commande de Robot Mobile. ROBEA 2005 - 5es Journées Bilan du Programme Interdisciplinaire ROBotique et Entités Artificielles, Mar 2005, Montpellier, France. pp.95-105. lirmm-00105975

HAL Id: lirmm-00105975

https://hal-lirmm.ccsd.cnrs.fr/lirmm-00105975

Submitted on 21 Sep 2022

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# OMNIBOT - De la vision omnidirectionelle à la commande de robot mobile

F. Berry, P. Martinet, Y. Mezouar
LASMEA

24 avenue des landais
63177 AUBIERE CEDEX

berry,mezouar,martinet@lasmea.univ-bpclermont.fr

F. Chaumette
IRISA

Campus de beaulieu
35000 RENNES

chaumette@irisa.fr

F. Combi, O. Strauss
LIRMM

Rue Ada
34000 MONTPELLIER

combi,strauss@lirmm.fr

M. Mouadib
CREA

Rue Mystere
80000 AMIENS
mouadib@u-juleverne.fr

## 1 Réalisation du capteur

François BERRY - LASMEA

Dans ce chapitre, on se propose de présenter le capteur réalisé ainsi que les permiers résultats obtenus. Une large place sera laissée à la description technique, ce qui permettra d'argumenter sur les limites de la réalisation.

### 1.1 Présentation du capteur

Le capteur omnidirectionnel que nous nous proposons de réaliser est basé sur l'association d'un miroir de révolution et d'une caméra dédiée à la perception des images réelles. Dans la suite de ce paragraphe nous nous intéressons exclusivement à cette caméra.

Le système tel qu'il a été conçu est composé de trois modules indépendant permettant d'assurer les principales fonctions:

* l'acquisition de l'image par l'imageur

* la gestion du système et le traitement des données

* la transmission de l'image par un protocole adapté.

Ces trois modules sont réalisés au sein de trois cartes qui sont assemblées de manière à obtenir un système qui soit compact et robuste : structure "fagot". La figure 3 illustre l'assemblage du système.

* La carte principale (inférieure) sert à la gestion du système et est étudiée pour être très souple au niveau de sa conception. Sur cette carte, plusieurs connecteurs sont présents dont un qui est réservé à la carte imageur.

* La seconde carte (en façade) comporte l'imageur. Dans le cas présent, le composant sensible qui a été choisi est une rétine AMOVITE fabriquée par la société belge Fill Factory (www.ellfactory.com) et qui a été développé en collaboration avec l'équipe de G. Sandini en Italie. Cette carte comporte aussi une mémoire de référence permettant de stocker une image de référence afin de corriger l'offset des pixels et un DAC (Convertisseur Numérique/Analogique) afin de régler différentes tensions de l'imageur.

<figure><img src="image_2.png" /><figcaption>Figure 1: Assemblage des cartes</figcaption></figure>

* La dernière carte (supérieure) permet d'assurer la communication avec "l'extérieur". Dans le cas du projet Omnibot, nous avons opter pour le bus USB 2.0 qui permet un haut transfert de données tout en étant compatible avec l'USB1. De plus ce protocole est disponible sur tous les PC du commerce.

Le premier prototype réalisé est présenté sur la photographie 2.

Une des originalités majeures de ce capteur, hormis l'intégration d'un imageur à distribution polaire, est l'utilisation d'un FPGA massivement recongurable permettant d'utiliser le concept récent : SoPC (System on Programmable Chip). De cette manière l'intégralité de la gestion du capteur est confiée à un seul composant de grande évolutivité et permettant d'intégrer un processeur et différentes opérations adéfinir par l'utilisateur. Cet aspect de reprogrammabilité doit être souligné puisqu'il est ainsi possible d'intégrer certains pré-traitement d'images directement dans le capteur. Naturellement à ce niveau du projet, un échange avec la partie "traitement d'images" est nécessaire.
<figure><img src="image_3.png" /><figcaption>Figure 2: Vue générale du capteur</figcaption></figure>

## 1.2 Spécifications techniques

D'un point de vue performance, nous pouvons donner les spécifications du capteur sous deux aspects.

**Caractéristiques "optiques".** La zone sensible de l'imageur est décomposée en deux parties concentriques.

* Au centre de l'imageur, la zone appelé "fovea" est constitué par un ensemble de cercle dont le nombre de pixel varie avec le rayon tel que:

$$N_{Pixel} = 6 \times rayon$$

De cette manière la zone dite "fovea" admet un total de 42 cercles variant de 1 à 252 pixels. Les caractéristiques

<figure><img src="image_4.png" /><figcaption>Figure 3: Détail de la zone "fovea"</figcaption></figure>

géométriques sont un diamètre $ρ_0 = 272,73µm$ avec un ensemble de pixels de taille constante de dimension 6,8 × 6,45µm².

* La seconde zone dite "retina" est une couronne autour de la "fovea" composée par 110 cercles de 252 pixels chacun pour un diamètre de 7135,44µm. Naturellement la densité de ces pixels oblige à une répartition variable de l'intérieur vers l'extérieur avec une variation de la taille de chaque pixel. Le rapport d'accroissement de la taille des pixels dans la rétina est $k = 1,02337/cercle$ et il est possible de lier la coordonnée pixel à la distance en mètre par la relation:

$$p = Log_k \frac{ρ}{ρ_0}$$

où $p$ est la "coordonnée cercle" du pixel et $ρ$ est la distance du centre du capteur au pixel escompté.

Il est à noter que ce composant est actuellement le seul sur le marché et est malheureusement muni d'un élitre de Bayer permettant de reconstruire la couleur des pixels. Le principe de ce élitre consiste à colorer alternativement les pixels d'un élitre rouge, vert et bleu. A partir des informations recueillies, une interpolation locale permet de retrouver la couleur réelle des pixel. Le biais d'un tel principe est la perte de précision en luminance et en échantillonnage.

**Caractéristiques "électronique".** Comme cela a déjà été évoqué plus haut, la gestion du capteur a été confiée à un composant reprogrammable. Dans la cas présent nous avons choisi un FPGA Startix EP1S25 de la famille Altéra ququi dispose des caractéristiques suivantes:

* Plus de 25000 éléments logiques permettant d'instancier un processeur fonctionnant à 80 MHz.

* environ 2 Mbits de mémoire

* plusieurs blocs DSP permettant de réaliser rapidement des opérations de bases du traitement de signal (MAC).

On notera que la carte a été conçu de manière à pouvoir évoluer vers des composants de la même famille mais plus performants.

De plus, autour de ce composant ont été rajouté:

* Mémoire SRAM : 1 boîtiers de 1 Mo

* Mémoire SDRAM : Possibilité de connecter 64 Mo.

* La possibilité à travers différents connecteurs de pouvoir rajouter des modules au capteur.

En terme d'utilisation, il est prévu que l'utilisateur puisse spécifier la zone qu'il souhaite acquérir en terme de cercle, de quartier de cercle ou de fenêtre d'intérêt. En effet, il est important de garder à l'esprit la vitesse d'acquisition de 10 Mpixels/s qui se décompose en réalité en:

* Sur le même cercle, le déplacement des pixels se fait à 10 Mpixels/s
* Entre deux cercles, il y a une latence de 1µs donc un déflement de l'intérieur vers l'extérieur se fait à 1 Mpixels/s

De plus toutes les valeurs des pixels sont naturellement données avec une précision de 10 bits. D'un aspect plus pratique, le capteur se présentera comme une caméra pouvant être directement branché sur le bus USB d'un PC. Actuellement les développement de drivers sont fait sous Windows 2000 et XP mais devrait être rapidement migrés sous Linux Red Hat 9.0 et sous l'OS temps réel QNX.

## 1.3 Réexions sur notre démarche: Calibrage et Traitement d'images

A l'origine du projet, le choix d'une telle rétine nous a paru original et presque naturelle. Toutefois après de longues réexions, il apparaît que le calibrage d'un système rétine favéale/ miroir de révolution risque de devenir fastidieux. En effet, l'ajustement des axes optiques parait être relativement complexes et difficiles et le fait de ne pas avoir cet alignement complique la phase de calibrage ainsi que l'étude de la "fonction de transfert" du capteur.

Une seconde approche consisterait à tirer profit de la technologie CMOS en intégrant un imageur à distribution cartésienne classique. Il est alors facile à partir d'une image de déterminer le centre de révolution du miroir puis de réaliser un adressage de la matrice en fonction de la projection du miroir. Toutefois, dans une telle configuration apparaît le problème de l'échantillonnage spatial de la matrice CMOS. En effet, contrairement à un composant CCD, les imageurs CMOS n'ont pas un facteur de remplissage de 100% c'est à dire que la partie sensible de chaque pixel n'occupe pas toute la surface du pixel. Ainsi suivant l'orientation d'adressage sur la matrice, le pas d'échantillonnage variera et l'on risque de noter des déformations d'images.

# 2 Modélisation et calibrage

Frédéric COMBI, Olivier STRAUSS - LIRMM, El Mustapha MOUADIB - CREA

L'objectif est de mettre au point une méthodologie de calibrage des capteurs panoramiques catadioptriques, puis d'étendre cette étude au calibrage du capteur log-polaire. Afin d'aboutir à un calibrage métrique des différents paramètres de la caméra, nous nous sommes orientés vers une méthode utilisant une mire 3D. 1.1

## 2.1 Rétines cartésiennes

La modélisation d'une caméra catadioptrique panoramique relève de la même démarche que celle des caméras perspectives, àcci près que les rayons lumineux sont rééchis par le miroir de révolution. Cette réexion introduit une transformation supplémentaire dont il faut tenir compte. La transformation dépend de la surface du miroir. Nous ferons référence dans le cadre de cette étude à deux types de

miroirs : les paraboloïdes et les hyperboloïdes. Nous montrons ci-dessous le schéma des transformations qui considère que l'axe du miroir et l'axe optique de la caméra sont confondus (Fig. 4). La forme de la quadrique dépend du miroir utilisé.

<figure><img src="image_5.png" /><figcaption>Figure 4: Configuration selon laquelle l'axe du miroir et l'axe optique de la caméra sont confondus</figcaption></figure>

Modèle général des caméras catadioptriques : Le théorème de l'équivalence [4] entre toute projection centrale et une projection sphérique suivie d'une projection sur un plan, donne la relation ci dessous, qui modélise toutes les caméras à point de vue unique :

$$ \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = \begin{pmatrix} \alpha_u & 0 & u_0 \\ 0 & \alpha_v & v_0 \\ 0 & 0 & 1 \end{pmatrix} \cdot \begin{pmatrix} \lambda \cdot x_m \\ \lambda \cdot y_m \\ 1 \end{pmatrix} $$

avec

$$ \lambda = \frac{\xi + m}{\xi \sqrt{x_m^2 + y_m^2 + z_m^2 - z_m}} $$

$x_m, y_m, z_m$ sont les coordonnées d'un point dans le repère du miroir, $\xi$ est fonction de l'excentricité et $m$ est fonction de l'excentricité et de l'échelle. Dans le cas du miroir parabolique de *latus rectum* $4h$, les deux valeurs numériques sont : $\xi = 1$ et $m = 2h - 1$. Pour réaliser le calibrage, nous avons utilisé un cube ouvert comme mire. Sur chacune de ses faces, une grille de points a été tracée. Nous avons ensuite plongé la caméra dans ce cube. Ainsi, les points disposés sur le cube se trouvent répartis dans toute l'image panoramique. Les points de l'image sont sélectionnés manuellement pour éviter les mauvais appariements. La mire est composée de 112 points. Une moitié des points a été utilisée pour l'estimation des paramètres. L'autre moitié a été utilisée pour vérifier la validité du modèle. Les paramètres estimées sont : 6 extrinsèques (3rotations et 3 translations), 2 paramètres du miroir et 4 paramètres intrinsèques de la caméra. L'estimation a été faite par une méthode de minimisation de l'erreur quadratique entre les points pixels sélectionnés et les points pixels calculés à l'aide du modèle. L'initialisation des paramètres a été faite en utilisant les données constructeur et le calibrage intrinsèque.
L'objectif "Remote Reality" : Cet objectif est constitué d'un miroir paraboloïde convexe, qui rééchit les rayons sur un miroir sphérique concave, qui a son tour renvoie les rayons sur la lentille puis le capteur. Le miroir sphérique joue le rôle de la lentille télécentrique utilisée classiquement et réalise en théorie une projection orthographique. Pour une dizaine d'images et avec 56 points pour chacune, l'erreur moyenne est de 1,2 pixel et l'écart type est de 0,5 pixel.

<table><thead><tr><th colspan="3">Angles en rad</th><th colspan="3">Trans en mm</th></tr><tr><th>T<sub>1</sub></th><th>T<sub>2</sub></th><th>T<sub>3</sub></th><th>t<sub>x</sub></th><th>t<sub>y</sub></th><th>t<sub>z</sub></th></tr></thead><tbody><tr><td>-1,61</td><td>0,01</td><td>-3,12</td><td>254</td><td>236</td><td>313</td></tr></tbody></table>

<table><thead><tr><th colspan="2">Pixels/mm</th><th colspan="2">Centre optique</th><th colspan="2">Miroir</th></tr><tr><th>A<sub>u</sub></th><th>a<sub>v</sub></th><th>u<sub>0</sub></th><th>v<sub>0</sub></th><th>t</th><th>m</th></tr></thead><tbody><tr><td>-156.80</td><td>156.15</td><td>390,69</td><td>275,63</td><td>1.14</td><td>0.82</td></tr></tbody></table>

(a)

(b)

<caption>Table 1: Calibration de l'objectif "Remote Reality" (a)Paramètres extrinseques - (b)Paramètres intrinseques</caption>

Nous avons procédé au calibrage en utilisant les mêmes données, mais en considérant un modèle " juste " du paraboloïde classique. L'erreur moyenne est de 2,5 pixel et l'écart type est de 1,3 pixel.

L'objectif hyperboloïde : C'est un miroir hyperboloïde convexe associé à une objectif avec zoom. Pour trois images et avec 56 points pour chacune, l'erreur moyenne est de 2,82 pixel et l'écart type est de 1,6 pixel.

<table><thead><tr><th colspan="3">Angles en rad</th><th colspan="3">Trans en mm</th></tr><tr><th>T<sub>1</sub></th><th>T<sub>2</sub></th><th>T<sub>3</sub></th><th>t<sub>x</sub></th><th>t<sub>y</sub></th><th>t<sub>z</sub></th></tr></thead><tbody><tr><td>3,2</td><td>-0</td><td>-3,1</td><td>234,7</td><td>-267,5</td><td>484,2</td></tr></tbody></table>

<table><thead><tr><th colspan="2">Pixels/mm</th><th colspan="2">Centre optique</th><th colspan="2">Miroir</th></tr><tr><th>A<sub>u</sub></th><th>a<sub>v</sub></th><th>u<sub>0</sub></th><th>v<sub>0</sub></th><th>t</th><th>m</th></tr></thead><tbody><tr><td>-152,4</td><td>152,7</td><td>421</td><td>278,8</td><td>0,9</td><td>0,4</td></tr></tbody></table>

(a)

(b)

<caption>Table 2: Calibration de l'objectif hyperbolique (a)Paramètres extrinseques - (b)Paramètres intrinseques</caption>

## 2.2 Rétines polaires

Les miroirs utilisés pour acquérir des images panoramiques sont généralement associés à des caméras usuelles, c'est à dire munies de rétines cartésiennes. Ces rétines ne sont pas adaptées à la nature polaire de l'image catadioptrique omnidirectionnelle : l'échantillonnage de l'image n'est pas uniforme dans l'espace de l'image projetée. Dans le cadre de cette étude, nous nous intéressons à l'utilisation d'une rétine log-polaire pour l'acquisition des images catadioptriques omnidirectionnelles. Il nous faut modéliser la relation entre les coordonnées numériques (r,t) de l'image log-polaire et les coordonnées d'un point dans le repère

du miroir, c'est à dire trouver un équivalent de la relation modélisant les caméras à point de vue unique. Il pourrait être intéressant dans cette étude de modéliser aussi le point 3D de manière polaire. Si les rétines log-polaires simplifient, a priori, considérablement les traitements sur les images catadioptriques, elle nécessitent cependant un montage très précis. En effet, si l'axe principal du miroir n'est pas perpendiculaire au plan de la rétine ou si l'image de son foyer n'est pas le centre de la rétine, alors tous les avantages apportés par ce type de rétine disparaissent : les algorithmes qui permettraient de prendre en compte ces défauts sont plus complexes que dans le cas cartésien, et l'échantillonnage de l'image accentue les défauts plutôt que de les réduire. (inserer les figures MiroirRetLogPol et MiroirRetLogPolDec)

# 3 Traitement des images

Frédéric COMBI, Olivier STRAUSS - LIRMM, El Mustapha MOUADIB - CREA

La transformation supplémentaire introduite par le miroir, n'est généralement pas prise en compte lors des traitements d'images catadioptriques. Or cette transformation, altère la résolution et modifie la topologie du voisinage projeté. En d'autres termes, la projection de l'environnement 3D du capteur ne respecte pas la topologie de cet espace.

## 3.1 Méthode par projection

L'objectif de ce travail est de réaliser une convolution sur l'image, mais après l'avoir projetée sur le miroir. Ceci permettra de respecter le voisinage et de travailler avec une résolution constante. Ce travail, dans sa première étape est un travail d'analyse de l'article [6]. Le schéma que nous proposons est le suivant : Comme il y a équivalence entre la projection sur tout miroir à point de vue unique et la projection sur une sphère suivie d'une projection sur un plan, la projection de l'image est faite sur une sphère de rayon unité. Ceci se fait par un passage en coordonnées sphériques. $\theta$ et $\phi$ sont les longitudes et latitude respectives du point $(x, y, z)$ de la sphère.

<figure><img src="image_6.png" /><figcaption>Figure 5: Changement d'espace de traitements</figcaption></figure>

$$u(\theta, \phi) = \cot(\frac{\theta}{2}) \cos\phi \quad v(\theta, \phi) = \cot(\frac{\theta}{2}) \sin\phi \\ I_s(\theta, \phi) = I(u(\theta, \phi), v(\theta, \phi))$$

Nous allons utiliser une gaussienne comme étre de base. Afin de pouvoir effectuer la convolution, il faut également projeter la gaussienne sur la sphère, puis la " ramener " par une rotation au point à filtrer.
La rotation de la gaussienne `A la nouvelle position, est
définie comme l'action d'un opérateur de rotation $\Lambda(g)$ qui
est défini comme suit : $\Lambda(g) \cdot G_s(\eta) = G_s(g^{-1}\eta)$ avec
$\eta = (\cos\phi \cdot \sin\theta, \sin\phi \cdot \sin\theta, \cos\theta)$.

La gaussienne au pole sud de la sphère est donnée par

$$
G_s(\theta, \phi) = \frac{1}{2\pi\sigma_s} e^{-\frac{1}{2\sigma_s^2} \cot^2\left(\frac{\theta}{2}\right)}
$$

La convolution est définie par

$$
R_s(\beta, \gamma) = I_s * G_s(\beta, \gamma) = \int_{\eta \in S^2} I_s(\eta) G_s(g^{-1}\eta) d\eta \\
\text{où } g = R_z(\gamma) \cdot R_y(\beta) \text{ et } d\eta = \sin\theta \cdot d\theta \cdot d\phi
$$

<figure><img src="image_7.png" /><figcaption>Image à traiter</figcaption></figure>

<figure><img src="image_8.png" /><figcaption>Convolution avec la
dérivée d'une gaussienne</figcaption></figure>

L'implémentation de l'approche nous a permis de con-
stater que cette méthode est d'une part celle qui nécessite
le plus de calculs et d'autre part, lors des changements
de coordonnées, des difficultés de ré-échantillonnage
réapparaissent. Nous travaillons en ce moment sur la mise
au point d'une évaluation de cette approche du éltrage des
images catadioptriques en la comparant au éltrage clas-
sique.

3.2 Méthode par convolution adaptative

Nous étudions parallèlement une autre approche
basée sur le même schéma de principe mais per-
mettant de s'affranchir partiellement des problèmes
d'échantillonnage. Le principe en est simple : plutôt que
de projeter les pixels de l'image sur le miroir, nous pro-
posons de projeter sur l'image, un noyau de convolution
régulier extrait d'une surface respectant mieux la topologie
de l'espace perçu. On peut se rapprocher par exemple
du cas des caméras classiques en utilisant une surface
cylindrique entourant le miroir (Fig. 6).

Dans ce cas, il y aura un noyau de convolution par
pixel. Les éltrages classiques peuvent alors être utilisés.
Nous souhaiterions cependant mettre à profit ce travail
pour étudier la possibilité d'utiliser d'autres outils que
la convolution classique (basée sur les statistiques de
moyenne) pour réaliser les estimations échantillonnées.
Nous souhaiterions, entre autres, utiliser des noyaux nous
pour représenter tant l'échantillonnage de que voisinage
régulier (noyau de convolution). Dans ce cas, il faudra
certainement remplacer les sommes pondérées usuelles par
des techniques prenant en compte l'aspect non-sommatif
de ces noyaux comme l'intégrale de Choquet[5].

<figure><img src="image_9.png" /><figcaption>Figure 6: Projection de noyau de convolution</figcaption></figure>

4 Commande et asservissement vi-
suel

François CHAUMETTE - IRISA, Phillipe MARTINET, Youcef MEZOUAR - CREA

Les capteurs catadioptriques ont commencé à être étudiés du point de vue de l'asservissement visuel que très récemment. Les seuls travaux recensés par nos soins n'ont adressé jusqu'alors que les primitives de type point [3]. Peu ou pas d'expérimentation réelle ont été produite. Le but de notre activité scientifique est donc d'étendre la modélisation d'autre primitives (images de droites), ou de traiter toutes les primitives (avec les moments), et enfin de démontrer la faisabilité réelle d'un tel retour visuel. Une étude bibliographique peut se retrouver dans les deux rapports de DEA [1], et [7]. Dans le premier rapport est développée la modélisation pour les images de droites, dans le second la modélisation pour les moments.

5 Modèle de caméra catadioptrique

Comme indiqué dans [2], un système catadioptrique à point
central peut être construit en combinant un miroir hyper-
bolique, elliptique ou planaire avec une caméra perspective
et un miroir parabolique avec une caméra orthographique.
Afin de simplifier les notations, les caméras perspectives
conventionnelles seront intégrées dans la liste des caméras
catadioptriques à point central unique. Dans [8], une
théorie unifiée pour les systèmes catadioptriques à point
central unique a été proposée.

Selon ce modèle général, toutes les caméras panoramiques
à point central, peuvent être modélisées par une projection
centrale sur une sphère suivie d'une projection centrale sur
<table><caption>Table 3: Description de caméras catadioptriques à point central :</caption><thead><tr><th>caméra</th><th>surface miroir</th><th>ξ</th><th>φ</th></tr></thead><tbody><tr><td>Parabolique</td><td>z = <sup>x<sup>2</sup> + y<sup>2</sup></sup>&frasl;<sub>2a<sub>p</sub></sub> - a<sub>p</sub><sup>2</sup></sub>&frasl;<sub>2</sub></td><td>1</td><td>1 + 2p</td></tr><tr><td>Hyperbolique</td><td>(z + <sup>d</sup>&frasl;<sub>2</sub>)<sup>2</sup> - <sup>x<sup>2</sup> + y<sup>2</sup></sup>&frasl;<sub>b<sub>h</sub><sup>2</sup></sub> = 1</td><td><sup>d</sup>&frasl;<sub>&radic;(d<sup>2</sup> + 4p<sup>2</sup>)</sub></td><td><sup>d + 2p</sup>&frasl;<sub>&radic;(d<sup>2</sup> + 4p<sup>2</sup>)</sub></td></tr><tr><td>Elliptique</td><td>(z + <sup>d</sup>&frasl;<sub>2</sub>)<sup>2</sup> + <sup>x<sup>2</sup> + y<sup>2</sup></sup>&frasl;<sub>b<sub>e</sub><sup>2</sup></sub> = 1</td><td><sup>d</sup>&frasl;<sub>&radic;(d<sup>2</sup> + 4p<sup>2</sup>)</sub></td><td><sup>d - 2p</sup>&frasl;<sub>&radic;(d<sup>2</sup> + 4p<sup>2</sup>)</sub></td></tr><tr><td>Planaire</td><td>z = <sup>d</sup>&frasl;<sub>2</sub></td><td>0</td><td>1</td></tr><tr><td>conventionnel</td><td>aucun</td><td>0</td><td>1</td></tr></tbody></table>

$a_p, a_h, b_h, a_e, b_e$ ne dépendent que des paramètres intrinsèques du miroir $d$ et $p$.

<figure><img src="image_10.png" /><figcaption>Figure 7: Modèle de camera générique</figcaption></figure>

le plan image (i.e. Fig. 7). Ce modèle générique [3], (dans sa forme normalisée, c'est-à-dire après prise en compte des paramètres intrinsèques de la caméra) peut être paramétré par le couple $(\xi, \varphi)$ (voir Tab.3).

Soit $\mathcal{F}_c$ et $\mathcal{F}_m$ les répares attachés au repère caméra conventionnel et au miroir respectivement. Nous supposerons que $\mathcal{F}_c$ et $\mathcal{F}_m$ sont orientés de la même façon et seulement distants selon l'axe Z. Les centres $C$ et $M$ de $\mathcal{F}_c$ et $\mathcal{F}_m$ représentent le centre optique et le centre de projection principal respectivement.

Soit $\mathcal{X}$ un point 3D avec pour coordonnées $\mathbf{X} = [XY Z]^T$ défini dans $\mathcal{F}_m$. Selon le modèle de projection générique [8], $\mathcal{X}$ est projeté dans l'image en un point $\mathbf{x} = [xy 1]^T$ avec:

$$ \mathbf{x} = \mathbf{K} \mathbf{M} \mathbf{f}(\mathbf{X}) \quad (1) $$

où $\mathbf{K}$ représente la matrice des paramètres intrinsèques de la caméra conventionnelle,

$$ \mathbf{M} = \begin{bmatrix} \varphi - \xi & 0 & 0 \\ 0 & \varphi - \xi & 0 \\ 0 & 0 & 1 \end{bmatrix} $$

et:

$$ \mathbf{f}(\mathbf{X}) = \begin{pmatrix} \frac{X}{Z + \xi \sqrt{X^2 + Y^2 + Z^2}} \\ \frac{Y}{Z + \xi \sqrt{X^2 + Y^2 + Z^2}} \\ 1 \end{pmatrix} $$

Dans la suite, on prendra pour hypothèse sans perte de généralités que la matrice $\mathbf{K}$ est égale à l'identité, la transformation décrivant la projection catadioptrique centrale est alors donnée par :

$$ \mathbf{x} = \mathbf{M} \mathbf{f}(\mathbf{X}) $$

# 6 Modélisation des primitives droites

Ces travaux ont été initialisés durant le stage de DEA de Hicham Hadj Abdelkader [1]. Ils ont donné lieu à deux publications acceptées [9] et [10]. La généralisation de cette étude au modèle générique présentée en section 5 a été faite récemment. Elle fait l'objet d'un article soumis à ICRA'04 [11].

## 6.1 Projection des droites

Pour modéliser la projection des droites dans l'image avec les équations de modèles données plus haut, nous utilisons les coordonnées de Plücker pour les droites (voir Fig. 8). Soit $\mathcal{P}$ un point 3D et $\mathbf{u} = (u_x, u_y, u_z)^T$ un vecteur unitaire exprimé dans le repère du miroir et $\mathcal{L}$ la droite 3-D qu'il définit. Définitions $\mathbf{n} = \overline{MP} \times \mathbf{u} = (n_x, n_y, n_z)^T$ et remarquons que ce vecteur est indépendant du point que nous choisisons sur la droite. Alors, les coordonnées euclidiennes de Plücker sont définies par $\mathcal{L}: (\mathbf{n}^T \mathbf{u}^T)^T$ avec $\|\mathbf{u}\| = 1$ et $\mathbf{n}^T \mathbf{u} = 0$. Le vecteur $\mathbf{n}$ est orthogonal au plan d'interpretation $\Pi$ défini par la droite et le centre de projection principal :

$$ \mathbf{X} = [X, Y, Z]^T \in \Pi \iff n_x X + n_y Y + n_z Z = 0 \quad (2) $$

Soit $\mathcal{S}$ l'intersection entre le plan d'interpretation et la surface du miroir. $\mathcal{S}$ représente la projection de la droite sur la surface du miroir. La projection $\mathcal{S}$ de $\mathcal{L}$ dans le plan image est alors obtenue en utilisant le modèle de projection perspective ou orthographique. On a montré que (avec (1), (2), et les équations de la surface du miroir données dans Tab. 3, que les points 3D appartenant à $\mathcal{L}$ sont projetés en des points image $x$ qui vériquent:

$$ \mathbf{x}^T \Omega \mathbf{x} = 0 \quad (3) $$

avec :

$$ \Omega = \begin{pmatrix} \frac{n_x^2(1-\xi^2)-n_z^2\xi^2}{(\varphi-\xi)^2} & \frac{n_x n_y(1-\xi^2)}{(\varphi-\xi)^2} & (2\eta-3)\frac{n_x n_z^{\eta-1}}{\varphi-\xi} \\ \frac{n_x n_y(1-\xi^2)}{(\varphi-\xi)^2} & \frac{n_y^2(1-\xi^2)-n_z^2\xi^2}{(\varphi-\xi)^2} & (2\eta-3)\frac{n_y n_z^{\eta-1}}{\varphi-\xi} \\ (2\eta-3)\frac{n_x n_z^{\eta-1}}{\varphi-\xi} & (2\eta-3)\frac{n_y n_z^{\eta-1}}{\varphi-\xi} & n_z^{\eta} \end{pmatrix} $$

où $\eta = 2$ dans le cas général et $\eta = 1$ pour la combinaison entre caméra othographique et miroir parabolique. Par conséquent, une droite dans l'espace est projetée en
<figure><img src="image_11.png" /><figcaption>Figure 8: Projection d'une droite en une conique dans l'espace image</figcaption></figure>

une conique dans le plan image. La relation (3) définit une équation quadratique:

$$A_0x^2 + A_1y^2 + 2A_2xy + 2A_3x + 2A_4y + A_5 = 0 \quad (4)$$

avec:

$$\left\{ \begin{aligned} A_0 &= \frac{n_x^2(1-\xi^2)-n_z^2\xi^2}{(\varphi-\xi)^2} \\ A_1 &= \frac{n_y^2(1-\xi^2)-n_z^2\xi^2}{(\varphi-\xi)^2} \\ A_2 &= \frac{n_x n_y(1-\xi^2)}{(\varphi-\xi)^2} \\ A_3 &= (2\eta-3)\frac{n_x n_z^{\eta-1}}{\varphi-\xi} \\ A_4 &= (2\eta-3)\frac{n_y n_z^{\eta-1}}{\varphi-\xi} \\ A_5 &= n_z^\eta \end{aligned} \right. \quad (5)$$

L'équation (4) est définie à un facteur d'échelle près. Nous normalisons l'équation (4) en divisant par $A_5$ :

$$\frac{A_0}{A_5}x^2 + \frac{A_1}{A_5}y^2 + 2\frac{A_2}{A_5}xy + 2\frac{A_3}{A_5}x + 2\frac{A_4}{A_5}y + 1 = 0 \quad (6)$$

Le cas $n_z = 0$ correspond à une configuration dégénérée de notre représentation où l'axe optique est situé dans le plan d'interprétation. Il correspond au cas où l'image de la droite passe par le point principal.

## 6.2 Matrice d'interaction pour des coniques

Le signal capteur s pour une conique (droite projetée) dans l'image catadioptrique est :

$$s = \frac{1}{A_5} \begin{bmatrix} A_0 & A_1 & A_2 & A_3 & A_4 \end{bmatrix}^T \quad (7)$$

La matrice d'interaction pour le signal capteur s est:

$$\mathbf{J} = \frac{\partial \mathbf{s}}{\partial \mathbf{r}} = \frac{\partial \mathbf{s}}{\partial \mathbf{n}} \frac{\partial \mathbf{n}}{\partial \mathbf{r}} = \mathbf{J}_{sn} \mathbf{J}_{n} \quad (8)$$

où $\mathbf{n} = (n_x, n_y, n_z)^T$ est le vecteur normal au plan d'interprétation pour la droite $\mathcal{L}$ exprimée dans le repère

du miroir, $\mathbf{J}_{sn}$ représente l'interaction entre les informations visuelles et le vecteur normal, et $\mathbf{J}_n$ relie les variations du vecteur normal aux vitesses de la caméra. On a démontré que :

$$\mathbf{J}_n = \begin{pmatrix} 0 & -u_z & u_y & 0 & -n_z & n_y \\ u_z & 0 & -u_x & n_z & 0 & -n_x \\ -u_y & u_x & 0 & -n_y & n_x & 0 \end{pmatrix} \quad (9)$$

La matrice jacobienne $\mathbf{J}_{sn}$ est obtenue par le calcul de la dérivée partielle de (7) par rapport à $\mathbf{n}$:

$$\mathbf{J}_{sn} = \frac{1}{n_z^\eta} \begin{pmatrix} 2\alpha n_x & 0 & -\eta\alpha n_x^2/n_z \\ 0 & 2\alpha n_y & -\eta\alpha n_y^2/n_z \\ \alpha n_y & \alpha n_x & -\eta\alpha n_x n_y/n_z \\ \beta n_z^{\eta-1} & 0 & -\beta n_x n_z^{\eta-2} \\ 0 & \beta n_z^{\eta-1} & -\beta n_y n_z^{\eta-2} \end{pmatrix} \quad (10)$$

où $\mathbf{\alpha} = \frac{1-\xi^2}{(\varphi-\xi)^2}, \beta = \frac{2\eta-3}{\varphi-\xi}$. La matrice d'interaction peut être finalement calculée en combinant les équations (9) et (10) selon la relation (8). Le rang de la matrice d'interaction peut se calculer à partir de la relation (8), et on peut démontrer qu'il est de égal à 2, ce qui conforme au cas classique et tout fait logique. Au moins 3 droites sont donc nécessaires pour commander un bras robotique avec 6 degrés de liberté. Pour un robot mobile à 3 ddl dont on souhaite en controler 2 par la vision, une seule droite est nécessaire.

# 7 Utilisation des moments

Comme décrit dans la section 6, nous sommes partis des équations générales de modélisation géométrique des capteurs à centre de projection unique (valide par exemple pour les miroirs paraboliques et une caméra à projection orthographique, et les miroirs hyperboliques et une caméra à projection perspective) établies par Nayar. Nous en avons déduit la forme analytique de la matrice d'interaction associée aux moments d'ordre quelconque pour un objet plan : aire, coordonnées du centre de gravité, moments d'inertie, etc.

Les formes obtenues sont peu sympathiques [7], mais exploitables pour générer des lois de commande par asservissement visuel. On peut signaler qu'elles sont moins complexes si on utilise un miroir parabolique. Quoiqu'il en soit, six combinaisons de moments ont été choisies pour pouvoir contrôler les six degrés de liberté d'un robot. Des simulations ont été réalisées pour valider ces travaux de modélisation. Elles sont basées sur un générateur d'images synthétiques intégrant le modèle du capteur, images sur lesquelles sont calculées les moments. La forme que nous avons considérée pour l'instant est un simple rectangle. Nous avons pour projet d'appliquer ces travaux pour passer des moments à l'image d'une droite (un cercle ou une droite si on considère un miroir parabolique) pour retrouver les résultats obtenus en utilisant la méthode décrite dans 7.
<figure><img src="image_12.png" /><figcaption>Figure 9: Resultats de simulation de l'asservissement visuel des six degrees de liberté d'un capteur de vision omnidirectionnelle (miroir parabolique) sur un objet simple à partir des moments : (a) image initiale, (b) image finale, (c) erreur sur les informations visuelles, (d) composantes du torseur cinématique du capteur.</figcaption></figure>

## 8 Conclusion

Les points les plus importants sont assurément le suivi de coniques à un cadence la plus proche possible de la cadence vidéo, et les équations de modélisation du capteur.

La tâche robotique pourrait être un suivi de couloir (une seule conique à suivre).

Une autre tâche pourrait être de contrôler les 6 ddl d'un système à partir d'une forme plane complexe. On utilisera alors les moments. Il faudrait donc un algorithme de suivi de ces formes et de calculs des moments (quitte la aussi à travailler sur des images simples, mais avec des motifs potentiellement compliqués).

De même, il serait intéressant de disposer des équations permettant de passer du capteur à résolution log-polaire à un capteur à résolution homogène pour étudier les changements induits dans la matrice d'interaction et donc dans le comportement du capteur.

Il est enfin possible d'effectuer des travaux similaires sur des systèmes de vision omnidirectionnelle ne disposant pas d'un centre de projection unique, mais il n'est évidemment pas envisageable d'étudier toutes les configurations possibles...

## References

[1] H. Hadj Abdelkader. Rapport de dea, utilisation des droites en asservissement visuel omnidirectionnel. Technical report, LASMEA, Clermont-Ferrand, France, july 2003.

[2] S. Baker and S. K. Nayar. A theory of single-viewpoint catadioptric image formation. *International Journal of Computer Vision*, 35(2):1-22, November 1999.

[3] J. Barreto and H. Araujo. Geometric properties of central catadioptric line images. In *European Conference on Computer Vision*, pages 237-251, 2002.

[4] C.Geyer and K. Danilidis. Catadioptric projective geometry. *International Journal of Computer Vision*, 43:223-243, 2001.

[5] G. Choquet. Theory of capacities. Technical report, Annales de l'Institut Fourier, 1953.

[6] D.Kostas, A. Makadia, and T. Bulow. Image processing in catadioptric planes: Spatiotemporal derivatives and optical flow computation. In *Proceedings of the IEEE Workshop on Omnidirectional Vision*, pages 3-12, 2002.

[7] E. Fouret. Rapport de dea, utilisation des moments en asservissement visuel omnidirectionnel. Technical report, IRISA, Rennes, France, july 2003.

[8] C. Geyer and K. Daniilidis. A unifying theory for central panoramic systems and practical implications. In *European Conference on Computer Vision*, volume 29, pages 159-179, Dublin, Ireland, May 2000.

[9] Y. Mezouar, H. Hadj Abdelkader, and P. Martinet. Utilisation des droites en asservissement visuel omnidirectionnel. In *4e Congrès francophone AFRIF-AFIA de Reconnaissance des formes et Intelligence artificielle, RFIA'04*, Toulouse, France, Janvier 2004.

[10] Y. Mezouar, H. Hadj Abdelkader, and P. Martinet. Visual servoing with omnidirectionnal sensor from lines. In *ISR'04*, Paris, France, Mars 2004.

[11] Y. Mezouar, H. Hadj Abdelkader, P. Martinet, and F. Chaumette. Central catadioptric visual servoing from 3d straight lines. In *submitted to ICRA'04*, New Orleans, USA, May 2004.