# A small-scale hyperacute compound eye featuring active eye tremor: application to visual stabilization, target tracking, and short-range odometry

Fabien Colonnier, Augustin Manecy, Raphaël Juston, Hanspeter Mallot, Robert Leitel, Dario Floreano, Stéphane Viollet

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

## ► To cite this version:

Fabien Colonnier, Augustin Manecy, Raphaël Juston, Hanspeter Mallot, Robert Leitel, et al. A small-scale hyperacute compound eye featuring active eye tremor: application to visual stabilization, target tracking, and short-range odometry. Bioinspiration and Biomimetics, 2015, 10 (2), pp.26002. 10.1088/1748-3190/10/2/026002. hal-01446792

HAL Id: hal-01446792

https://hal.science/hal-01446792

Submitted on 20 Dec 2017

HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published 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_2.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
Bioinspiration & Biomimetics

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

CrossMark

OPEN ACCESS

RECEIVED
12 September 2014

REVISED
19 December 2014

ACCEPTED FOR PUBLICATION
9 January 2015

PUBLISHED
25 February 2015

Content from this work
may be used under the
terms of the *Creative
Commons Attribution 3.0
licence*.

Any further distribution of
this work must maintain
attribution to the author
(s) and the title of the
work, journal citation and
DOI.

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

PAPER

# A small-scale hyperacute compound eye featuring active eye tremor: application to visual stabilization, target tracking, and short-range odometry

Fabien Colonnier<fnref n="1" />, Augustin Manecy<fnref n="1" />,<fnref n="2" />, Raphaël Juston<fnref n="1" />, Hanspeter Mallot<fnref n="3" />, Robert Leitel<fnref n="4" />, Dario Floreano<fnref n="2" /> and Stéphane Viollet<fnref n="1" />,<fnref n="6" />

E-mail: fabien.colonnier@univ-amu.fr, augustin.manecy@univ-amu.fr, rjuston@avenisense.com, hanspeter.mallot@uni-tuebingen.de, robert.leitel@iof.fraunhofer.de, dario.floreano@epfl.ch and stephane.viollet@univ-amu.fr

Supplementary material for this article is available [online](#).

## Abstract

In this study, a miniature artificial compound eye (15 mm in diameter) called the curved artificial compound eye (CurvACE) was endowed for the first time with hyperacuity, using similar micro-movements to those occurring in the fly's compound eye. A periodic micro-scanning movement of only a few degrees enables the vibrating compound eye to locate contrasting objects with a 40-fold greater resolution than that imposed by the interommatidial angle. In this study, we developed a new algorithm merging the output of 35 local processing units consisting of adjacent pairs of artificial ommatidia. The local measurements performed by each pair are processed in parallel with very few computational resources, which makes it possible to reach a high refresh rate of 500 Hz. An aerial robotic platform with two degrees of freedom equipped with the active CurvACE placed over naturally textured panels was able to assess its linear position accurately with respect to the environment thanks to its efficient gaze stabilization system. The algorithm was found to perform robustly at different light conditions as well as distance variations relative to the ground and featured small closed-loop positioning errors of the robot in the range of 45 mm. In addition, three tasks of interest were performed without having to change the algorithm: short-range odometry, visual stabilization, and tracking contrasting objects (hands) moving over a textured background.

## 1. Introduction

According to the definition originally proposed by Westheimer in 1975 [1] and recently reformulated in 2009 [2]: 'Hyperacuity refers to sensory capabilities in which the visual sensor transcends the grain imposed by its anatomical structure'. In the case of vision, this means that an eye is able to locate visual objects with greater accuracy than the angular difference between two neighboring photoreceptors $\Delta\varphi$. This study presents the first example of an artificial compound eye that is able to locate the features encountered with much greater accuracy than that imposed by its optics

(i.e., $\Delta\varphi$). Based on findings originally observed in fly vision, we designed and constructed an active version of the previously described artificial compound eye CurvACE [3, 4]. Active CurvACE features two properties usually banned by optic sensor designers because they impair the sharpness of the resulting images: optical blurring and vibration. The active visual principle applied here is based on a graded periodic back-and-forth eye rotation of a few degrees scanning the visual environment. Scanning micro-movements of this kind have been observed in humans [5] and several invertebrates such as crabs [6], molluscs [7], and arachnids [8, 9].

<footnote n="1">¹ Aix-Marseille Université, CNRS, ISM UMR 7287, 13288, Marseille cedex 09, France</footnote>

<footnote n="2">² GIPSA-lab laboratory, Control Systems Dept., SySCo team, CNRS-Univ. of Grenoble, ENSE3 BP 46, 38402 St Martin d'Hères Cedex, France</footnote>

<footnote n="3">³ Laboratory of Cognitive Neuroscience, Department of Biology, University of Tübingen, 72076 Tubingen, Germany</footnote>

<footnote n="4">⁴ Fraunhofer Institute for Applied Optics and Precision Engineering, 07745 Jena, Germany</footnote>

<footnote n="5">⁵ Laboratory of Intelligent Systems, École Polytechnique Fédérale de Lausanne, CH-1015 Lausanne, Switzerland</footnote>

<footnote n="6">⁶ Author to whom any correspondence should be addressed.</footnote>
The first micro-scanning sensor based on the periodic retinal micro-movements observed in the fly (for a review, see [10]) was presented in [11], whereas recent developments [12–14] have led to the implementation of bio-inspired vibrating sensors endowed with hyperacuity. However, hyperacuity has also been obtained in artificial retinas without using any retinal micro-scanning processes, based on the overlapping Gaussian fields of view of neighboring photosensors (for a review, see [15]). The authors of several studies have assessed the hyperacuity of an artificial compound eye in terms of its ability to locate a point source [16], a bar [17], a single line [18] (the bar and the line both take the form of a stripe in the field of view (FOV)), an edge [19], and to sense the edge’s orientation [20]. The robustness of these visual sensors’ performances with respect to the contrast, lighting conditions, and distance from the object targeted (contrasting edges or bars) has never been assessed prior to the present study involving the use of a retinal micro-scanning approach. However, assuming that a priori knowledge is available about the targets and obstacles’ contrast, Davis et al [21] implemented efficient target tracking and obstacle avoidance behaviour onboard a ground-based vehicle equipped with a bulky apposition eye consisting of an array of 7 ommatidia.

As Floreano et al [3] have shown, an artificial curved compound eye can provide useful optic flow (OF) measurements. In addition, we established here that an artificial compound eye performing active periodic micro-scanning movements combined with appropriate visual processing algorithms can also be endowed with angular position sensing capabilities. With this visual sensing method, an aerial robot equipped with active CurvACE was able to perform short-range visual odometry and track a target moving over textured ground. The bio-inspired approach used here to obtain hovering behaviour differs completely from those used in studies involving the use of computer vision or OF flow.

In this context, it is worth quoting, for example, two recent studies using binocular vision [22] and monocular vision [23] to perform hovering without any drift and visual odometry, respectively. However, the latency (about 18 ms) of the embedded visual processing algorithms used by the latter authors still limits the reactivity of the supporting aerial robotic platform. Other strategies combined visual cues with barometric data to obtain a visual odometer [24] or with an ultrasonic range finder to implement a hovering autopilot [25]. In the case of hovering behaviour, many studies have been based on the assumption that the robots in question have previous knowledge of particular features present in the environment. Mkrtchyan et al [26] enabled a robot to hover using only visual cues by fixating three black rectangles, but its altitude was controlled by an operator. Likewise, landing procedures have been devised, which enabled robots equipped

with initial measurement unit (IMU) and visual sensors to detect specific geometrical patterns on the ground [27] and [28]. Bosnak et al [29] implemented an automatic method of hovering stabilization in a quadrotor equipped with a camera looking downward at a specific pattern. Gomez-Balderas et al [30] stabilized a quadrotor by means of an IMU and two cameras, one looking downward and the other one looking forward. In the latter study, the OF was computed on the basis of the images perceived when looking downward and the robot’s position was determined by using a known rectangular figure placed on a wall, which was detected by the forward-facing camera.

OF has also been used along with IMU measurements to perform particular flight maneuvers such as hovering [31] and landing [32, 33]. The robot developed by Carrillo et al [34] rejected perturbations by integrating the OF with information about the height obtained via an ultrasonic range finder. In their experiments, the goal was to follow a path defined by a contrasting line.

Honegger et al [35] also developed an optical flow sensor for stabilizing a robotic platform hovering over a flat terrain, but the performances of this sensor over a rugged terrain or a slope were not documented. Along similar lines, Bristeau et al [36] developed a means to estimate the speed of a quadrotor by combining the speed given by an OF algorithm with that provided by an accelerometer.

The visual processing algorithm presented here estimates displacement by measuring the angular position of several contrasting features detected by active CurvACE. In this respect, this method differs completely from those used in previous studies based on the use of the OF, which are similar to speed estimation methods.

The active version of the CurvACE sensor and the fly’s retinal micro-movements are described in section 2.1, and a model for the vibrating eye, including its special optics, is presented in section 2.2. The visual processing algorithms resulting in hyperacuity are described in section 3. A complete description of the implementation of this sensor on a tethered robot named HyperRob is given in section 4, and the robot’s capability to assess its own linear position relative to the environment and track a target thanks to the active CurvACE, based on the novel sensory fusion algorithm developed here, is established in section 5 (see also section 3.3).

## 2. Description of the visual sensor: active CurvACE

### 2.1. Inspiration from the fly’s visual micro-scanning movements

In this study, visual hyperacuity results from an active process whereby periodic micro-movements are continuously applied to an artificial compound eye. This
<figure><img src="image_5.png" /><figcaption>**Figure 1.** (a) Head of a *Calliphora vomitaria* (Picture: J.J. Harrison, Wikimedia commons). (b) Top view of a fly's head showing the orbito-tentorialis muscle (MOT, in red) attached to the back of the head (the fixed part: TT) and the base of the retina (the moving part: RET). The MOT is one of the two muscles responsible for the periodic retinal translation (for a review on the fly's retinal micro-movements see [10]). Modified with permission from [37], copyright 1972 Springer. (c) The active CurvACE with its vibrating mechanism based on the use of a small stepper motor.</figcaption></figure>

<figure><img src="image_6.png" /><figcaption>**Figure 2.** (a) Schematic view of a compound eye, showing the two main optical parameters of interest: the interommatidial angle $\Delta\varphi$, defined as the angle between optical axes of two adjacent ommatidia, and the acceptance angle $\Delta\rho$, defined as the angle at half width of the Gaussian-shaped ASF. This particular shape of ASF results from the combination of the airy diffraction pattern and the geometrical angular width of the rhabdom at the nodal point of the lens [38]. The diameter of the facet lenses in the male blowfly *Calliphora* ranges from 20–40 $\mu$m, whereas that of the peripheral rhabdomeres is 1.5–2 $\mu$m (see [39] for review). Adapted with permission from [40], copyright 1977 Scientific American Inc. (b) CurvACE sensor and (c) the horizontal ASFs measured for each artificial ommatidium along the equatorial row (red line) (see [3] for further details). The mean value of the interommatidial angle $\Delta\varphi$ obtained in the middle row (red line) is 4.2° ± 1.17° (SD) and that of the acceptance angle is 4.2° ± 0.56° (SD).</figcaption></figure>

approach was inspired by the retinal micro-movements observed in the eye of the blowfly *Calliphora* (see figure 1(a)). Unlike the fly's retinal scanning movements, which result from the translation of the photoreceptors (see figure 1(b)) in the focal plane of each individual facet lens (for a review on the fly's retinal micro-movements see [10]), the eye tremor applied here to the active CurvACE by means of a micro-stepper motor (figure 1(c)) results from a periodic rotation of the whole artificial compound eye. Section 2.3 shows in detail that both scanning processes lead to a rotation of the visual axis.

Here we describe in detail the active version of the CurvACE sensor and establish that this artificial compound eye is endowed with hyperacuity, thanks to the active periodic micro-scanning movements applied to the whole eye.

## 2.2. Modelling the optics

As described in [3], the CurvACE photosensors array has similar characteristics to the fruitfly eye in terms of the number of ommatidia (630), light adaptation, the interommatidial angle ($\Delta\varphi$ = 4.2° on average), and a similar, Gaussian-shaped angular sensitivity function
<figure><img src="image_7.png" /><figcaption>Figure 3. Optical axis rotation resulting from (a) a micro-displacement ε of the pixels placed behind a fixed lens (e.g., in the case of a compound eye of the fly) or (b) a rotation of the whole sensor (e.g., in the case of the active CurvACE sensor). The micro-scanning of active CurvACE is subjected to active periodic rotational movements generated by a miniature eccentric mechanism. The angular vibration ψ<sub>mod</sub> is generated by a miniature stepper motor represented here by an orange shaft and a purple off-centered shaft, which translates along an elongated hole. The scanning frequency can be easily adjusted by changing the rotational speed of the motor. The scanning amplitude depends on the diameter of the off-centered shaft.</figcaption></figure>

(ASF). This specific ASF removes ‘insignificant’ con-
trasts at high spatial frequencies.

To replicate the characteristics of its natural coun-
terpart (see figure 2(a)), CurvACE was designed with a
specific optical layer based on the assembly consisting
of a chirped microlens array (lenslet diameter:
172 µm) and two chirped aperture arrays. In the case
of active CurvACE, the optical characteristics remain
constant during the scanning process.

Each ASF of active CurvACE (figures 2(b) and (c))
can be characterized by the acceptance angle Δρ,
which is defined as the angular width at half of the
maximum ASF. The ASF along 1D s(ψ) of one Cur-
vACE ommatidium can therefore be written as fol-
lows:

$$
s(\psi) = \frac{2\sqrt{\pi \ln(2)}}{\pi \Delta \rho} e^{-4 \ln(2) \frac{\psi^2}{\Delta \rho^2}} \quad (1)
$$

where $\psi$ is the angle between the pixel's optical axis
and the angular position of a point light source.

2.3. Mathematical description of signals generated by vibrating ommatidia

Figures 3(a) and (b) compare the rotation of the visual
axes resulting from the translation of the retina behind
a fixed lens (e.g., in the case of the fly’s compound eye)
with the rotation of the visual axes resulting from the
rotation of the whole eye (e.g., like the mechanism
underlying the micro-saccades in the human’s camer-
ular eye [41]), respectively. In the active CurvACE, we
adopted the second strategy by subjecting the whole

eye to an active micro-scanning movement that makes
the eye rotate back and forth.

As shown in figure 3, the retinal micro-scanning
movements are performed by a miniature eccentric
mechanism based on a small stepper motor (Faulha-
ber ADM 0620-2R-V6-01, 1.7 grams in weight, 6 mm
in diameter) connected to an off-centered shaft [42].
This vibrating mechanism makes it possible to control
the scanning frequency by just setting a suitable motor
speed.

A general expression for the pixel’s output signal is
given by the convolution of the ASF s(ψ) with the light
intensity I of the 1D scene as follows:

$$
Ph(\psi_c) = \int_{-\infty}^{+\infty} s(\psi) \cdot I(\psi - \psi_c) \, d\psi \quad (2)
$$

where $\psi_c$ is the angular position of a contrasting feature
 edge or bar) placed in the sensor's visual field. For
 example, $I(\psi)$ can be expressed for an edge as follows:

$$
I(\psi) = \begin{cases} I_1 & \text{for } \psi < 0 \\ I_2 & \text{for } \psi \ge 0 \end{cases} \tag{3}
$$

and for a bar:

$$
I(\psi) = \begin{cases} I_1 & \text{for } |\psi| < L/2 \\ I_2 & \text{for } |\psi| \ge L/2 \end{cases} \quad (4)
$$

with L the width of the bar (expressed in rad).

The micro-scanning movements of the pixels can
be modelled in the form of an angular vibration ψ<sub>mod</sub>
of the optical axes added to the static angular position
ψ<sub>c</sub> of the contrast object (an edge or a bar). The
equations for the two pixels (Ph<sub>1</sub> and Ph<sub>2</sub>) are
<figure><img src="image_8.png" /><figcaption>Figure 4. Block diagram of the elementary 2-artificial ommatidia LPU integrated into the active CurvACE for locating edges and bars with great accuracy. The stepper motor (see 1(c) and 3(b)) generates a periodic rotation (green double arrows) of the overall visual sensor, resulting in the angular micro-scanning of their visual axes, in keeping with a sinusoidal law $\psi_{mod}(t)$ (scanning frequency 50 Hz, amplitude about 5° peak to peak with $\Delta\varphi = 4.2°$ and $\Delta\rho = 4.2°$). Two parallel processing pathways (one for edge/bar localization and one for edge/bar detection) were implemented. The edge/bar localization block gives the local angular position $\theta_i$ of an edge or bar placed in the visual field of two adjacent photosensors. The edge/bar detection block detects the presence of a bar or edge and triggers the appropriate gain: +1 for edges and -1 for bars. The principle of this detector is described in [14]. The central frequency $f_p$ of the peak filter is equal to the scanning frequency (50 Hz), whereas the cut-off frequency of the second-order digital low-pass filter is equal to 10 Hz. Adapted with permission from Juston et al [14], copyright 2014 IEEE.</figcaption></figure>

therefore:

$$Ph_1(\psi(t)) = Ph\left(\psi_c(t) + \psi_{mod}(t) - \frac{\Delta\varphi}{2}\right) \quad (5)$$

$$Ph_2(\psi(t)) = Ph\left(\psi_c(t) + \psi_{mod}(t) + \frac{\Delta\varphi}{2}\right) \quad (6)$$

with $\psi_{mod}$ obeying the following sinusoidal scanning law:

$$\psi_{mod}(t) = A \cdot \sin(2\pi f_{mod} \cdot t) \quad (7)$$

With A and $f_{mod}$ describing the amplitude and the frequency of the vibration, respectively. In the case of a whole rotation of the eye, this scanning law is easily achievable by a continuous rotation of the motor with an off-centered shaft. In the case of a translation of the pixels behind a lens, the law should be weighted with the tangent of the ratio between the retinal displacement $\epsilon$ and the focal length $f$ of the lens.

At the end, the photosensor response is a modulated convolution of the light intensity with the Gaussian sensitivity function.

### 3. Insights into the visual processing algorithms

In this paper, we reuse the local processing unit (LPU) presented in [14] and apply the principle to active CurvACE. An LPU is an elementary pair of photosensors endowed with hyperacuity by means of a periodic vibration. The LPU is able to locate very accurately an edge or a bar placed in its small FOV. An artificial compound eye like CurvACE can provide several LPU outputs, which can be merged to obtain a bigger FOV and used as a basis for a higher level visual processing algorithm. In the following sections, we describe the different steps of the visual algorithm,

from the pixel processing to the novel fusion of the LPU's output signals.

#### 3.1. LPU: from photosensors to an accurate edge and bar location

The LPU defined in figure 4 is the application of algorithms presented in [13] and [14]. The first paper ([13]) leads to the signal Output$_{Pos}$ resulting from the difference-to-sum ratio of the demodulated pixel output signals described by equation (8). The demodulation is realized by means of a peak filter that acts as both a differentiator and a selective filter centered at the scanning frequency ($f_p = f_{mod}$). Then, an absolute value function cascaded with a low-pass filter smooths out the pixel's output signals. The second paper ([14]) explains in detail the edge/bar detection based on the observed phenomena that the two pixels' output signals are in phase in the presence of an edge and in opposite phase in the presence of a bar. At the output of the LPU, the signal $\theta_i$ represents the position of the contrasting feature in the FOV (see equation (9)).

$$Output_{Pos} = \frac{Ph_{1_{demod}} - Ph_{2_{demod}}}{Ph_{1_{demod}} + Ph_{2_{demod}}} \quad (8)$$

$$\theta_i(\psi_c) = Output_{Detector} \cdot Output_{Pos} \quad (9)$$

With Output$_{Detector}$ equal to (-1) or (1) and $\theta_i$ the output signal of an LPU (see figure 4).

#### 3.2. Hyperacute localization of contrasting bars and edges

The characteristic static curves of the active CurvACE obtained with a contrasting edge and a black bar 2.5 cm in width subtending an angle of 2.86° are presented in figure 5.

The curve in figure 5(a) has a tangent hyperbolic profile with respect to the angular position of the edge. It can be clearly seen by comparing the two curves
<figure><img src="image_9.png" /><figcaption>**Figure 5.** Characteristic static curves of the signal *Output*<sub>Pos</sub> (see figure 4). The *Output*<sub>Pos</sub> signal is plotted versus the angular position of (a) an edge or (b) a bar of 2.5 cm width placed 50 cm in front of an active CurvACE rotating in 0.016° steps, each lasting 80 ms. The blue points represent the mean response of an LPU, and the blue shaded area represents the standard deviation (STD) of the output. The characteristic static curve obtained with a bar is inverted in comparison with that obtained with an edge. Bars therefore have to be distinguished from edges in order to select the appropriate sign of the *Output*<sub>Pos</sub> (see figure 4).</figcaption></figure>

<figure><img src="image_10.png" /><figcaption>**Figure 6.** The *Output*<sub>Pos</sub> signal, corresponding to the angular position of a contrasting edge, plotted versus time. Active CurvACE was subjected to a variation of the ambient lighting condition over about one decade and a forced interruption of the visual micro-scanning.</figcaption></figure>

plotted in figure 5 that the slopes of the characteristic static curves obtained with a bar and an edge are inverted. A theoretical explanation for the inversion of the slopes is given in [14]. This inversion justifies the use of an edge/bar detector in the LPU (see figure 4) to compensate for it and still be able to distinguish the direction of the movement.

Moreover, the characteristic curves are independent of the ambient lighting condition. Figure 6 shows that the *Output*<sub>Pos</sub> signal remains constant even if the ambient light varies over about one decade (from 180

to 1280Lux). A peak is visible at each light change and corresponds to the transient phase during light adaptation of the CurvACE photosensors, which lasts only 250 ms. In addition, figure 6 shows that active CurvACE is a genuine angular position sensing device able to provide the angular position of a contrasting object placed in its FOV. Indeed, when the scanning is turned off and on again, the value of the measurement remained the same. This experiment shows that the micro-scanning movement allows us to measure the position of a contrasting object without any drift. A
<figure><img src="image_11.png" /><figcaption>Figure 7. Visual processing algorithm Description of the sensory fusion algorithm to assess the robot’s speed $\vec{V}_x$ as well as its position $\vec{X}$ resulting here from a translation of the textured panel with respect to the arbitrary reference position (i.e., the initial position if not resetting during the flight). The 35 (7 × 5) LPU output signals corresponding to the ROI (8 × 5 photosensors) of the active CurvACE (see figure 9(a)) were processed by the 35 LPUs presented in figure 4. Here, the signal obtained before reaching the discrete integrator, denoted $S_{fused}$, was used to compute the linear speed. This procedure involved scaling the angular data to millimetric data (gain K) and normalizing the time $\frac{1}{T_s}$, with $T_s$ equal to the sample time of the system. A first-order low-pass filter with a cut-off frequency of 1.6 Hz limited the noise. The robot’s position $\vec{X}$ was scaled in millimeters by means of the gain K. The visual processing algorithm presented here provides $\vec{V}_x$ and $\vec{X}$ to the robot’s autopilot (see figure 13).</figcaption></figure>

limitation comes here from the contrast, as it cannot be theoretically higher than 81.8% for an edge because the auto-adaptative pixel output signal is no longer log linear for changes of illuminance (in W/m²) greater than one decade (see [3]).

### 3.3. Merging the output of local pairs of processing units

To endow a robot with the capability to sense its linear speed and position, a novel sensory fusion algorithm was developed using several LPUs in parallel. In this article, a 2D region of interest (ROI) composed of 8 × 5 artificial ommatidia in the central visual field was used in order to expose several pixels to the same kind of movements (figures 9(a) and (c)). In other words, the pattern seen by the sensor during a translation of the robot is a succession of edges and bars. The algorithm used here and depicted in figure 7 implements the connection between the 8 × 5 photosensors’ output signals to an array of 7 × 5 LPUs in order to provide local measurements of edge and bar angular positions. Then a selection is performed by computing the local sum S of two demodulated signals $Ph_{demod}$ obtained from two adjacent photosensors:

$$S_{n,n+1} = Ph_{(n)demod} + Ph_{(n+1)demod} \quad (10)$$

Indeed, as a signal Output$_{Pos}$ is pure noise when no feature is in the FOV, an indicator of the presence of a contrast was required. The sum of the demodulated signals was used here to give this feedback, because we observed that the contrast is positively correlated with

the sum and the signal-to-noise ratio. Therefore, at each sampling step, each local sum S is the thresholded in order to select the best LPU’s outputs to use. All sums above the threshold value are kept and the others are rejected. The threshold is then increased or decreased by a certain amount until 10 local sums have been selected. The threshold therefore evolves dynamically at each sampling time step. Lastly, the index i of each selected sum S gives the index of the pixel pair to process. Thus, the computational burden is dramatically reduced. Moreover, this selection helps reduce the data processing because only the data provided by the 10 selected LPUs are actually processed by the micro-controller.

In a nutshell, the sensory fusion algorithm presented here selects the 10 highest contrasts available in the FOV. As a result, the active CurvACE is able to assess its relative linear position regarding its initial one and its speed with respect to the visual environment.

It is worth noting that the selection process acts like a strong non-linearity. The output signal $\theta_{fused}$ is therefore not directly equal to the sum of all the local angular positions $\theta_i$. The parallel differentiation coupled to a single integrator via a non-linear selecting function merges all the local angular positions $\theta_i$, giving a reliable measurement of the angular orientation of the visual sensor within an infinite range. The active CurvACE can therefore be said to serve as a visual odometer once it has been subjected to a purely translational movement (see section 5.1). Mathematically,
<figure><img src="image_12.png" /><figcaption>Figure 8. The robot HyperRob flies over a textured panel and stays automatically at a programmed reference position despite lateral disturbance (a and b), changes in the ground height (b), movement of the ground (c), or small relief introduced by several objects placed onto the ground (d).</figcaption></figure>

the position is given through the three equations as follows:

$$ 
\left\{ 
\begin{aligned}
\Delta P_{isel} &= \theta_{isel}(t) - \theta_{isel}(t-1) \\
\theta_{fused}(t) &= \theta_{fused}(t-1) + \frac{1}{10} \sum_{i=1}^{10} \Delta P_{isel} \\
V_x(t) &= \frac{K}{Ts} (\theta_{fused}(t) - \theta_{fused}(t-1))
\end{aligned}
\right. 
\quad (11) 
$$

As shown in figure 7, the robot's speed is determined by applying a low-pass filter to the fused output signal $S_{fused}$ (which is the normalized sum of the local displacement error $\Delta P_{isel}$), whereas the robot's position is determined in the same way as $\theta_{fused}$, with the gain $K$.

To sum up, the algorithm developed here sums the local variation of contrast angular positions in the sensor FOV to be able to give the distance flown with the assumption that the ground height is known.

## 4. HyperRob: an aerial robot equipped with an hyperacute compound eye

The objective of this part of the study was to endow a visually controlled robot, named HyperRob, with the capability to:

* stay at a desired position (reference position) with respect to the visual environment (a textured panel, see figure 8)

* return to the reference position even in the presence of perturbation applied to the robot (lateral disturbance) or the textured panel over which the robot is flying.

* track visual target placed between the robot and a textured background environment.

Figure 8 summarizes the four scenarios used to show the visual stabilization capabilities of HyperRob.

Sections 2 and 3 presented the visual sensor and the algorithm we implemented on HyperRob. It is a twin-rotor robot tethered at the tip of a rotating arm. The robot was free to rotate around its roll axis and could therefore make the arm rotate around its vertical axis (the azimuth). The robot therefore travelled along a circular path with a radius of curvature equal to the length of the arm (1 m). Figure 9 shows the robot equipped with active CurvACE placed on the experimental testbench.

This section introduces HyperRob and we will see in section 5.2.1 that the robot will be able to stay at its initial position due to the vibrating active CurvACE estimating its linear speed and position, assuming that its gaze is stabilized.

### 4.1. Gaze stabilization

In order to determine the robot's speed and position accurately, the gaze direction should be orthogonal to the terrain. But as a simplification, we chose to align it with the vertical, assuming that the ground is mostly horizontal. Therefore, the eye has to compensate for the robot's roll angle. To this end, the eye is decoupled from the robot's body by means of a servo motor with a rotational axis aligned with the robot's roll axis. The gaze control system, composed of an inertial feedforward control, makes the eye looking always in a perpendicular direction to the movement during flight (figure 10). The rotational component introduced by the rotating arm supporting the robot can be neglected in this study.
<figure><img src="image_13.png" /><figcaption>**Figure 9.** Experimental setup of the robot HyperRob (a) Active CurvACE with a ROI (inset) composed of only 40 artificial ommatidia (8 × 5), each photosensor is composed of one pixel and one lens. FOV covers about 33.6° by 20.2°. (Picture provided by courtesy of P. Psaïla) (b) The robot HyperRob and its active CurvACE sensor. (c) The complete setup consisted of a twin-propeller robot attached to the tip of a rotating arm. The robot was free to rotate around its roll axis. Arm rotations around the azimuth were perceived by the robot as lateral displacements.</figcaption></figure>

<figure><img src="image_14.png" /><figcaption>**Figure 10.** Decoupled eye on the roll axis. Three examples of gaze stabilization. Despite the strong roll disturbances applied by hand to the body, the gaze orientation was kept vertically aligned by the mechanical decoupling provided by a fast servomotor between the robot's body and the visual sensor. It can be clearly seen from the sequence of pictures that the yellow line remained horizontal regardless of the robot's roll angle (red line).</figcaption></figure>

## 4.2. Details of the robot HyperRob

HyperRob is an aerial robot with two propellers and a carbon fiber frame, which includes two DC motors. Each motor transmits its power to the corresponding propeller (diameter 13 cm) via a 8 cm long steel shaft rotating on microball bearings in the hollow beam, ending in a crown gear (with a reduction ratio of 1/5). Two Hall effect sensors were used to measure the rotational speed of each propeller, and hence its thrust, via four magnets glued to each crown gear. Based on the differential thrust setpoints adopted, HyperRob

can control its attitude around the roll axis, which is sensed by a six-axis inertial sensor (here an InvenSense MPU 6000). The robot's position in the azimuthal plane is controlled by adjusting the roll angle. In the robot, where only the roll rotation is free, only one axis of the accelerometer and one axis of the rate gyro are used. As shown in figure 11, active CurvACE is mounted on a fast micro-servomotor (MKS DS 92A+) which makes it possible to control the gaze with great accuracy (0.1°) and fast dynamics (60° within 70 ms, i.e. 860°/s). This configuration enables the visual
<figure><img src="image_15.png" /><figcaption>**Figure 11.** Robot description (a) HyperRob mounted at the tip of the arm, leaving it free to rotate around the roll axis and move along a circular path in the azimuthal plane. (b) Schematic view of the robot. Four actuators were mounted onboard the robot: two DC motors driving the propeller's rotation are set in the carbon fiber body, one servomotor is used to stabilize the gaze and one stepper motor is used to produce the eye tremor (vibration). (c) CAD view showing the robot equipped with its visual sensor with a FOV of 33.6° by 20.2°. $ω_{r1}$ and $ω_{r2}$ are the two propellers' rotation speeds, $θ_r$ is the robot's roll angle, and $θ_{er}$ is the eye-in-robot angle.</figcaption></figure>

sensor to be mechanically decoupled from the body (see section 4.1). The robot is fully autonomous in terms of its computational resources and its power supply (both of which are provided onboard). The robot alone weighs about 145 g and the robot plus the arm weigh about 390 g.

All the computational resources required for the visual processing and the autopilot are implemented on two power lean micro-controllers embedded onboard the robot. The first micro-controller (Microchip dsPIC 33FJ128GP802) deals with the visual processing, whereas the second one (Microchip dsPIC 33FJ128GP804) is responsible for stabilizing the robot. The two micro-controllers have a sampling frequency of 500 Hz. The robot's hardware architecture is presented in detail in figure 12.

The micro-controller (μC) Vision communicates with CurvACE via a serial peripheral interface (SPI)

bus and collects the pixel values of the ROI. The signal $S_{fused}$ is computed and sent to the μC Control via another SPI bus. The latter completes the computation of the position $\vec{X}$ and the speed $\vec{V}_x$. This solution was chosen in order to keep the number of data sent via the SPI bus to a minimum. The μC Control estimates the robot's attitude on the roll axis via a reduced complementary filter (inspired by [43]) and controls the robot's linear position on the basis of the two visual measurements ($X$ and $V_x$ see figure 13). The μC Control then sends the propeller speed setpoints to a custom-made driver controlling the rotational speed of each propeller in a closed-loop mode.

### 4.3. Control

Assuming the robot to be a rigid body and simplifying the dynamic model for a quad-rotor presented in [44] in the case of a single roll axis, the robot's dynamics
<figure><img src="image_16.png" /><figcaption>**Figure 12.** Electronic architecture. The autopilot's electronics board is composed of two micro-controllers. The first one is involved in the visual processing algorithm (dsPIC33FJ128GP802) and the second one (dsPIC33FJ128GP804) controls the robot's roll and its linear position. The micro-controller denoted μC Vision communicates with CurvACE and receives the digitized pixel output values via a SPI bus. The second micro-controller, denoted μC Control (dsPIC33FJ128GP804), receives the visual sensor's output data from the micro-controller μC Vision via an additional SPI bus. The μC Control then sends the propellers' setpoints to a custom-made driver including a closed-loop control of the rotational speed of each propeller.</figcaption></figure>

<figure><img src="image_17.png" /><figcaption>**Figure 13.** Description of the control loops. The robot's control system consists mainly of four nested feedback loops: one for the lateral position, one for the lateral speed $V_x$, one for the roll angle $\theta_r$, and one for the rotational roll speed $\Omega_r$. The propellers' speeds $\omega_{r1,2}$ are controlled via an additional local feedback loop. All the controllers are detailed in table 1. Two Hall effect sensors are used to measure the propeller speed used in the feedback loop controlling the effective thrust. The inertial sensors give a biased rotational speed $\bar{\Omega}_r$ and the acceleration $\bar{A}_{cc}$. The active CurvACE sensor produces two visual measurements, corresponding to the robot's relative position $\bar{X}$ and its linear speed $\bar{V}_x$ (see figure 7).</figcaption></figure>

can be written as follows:

$$ 
\left\{ 
\begin{aligned}
\dot{X} &= V_x \\
\dot{V}_x &= -\frac{T_{nom}}{m} \sin(\theta_r) \\
\dot{\theta}_r &= \Omega_r \\
\dot{\Omega}_r &= \Gamma_\theta = \frac{2l}{I} \delta
\end{aligned}
\right.
\qquad (12) 
$$

where X is the robot's lateral position, $V_x$ is its lateral speed, $\theta_r$ is the roll angle, $\Omega_r$ is the rotational roll speed, l is the robot's half span, I is the moment of inertia, $\delta$ is the differential thrust, and $T_{nom}$ is the nominal thrust.

$$ 
\left\{ 
\begin{aligned}
2\delta &= T_1 - T_2 = c_T (\omega_{r1}^2 - \omega_{r2}^2) \\
T_1 &= T_{nom} + \delta^* \\
T_2 &= T_{nom} - \delta^*
\end{aligned}
\right.
\qquad (13) 
$$
$$ 
\Leftrightarrow 
\left\{ 
\begin{aligned}
\omega_{r1} &= \sqrt{\frac{T_{nom} + \delta^*}{C_T}} \\
\omega_{r2} &= \sqrt{\frac{T_{nom} - \delta^*}{C_T}}
\end{aligned}
\right. 
$$

where $c_T$ is the thrust coefficient, and $\omega_{r1}$ and $\omega_{r2}$ are the right and left propeller speeds, respectively, and
$\delta = f_{prop}(s)\delta^*$, where $f_{prop}(s)$ and $\delta^*$ correspond to the closed-loop transfer function of the propellers' speed and the differential thrust reference, respectively.

As described in figure 13, the autopilot controlling both the robot's roll and its position is composed of four nested feedback loops:

* the first feedback loop controls the robot's rotational speed by directly adjusting the differential thrust, and hence the roll torque.

* the second feedback loop yields setpoints on the previous one for tracking the robot's reference roll angle.

* the third feedback loop adjusts the robot's linear speed by providing roll angle setpoints.

* the fourth feedback loop controls the robot's linear position and yields the reference speed.

In the first and second feedback loops, the roll angle's estimation is obtained by means of a reduced version of a complementary filter described in ([43]). In the case of HyperRob, since only a 1D filtering method is required, the attitude estimator becomes:

$$ 
\left\{ 
\begin{aligned}
\bar{\theta}_r &= \arcsin\left(\frac{Y_{acc}}{g}\right) \\
\dot{\hat{b}} &= -k_b(\bar{\theta}_r - \hat{\theta}_r) \\
\hat{\Omega}_r &= \hat{\Omega}_r - \hat{b} \\
\hat{\theta}_r &= \hat{\Omega}_r + k_a(\bar{\theta}_r - \hat{\theta}_r)
\end{aligned}
\right. 
\quad (14) 
$$

where $\bar{\theta}_r$ is the roll angle calculated from the accelerometer measurement $Y_{acc}$, $\hat{b}$ is the estimated rate gyro's bias, $\hat{\Omega}_r$ is the rate gyro's output measurement, $\hat{\theta}_r$ is the estimated roll angle, and $\hat{\Omega}_r$ is the unbiased rotational speed. Here $k_a$ and $k_b$ are positive gains which were selected so as to obtain a convergence time of 3 s and 30 s for the estimated angle and the estimated rate gyro's bias, respectively.

The complementary filter therefore yields the values of the rate gyro bias, the unbiased roll rotational speed, and the roll angle.

## 5. Application to short-range odometry, visual stabilization, and tracking

In the various experiments performed in this study, a serial communication with a ground station was used to record the data provided by the robot. A VICON motion tracking system was run at the same time to obtain the ground-truth data. A textured panel was placed 39 cm below the robot. During the experiment involving the translation of the panel, as the sensor can only sense the movement along one direction and the robot travels along a circular path, the data were projected in order to obtain a comparable dataset.

Thus, at each time step, we projected the position vector into the robot frame and took only the tangential components of the displacement.

In this section, we report on several experiments which were carried out in order to test the robot's capability to perform various tasks. In all these experiments, thanks to the efficient gaze control system compensating for the robot's roll, the visually controlled robot experienced a quasi-translational OF elicited by the perturbations applied either to the robot itself or to the textured panel. In the first experiment, the sensor played the role of an odometer. The robot achieved accurate hovering performances despite the lateral disturbances, as well as an efficient tracking capability. All these experiments confirmed that the robot was able to perform robust short-range visual odometry, i.e., to estimate its linear position before returning automatically to an arbitrary reference position adopted.

### 5.1. Short-range visual odometry

The fused visual output signal $S_{fused}$ provided by the active CurvACE depends on the visual environment: if there are no contrasts, the sensor will not detect any visual cues and will therefore not be able to specify the robot's position accurately. The richer the visual environment is (in terms of contrasts), the better the position measurement. In order to compare the output of the sensor with the ground-truth measurements, three experiments were conducted under different visual conditions.

In these experiments, the robot was moved manually over two different panels under two different ambient lighting conditions from right to left and back to the initial position with its gaze stabilization activated. The results obtained, which are presented in figure 14, are quite similar for each trip, giving a maximum error of 174 mm. Figure 14 shows that the output in response to a textured panel and one composed of a single 5 cm wide black bar was similar. Therefore, assuming the distance to the ground to be known, the active CurvACE was able to serve as a visual odometer by measuring the robot's position accurately in the neighbourhood of its initial position.

### 5.2. Lateral disturbance rejection

#### 5.2.1. Above a horizontal textured panel

Lateral disturbances were applied by pushing the arm in both directions, simulating gusts of wind. In figure 15, it can be seen that all lateral disturbances were completely rejected within about 5 s, including even those as large as 40 cm. The dynamics of the robot could be largely improved by using a robot with a higher thrust or a lighter arm in order to reduce the oscillation. Figures 15(b) and (c) show that the robot was always able to return to its initial position. With its active eye, the robot can compensate for lateral disturbance as large as 359 mm applied to its reference position with a maximum error of only 25 mm, i.e., 3% of the flown distance. This error is presumably due
<figure><img src="image_18.png" /></figure>

**Figure 14.** Robustness of the sensor. Comparison between the active CurvACE sensor's measurements and the ground-truth position given by the VICON system when the robot made a lateral movement and returned to its initial position. The sensor's output remained fairly stable regardless the lighting conditions and structure of the pattern, giving a standard error ranging from 2.3 to 7.8% (Deviation = $\frac{Stderror(y_i - x_i)}{max(x_i) - min(x_i)}$).

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

**Figure 15.** Lateral disturbance rejection over a naturally textured panel (a) Robot's position (in blue) superimposed on the panel's position (in red), both measured by the VICON system. The robot rejected the series of disturbances and returned to its initial position with a maximum error of 25 mm in less than 5 s. (b) The visual errors measured by the robot (red) and the VICON (blue) were very similar. With large disturbances, small errors occurred in the visual estimation of the robot's position without noticeably affecting the robot's capability to return automatically to its starting position. (c) Ground-truth measurement of the robot speed error (red curve) and the visual speed error (blue curve) measured by the robot due to active CurvACE. These two curves show that the robot was able to compensate for maximum lateral speed of 391 mm. s⁻¹.

to the selection process, which does not ensure the selection of the same features in the outward path and on the way back to the reference position; or maybe the assumption of a linear approximation of the inverse tangent function does not hold entirely within the entire FOV. As a consequence, thanks to the active visual sensor and its capability to measure the angular position of contrasting features, the robot HyperRob is highly sensitive to any motion and thus can compensate for very slow perturbation, ranging here from 0 to 391 mm. s⁻¹.

### 5.2.2. Above an evenly sloping ground

In the previous experiment, it was assumed that the ground height must be known to be able to use the conversion gain in the fused output signal $S_{fused}$. The same experiment was repeated here above a sloping

ground (see figure 16). The robot's height increased sharply in comparison with the calibration height. The robot's height varied in the range of +/-74 mm and starts with an offset of +96 mm compared to the calibration height. As shown in figure 16(b), the estimation of the traveled distance was always underestimated because the robot was always higher than the calibration height. However, the robot was still able to return to its starting position with a maximum error of only 45 mm (time $t = 36.5$ s) for a disturbance of 210 mm (i.e., 10.5% of the flown distance).

### 5.3. Tracking

The robot's tracking performances are presented in this subsection. Three different tracking tasks were tested:
<figure><img src="image_20.png" /><figcaption>**Figure 16.** Disturbances above a sloping ground (a) Picture of the robot above the sloping ground at an angle of 18.5° with respect to the horizontal. In the case of a 300 mm horizontal displacement, the height increased by 100 mm. definitions of the terms height and shift are also displayed. The robot is subjected to a series of disturbances with a maximum amplitude of 200 mm. (b) Horizontal shift measured by the sensor (blue) and the theoretical one calculated from VICON data (red). (c) Vertical distance from the robot to the panel in comparison with the calibration height of 390 mm.</figcaption></figure>

* tracking a moving textured panel (see section 5.3.1).

* tracking a moving textured panel with 3D objects placed on it (see section 5.3.2).

* tracking moving hands perceived above a stationary textured panel (see section 5.3.3).

### 5.3.1. Panel Tracking

In this experiment, the panel was moved manually and the robot's reference position setpoint $X^*$ was kept at zero. The robot faithfully followed the movements imposed on the panel. The few oscillations which occurred were mainly due to the robot's dynamics rather than to visual measurement errors. Each of the panel's movements was clearly detected, as shown in figure 17(b), although a proportional error in the measurements was sometimes observed, as explained above.

### 5.3.2. Tracking a moving rugged ground

In the second test, some objects were placed on the previously used panel to create an uneven surface. The robot's performances on this new surface were similar

to those observed on the flat one, as depicted in figure 18. The visual error was not as accurately measured as previously over the flat terrain because of the changes in the height of the ground. But the robot's position in the steady state was very similar to that of the panel. The maximum steady-state error at $t = 19$ s was only 32 mm.

### 5.3.3. Toward figure-ground discrimination: hand tracking

The last experiment consisted of placing two moving hands between the robot and the panel. Markers were also placed on one of the hands in order to compare the hand and robot positions: the results of this experiment are presented in figure 19. As shown in the video in the Supplementary Data and in figure 19, the robot faithfully followed the hands when they were moving together in the same direction. By comparing the robot position error seen by the active CurvACE with the ground-truth error, it was established that the robot tracked the moving hands accurately with a maximum estimation error of 129 mm.

Our visual algorithm selects the greatest contrasts in order to determine its linear position with respect to an arbitrary reference position. Therefore, when the
<figure><img src="image_21.png" /><figcaption>**Figure 17.** Tracking a naturally textured panel. When the textured panel was moved manually below the robot, HyperRob automatically followed the movement imposed by the panel. (a) Tracking of the panel by the robot. The red line corresponds to the panel's position and the blue line to the robot's position, both measured by the VICON system. (b) Comparison between the position measurement error given by the visual system (in blue) and the ground-truth data (in red) given by the VICON system. The results show that the robot tracked the moving panel accurately with a maximal position estimation error of 39 mm for a panel translation of 150 mm.</figcaption></figure>

<figure><img src="image_22.png" /><figcaption>**Figure 18.** Tracking a rugged ground with height variations formed by objects A rugged surface including several objects was moved below the robot, which had to follow the movements imposed on the ground. (a) Picture showing the robot's visual environment during the test. (b) Tracking of the panel by the robot. The red line corresponds to the panel position and the blue line to the robot's position, both measured by the VICON system. (c) Comparison between the position measurement error given by the visual system (in blue) and the ground-truth error (in red) given by the VICON measurements.</figcaption></figure>
<figure><img src="image_23.png" /><figcaption>**Figure 19.** Tracking moving hands above a textured panel In this experiment, the textured panel was kept stationary while two hands were moving horizontally together between the robot and the panel. (a) Picture of the hands during the experiment conducted with VICON. Markers are only required to monitor the hands' position. In the video provided in the Supplementary Data, we showed that the robot's performances are similar without those markers. (b) Plots of the textured panel's position (red), the robot's position (blue), and the hands' position (green), all measured by VICON. The robot followed the moving hands faithfully over the ground. (c) Comparison between the error measured by the eye (blue), and the ground-truth error provided by the VICON system (green). The latter is equal to the (Hand_Position)-(Robot_Position).</figcaption></figure>

<table><caption>**Table 1.** Controllers' parameters.</caption><thead><tr><th>Controller</th><th>Transfer Functions</th><th>Parameters Value</th></tr></thead><tbody><tr><td>Position controller</td><td rowspan="3">K<sub>x</sub><br>K<sub>V</sub>. <sup>τ<sub>V</sub>s + 1</sup>&frasl;<sub>s</sub></td><td>K<sub>x</sub> = 0.6 s<sup>-1</sup></td></tr><tr><td>Lateral speed controller</td><td>K<sub>V</sub> = 0.7</td></tr><tr><td></td><td>τ<sub>V</sub> = <sup>1</sup>&frasl;<sub>0.7</sub></td></tr><tr><td>Roll controller</td><td>K<sub>θ</sub></td><td>K<sub>θ</sub> = 0.6</td></tr><tr><td>Robot rot. speed controller</td><td>K<sub>Ω</sub>. <sup>τ<sub>Ω</sub>s + 1</sup>&frasl;<sub>s</sub></td><td>K<sub>Ω</sub> = 0.06</td></tr><tr><td></td><td></td><td>τ<sub>Ω</sub> = 0.45</td></tr><tr><td>Motor rot. speed controller</td><td>K<sub>ω</sub>. <sup>τ<sub>ω</sub>s + 1</sup>&frasl;<sub>s</sub></td><td>K<sub>ω</sub> = 0.9</td></tr><tr><td></td><td></td><td>τ<sub>ω</sub> = 0.05</td></tr></tbody></table>

hands were moving above the panel, some stronger contrasts than those of the hands were detected by the visual sensor, which decreased the accuracy of its tracking performances. However, this experiment showed that the robot is still able to track an object when a non-uniform background is moving differently, without having to change the control strategy or the visual algorithm. The robot simply continues to track the objects featuring the greatest contrasts.

## 6. Conclusion

In this paper, we describe the development and the performances of a vibrating small-scale cylindrical curved compound eye, named active CurvACE. The active process referred to here means that miniature periodic movements have been added in order to improve CurvACE's spatial resolution in terms of the localization of visual objects encountered in the surroundings. By imposing oscillatory movements (with a frequency of 50 Hz) with an amplitude of a few degrees (5°) on this artificial compound eye, it was endowed with hyperacuity, i.e., the ability to locate an object with much greater accuracy than that achieved so far because of the restrictions imposed by the interommatidial angle. Hyperacuity was achieved here by 35 LPUs applying the same local visual processing algorithm across an ROI of active CurvACE consisting of 8 × 5 artificial ommatidia. The novel sensory fusion algorithm used for this purpose, which was based on the selection of the 10 highest contrasts, enables the active eye (2D-FOV: 32° by 20°) to assess its displacement with respect to a textured environment. We even established that this new visual processing algorithm is
<table><caption>**Table 2.** Hovering performance of different aerial robots.</caption><thead><tr><th>Reference</th><th>Visual Sensor</th><th>Resolution (pixels)</th><th>Root Mean Square Error [mm]</th><th>Altitude [m]</th></tr></thead><tbody><tr><td>Kendoul et al [24]</td><td>RangeVideo<br>KX - 171</td><td>320 × 240</td><td>3D max error<br>±2m</td><td>5000<br>(outdoor)</td></tr><tr><td>Zhang et al [27]</td><td>Firefly MV</td><td>320 × 240<br>(FOV 56×38°)</td><td>ErrorMax<sub>x</sub> = 200<br>ErrorMax<sub>y</sub> = 200<br>ErrorMax<sub>z</sub> = 200</td><td>1.2</td></tr><tr><td>Engel et al [25]</td><td>2 cameras<br>Parrot AR.Drone</td><td>320 × 240<br>(FOV 73.5×58.5°)<br>176 × 144<br>(FOV 47.5×36.5°)</td><td>σ<sub>3D</sub> = 49</td><td>?</td></tr><tr><td>Lim et al [31]</td><td>Optical Mouse<br>Sensor</td><td>30 × 30</td><td>σ<sub>x</sub> = 91<br>σ<sub>y</sub> = 84<br>σ<sub>z</sub> =?</td><td>≈0.3</td></tr><tr><td>Yang et al [28]</td><td>Firefly MV</td><td>680×480</td><td>σ<sub>x,y</sub> = 38.8<br>σ<sub>z</sub> = 5.7</td><td>1</td></tr><tr><td>Shen et al [22]</td><td>2 uEye 1220SE</td><td>752 × 480</td><td>σ<sub>x</sub> = 31.3<br>σ<sub>y</sub> = 52.9<br>σ<sub>z</sub> = 27.2</td><td>0.9</td></tr></tbody></table>

a first step toward endowing robots with the ability to perform figure/ground discrimination tasks. By applying miniature movements to a stand-alone artificial compound eye, we developed a visual odometer yielding a standard error of 7.8% when it was subjected to quasi-translational movements of 1 m. Moreover, active CurvACE enabled a robot to hover and return to a position after perturbations with a maximal error of 2.5 cm for experiments based on a flat terrain, which is state-of-the-art performance in aerial robotics (see table 2), although our study is about a tethered robot flying indoors.

All the solutions adopted in this study in terms of practical hardware and computational resources are perfectly compatible with the stringent specifications applying to low-power, small-sized, low-cost micro-aerial vehicles (MAVs). Indeed, thanks to active CurvACE, we achieved very accurate hovering flight with few computational resources (only two 16 bit micro-controller and few pixels (only 8 × 5)). However, the 1D visual scanning presented here should be extended to a 2D scanning so as to enable free flight, which, however, would require a completely new mechanical design. In addition, the architecture of the 2D visual processing algorithm will have to be revised to make it compatible with low computational overheads. It is worth noting that the gaze stabilization reflex implemented onboard the present robot requires very few computational resources and allows CurvACE to process visual information resulting from purely translational movements. In addition, recent robotic studies have shown that gaze stabilization can be a useful means of achieving automatic heading [45] and vision-based hovering [46]. The MAVs of the future (e.g., [47]) will certainly require very few

computational resources to perform demanding tasks such as obstacle avoidance, visual stabilization, target tracking in cluttered environments, and autonomous navigation. Developing airborne vehicles capable of performing these highly demanding tasks will certainly involve the use of the latest cutting-edge technologies and bio-inspired approaches of the kind used here.

## Acknowledgments

The authors would like to thank Marc Boyron and Julien Diperi for the robot and the testbench realization; Nicolas Franceschini for helping in the design of the robot, Franck Ruffier for the fruitful discussions and the help implementing the flying arena. We would like to thank the referees for carefully reading our manuscript and for giving constructive feedback which improved significantly the quality of the paper. We also acknowledge the financial support of the Future and Emerging Technologies (FET) program within the Seventh Framework Programme for Research of the European Commission, under FET-Open Grant 237940. This work was supported by CNRS, Aix-Marseille University, Provence-Alpes-Cote d'Azur region, and the French National Research Agency (ANR) with the EVA, IRIS, and Equipex/Robotex projects (EVA project and IRIS project under ANR grants' number ANR608-CORD-007-04, and ANR-12-INSE-0009, respectively).

## References

[1] Westheimer G 1975 Editorial: visual acuity and hyperacuity
*Investigative Ophthalmology & Visual Science* **14** 570–2

[2] Westheimer G 2009 Hyperacuity
*Encyclopedia of Neuroscience* **5** 45–50
[3] Floreano D et al 2013 Miniature curved artificial compound eyes Proc. Nat. Acad. Sci. USA 110 9267–72

[4] Viollet S et al 2014 Hardware architecture and cutting-edge assembly process of a tiny curved compound eye Sensors 14 21702–21

[5] Rolfs M 2009 Microsaccades: small steps on a long way Vis. Res. 49 2415–41

[6] Sandeman D C 1978 Eye-scanning during walking in the crab leptograpsus variegatus J. Comp. Physiol. 124 249–57

[7] Land M F 1969 Movements of the retinae of jumping spiders (salticidae: Dendryphantinae) in response to visual stimuli J. Exper. Bio. 51 471–93

[8] Land M 1982 Scanning eye movements in a heteropod mollusc J. Exper. Bio. 96 427–30

[9] Kaps F and Schmid A 1996 Mechanism and possible behavioural relevance of retinal movements in the ctenid spider cupiennius salei J. Exper. Bio. 199 2451–8

[10] Viollet S 2014 Vibrating makes for better seeing: from the fly’s micro eye movements to hyperacute visual sensors Frontiers Bioengin. Biotech. 2

[11] Mura F and Franceschini N 1996 Obstacle avoidance in a terrestrial mobile robot provided with a scanning retina Proc. 1996 IEEE Intel. Veh. Symp. (19–20 Sept 1996) pp 47–52

[12] Viollet S and Franceschini N 2010 A hyperacute optical position sensor based on biomimetic retinal micro-scanning Sensors and Actuators A: Physical 160 60–68

[13] Kerhuel L, Viollet S and Franceschini N 2012 The vodka sensor: a bio-inspired hyperacute optical position sensing device Sensors J. IEEE 12 315–24

[14] Juston R, Kerhuel L, Franceschini N and Viollet S 2014 Hyperacute edge and bar detection in a bioinspired optical position sensing device Mechatronics, IEEE/ASME Transactions on 19 1025–34

[15] Wright C H G and Barrett S F 2013 Chapter 1—biomimetic vision sensors Engineered Biomimicry ed A Lakhtakia and R J Mart-Palma (Boston: Elsevier) pp 1–36

[16] Benson J B, Luke G P, Wright C H G and Wilcox M 2009 Pre-blurred spatial sampling can lead to hyperacuity Digital Signal Processing Workshop and 5th IEEE Signal Processing Education Workshop 2009. DSP/SPE 2009. IEEE 13th p 570–575

[17] Luke G P, Wright C H G and Barrett S F 2012 A multiaperture bioinspired sensor with hyperacuity Sensors J. IEEE 12 308–14

[18] Riley D T, Harmann W M, Barrett S F and Wright C H G 2008 Musca domestica inspired machine vision sensor with hyperacuity Bioinspiration & Biomimetics 3 026003

[19] Brückner A, Duparré J, Bräuer A and Tünnermann A 2006 Artificial compound eye applying hyperacuity Optics Express 14 12076–84

[20] Wilcox M J and Thelen D C Jr 1999 A retina with parallel input and pulsed output, extracting high-resolution information Neural Networks, IEEE Trans. 10 574–83

[21] Davis J D, Barrett S F, Wright C H G and Wilcox M 2009 A bioinspired apposition compound eye machine vision sensor system Bioinspiration & Biomimetics 4 046002

[22] Shen S, Mulgaonkar Y, Michael N and Kumar V 2013 Vision-based state estimation for autonomous rotorcraft mavs in complex environments 2013 IEEE Int. Conf. Robotics Automation (ICRA) (Karlsruhe, Germany) p 1758–1764

[23] Forster C, Pizzoli M and Scaramuzza D 2014 SVO: Fast semidirect monocular visual odometry 2014 IEEE Int. Conf. Robotics Automation (ICRA) pp 15–22

[24] Kendoul F, Nonami K, Fantoni I and Lozano R 2009 An adaptive vision-based autopilot for mini flying machines guidance, navigation and control Auton. Robots 27 165–88

[25] Engel J, Sturm J and Cremers D 2012 Accurate figure flying with a quadrocopter using onboard visual and inertial sensing Workshop on Visual Control of Mobile Robots (ViCoMoR) at the IEEE/RSJ Int. Conf. Intelligent Robots Sys (Vilamoura, Portugal) vol 320 240

[26] Mkrtchyan A A, Schultz R R and Semke W H 2009 Vision-based autopilot implementation using a quadrotor helicopter AIAA Infotech@ Aerospace Conf. (Seattle, Washington) 1831

[27] Zhang T, Kang Y, Achtelik M, Kühnlenz K and Buss M 2009 Autonomous hovering of a vision/imu guided quadrotor Int. Conf. Mechatronics Automation (ICRA) (Changchun, China) pp 2870–2875

[28] Yang S, Scherer S A and Zell A 2013 An onboard monocular vision system for autonomous takeoff, hovering and landing of a micro aerial vehicle J. Intel. Robotic Sys. 69 499–515

[29] Bosnak M, Matko D and Blazic S 2012 Quadrocopter hovering using position-estimation information from inertial sensors and a high-delay video system J. Intel. Robotic Sys. 67 43–60

[30] Gomez-Balderas J E, Salazar S, Guerrero J A and Lozano R 2014 Vision-based autonomous hovering for a miniature quad-rotor Robotica 32 43–61

[31] Lim H, Lee H and Kim H J 2012 Onboard flight control of a micro quadrotor using single strapdown optical flow sensor 2012 IEEE/RSJ Int. Conf. Intel. Robots Sys. (IROS) (Vilamoura, Algarve, Portugal) pp 495–500

[32] Herissé B, Hamel T, Mahony R and Russotto F-X 2012 Landing a vol1 unmanned aerial vehicle on a moving platform using optical flow IEEE Trans. Robotics 28 77–89

[33] Ruffier F and Franceschini N 2014 Optic flow regulation in unsteady environments: a tethered mav achieves terrain following and targeted landing over a moving platform J. Intel. Robotic Sys. pp 1–19

[34] Carrillo L R G, Flores G, Sanahuja G and Lozano R 2012 Quad-rotor switching control: an application for the task of path following American Control Conf. (ACC) (Fairmont Queen Elizabeth, Montréal, Canada) p 4637–4642

[35] Honegger D, Meier L, Tanskanen P and Pollefeys M 2013 An open source and open hardware embedded metric optical flow cmos camera for indoor and outdoor applications 2013 IEEE Int. Conf. Robotics Automation (ICRA) pp 1736–1741 IEEE

[36] Bristeau P-J et al 2011 The navigation and control technology inside the ar. drone micro uav 18th IFAC world congress vol 18 pp 1477–1484

[37] Hengstenberg R 1972 Eye movements in the housefly musca domestica Information Processing in the Visual Systems of Anthropods ed R Wehner (Berlin Heidelberg: Springer) p 93–96

[38] Land M F and Nilsson D-E 2012 Animal Eyes (Oxford Animal Biology Series) 2nd edn (Oxford: Oxford University Press)

[39] Stavenga D G 2003 Angular and spectral sensitivity of fly photoreceptors. i. integrated facet lens and rhabdomere optics J. Comp. Physiol. A 189 1–17

[40] Horridge G A 1977 The compound eye of insects Sci. Amer. 237 108–20

[41] Carpenter R H S 1988 Movements of the eyes (London: Pion Limited)

[42] Juston R and Viollet S 2012 A miniature bio-inspired position sensing device for the control of micro-aerial robots Intelligent Robots and Systems (IROS) 2012 IEEE/RSJ Int. Conf. p 1118–1124

[43] Mahony R, Hamel T and Pflimlin J-M 2008 Nonlinear complementary filters on the special orthogonal group IEEE Trans. Automatic Control 5 1203–18

[44] Bouabdallah S, Murrieri P and Siegwart R 2004 Design and control of an indoor micro quadrotor Int. Conf. Robotics Automation (ICRA) vol 5 4393–8

[45] Kerhuel L, Viollet S and Franceschini N 2010 Steering by gazing: An efficient biomimetic control strategy for visually guided micro aerial vehicles IEEE Trans. Robotics 26 307–19

[46] Manecy A, Marchand N and Viollet S 2014 Hovering by gazing: a novel strategy for implementing saccadic flight-based navigation in gps-denied environments Int. J. Adv. Robotic Sys. 11(66)

[47] Ma K Y, Chirarattananon P, Fuller S B and Wood R J 2013 Controlled flight of a biologically inspired, insect-scale robot Science 340 603–7