<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">Sensors</journal-id>
<journal-title>Sensors</journal-title>
<issn pub-type="epub">1424-8220</issn>
<publisher>
<publisher-name>Molecular Diversity Preservation International (MDPI)</publisher-name></publisher></journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3390/s101211468</article-id>
<article-id pub-id-type="publisher-id">sensors-10-11468</article-id>
<article-categories>
<subj-group>
<subject>Article</subject></subj-group></article-categories>
<title-group>
<article-title>Map Building and Monte Carlo Localization Using Global Appearance of Omnidirectional Images</article-title></title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Payá</surname><given-names>Luis</given-names></name><xref ref-type="corresp" rid="c1-sensors-10-11468">*</xref></contrib>
<contrib contrib-type="author">
<name><surname>Fernández</surname><given-names>Lorenzo</given-names></name></contrib>
<contrib contrib-type="author">
<name><surname>Gil</surname><given-names>Arturo</given-names></name></contrib>
<contrib contrib-type="author">
<name><surname>Reinoso</surname><given-names>Oscar</given-names></name></contrib>
<aff id="af1-sensors-10-11468">Departamento de Ingeniería de Sistemas Industriales, Universidad Miguel Hernández, Avda. de la Universidad s/n, 03202, Elche (Alicante), Spain; E-Mails: <email>l.fernandez@umh.es</email> (L.F.); <email>arturo.gil@umh.es</email> (A.G.); <email>o.reinoso@umh.es</email> (O.R.)</aff></contrib-group>
<author-notes>
<corresp id="c1-sensors-10-11468">
<label>*</label>Author to whom correspondence should be addressed; E-Mail: <email>lpaya@umh.es</email>; Tel.: +34-966-658-859; Fax: +34-966-658-979.</corresp></author-notes>
<pub-date pub-type="collection">
<year>2010</year></pub-date>
<pub-date pub-type="epub">
<day>14</day>
<month>12</month>
<year>2010</year></pub-date>
<volume>10</volume><issue>12</issue>
<fpage>11468</fpage>
<lpage>11497</lpage>
<history>
<date date-type="received">
<day>30</day>
<month>9</month>
<year>2010</year></date>
<date date-type="rev-recd">
<day>25</day>
<month>11</month>
<year>2010</year></date>
<date date-type="accepted">
<day>28</day>
<month>11</month>
<year>2010</year></date></history>
<permissions>
<copyright-statement>© 2010 by the authors; licensee MDPI, Basel, Switzerland.</copyright-statement>
<copyright-year>2010</copyright-year>
<license>
<p>This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (<ext-link xlink:href="http://creativecommons.org/licenses/by/3.0/" ext-link-type="uri">http://creativecommons.org/licenses/by/3.0/</ext-link>.)</p></license></permissions>
<abstract>
<p>In this paper we deal with the problem of map building and localization of a mobile robot in an environment using the information provided by an omnidirectional vision sensor that is mounted on the robot. Our main objective consists of studying the feasibility of the techniques based in the global appearance of a set of omnidirectional images captured by this vision sensor to solve this problem. First, we study how to describe globally the visual information so that it represents correctly locations and the geometrical relationships between these locations. Then, we integrate this information using an approach based on a spring-mass-damper model, to create a topological map of the environment. Once the map is built, we propose the use of a Monte Carlo localization approach to estimate the most probable pose of the vision system and its trajectory within the map. We perform a comparison in terms of computational cost and error in localization. The experimental results we present have been obtained with real indoor omnidirectional images.</p></abstract>
<kwd-group>
<kwd>global appearance</kwd>
<kwd>panoramic images</kwd>
<kwd>homomorphic filtering</kwd>
<kwd>Fourier Signature</kwd>
<kwd>topological mapping</kwd>
<kwd>monte-carlo localization</kwd></kwd-group></article-meta></front>
<body>
<sec sec-type="intro">
<label>1.</label>
<title>Introduction</title>
<p>Two well-known problems in mobile robotics are building a map of the environment where the robot moves and computing its location within this map. Finding a relatively good solution to both problems is crucial during the autonomous navigation of a mobile agent, which is expected to have to take decisions about its localization in the environment and about the trajectory to follow to arrive to the target points.</p>
<p>During the past years, omnidirectional cameras have become a widespread sensor in mobile robotics mapping and localization tasks, due to their low cost, weight and power consumption and to the richness of the information they provide us from the environment. In this work, we use the information captured by a camera that is installed at a fixed position on the robot and pointing upwards in direction to a hyperbolic mirror. This system offers us omnidirectional images from the environment. Different representations of the visual information can be used when working with these catadioptric systems (<xref ref-type="fig" rid="f1-sensors-10-11468">Figure 1</xref>), such as the omnidirectional, panoramic and bird-eye view images [<xref ref-type="bibr" rid="b1-sensors-10-11468">1</xref>,<xref ref-type="bibr" rid="b2-sensors-10-11468">2</xref>]. We use the panoramic representation of the scenes as it can offer invariance to ground-plane rotations when the movement of the robot is restricted to the ground plane. A pure rotation of the robot in the ground plane corresponds to a shift in the columns of the panoramic image (<xref ref-type="fig" rid="f2-sensors-10-11468">Figure 2</xref>).</p>
<p>Different authors have studied the use of omnidirectional images both in robot mapping and localization. These solutions can be categorized into two main groups: feature-based and appearance-based solutions. In the first approach, a number of significant points or regions are extracted from each omnidirectional image and each point is described using an invariant descriptor. As an example, Se <italic>et al.</italic> [<xref ref-type="bibr" rid="b3-sensors-10-11468">3</xref>] carry out localization and mapping tasks using SIFT features [<xref ref-type="bibr" rid="b4-sensors-10-11468">4</xref>,<xref ref-type="bibr" rid="b5-sensors-10-11468">5</xref>] extracted from a set of images. Valgren and Lilienthal [<xref ref-type="bibr" rid="b6-sensors-10-11468">6</xref>] and Murillo <italic>et al.</italic> [<xref ref-type="bibr" rid="b7-sensors-10-11468">7</xref>] use the SURF features [<xref ref-type="bibr" rid="b8-sensors-10-11468">8</xref>] extracted from omnidirectional images to find the location of the robot in a given map. On the other hand, the appearance-based approach works with the images as a whole, with no local feature extraction. Each image is represented by a single descriptor that contains information of its global appearance. As an example, Menegatti <italic>et al</italic> . [<xref ref-type="bibr" rid="b9-sensors-10-11468">9</xref>] use the Discrete Fourier Transform (DFT) to build a visual memory from a set of panoramic images, and Menegatti <italic>et al</italic>. [<xref ref-type="bibr" rid="b10-sensors-10-11468">10</xref>] perform a probabilistic localization within this memory. Kröse <italic>et al</italic>. [<xref ref-type="bibr" rid="b11-sensors-10-11468">11</xref>] use Principal Components Analysis (PCA features) [<xref ref-type="bibr" rid="b12-sensors-10-11468">12</xref>] of panoramic images for environment modeling and localization.</p>
<p>With respect to the mapping problem, the current research can be classified into two approaches: metric and topological. The first one consists of modeling the environment using a map obtained with geometrical accuracy when representing the position of the robot in the map. For example, Moravec and Elfes [<xref ref-type="bibr" rid="b13-sensors-10-11468">13</xref>] describe a sonar-based mapping system developed for mobile robots navigation, Collins <italic>et al</italic>. [<xref ref-type="bibr" rid="b14-sensors-10-11468">14</xref>] analyze the performance of several established mapping techniques using identical test data and Gil <italic>et al</italic>. [<xref ref-type="bibr" rid="b15-sensors-10-11468">15</xref>] present an approach to carry out the mapping process with a team of mobile robots and visual information. On the other side, topological maps are graphical models of the environment that capture places and their connectivity in a compact form. An example of this method is presented by Werner <italic>et al</italic>. [<xref ref-type="bibr" rid="b16-sensors-10-11468">16</xref>] where a topological map of the environment is obtained from a sequence of color histograms from visited places. Valgren and Lilienthal [<xref ref-type="bibr" rid="b17-sensors-10-11468">17</xref>] study how to build a topological map of large indoor and outdoor environments using local features extracted from omnidirectional images and the epipolar constraint, and a clustering method to perform localization more efficiently. Stimec <italic>et al</italic>. [<xref ref-type="bibr" rid="b18-sensors-10-11468">18</xref>] present an appearance-based method for path-based map learning by means of a clustering of the PCA features extracted from a set of panoramic images into distinctive visual aspects. At last, Tully <italic>et al</italic>. [<xref ref-type="bibr" rid="b19-sensors-10-11468">19</xref>] present a probabilistic method for topological SLAM, solving the topological graph loop-closing problem by means of a tree expansion algorithm and Angeli <italic>et al</italic>. [<xref ref-type="bibr" rid="b20-sensors-10-11468">20</xref>] develop an incremental topological mapping and localization approach, integrating metrical information from robot odometry.</p>
<p>The approach we use to carry out the mapping process is inspired by the work of Menegatti <italic>et al</italic>. [<xref ref-type="bibr" rid="b9-sensors-10-11468">9</xref>]. Our main contribution is the incremental mapping process, which permits building the map online while the robot is traversing the environment. Other features that differentiate our work are (i) the use of homomorphic filtering to remove lighting effects in the images, (ii) the formalization of a method to describe the shape difference between the built map and the original grid, by means of removing the scale, rotation and reflection effects and (iii) the study of the dependence of the mapping process and the resulting map against the most interesting parameters of the process.</p>
<p>Once the map has been built, it is necessary to test if the robot is able to compute its pose (position and orientation) within the map with accuracy and robustness while knowing its location is crucial for an autonomous agent, since the pose is needed for a precise navigation. The <italic>Monte Carlo Algorithm</italic> has been extensively used in localization tasks in the field of mobile robotics, demonstrating robustness and efficiency [<xref ref-type="bibr" rid="b21-sensors-10-11468">21</xref>]. Different approaches have been developed depending on the nature of the sensor installed on the robot. For example, Thrun <italic>et al</italic>. [<xref ref-type="bibr" rid="b22-sensors-10-11468">22</xref>] use a laser range sensor, Dellaert <italic>et al</italic>. [<xref ref-type="bibr" rid="b23-sensors-10-11468">23</xref>] a camera pointing to the ceiling and Gil <italic>et al</italic>. [<xref ref-type="bibr" rid="b24-sensors-10-11468">24</xref>] a stereo camera. The information these systems provide is used to weight the particles and estimate the position of the robot. It is also possible to use external sensors to localize the robot, as Pizarro <italic>et al</italic>. [<xref ref-type="bibr" rid="b25-sensors-10-11468">25</xref>] do with a single camera attached at a fixed place outside the robot. However, these approaches are not applicable to large configurations of the environment.</p>
<p>In this paper we propose to solve the localization problem using omnidirectional images and global appearance-based methods, as we do in the mapping task. Concerning the Monte Carlo localization methods using global appearance information, some similar works can be found in the literature, as the one of Menegatti <italic>et al</italic>. [<xref ref-type="bibr" rid="b10-sensors-10-11468">10</xref>], who use Monte Carlo localization with Fourier Signatures as global image descriptors and path-based maps and mainly centers in the strategy to solve the robot kidnapping problem. In our approach, we use dense maps (grid-based maps) to carry out the experimentation and we propose and compare different weighting methods to optimize the localization task. In some of these weighting methods we have included some information from the orientation extracted from the omnidirectional images, which gives robustness to these approaches. We carry out the experimentation with different grid sizes in the map and different number of particles and all the results are decomposed in global localization and tracking. The main contribution of our work in this field consists of optimizing the parameters of the particle filter, as we show in the results section.</p>
<p>Another related work is presented by Linaker and Ishikawa [<xref ref-type="bibr" rid="b26-sensors-10-11468">26</xref>]. They introduce PHLAC (Polar High-order Local Auto-Correlation) to describe the images in the global appearance domain, with an adaptation that makes it invariant against rotations when working with omnidirectional images. The work is focused in the study of the performance of the descriptor they introduce in a probabilistic Monte Carlo localization task, in a high perceptual aliasing situation and with noise and occlusions, using a relatively small environment (1.1 × 0.8 m size with a grid step of 0.1 m). We do not focus on the performance of the descriptor but in the parameters of the filter to optimize the localization process. We test in a variety of environments, from small ones to larger ones, with a maximum step of 1<italic>m</italic>. As far as other vision-based probabilistic localization works are concerned, they focus mainly in the extraction of significant points to carry out the localization process.</p>
<p>So, in this work, we focus on the analysis of different choices that permit building topological maps from a set of omnidirectional images, so that localization can be carried out within these maps. Our main objective consists of evaluating the feasibility of using purely global-appearance methods in these tasks. However, solving the SLAM problem and studying the features of the appearance descriptor is out of the scope of this work. This way, we present first a methodology to built a grid map of the environment using an incremental method, with several omnidirectional images captured along the environment. We use a mass-spring-damper model with this aim. The method is able to arrange these images to create a topological map whose layout is similar to the layout of the grid where the images were captured. Also, in a second phase, we propose different methods that allow us to localize the robot using a particle filter and new methods to refine the position of the robot rapidly. We have decided to describe each omnidirectional image by a single Fourier descriptor. However, the methods described here are in fact independent of the descriptor used to represent the images, and other appearance-based descriptors may also be applied.</p>
<p>The work is structured as follows. Section 2 presents the fundamentals of global appearance-based approaches and the processing on the images to obtain a robust descriptor to make the experiments. Section 3 shows the description of a method for batch topological mapping and a new technique for building topological maps incrementally. Section 4 deals with the Monte Carlo algorithm and its application to the problem of localization in mobile robotics using the appearance of omnidirectional images. In this section we describe the different types of weight employed to make the localization experiments. Next, Section 5 presents the results of the mapping and localization experiments. All these experiments have been carried out using a real robotic platform and several sets of omnidirectional images captured with this platform. Finally, we present the conclusions and future work in Section 6.</p></sec>
<sec>
<label>2.</label>
<title>Appearance-based Techniques</title>
<p>In this section we present the state of the art and the procedure we have followed to build the global descriptor of each omnidirectional image. These descriptors have been previously used by other authors [<xref ref-type="bibr" rid="b9-sensors-10-11468">9</xref>].</p>
<sec>
<label>2.1.</label>
<title>State of the art</title>
<p>The appearance-based techniques offer a systematic and intuitive way to construct the map and carry out the localization process. With these techniques, each image is described by means of a single global descriptor and the information from these descriptors is used to build the map (<italic>i.e.</italic>, to establish relationships between locations) and to carry out the localization process. These techniques are especially useful when the robot moves in an unstructured environment, where the creation of appropriate models of recognition can be a difficult task. However, as no relevant information is extracted from the images, it is usually necessary to apply a compression technique to reduce the computational cost of the mapping and localization processes.</p>
<p>PCA (Principal Components Analysis) is a widely extended method used to extract the most relevant information from a set of images [<xref ref-type="bibr" rid="b11-sensors-10-11468">11</xref>]. However, the main problem of PCA methods is that they are not inherently invariant to the ground-plane orientation of the robot. Some authors have showed how to build an appearance-based map of an environment using a variation of PCA that includes information not only about the localizations where the images were taken but also about the possible orientations at that points [<xref ref-type="bibr" rid="b27-sensors-10-11468">27</xref>]. However all the images must be available before building the PCA descriptors, and if a new image must be added to the map, all the descriptors must be computed from scratch or by means of a computationally quite heavy process.</p>
<p>Other researchers rely on DFT (Discrete Fourier Transform) methods to get the most relevant information from the images. In this case there are several possibilities, such as to implement the 2D Discrete Fourier Transform [<xref ref-type="bibr" rid="b1-sensors-10-11468">1</xref>], the Spherical Fourier Transform of omnidirectional images [<xref ref-type="bibr" rid="b28-sensors-10-11468">28</xref>] or the Fourier Signature of the panoramic image [<xref ref-type="bibr" rid="b9-sensors-10-11468">9</xref>]. In the three cases, the descriptor presents rotational ground-plane invariance and concentrates the most relevant information in the low frequency components of the transformed image. Also, each image descriptor is computed independently of the rest of images.</p>
<p>Based on a previous work [<xref ref-type="bibr" rid="b1-sensors-10-11468">1</xref>], we have decided to make use of the Fourier signature to build the image descriptors. The processing time needed to compute the Fourier Transform is substantially lower than in common feature extraction and description methods and it allows a fast comparison between the current image and the map by means of a vector distance measurement.</p>
<p>Due the fact that the appearance of an image depends strongly on the lighting conditions of the environment to map [<xref ref-type="bibr" rid="b29-sensors-10-11468">29</xref>], the descriptor must be robust against these lighting changes. To avoid the problems of illumination variation, some proposals can be found in the literature. Murase and Nayar [<xref ref-type="bibr" rid="b30-sensors-10-11468">30</xref>] make use of an appearance-based approach and solve the problem by generating many views of the object under different lighting conditions. Other researchers make use of edge-detection filters or homomorphic filtering to separate the components of luminance and reflectance [<xref ref-type="bibr" rid="b31-sensors-10-11468">31</xref>]. In a previous work [<xref ref-type="bibr" rid="b32-sensors-10-11468">32</xref>] we have proved that when applying a bank of homomorphic filters on the images, it is possible to minimize the dependence with respect to the lighting conditions of the environment to map.</p></sec>
<sec>
<label>2.2.</label>
<title>Global appearance descriptor</title>
<p>In this section we present the methodology we have followed to describe the appearance of the scenes in an efficient and robust way. This descriptor must be robust against small changes in the environmental lighting conditions, the computational cost to obtain it must be low to allow mapping and localization in real time, and it has to be built in an incremental way so that it allows the map to be created while the robot is going through the environment (<italic>i.e.</italic>, the descriptor of an image must not depend neither on the previous nor on the later captured images). We build our descriptor using the Fourier Signature over a set of previously filtered omnidirectional images.</p>
<sec>
<title>Fourier Signature with panoramic images</title>
<p>Among the Fourier-based methods, the advantages of the Fourier signature are its simplicity, computational cost and the fact that it exploits better the invariance against ground-plane rotations using panoramic images. When we have an image <italic>I<sub>j</sub></italic> with <italic>N<sub>x</sub></italic> rows and <italic>N<sub>y</sub></italic> columns, we can obtain the most relevant information from the image by means of the Discrete Fourier Transform. To compute the Fourier signature we have to expand each row of the panoramic image {<italic>a<sub>n</sub></italic>} = {<italic>a</italic><sub>0</sub>, <italic>a</italic><sub>1</sub>, . . ., <italic>a</italic><sub><italic>N<sub>y</sub></italic>−1</sub>} using the Discrete Fourier Transform into the sequence of complex numbers {<italic>A<sub>n</sub></italic>} = {<italic>A</italic><sub>0</sub>, <italic>A</italic><sub>1</sub>, . . ., <italic>A</italic><sub><italic>N<sub>y</sub></italic>−1</sub>}.</p>
<p>This Fourier signature presents the same properties as the 2D Fourier Transform. The most important information is concentrated in the low frequency components of each row, so we can work only with the information from the <italic>k</italic> first columns in the signature (<italic>k</italic> &lt; <italic>N<sub>y</sub></italic>), and it presents rotational invariance when working with panoramic images. It is possible to prove that if each row of the original image is represented by the sequence {<italic>a<sub>n</sub></italic>} and each row of the rotated image by {<italic>a<sub>n</sub></italic><sub>−</sub><italic><sub>q</sub></italic>} (being <italic>q</italic> the amount of shift) (<xref ref-type="fig" rid="f2-sensors-10-11468">Figure 2</xref>), when the Fourier Transform of the shifted sequence is computed, we obtain the same amplitudes <italic>A<sub>k</sub></italic> than in the non-shifted sequence, and there is only a phase change, proportional to the amount of shift <italic>q</italic>, (<xref ref-type="disp-formula" rid="FD1">Equation 1</xref>).
<disp-formula id="FD1">
<label>(1)</label>
<mml:math display="block">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi>q</mml:mi></mml:mrow></mml:msub></mml:mrow>
<mml:mo>}</mml:mo></mml:mrow></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>k</mml:mi></mml:msub>
<mml:mtext>exp</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi>j</mml:mi>
<mml:mfrac>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>π</mml:mi>
<mml:mi>q</mml:mi>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi> </mml:mi>
<mml:mi> </mml:mi>
<mml:mi> </mml:mi>
<mml:mi> </mml:mi>
<mml:mi> </mml:mi>
<mml:mi>l</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mo>…</mml:mo>
<mml:mi> </mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>y</mml:mi></mml:msub>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:math></disp-formula></p>
<p>We can separate the computation of the robot position and the orientation thanks to this shift theorem. Finally, it is interesting to highlight also that the Fourier Signature is an inherently incremental method.</p>
<p>To compute the difference between the appearance of two scenes, we use the Euclidean distance between the Fourier signature. If the bi-dimensional vector <italic>d<sub>i</sub></italic>(<italic>u, v</italic>), with size <italic>N<sub>x</sub></italic> × <italic>k</italic> is the Fourier signature of the image <italic>I<sub>i</sub></italic>(<italic>x, y</italic>) and <italic>d<sub>j</sub></italic>(<italic>u, v</italic>), with size <italic>N<sub>x</sub></italic> × <italic>k</italic> is the Fourier signature of the image <italic>I<sub>j</sub></italic>(<italic>x, y</italic>), then the distance between scenes <italic>i</italic> and <italic>j</italic> is:
<disp-formula id="FD2">
<label>(2)</label>
<mml:math display="block">
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:mrow>
<mml:mi>k</mml:mi></mml:msubsup>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>v</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>v</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mrow></mml:mrow></mml:msqrt></mml:math></disp-formula></p></sec>
<sec>
<title>Homomorphic filtering</title>
<p>When the mobile robot moves in a real environment, it has to cope with some typical situations that produce small changes in the appearance of the environment, such as the lighting conditions and changes in the position of some objects. This way, the descriptor built must be robust against these small variations in the environment.</p>
<p>There are different methodologies to provide robustness to the map created. In a previous work [<xref ref-type="bibr" rid="b32-sensors-10-11468">32</xref>], we show how it is possible to increase the accuracy when locating a robot in a previously created map applying Homomorphic filtering techniques on the panoramic images captured. In this work, we have used such techniques to filter the images as a preprocessing step before extracting the Fourier signature.</p>
<p>The homomorphic filtering allows us to filter separately the luminance and reflectance components of an image [<xref ref-type="bibr" rid="b33-sensors-10-11468">33</xref>]. Thus, we can control the influence of each component on the image appearance. The homomorphic filter uses the natural logarithm operator on the image to separate the components of luminance and reflectance:
<disp-formula id="FD3">
<label>(3)</label>
<mml:math display="block">
<mml:mtable columnalign="right">
<mml:mtr columnalign="right">
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>y</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>y</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>×</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>y</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="right">
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>y</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">ln</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>I</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>y</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="right">
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>y</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">ln</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>y</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mtext mathvariant="italic">ln</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>y</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where <italic>I</italic>(<italic>x, y</italic>) corresponds to the panoramic image and can be expressed as a multiplication of the luminance <italic>l</italic>(<italic>x, y</italic>) and the reflectance component <italic>r</italic>(<italic>x, y</italic>) of the image. When the components have been separated, we can apply a filter on the image in the frequency domain. Previously, it is necessary to apply the 2D Discrete Fourier Transform on the panoramic image:
<disp-formula id="FD4">
<label>(4)</label>
<mml:math display="block">
<mml:mtable columnalign="right">
<mml:mtr columnalign="right">
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mo stretchy="false">[</mml:mo>
<mml:mo>{</mml:mo>
<mml:mi>z</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>}</mml:mo>
<mml:mo stretchy="false">]</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi>F</mml:mi>
<mml:mo stretchy="false">[</mml:mo>
<mml:mo>{</mml:mo>
<mml:mtext mathvariant="italic">ln</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>y</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>}</mml:mo>
<mml:mo stretchy="false">]</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi>F</mml:mi>
<mml:mo stretchy="false">[</mml:mo>
<mml:mo>{</mml:mo>
<mml:mtext mathvariant="italic">ln</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>y</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>}</mml:mo>
<mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="right">
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mo stretchy="false">[</mml:mo>
<mml:mo>{</mml:mo>
<mml:msup>
<mml:mi>z</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>y</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>}</mml:mo>
<mml:mo stretchy="false">]</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi>F</mml:mi>
<mml:mo stretchy="false">[</mml:mo>
<mml:mi>z</mml:mi>
<mml:mo>{</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>y</mml:mi>
<mml:mo>}</mml:mo>
<mml:mo stretchy="false">]</mml:mo>
<mml:mo>·</mml:mo>
<mml:mi>H</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>v</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where <italic>H</italic>(<italic>u, v</italic>) is the filter transfer function in the frequency domain. The low frequency components are associated with the illumination of the image and the high frequency ones with the reflectance. To reduce the effects of changes in the lighting of the scenes, we apply a high pass filter constructed from a Butterworth low pass filter [<xref ref-type="bibr" rid="b33-sensors-10-11468">33</xref>]:
<disp-formula id="FD5">
<label>(5)</label>
<mml:math display="block">
<mml:mtable columnalign="right">
<mml:mtr columnalign="right">
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mi>D</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>v</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>u</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mi>v</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow>
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="right">
<mml:mtd columnalign="right">
<mml:mrow>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mi>p</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>v</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>D</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>v</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow></mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>n</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="right">
<mml:mtd columnalign="right">
<mml:mrow>
<mml:msubsup>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">hp</mml:mtext></mml:mrow>
<mml:mo>′</mml:mo></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>v</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mi>p</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>v</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="right">
<mml:mtd columnalign="right">
<mml:mrow>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mi>p</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>v</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>α</mml:mi>
<mml:mi>h</mml:mi></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>α</mml:mi>
<mml:mi>l</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mi>p</mml:mi></mml:mrow>
<mml:mo>′</mml:mo></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>v</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>α</mml:mi>
<mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where <italic>D</italic>(<italic>u, v</italic>) is the distance to the origin in the frequency domain, <italic>D</italic><sub>0</sub> is the filter cut-off frequency to construct the low pass filter, <italic>n</italic> is the order of the filter and <italic>H<sub>lp</sub></italic>(<italic>u, v</italic>) is the low pass filter transfer function in the frequency domain. The last two expressions are used to build the high pass filter from the low pass filter, where <italic>α<sub>h</sub></italic> and <italic>α<sub>l</sub></italic> correspond to the maximum and minimum value of the homomorphic filter and <italic>H<sub>hp</sub></italic>(<italic>u, v</italic>) is the high pass filter transfer function in the frequency domain. When working with homomorphic filters, the parameters of the filter need to be adjusted previously. Further information about the optimal values for the parameters can be found in [<xref ref-type="bibr" rid="b32-sensors-10-11468">32</xref>].</p></sec></sec></sec>
<sec>
<label>3.</label>
<title>Topological Map Building</title>
<p>Once the kind of information to store in the database has been studied, we need to establish some geometrical relationships between the stored locations to complete the mapping process. In other words, the set of scenes the robot has captured along the environment must be arranged so that the resulting map has a similar layout comparing to the actual layout where the images were captured. Several databases with images from different environments have been used to test the algorithms. All of them consist of a set of omnidirectional images captured on a regular grid. The main features of these databases are shown in <xref ref-type="table" rid="t1-sensors-10-11468">table 1</xref>. As an example of the these databases, we show in <xref ref-type="fig" rid="f3-sensors-10-11468">Figure 3</xref> a bird eye’s view of the <italic>corridor 1</italic> database, with the grid points where the set of omnidirectional images have been captured and two examples of these images. This environment is a corridor with 2.4 × 1.5 m size and 0.2 m grid step (distance between the points where images were captured) and it presents a high degree of perceptual aliasing. In <xref ref-type="fig" rid="f4-sensors-10-11468">Figure 4</xref> we show the <italic>laboratory 1</italic> database, a laboratory with 6 × 11 m size and 1 m grid step.</p>
<sec>
<label>3.1.</label>
<title>Mass-spring-damper model</title>
<p>To build a topological map of the environment where the images’ layout matches up with the original layout, we make use of a mass-spring-damper model, where each image acts as a particle <italic>P<sub>i</sub>, i</italic> ∈ {1, . . ., <italic>n</italic>} whose mass is <italic>m<sub>i</sub></italic>. Each pair of particles <italic>P<sub>i</sub></italic> and <italic>P<sub>j</sub></italic> are joined with a spring <italic>S<sub>ij</sub></italic> with elastic constant <italic>k<sub>ij</sub></italic> and a damper with damping constant <italic>κ<sub>ij</sub></italic>. If the value of the elastic constants is proportional to the distance between images, then when this particle system freely evolves to the balance, it is expected the final layout of the particles is similar to the real layout where images were captured.</p>
<p>The strength acting over each particle <italic>i</italic> of the system is:
<disp-formula id="FD6">
<label>(6)</label>
<mml:math display="block">
<mml:msub>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>→</mml:mo></mml:mover>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:munder>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo>{</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo>}</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi> </mml:mi>
<mml:mi> </mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>≠</mml:mo>
<mml:mi>j</mml:mi></mml:mrow></mml:munder>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi></mml:mrow></mml:msub>
<mml:mo>·</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>l</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
<mml:mn>0</mml:mn></mml:mrow></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>l</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi></mml:mrow></mml:msub>
<mml:mo>·</mml:mo>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>→</mml:mo></mml:mover>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>→</mml:mo></mml:mover>
<mml:mi>j</mml:mi></mml:msub></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula>where <italic>l<sub>ij</sub></italic><sub>0</sub> is the natural length of the <italic>S<sub>ij</sub></italic> spring, <italic>l<sub>ij</sub></italic> is the current length of this spring, and 
<inline-formula>
<mml:math>
<mml:msub>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>→</mml:mo></mml:mover>
<mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and 
<inline-formula>
<mml:math>
<mml:msub>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>→</mml:mo></mml:mover>
<mml:mi>j</mml:mi></mml:msub></mml:math></inline-formula> are the velocities of the particles <italic>P<sub>i</sub></italic> and <italic>P<sub>j</sub></italic>. In our experiments, we make <italic>l<sub>ij</sub></italic><sub>0</sub> = <italic>D<sub>ij</sub></italic> (<xref ref-type="disp-formula" rid="FD2">Equation 2</xref>), <italic>i.e.</italic>, the distance between the Fourier signature of images <italic>i</italic> and <italic>j</italic>.</p>
<p>Taking into account the resulting force on each particle, we can update the position of this particle at each iteration with the following expressions:
<disp-formula id="FD7">
<label>(7)</label>
<mml:math display="block">
<mml:mtable columnalign="right">
<mml:mtr columnalign="right">
<mml:mtd columnalign="right">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>→</mml:mo></mml:mover>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>→</mml:mo></mml:mover>
<mml:mi>i</mml:mi></mml:msub></mml:mrow>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo>→</mml:mo></mml:mover>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="right">
<mml:mtd columnalign="right">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>→</mml:mo></mml:mover>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mo>Δ</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>→</mml:mo></mml:mover>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>→</mml:mo></mml:mover>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:mo>Δ</mml:mo>
<mml:mi>T</mml:mi></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="right">
<mml:mtd columnalign="right">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>→</mml:mo></mml:mover>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mo>Δ</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>→</mml:mo></mml:mover>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>→</mml:mo></mml:mover>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:mo>Δ</mml:mo>
<mml:mi>T</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where 
<inline-formula>
<mml:math>
<mml:msub>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>→</mml:mo></mml:mover>
<mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, 
<inline-formula>
<mml:math>
<mml:msub>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>→</mml:mo></mml:mover>
<mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and 
<inline-formula>
<mml:math>
<mml:msub>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>→</mml:mo></mml:mover>
<mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> are the acceleration, velocity and position of the <italic>i</italic>th particle, whose mass is <italic>m<sub>i</sub></italic>. In our experiments, all the particles have been assigned the same mass (<italic>m<sub>i</sub></italic> = 1 ∀<italic>i</italic> ∈ {1, . . ., <italic>n</italic>}). The parameter Δ<italic>T</italic> that appears in these equations has a significant relevance in the necessary time to tend to balance and in the accuracy of the final particle distribution. It is desirable that this parameter take a relatively high value during the first iterations, when the particles are far from the balance and they must move perceptively. As the system tends to balance, this parameter should take a lower value due to the fact that particles are expected to be closer to its final position as the process advances. In our experiments, we have set a maximum number of steps <italic>stot</italic> and we make Δ<italic>T</italic> dependent on it:
<disp-formula id="FD8">
<label>(8)</label>
<mml:math display="block">
<mml:mo>Δ</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi>ξ</mml:mi>
<mml:mo>·</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mfrac>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">tot</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>An interesting parameter to adjust is the elastic constant <italic>k<sub>ij</sub></italic> of each spring in the system. <xref ref-type="fig" rid="f5-sensors-10-11468">Figure 5</xref> shows the Euclidean distance between the Fourier signatures versus the geometrical distance between the points where the images were captured retaining <italic>k</italic> = 4, 8, 16, 32 and 64 Fourier components per row. In all cases, the Fourier distance behaves approximately linear in the surroundings of the point where the image was captured. This linearity disappears as we move away from it, and the distance may even decrease. To solve this problem, the elastic constants take a value that depends on the Euclidean distance between Fourier signatures <italic>D<sub>ij</sub></italic> and the components per row we retain in the Fourier Signature <italic>k</italic>, so <italic>k<sub>ij</sub></italic> = <italic>f</italic>(<italic>D<sub>ij</sub>, k</italic>). Taking this fact into account, to build the map, only the nearest images to each one are taken into account in the force system, <italic>i.e.</italic>, only the images below a distance threshold are linked with springs.</p>
<p>On the other hand, the damping constants <italic>κ<sub>ij</sub></italic> have an important role in the convergence of the mapping process. Thanks to them, the update of the system at each iteration is not a sudden process and the system tends more gradually to balance.</p>
<p>The mapping process is strongly conditioned by the availability of the omnidirectional images along this process. When all the images are available before the mapping process begins, a batch mapping approach must be used. However, if the images are captured gradually and the mapping process must start before all the images are available, an incremental approach must be implemented where the map is updated when a new image is captured. These two approaches are addressed in the next subsections.</p></sec>
<sec>
<label>3.2.</label>
<title>Batch topological mapping</title>
<p>When we have a set of panoramic images from an environment, with no information about the order they were acquired in, a batch approach must be used to build the topological map. In this approach, all the particles are given a random initial position. Then, we leave the system evolve by successively applying <xref ref-type="disp-formula" rid="FD6">Equations 6–8</xref>. The system is considered to have arrived to balance when the sum of movements of all the particles is under a threshold.</p>
<p>This approach may become computationally unfeasible for large environments where a big collection of images has been captured. The computational cost grows exponentially with the number of images, due to the increasing number of forces on each particle. Also, it must be taken into account that all the images must be available before starting the process so it is not possible to perform an online mapping process (where the map must be built as the explorer robot goes through it).</p>
<p><xref ref-type="fig" rid="f6-sensors-10-11468">Figure 6</xref> shows an example of the batch topological mapping process. We show some intermediate steps until the balance is reached for the <italic>office</italic> environment (<xref ref-type="table" rid="t1-sensors-10-11468">Table 1</xref>). In this case, all the particles (images) are present in the system from the first iteration.</p></sec>
<sec>
<label>3.3.</label>
<title>Incremental topological mapping</title>
<p>This approach exploits the fact that during the mapping process the storage order of the images is usually known. Thanks to the incremental approach, the map can be built online, and when a new image is captured, the map is updated according to it. As the information is added gradually, the process becomes more robust and computationally more efficient. When we have a balanced set of particles <italic>P<sub>i</sub>, i</italic> ∈ {1, . . ., <italic>m</italic>}, when a new particle <italic>P<sub>m</sub></italic><sub>+1</sub> arrives, we allow this particle to tend to balance (using <xref ref-type="disp-formula" rid="FD6">Equations 6–8</xref>) while maintaining the position of the other particles fixed. Once the movement of the particle is under a threshold, we allow the whole system to tend to balance. This process compensates the singularities and false minima that the new particle produces over the whole system. We can avoid giving the new particle <italic>P<sub>m</sub></italic><sub>+1</sub> a random initial position as it can be approximately inferred from the position of the previous particle in the system, <italic>P<sub>m</sub></italic>. This would facilitate the convergence of the system.</p>
<p><xref ref-type="fig" rid="f7-sensors-10-11468">Figure 7</xref> shows an example of the incremental topological mapping process. We show some intermediate steps until the balance is reached for the <italic>office</italic> environment (<xref ref-type="table" rid="t1-sensors-10-11468">Table 1</xref>). The process starts with one particle, and a new one is added at each iteration.</p></sec>
<sec>
<label>3.4.</label>
<title>Shape difference between the original and the resulting map layout</title>
<p>Once the map is built, we need a mechanism to evaluate how similar is the layout of the resulting map comparing to the real layout of the captures. As the only information we have used to build the map is the distance between Fourier signatures, the resulting map is expected to have a similar shape comparing to the original grid but with a scale factor, a rotation and a possible reflection. These effects should be removed in the resulting map to get an acceptable measure of the shape difference between the original and the resulting map layout. With this aim, we use a method based on the Procrustes analysis. This method is a statistical shape analysis that can be used to evaluate shape correspondence [<xref ref-type="bibr" rid="b34-sensors-10-11468">34</xref>]. First, we arrange the coordinates of the points that form the grid were the images were captured in a matrix <italic>A</italic> = [(<italic>α</italic><sub>1</sub>, <italic>β</italic><sub>1</sub>)<italic><sup>T</sup></italic>, (<italic>α</italic><sub>2</sub>, <italic>β</italic><sub>2</sub>)<italic><sup>T</sup></italic>, . . ., (<italic>α<sub>n</sub></italic>, <italic>β<sub>n</sub></italic>)<italic><sup>T</sup></italic>]<italic><sup>T</sup></italic> and we arrange the coordinates of the balanced particles of the spring-mass-system in a matrix <italic>C</italic> = [(<italic>γ</italic><sub>1</sub>, <italic>δ</italic><sub>1</sub>)<italic><sup>T</sup></italic>, (<italic>γ</italic><sub>2</sub>, <italic>δ</italic><sub>2</sub>)<italic><sup>T</sup></italic>, . . ., (<italic>γ<sub>n</sub></italic>, <italic>δ<sub>n</sub></italic>)<italic><sup>T</sup></italic>]<italic><sup>T</sup></italic>. The Procrustes analysis allows us to compare the shape of these two grids by determining a linear transformation (a translation <italic>c</italic>, a reflection, an orthogonal rotation <italic>T</italic> and a scaling <italic>b</italic>) of the points in the matrix <italic>C</italic> so that the points in <italic>b</italic> · <italic>C</italic> · <italic>T</italic> + <italic>c</italic> to best conform to the points in the matrix <italic>A</italic>.</p>
<p>Once the translation, rotation and scaling effects have been removed, the goodness of fit criterion is the sum of squared errors. Thanks to this analysis we can measure how accurate is the layout of the particles after the mapping process, comparing to the layout where the images were taken.</p>
<p>This analysis has a closed form, as detailed in [<xref ref-type="bibr" rid="b34-sensors-10-11468">34</xref>]. As a result of this process, a parameter <italic>μ</italic> ∈ [0, 1] can be obtained. <italic>μ</italic> is a measure of the shape correspondence between the sets of points <italic>A</italic> and <italic>C</italic>. The lower is <italic>μ</italic>, the more similar are <italic>A</italic> and <italic>C</italic>. We name this parameter “shape difference” along the paper. This shape difference is used in this paper with the only purpose to know the feasibility of the spring-mass system mapping model, and its use is possible due to the fact that we know the coordinates of the points in the original grid.</p></sec></sec>
<sec>
<label>4.</label>
<title>Monte Carlo Localization</title>
<p>In mobile robot localization we are interested in the estimation of the robot’s pose (location and orientation, typically, the state <italic>x<sub>t</sub></italic> = (x, y, θ)) at time <italic>t</italic> using a set of measurements <italic>z</italic><sub>1:</sub><italic><sub>t</sub></italic> = {<italic>z</italic><sub>1</sub><italic>, z</italic><sub>2</sub><italic>, . . ., z<sub>t</sub></italic>} from the environment and the movements <italic>u</italic><sub>1:</sub><italic><sub>t</sub></italic> = {<italic>u</italic><sub>1</sub><italic>, u</italic><sub>2</sub><italic>, . . ., u<sub>t</sub></italic>} of the robot [<xref ref-type="bibr" rid="b35-sensors-10-11468">35</xref>]. In <italic>Monte Carlo Localization (MCL)</italic> [<xref ref-type="bibr" rid="b21-sensors-10-11468">21</xref>], the probability density function <italic>p</italic>(<italic>x<sub>t</sub>|z</italic><sub>1:</sub><italic><sub>t</sub>, u</italic><sub>1:</sub><italic><sub>t</sub></italic>) is represented by a set of <italic>M</italic> random samples 
<inline-formula>
<mml:math>
<mml:msub>
<mml:mi>χ</mml:mi>
<mml:mi>t</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>{</mml:mo>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>…</mml:mo>
<mml:mi>M</mml:mi>
<mml:mo>}</mml:mo></mml:math></inline-formula> extracted from it, named particles. Each particle can be understood as a hypothesis of the true state of the robot 
<inline-formula>
<mml:math>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msup>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:msup>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:msup>
<mml:mi>θ</mml:mi>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. The weight of each sample (particle) determines the importance of the particle. The set of samples defines a discrete probability function that approximates the continuous belief.</p>
<sec>
<label>4.1.</label>
<title>Monte Carlo Localization algorithm</title>
<p>The initial set of particles represents the initial knowledge <italic>p</italic>(<italic>x</italic><sub>0</sub>) about the state of the mobile robot on the map. When we use a particle filter algorithm, in global localization, the initial belief is a set of poses drawn according to a uniform distribution over the robot’s map. If the initial pose is partially known up to some small margin of error (local localization or tracking), the initial belief is represented by a set of samples drawn from a narrow Gaussian centered at the known starting pose of the mobile robot. The <italic>Monte Carlo Localization algorithm</italic> is described briefly in the next lines, and consists of two phases:</p>
<p><bold>Prediction Phase</bold>: At time <italic>t</italic> a set of particles 
<inline-formula>
<mml:math>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>χ</mml:mi>
<mml:mi>t</mml:mi></mml:msub></mml:mrow>
<mml:mo>¯</mml:mo></mml:mover></mml:math></inline-formula> is generated based on the set of particles <italic>χ<sub>t−</sub></italic><sub>1</sub> and a control signal <italic>u<sub>t</sub></italic>. This step uses the motion model <italic>p</italic>(<italic>x<sub>t</sub>|x<sub>t−</sub></italic><sub>1</sub><italic>, u<sub>t</sub></italic>). In order to represent this probability function, the movement <italic>u<sub>t</sub></italic> is applied to each particle while adding a pre-defined quantity of noise. As a result, the new set of particles 
<inline-formula>
<mml:math>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>χ</mml:mi>
<mml:mi>t</mml:mi></mml:msub></mml:mrow>
<mml:mo>¯</mml:mo></mml:mover></mml:math></inline-formula> represents the density <italic>p</italic>(<italic>x<sub>t</sub>|z</italic><sub>1:</sub><italic><sub>t−</sub></italic><sub>1</sub><italic>, u</italic><sub>1:</sub><italic><sub>t</sub></italic>).</p>
<p><bold>Update Phase</bold>: In this second phase, for each particle in the set 
<inline-formula>
<mml:math>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>χ</mml:mi>
<mml:mi>t</mml:mi></mml:msub></mml:mrow>
<mml:mo>¯</mml:mo></mml:mover></mml:math></inline-formula>, the observation <italic>z<sub>t</sub></italic> obtained by the robot is used to compute a weight 
<inline-formula>
<mml:math>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup></mml:math></inline-formula>. This weight represents the observation model <italic>p</italic>(<italic>z<sub>t</sub>|x<sub>t</sub></italic>) and is computed as 
<inline-formula>
<mml:math>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mi>t</mml:mi></mml:msub>
<mml:mo>|</mml:mo>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. In the following subsection we propose different methods for the computation of this weight. The weights are normalized so that 
<inline-formula>
<mml:math>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:math></inline-formula>. As a result, a set of particles accompanied by a weight 
<inline-formula>
<mml:math>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>χ</mml:mi>
<mml:mi>t</mml:mi></mml:msub></mml:mrow>
<mml:mo>¯</mml:mo></mml:mover>
<mml:mo>=</mml:mo>
<mml:mo>{</mml:mo>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>}</mml:mo></mml:math></inline-formula> are obtained.</p>
<p>The resulting set <italic>χ<sub>t</sub></italic> is calculated by resampling with replacement from the set <italic>χ̄<sub>t</sub></italic>, where the probability of resampling each particle is proportional to its importance weight 
<inline-formula>
<mml:math>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup></mml:math></inline-formula>, in accordance with the literature on the SIR algorithm (Sampling Importance Resampling) [<xref ref-type="bibr" rid="b36-sensors-10-11468">36</xref>,<xref ref-type="bibr" rid="b37-sensors-10-11468">37</xref>]. Finally, the distribution <italic>p</italic>(<italic>x<sub>t</sub>|z</italic><sub>1:</sub><italic><sub>t</sub>, u</italic><sub>1:</sub><italic><sub>t</sub></italic>) is represented by the set <italic>χ<sub>t</sub></italic>.</p></sec>
<sec sec-type="methods">
<label>4.2.</label>
<title>Weight methods</title>
<p>By means of computing a weight <italic>w<sup>i</sup></italic> for each particle and performing a resampling process, the Monte Carlo algorithm introduces the current observation <italic>z<sup>t</sup></italic> of the robot. In this case we consider that our map is composed of a set of <italic>N</italic> bi-dimensional landmarks <italic>L</italic> = {<italic>l</italic><sub>1</sub><italic>, l</italic><sub>2</sub><italic>, . . ., l<sub>N</sub></italic>} and the position of these marks on the environment is known. These landmarks form a grid in the environment with a particular resolution. Each landmark <italic>l<sub>j</sub></italic> is represented by an omnidirectional image <italic>I<sub>j</sub></italic> associated and a Fourier descriptor <italic>d<sub>j</sub></italic> that describes the global appearance of the omnidirectional image, thus <italic>l<sub>j</sub></italic> = {(<italic>l<sub>j,</sub></italic><sub>x</sub><italic>, l<sub>j,</sub></italic><sub>y</sub>)<italic>, d<sub>j</sub>, I<sub>j</sub></italic>}. <italic>d<sub>j</sub></italic> is constructed from the bi-dimensional Fourier signature with all the elements arranged in a vector.</p>
<p>We consider that the robot captured an image at time <italic>t</italic> and computed the Fourier descriptor <italic>d<sub>t</sub></italic>. Using this Fourier descriptor we compare the descriptor <italic>d<sub>t</sub></italic> with the rest of descriptors <italic>d<sub>j</sub></italic>, <italic>j</italic> = 1 . . . <italic>N</italic> and find the <italic>B</italic> landmarks in the map that are closest in appearance with the current image <italic>I<sub>t</sub></italic>. In this sense, we allow the correspondence of the current observation to several landmarks in the map. We consider that this is a special case of the data association problem. In addition, this correspondence benefits the localization algorithm, since it may restrict the computation of the observation model to a reduced set of landmarks, thus reducing the computational effort. We will show results when varying this parameter in order to assess its influence. In addition, the selection of <italic>B</italic> landmarks in terms of appearance will allow us to evaluate the importance of the description method used.</p>
<p>To carry out the localization process we have used the Monte Carlo algorithm explained in the previous subsection. The computation of the particle weight is a very important part of the Monte Carlo algorithm. We propose several methods that allow us to compute the weight of each particle 
<inline-formula>
<mml:math>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mi>t</mml:mi></mml:msub>
<mml:mo>|</mml:mo>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, thus providing different observation models:
<list list-type="bullet">
<list-item>
<p>Particle Weight Method 1 (PW1): This method correspond with a sum of gaussians centered on each image landmark, considering the difference in the descriptors.
<disp-formula id="FD9">
<label>(9)</label>
<mml:math display="block">
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>B</mml:mi></mml:munderover>
<mml:mrow>
<mml:mtext>exp</mml:mtext>
<mml:mo>{</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mi>l</mml:mi>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:msubsup>
<mml:mi>v</mml:mi>
<mml:mi>j</mml:mi>
<mml:mi>T</mml:mi></mml:msubsup></mml:mrow>
<mml:mo>}</mml:mo>
<mml:mtext>exp</mml:mtext>
<mml:mo>{</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi>
<mml:mi>T</mml:mi></mml:msubsup></mml:mrow>
<mml:mo>}</mml:mo></mml:mrow></mml:math></disp-formula>where, <italic>v<sub>j</sub></italic> = (<italic>l<sub>j,</sub></italic><sub>x</sub><italic>, l<sub>j,</sub></italic><sub>y</sub>) − (x<italic><sup>i</sup></italic>, y<italic><sup>i</sup></italic>) is the difference between the position of the landmark <italic>l<sub>j</sub></italic> and the position (x<italic><sup>i</sup>,</italic> y<italic><sup>i</sup></italic>) of the particle <italic>i</italic>. The matrix Σ<italic><sub>l</sub></italic> is a diagonal matrix 
<inline-formula>
<mml:math>
<mml:msub>
<mml:mo>∑</mml:mo>
<mml:mi>l</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">diag</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi>σ</mml:mi>
<mml:mi>l</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mi> </mml:mi>
<mml:msubsup>
<mml:mi>σ</mml:mi>
<mml:mi>l</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup>
<mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. The variance 
<inline-formula>
<mml:math>
<mml:msubsup>
<mml:mi>σ</mml:mi>
<mml:mi>l</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup></mml:math></inline-formula> is chosen experimentally in order to minimize the error in the localization. <italic>h<sub>j</sub></italic> = <italic>|d<sub>j</sub></italic> <italic>− d<sub>t</sub>|</italic> defines the difference between the module of the Fourier descriptor associated to the current image observed and the module of the descriptor associated to the landmark <italic>l<sub>j</sub></italic>. The descriptors are normalized so that the summation of the euclidean distance of the current descriptor <italic>d<sub>t</sub></italic> to the rest of the <italic>B</italic> associations equals one, 
<inline-formula>
<mml:math>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>B</mml:mi></mml:msubsup>
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:math></inline-formula>. The matrix 
<inline-formula>
<mml:math>
<mml:msub>
<mml:mo>∑</mml:mo>
<mml:mi>d</mml:mi></mml:msub>
<mml:mrow>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">diag</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi>σ</mml:mi>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is a <italic>k</italic> × <italic>k</italic> matrix, being <italic>k</italic> the length of the Fourier descriptor. In this case, the observation model <italic>p</italic>(<italic>z<sub>t</sub>|x<sub>t</sub></italic>) is not gaussian, since it is formed by a sum of gaussians, thus being multi-modal. This fact generally gives higher weights to particles situated near a landmark that is close in appearance to the current observation.</p></list-item>
<list-item>
<p>Particle Weight Method 2 (PW2): Unlike the previous method, this method consists of a product of gaussians centered on each image landmark, considering the difference in the descriptors.
<disp-formula id="FD10">
<label>(10)</label>
<mml:math display="block">
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mo>∏</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>B</mml:mi></mml:munderover>
<mml:mrow>
<mml:mtext>exp</mml:mtext>
<mml:mo>{</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mi>l</mml:mi>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:msubsup>
<mml:mi>v</mml:mi>
<mml:mi>j</mml:mi>
<mml:mi>T</mml:mi></mml:msubsup></mml:mrow>
<mml:mo>}</mml:mo>
<mml:mtext>exp</mml:mtext>
<mml:mo>{</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi>
<mml:mi>T</mml:mi></mml:msubsup></mml:mrow>
<mml:mo>}</mml:mo></mml:mrow></mml:math></disp-formula>Where <italic>v<sub>j</sub></italic>, <italic>h<sub>j</sub></italic>, Σ<italic><sub>l</sub></italic> and Σ<italic><sub>d</sub></italic> have been defined in the previous method. We recall that the product of gaussian distributions is also gaussian. The results demonstrate that this method tends to center the particles rapidly near the true pose, however, it suffers from some problems when the data association phase fails (e.g., the selected landmark <italic>l<sub>j</sub></italic> lies far away from the actual robot pose).</p></list-item>
<list-item>
<p>Particle Weight Method 3 (PW3): In this case, we have used a sum of gaussians centered on each landmark position and considering the difference in the descriptors as well as the orientation of the landmarks (images)
<disp-formula>
<mml:math display="block">
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>B</mml:mi></mml:munderover>
<mml:mrow>
<mml:mtext>exp</mml:mtext>
<mml:mo>{</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mi>l</mml:mi>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:msubsup>
<mml:mi>v</mml:mi>
<mml:mi>j</mml:mi>
<mml:mi>T</mml:mi></mml:msubsup></mml:mrow>
<mml:mo>}</mml:mo>
<mml:mo>·</mml:mo>
<mml:mtext>exp</mml:mtext>
<mml:mo>{</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi>
<mml:mi>T</mml:mi></mml:msubsup></mml:mrow>
<mml:mo>}</mml:mo>
<mml:mo>·</mml:mo>
<mml:mtext>exp</mml:mtext>
<mml:mo>{</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>g</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mi>θ</mml:mi>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:msubsup>
<mml:mi>g</mml:mi>
<mml:mi>j</mml:mi>
<mml:mi>T</mml:mi></mml:msubsup></mml:mrow>
<mml:mo>}</mml:mo></mml:mrow></mml:math></disp-formula>where <italic>v<sub>j</sub></italic>, <italic>h<sub>j</sub></italic>, Σ<italic><sub>l</sub></italic> and Σ<italic><sub>d</sub></italic> have been defined in the previous methods. The variable <italic>g<sub>j</sub></italic> = (<italic>θ<sub>j</sub></italic> − <italic>θ<sub>i</sub></italic>) computes the difference between the expected orientation <italic>θ<sub>j</sub></italic> and <italic>θ<sub>i</sub></italic> the orientation of the particle. Given the current descriptor <italic>d<sub>t</sub></italic> and the descriptor <italic>d<sub>j</sub></italic> the orientation <italic>θ<sub>j</sub></italic> can be computed as in <xref ref-type="disp-formula" rid="FD1">Equation (1)</xref>. In this case, and since the map is known, the orientation of all the landmarks (images) in the map is known in advance. The matrix Σ<italic><sub>θ</sub></italic> is selected experimentally.</p></list-item>
<list-item>
<p>Particle Weight Method 4 (PW4): This weight method is a product of gaussians centered on each landmark position and considering the difference in the descriptors as well as the orientation of the landmarks (images).
<disp-formula id="FD11">
<label>(11)</label>
<mml:math display="block">
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mo>∏</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>B</mml:mi></mml:munderover>
<mml:mrow>
<mml:mtext>exp</mml:mtext>
<mml:mo>{</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mi>l</mml:mi>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:msubsup>
<mml:mi>v</mml:mi>
<mml:mi>j</mml:mi>
<mml:mi>T</mml:mi></mml:msubsup></mml:mrow>
<mml:mo>}</mml:mo>
<mml:mo>·</mml:mo>
<mml:mtext>exp</mml:mtext>
<mml:mo>{</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi>
<mml:mi>T</mml:mi></mml:msubsup></mml:mrow>
<mml:mo>}</mml:mo>
<mml:mo>·</mml:mo>
<mml:mtext>exp</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>g</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mi>θ</mml:mi>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:msubsup>
<mml:mi>g</mml:mi>
<mml:mi>j</mml:mi>
<mml:mi>T</mml:mi></mml:msubsup></mml:mrow></mml:mrow>
<mml:mo>}</mml:mo></mml:mrow></mml:mrow></mml:math></disp-formula>Where <italic>v<sub>j</sub></italic>, <italic>h<sub>j</sub></italic>, <italic>g<sub>j</sub></italic>, Σ<italic><sub>l</sub></italic>, Σ<italic><sub>d</sub></italic> and Σ<italic><sub>θ</sub></italic> have been defined in the previous methods. This method is similar to the PW3, but considering the product of the gaussian distributions.</p></list-item>
<list-item>
<p>Particle Weight Method 5 (PW5): In this case we use a gaussian distribution at the mass center of a discrete mass system. This method is inspired in a masses system, each one having a mass related to the similarity with the current descriptor <italic>d<sub>t</sub></italic> observed by the robot. The weight for each mass is computed as:
<disp-formula id="FD12">
<label>(12)</label>
<mml:math display="block">
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mtext>exp</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:msubsup>
<mml:mi>f</mml:mi>
<mml:mi>j</mml:mi>
<mml:mi>T</mml:mi></mml:msubsup></mml:mrow></mml:mrow>
<mml:mo>}</mml:mo></mml:mrow></mml:math></disp-formula>where <italic>f<sub>j</sub></italic> = ((x<italic><sup>i</sup>,</italic> y<italic><sup>i</sup></italic>) − <italic>ĉ</italic>) computes the difference between the position of the mass <italic>i</italic> and the mass center computed as:
<disp-formula id="FD13">
<label>(13)</label>
<mml:math display="block">
<mml:mover accent="true">
<mml:mi>c</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>B</mml:mi></mml:munderover>
<mml:mrow>
<mml:msub>
<mml:mi>l</mml:mi>
<mml:mi>j</mml:mi></mml:msub></mml:mrow>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mi>m</mml:mi>
<mml:mi>j</mml:mi></mml:msub></mml:math></disp-formula>where the virtual mass <italic>m<sub>j</sub></italic> is computed as 
<inline-formula>
<mml:math>
<mml:msub>
<mml:mi>m</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mtext>exp</mml:mtext>
<mml:mo stretchy="false">{</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi>
<mml:mi>T</mml:mi></mml:msubsup></mml:mrow>
<mml:mo stretchy="false">}</mml:mo></mml:math></inline-formula>. The masses <italic>m<sub>j</sub></italic> are normalized so that 
<inline-formula>
<mml:math>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>B</mml:mi></mml:msubsup>
<mml:mrow>
<mml:msub>
<mml:mi>m</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:math></inline-formula> and the covariance matrix Σ<italic><sub>f</sub></italic> is computed as the covariance associated to <italic>ĉ</italic>.</p></list-item>
<list-item>
<p>Particle Weight Method 6 (PW6): As in the previous one, this method uses a gaussian distribution at the center of a mass system, but in this case, the method obtains this center from a spring-mass system. The elastic constant of each spring is related to the similarity in the description, thus, landmarks more similar to the current observation try to attract the mass more tightly. To simplify the calculations, <italic>m<sub>j</sub></italic> is equal to 1 for all the masses of the system. To compute the weight for each particle we use the following equation:
<disp-formula id="FD14">
<label>(14)</label>
<mml:math display="block">
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mtext>exp</mml:mtext>
<mml:mo>{</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:msub>
<mml:mo>∑</mml:mo>
<mml:mi>s</mml:mi></mml:msub>
<mml:mrow>
<mml:msubsup>
<mml:mi>f</mml:mi>
<mml:mi>j</mml:mi>
<mml:mi>T</mml:mi></mml:msubsup></mml:mrow>
<mml:mo>}</mml:mo></mml:math></disp-formula>where <italic>f<sub>j</sub></italic> = ((x<italic><sup>i</sup>,</italic> y<italic><sup>i</sup></italic>) − <italic>c̄</italic>) computes the difference between the position of the particle <italic>i</italic> and the center <italic>c̄</italic> of a spring-mass system. In this case, the matrix Σ<italic><sub>s</sub></italic> is computed as the covariance associated to <italic>c̄</italic>.</p></list-item>
<list-item>
<p>Particle Weight Method 7 (PW7): This weight method consists of a triangular distribution and is inspired in the weight function introduced by [<xref ref-type="bibr" rid="b10-sensors-10-11468">10</xref>]. The weight for each particle is computed as:
<disp-formula id="FD15">
<label>(15)</label>
<mml:math display="block">
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>B</mml:mi></mml:mfrac>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>B</mml:mi></mml:munderover>
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi>D</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">max</mml:mtext></mml:mrow>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>−</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:msubsup>
<mml:mi>v</mml:mi>
<mml:mi>j</mml:mi>
<mml:mi>T</mml:mi></mml:msubsup></mml:mrow></mml:msqrt>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula>where 
<inline-formula>
<mml:math>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi>
<mml:mi>T</mml:mi></mml:msubsup></mml:mrow></mml:msqrt>
<mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <italic>v<sub>j</sub></italic> = (<italic>l<sub>j,</sub></italic><sub>x</sub><italic>, l<sub>j,</sub></italic><sub>y</sub>) − (x<italic><sup>i</sup>,</italic> y<italic><sup>i</sup></italic>) computes the difference between the position of the particle <italic>i</italic> and the landmark <italic>j</italic>. 
<inline-formula>
<mml:math>
<mml:msubsup>
<mml:mi>D</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">max</mml:mtext></mml:mrow>
<mml:mi>i</mml:mi></mml:msubsup></mml:math></inline-formula> is the metric distance between the farthest landmark and the position of the particle <italic>i</italic>. This weight method represents a triangular distribution centered on each landmark as to the appearance of each acquired image.</p></list-item></list></p></sec></sec>
<sec sec-type="results|discussion">
<label>5.</label>
<title>Results and Discussion</title>
<p>We have designed a complete set of experiments in order to test the validity of the global appearance-based approach both in map building and in localization.</p>
<sec>
<label>5.1.</label>
<title>Map building experiments</title>
<p>First, we have developed some experiments to know the accuracy and feasibility of the appearance-based approaches in map building. With this aim, we use several sets of omnidirectional images that have been captured in different structured and non-structured indoor environments (<xref ref-type="table" rid="t1-sensors-10-11468">Table 1</xref>).</p>
<p>Our main objective consists of testing the feasibility of the batch and the incremental mapping procedures exposed in Section 3. With this aim, we study some features that define the feasibility of the procedures, such as the accuracy of the map built (how similar it is comparing to the grid where the images were captured) and the computational cost of the method. We also study how these features are influenced by some typical parameters, such as the number of images, the distance between them (grid step), the degree of compression during the Fourier Transformation and the value of the parameters of the mass-spring-damper model.</p>
<p>The preprocessing of the omnidirectional images includes the transformation to panoramic, homomorphic filtering and Fourier signature calculation. Once all the Fourier signatures of the images sets are available, the spring-mass-damper procedure is applied (<xref ref-type="disp-formula" rid="FD6">Equations 6–8</xref>). In our experiments, the length of each spring <italic>l<sub>ij</sub></italic> has been computed as the Euclidean distance between the main harmonics in the Fourier signature of images <italic>i</italic> and <italic>j</italic> (<xref ref-type="disp-formula" rid="FD2">Equations 2</xref>). It is desirable to retain only the low-frequency components in the Fourier signature, where the main information is concentrated. In our experiments, we have worked with <italic>k</italic> = 4, 8, 16, 32 and 64 components per row in the Fourier signature.</p>
<p>The parameter <italic>ξ</italic> (<xref ref-type="disp-formula" rid="FD8">Equation 8</xref>) has a great influence both in the computational cost of the mapping process and in the accuracy of the resulting map. <xref ref-type="fig" rid="f8-sensors-10-11468">Figure 8</xref> shows clearly this dependence in the environment <italic>corridor 1</italic> (<xref ref-type="table" rid="t1-sensors-10-11468">Table 1</xref>), with 0.2<italic>m</italic> grid step, and <xref ref-type="fig" rid="f9-sensors-10-11468">Figure 9</xref> in the environment <italic>laboratory 1</italic>, with 1<italic>m</italic> grid step. In both figures, the first row shows the results when <italic>ξ</italic> = 0.5, the second one when <italic>ξ</italic> = 0.1, and the last one for <italic>ξ</italic> = 0.01. For each value, we show first a graph that presents the time consumption to build the map, depending on the number of images and the method used. Secondly we show the layout of the map built with the batch method, comparing to the original grid and, at last, the map built using the incremental method. In all the cases, using the batch method, we can observe how the necessary time to build the map grows with the number of images since the method has to compute a greater number of forces at each iteration (due to the high number of neighbors each image has). As expected, with the incremental method, the necessary time also grows with the number of images, but to a lesser extent. As <italic>ξ</italic> grows, the computation time also increases, but if a too high or a too low value of <italic>ξ</italic> is taken, the layout of the map built is absolutely different to the layout of the grid where the images were captured. This is due to the fact that <italic>ξ</italic> influences the way the system tends to balance, and it is only reached if we let it freely evolve during the necessary time. This way, we must reach a compromise between the computational cost of the process and the accuracy of the layout obtained to represent the original map.</p>
<p>The results shown in <xref ref-type="fig" rid="f10-sensors-10-11468">Figure 10 (a,b)</xref> confirm these conclusions. These figures are obtained from the results of all the environments in <xref ref-type="table" rid="t1-sensors-10-11468">Table 1</xref> and show the shape difference <italic>μ</italic> between the resulting map and the initial grid and the processing time until this map is built. As we expected, both in the batch and in the incremental approach, <italic>μ</italic> reaches a minimum for an intermediate value of <italic>ξ</italic>. This is the value that produces the map whose layout of particles is the most similar to the real layout. The incremental method produces a more optimal minimum. As far as processing time is concerned, <xref ref-type="fig" rid="f10-sensors-10-11468">Figure 10 (c,d)</xref> show how this time does not depend on <italic>ξ</italic> in the batch method (only the number of images in the system makes this time to vary) and in the incremental method, a local minimum is reached almost simultaneously with the minimum in the shape factor.</p>
<p>At last, <xref ref-type="fig" rid="f11-sensors-10-11468">Figure 11</xref> shows the influence of the number of Fourier components we retain per row to build the Fourier signature, <italic>k</italic>. <xref ref-type="fig" rid="f11-sensors-10-11468">Figure 11 (a,b)</xref> shows how the batch method is only slightly affected by the value of <italic>k</italic>, but in the incremental approach, a compromise must be reached between processing time and accuracy of the resulting map when choosing the value of <italic>k</italic>. This figure has also been obtained from the results of all the environments in <xref ref-type="table" rid="t1-sensors-10-11468">Table 1</xref>.</p></sec>
<sec>
<label>5.2.</label>
<title>Monte Carlo localization experiments</title>
<p>In this section we show separately the results obtained for the <italic>corridor 1</italic> and the <italic>laboratory 1</italic> environments (<xref ref-type="table" rid="t1-sensors-10-11468">Table 1</xref>). First we present the results with the <italic>corridor 1</italic>. This map is formed by a set of images placed in a grid with a resolution of 0.2<italic>m</italic>. We have taken the omnidirectional images manually so the coordinates of these points are known. The position of this set of images of the map is represented with black circles in <xref ref-type="fig" rid="f12-sensors-10-11468">Figure 12(a,b,d and e)</xref>. Next, some sets of images have been taken along some trajectories in the environment every 0, 1<italic>m</italic>. In order to obtain a robust result, we have tested different types of trajectories (a trajectory is a set of omnidirectional images acquired on consecutive points along the environment). Each trajectory has different number of images and also the path is different.</p>
<p>We can see an example of global localization using the method PW1 and 8,000 particles with our Monte Carlo algorithm in <xref ref-type="fig" rid="f12-sensors-10-11468">Figure 12</xref>. As it is a global localization we can see in <xref ref-type="fig" rid="f12-sensors-10-11468">Figure 12 (a)</xref> that the particles presents a uniform distribution when the experiments begin. In the sequence presented in <xref ref-type="fig" rid="f12-sensors-10-11468">Figure 12 (a,b,d and e)</xref> we can observe how the particles concentrate near the true pose. Note that the trajectory does not coincide exactly with the position of any of the images in the map, so it is not necessary to place the vision system exactly on a point in the map to localize precisely the image. In these figures, the ground truth trajectory is shown in red, the path estimated with the odometry data in yellow and the set particles in blue. <xref ref-type="fig" rid="f12-sensors-10-11468">Figure 12 (c)</xref> presents the error in position at each iteration step. The figure shows that the error in location is gradually reduced and so does the dispersion of particles, as it can be observed in <xref ref-type="fig" rid="f12-sensors-10-11468">Figure 12 (f)</xref>. Both variables get an acceptable value, under 0.2m (separation between reference images). In this sample process, the length of the route is 180 images (18 m) and the step time is around 0.3 seconds per iteration in our system. This way, this process can be carried out online.</p>
<p><xref ref-type="fig" rid="f13-sensors-10-11468">Figure 13</xref> is an example of local localization or tracking using the method PW1 and 8000 particles with our Monte Carlo algorithm. In <xref ref-type="fig" rid="f13-sensors-10-11468">Figure 13(a)</xref> the particles present a gaussian distribution centered on the initial position of the camera when the experiments begin. In the sequence presented in <xref ref-type="fig" rid="f13-sensors-10-11468">Figure 13 (a,b,d and e)</xref> we can observe how the particles disperse near the true pose of the camera. In this experiment, as in the global localization experiment, the trajectory of the camera does not coincide exactly with the position of any of the images in the map. In consequence, the localization can be performed without having to place the robot exactly on a landmark. <xref ref-type="fig" rid="f13-sensors-10-11468">Figure 13 (c)</xref> presents the error in position at each iteration step and <xref ref-type="fig" rid="f13-sensors-10-11468">Figure 13 (f)</xref> presents the dispersion of particles at each iteration.</p>
<p>To compare the performance of our <italic>Monte Carlo localization algorithm</italic> under our seven different types of weighting, we have carried out a series of experiments of global localization in which we have obtained the trajectory average error in position and orientation of the robot depending on the number of particles <italic>M</italic>. For this experiment we have used nine particles population: 1, 10, 100, 500, 1,000, 2,000, 5,000, 7,000 and 10,000 particles. As shown in <xref ref-type="fig" rid="f14-sensors-10-11468">Figure 14</xref>, as we increase the number of particles, the error decreases both in location and orientation. When we use the method PW3 we get nice localization results even with a low number of particles, comparing to the others weight methods.</p>
<p>We have separated the global localization from the tracking to compare the weight methods with respect to the number of associations. <xref ref-type="fig" rid="f15-sensors-10-11468">Figure 15 (a)</xref> presents the error in tracking when varying the number of associations <italic>B</italic>. As shown in <xref ref-type="fig" rid="f15-sensors-10-11468">Figure 15 (a)</xref>, although the number of associations is low, the error in localization remains small. As the number of associations increases, the error in the location decreases in the sum-of-gaussian methods, but increases rapidly in the product of gaussian methods (PW2 and PW4). When we multiply two gaussians we get a gaussian with variance lower than the minimum variance of both. Therefore, as the number of associations grows, the weighting of particles becomes more restrictive. On the other hand, <xref ref-type="fig" rid="f15-sensors-10-11468">Figure 15 (b)</xref> presents the results in global localization. When the number of associations is increased, the error in the location grows quicker comparing to the case of tracking (<xref ref-type="fig" rid="f15-sensors-10-11468">Figure 15 (a)</xref>). Moreover, we observe that the last 2 methods (PW6 and PW7) require a minimum number of associations to work properly.</p>
<p>The second map we have tested is the <italic>laboratory 1</italic> environment, formed by a set of images placed in a grid with a resolution of 1 m (<xref ref-type="table" rid="t1-sensors-10-11468">Table 1</xref>). We have taken the omnidirectional images manually so the coordinates of these points are known. Next, some sets of images have been taken along some trajectories in the environment every 0,5 m. In order to obtain a robust result, we have tested different types of trajectories. Each trajectory has got a different number of images captured and the path is different too. The next figures show the results obtained using this new map.</p>
<p>Both in the case of global localization (<xref ref-type="fig" rid="f17-sensors-10-11468">Figure 17</xref>) and in the case of local localization or tracking (<xref ref-type="fig" rid="f16-sensors-10-11468">Figure 16</xref>) we can observe as the localization error and the sample dispersion tend to an acceptable value around the separation between reference images (0.5<italic>m</italic>) when we use PW1 and 8,000 particles.</p>
<p><xref ref-type="fig" rid="f18-sensors-10-11468">Figure 18</xref> shows the trajectory average error and the orientation error when we use different number of particles (<italic>M</italic>). As in the previous environment, the methods PW1, PW3 and PW5 present relatively good results when a low number of particles is taken. The methods PW3 and PW5 present a better behavior for any number of particles.</p>
<p>At last, <xref ref-type="fig" rid="f19-sensors-10-11468">Figure 19</xref> shows the trajectory average error in a tracking and in a global localization when we use different associations number. From this figure we observe that PW1, PW3 and PW5 have a more stable behavior at any associations number although they present a lower error when the number of associations is relatively low. The method PW7 does not work properly in this environment and at last, PW2 and PW4 present, in general, a worse result.</p></sec></sec>
<sec sec-type="conclusions">
<label>6.</label>
<title>Conclusions and Future Work</title>
<p>In this paper we have studied the applicability of the approaches based on the global appearance of omnidirectional images in topological mapping and localization tasks. The main contributions of the paper include the development of an approach to build a topological map of the environment in an incremental way, the study of the influence of the parameters of the process in the layout of the resulting map and in the processing time, the analysis of an appearance-based Monte Carlo localization using omnidirectional images, the comparison between different weighting methods both in the case of local and global localization and the influence of the Fourier signature descriptor in the mapping and localization process.</p>
<p>All the experiments have been carried out with a set of omnidirectional images captured by a catadioptric system mounted on the mobile platform. Each scene is first filtered to avoid lighting dependance and then it is described through a Fourier-based signature that presents a good performance in terms of amount of memory and processing time, and it is also invariant to ground-plane rotations and an inherently incremental method.</p>
<p>We present a methodology to build incremental topological maps. As shown in the results, when the parameters of this system are correctly tuned, accurate results can be obtained, maintaining a reasonable computational cost. The incremental method clearly outperforms the batch one. However, in this method, it is necessary to arrive to a compromise between accuracy and processing time when choosing the number of Fourier components in the descriptor.</p>
<p>On the other hand, we have presented a Monte Carlo localization method using omnidirectional images and we have evaluated the performance of different weighting methods in the case of local and global localization, finding different behaviors. We have also evaluated the influence of the descriptor in the localization by varying the number of possible associations. Our system is able to estimate the position of the robot in the case of unknown initial position and it is able to track the position of the robot while moving. We proved how the accuracy of the methods varies with the type of weight and the number of particles and associations. In the evaluated methods, as we increase the number of particles in the system, the average error of localization decreases rapidly. With respect to the orientation, we obtain similar results. We have proved the strong dependence between the number of associations and the type of method used. Also, it is possible to correct the weighting of the particles by combining a physical system of forces with a Gaussian weight (PW6).</p>
<p>The experimental section includes results both for a structured environment, which presents repetitive visual aspects, and an unstructured one (a corridor and a laboratory, respectively). In both cases, we have obtained relatively good results in the mapping and in the localization processes.</p>
<p>We are working now in the fusion of these two systems to build a topological SLAM approach (Simultaneous Localization and Map Building) using just the global appearance of omnidirectional images, and different map topologies.</p></sec></body>
<back>
<ack>
<p>This work has been supported by the Spanish government through the project DPI2010-15308. ’Exploración integrada de entornos mediante robots cooperativos para la creación de mapas 3D visuales y topológicos que puedan ser usados en navegación con 6 grados de libertad’.</p></ack>
<ref-list>
<title>References</title>
<ref id="b1-sensors-10-11468"><label>1.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Paya</surname><given-names>L</given-names></name><name><surname>Fernandez</surname><given-names>L</given-names></name><name><surname>Reinoso</surname><given-names>O</given-names></name><name><surname>Gil</surname><given-names>A</given-names></name><name><surname>Ubeda</surname><given-names>D</given-names></name></person-group><article-title>Appearance-based Dense Maps Creation. Comparison of Compression Techniques with Panoramic Images</article-title><conf-name>Proceedings of the Intnational Conference on Informatics in Control, Automation and Robotics</conf-name><conf-loc>Milan, Italy</conf-loc><month>July</month><year>2009</year><fpage>238</fpage><lpage>246</lpage></citation></ref>
<ref id="b2-sensors-10-11468"><label>2.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Winters</surname><given-names>N</given-names></name><name><surname>Gaspar</surname><given-names>J</given-names></name><name><surname>Lacey</surname><given-names>G</given-names></name><name><surname>Santos-Victor</surname><given-names>J</given-names></name></person-group><article-title>Omni-directional Vision for Robot Navigation</article-title><conf-name>IEEE Workshop on Omnidirectional Vision (OMNIVIS’00)</conf-name><conf-loc>Hilton Head Island, SC, USA</conf-loc><month>June</month><year>2000</year></citation></ref>
<ref id="b3-sensors-10-11468"><label>3.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Se</surname><given-names>S</given-names></name><name><surname>Lowe</surname><given-names>D</given-names></name><name><surname>Little</surname><given-names>J</given-names></name></person-group><article-title>Vision-based Mobile Robot Localization and Mapping using Scale-Invariant Features</article-title><conf-name>Proceedings of the IEEE International Conference on Robotics and Automation (ICRA)</conf-name><conf-loc>Anchorage, AK, USA</conf-loc><month>May</month><day>3–8</day><year>2010</year><fpage>2051</fpage><lpage>2058</lpage></citation></ref>
<ref id="b4-sensors-10-11468"><label>4.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lowe</surname><given-names>D</given-names></name></person-group><article-title>Distinctive Image Features from Scale-Invariant Keypoints</article-title><source>Int J Comput Vision</source><year>2004</year><volume>2</volume><fpage>91</fpage><lpage>110</lpage></citation></ref>
<ref id="b5-sensors-10-11468"><label>5.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lingua</surname><given-names>A</given-names></name><name><surname>Marenchino</surname><given-names>D</given-names></name><name><surname>Nex</surname><given-names>F</given-names></name></person-group><article-title>Performance Analysis of the SIFT Operator for Automatic Feature Extraction and Matching in Photogrammetric Applications</article-title><source>Sensors</source><year>2009</year><volume>9</volume><fpage>3745</fpage><lpage>3766</lpage><pub-id pub-id-type="doi">10.3390/s90503745</pub-id><pub-id pub-id-type="pmid">22412336</pub-id></citation></ref>
<ref id="b6-sensors-10-11468"><label>6.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Valgren</surname><given-names>C</given-names></name><name><surname>Lilienthal</surname><given-names>A</given-names></name></person-group><article-title>SIFT, SURF and Seasons: Appearance-based Long-term Localization in Outdoor Environments</article-title><source>Robot Auton Systems</source><year>2010</year><volume>58</volume><fpage>149</fpage><lpage>156</lpage><pub-id pub-id-type="doi">10.1016/j.robot.2009.09.010</pub-id></citation></ref>
<ref id="b7-sensors-10-11468"><label>7.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Murillo</surname><given-names>AC</given-names></name><name><surname>Guerrero</surname><given-names>JJ</given-names></name><name><surname>Sagüés</surname><given-names>C</given-names></name></person-group><article-title>SURF Features for Efficient Robot Localization with Omnidirectional Images</article-title><conf-name>Proceedings of the IEEE Intnational Conferences on Robotics &amp; Automation (ICRA)</conf-name><conf-loc>San Diego, CA, USA</conf-loc><month>April</month><year>2007</year></citation></ref>
<ref id="b8-sensors-10-11468"><label>8.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Bay</surname><given-names>H</given-names></name><name><surname>Tuytelaars</surname><given-names>T</given-names></name><name><surname>Van Gool</surname><given-names>L</given-names></name></person-group><article-title>SURF: Speeded Up Robust Features</article-title><conf-name>Proceedings of the ninth European Conference on Computer Vision</conf-name><conf-loc>Graz, Austria</conf-loc><month>May</month><year>2006</year></citation></ref>
<ref id="b9-sensors-10-11468"><label>9.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Menegatti</surname><given-names>E</given-names></name><name><surname>Maeda</surname><given-names>T</given-names></name><name><surname>Ishiguro</surname><given-names>H</given-names></name></person-group><article-title>Image-based Memory for Robot Navigation Using Properties of Omnidirectional Images</article-title><source>Robot Auton Systems</source><year>2004</year><volume>47</volume><fpage>251</fpage><lpage>276</lpage><pub-id pub-id-type="doi">10.1016/j.robot.2004.03.014</pub-id></citation></ref>
<ref id="b10-sensors-10-11468"><label>10.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Menegatti</surname><given-names>E</given-names></name><name><surname>Zocaratto</surname><given-names>M</given-names></name><name><surname>Pagello</surname><given-names>E</given-names></name><name><surname>Ishiguro</surname><given-names>H</given-names></name></person-group><article-title>Image-based Monte Carlo Localisation with Omnidirectional Images</article-title><source>Robot Auton Systems</source><year>2004</year><volume>48</volume><fpage>17</fpage><lpage>30</lpage><pub-id pub-id-type="doi">10.1016/j.robot.2004.05.003</pub-id></citation></ref>
<ref id="b11-sensors-10-11468"><label>11.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kröse</surname><given-names>B</given-names></name><name><surname>Bunschoten</surname><given-names>R</given-names></name><name><surname>Hagen</surname><given-names>ST</given-names></name><name><surname>Terwijn</surname><given-names>B</given-names></name><name><surname>Vlassis</surname><given-names>N</given-names></name></person-group><article-title>Environment Modeling and Localization from an Omnidirectional Vision System</article-title><source>IEEE Robotics Autom Mag</source><year>2004</year><volume>11</volume><fpage>45</fpage><lpage>52</lpage><pub-id pub-id-type="doi">10.1109/MRA.2004.1371608</pub-id></citation></ref>
<ref id="b12-sensors-10-11468"><label>12.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Kirby</surname><given-names>M</given-names></name></person-group><source>Geometric Data Analysis</source><publisher-name>Wiley Interscience</publisher-name><publisher-loc>NewYork, NY, USA</publisher-loc><year>2001</year></citation></ref>
<ref id="b13-sensors-10-11468"><label>13.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Moravec</surname><given-names>H</given-names></name><name><surname>Elfes</surname><given-names>A</given-names></name></person-group><article-title>High Resolution Maps from Wide Angle Sonar</article-title><conf-name>Proceedings of the IEEE Intnational Conferences on Robotics &amp; Automation (ICRA)</conf-name><conf-loc>St. Louis, MO, USA</conf-loc><month>March</month><year>1985</year><fpage>116</fpage><lpage>121</lpage></citation></ref>
<ref id="b14-sensors-10-11468"><label>14.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Collins</surname><given-names>T</given-names></name><name><surname>Collins</surname><given-names>J</given-names></name><name><surname>Ryan</surname><given-names>C</given-names></name></person-group><article-title>Occupancy Grid Mapping: An Empirical Evaluation</article-title><conf-name>Proceedings of the 15th Mediterranean Conference on Control &amp; Automation</conf-name><conf-loc>Freiburg, Germany</conf-loc><month>June</month><year>2007</year></citation></ref>
<ref id="b15-sensors-10-11468"><label>15.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gil</surname><given-names>A</given-names></name><name><surname>Reinoso</surname><given-names>O</given-names></name><name><surname>Ballesta</surname><given-names>M</given-names></name><name><surname>Juliá</surname><given-names>M</given-names></name><name><surname>Payá</surname><given-names>L</given-names></name></person-group><article-title>Estimation of Visual Maps with a Robot Network Equipped with Vision Sensors</article-title><source>Sensors</source><year>2010</year><volume>10</volume><fpage>5209</fpage><lpage>5232</lpage><pub-id pub-id-type="doi">10.3390/s100505209</pub-id><pub-id pub-id-type="pmid">22399930</pub-id></citation></ref>
<ref id="b16-sensors-10-11468"><label>16.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Werner</surname><given-names>F</given-names></name><name><surname>Maire</surname><given-names>F</given-names></name><name><surname>Sitte</surname><given-names>J</given-names></name></person-group><article-title>Topological SLAM Using Fast Vision Techniques</article-title><conf-name>Proceedings of the FIRA Robo World Congress 2009 on Advances in Robotics</conf-name><conf-loc>Incheon, Korea</conf-loc><month>August</month><year>2009</year><fpage>187</fpage><lpage>196</lpage></citation></ref>
<ref id="b17-sensors-10-11468"><label>17.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Valgren</surname><given-names>C</given-names></name><name><surname>Lilienthal</surname><given-names>A</given-names></name></person-group><article-title>SIFT, SURF and Seasons: Long-term Outdoor Localization Using Local Features</article-title><conf-name>Proceedings of the 3rd European Conference on Mobile Robots (ECMR)</conf-name><conf-loc>Freiburg, Germany</conf-loc><month>September</month><year>2007</year></citation></ref>
<ref id="b18-sensors-10-11468"><label>18.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Stimec</surname><given-names>A</given-names></name><name><surname>Jogan</surname><given-names>M</given-names></name><name><surname>Leonardis</surname><given-names>A</given-names></name></person-group><article-title>Unsupervised Learning of a Hierarchy of Topological Maps Using Omnidirectional Images</article-title><source>IJPRAI</source><year>2008</year><volume>22</volume><fpage>639</fpage><lpage>665</lpage></citation></ref>
<ref id="b19-sensors-10-11468"><label>19.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Tully</surname><given-names>S</given-names></name><name><surname>Kantor</surname><given-names>G</given-names></name><name><surname>Choset</surname><given-names>H</given-names></name><name><surname>Werner</surname><given-names>F</given-names></name></person-group><article-title>A Multi-hypothesis Topological SLAM Approach for Loop Closing on Edge-ordered Graphs</article-title><conf-name>Proceedings of the 2009 IEEE/RSJ International Conference on Intelligent Robots and Systems, IROS’09</conf-name><conf-loc>St. Louis, MO</conf-loc><month>October</month><year>2009</year><fpage>4943</fpage><lpage>4948</lpage></citation></ref>
<ref id="b20-sensors-10-11468"><label>20.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Angeli</surname><given-names>A</given-names></name><name><surname>Doncieux</surname><given-names>S</given-names></name><name><surname>Meyer</surname><given-names>J</given-names></name><name><surname>Filliat</surname><given-names>D</given-names></name></person-group><article-title>Visual Topological SLAM and Global Localization</article-title><conf-name>Proceedings of the 2009 IEEE International Conference on Robotics and Automation, ICRA’09, IEEE Press</conf-name><conf-loc>Piscataway, NJ, USA</conf-loc><month>May</month><year>2009</year><fpage>2029</fpage><lpage>2034</lpage></citation></ref>
<ref id="b21-sensors-10-11468"><label>21.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Thrun</surname><given-names>S</given-names></name><name><surname>Fox</surname><given-names>D</given-names></name><name><surname>Burgard</surname><given-names>W</given-names></name><name><surname>Dellaert</surname><given-names>F</given-names></name></person-group><article-title>Robust Monte Carlo Localization for Mobile Robots</article-title><source>Artif Intell</source><year>2000</year><volume>128</volume><fpage>99</fpage><lpage>141</lpage></citation></ref>
<ref id="b22-sensors-10-11468"><label>22.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Thrun</surname><given-names>S</given-names></name><name><surname>Burgard</surname><given-names>W</given-names></name><name><surname>Fox</surname><given-names>D</given-names></name></person-group><article-title>A Real-Time Algorithm for Mobile Robot Mapping With Applications to Multi-Robot and 3D Mapping</article-title><source>Proceedings of the IEEE Intnational Conferences on Robotics &amp; Automation (ICRA)</source><conf-loc>San Francisco, CA, USA</conf-loc><month>April</month><year>2000</year></citation></ref>
<ref id="b23-sensors-10-11468"><label>23.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Dellaert</surname><given-names>F</given-names></name><name><surname>Fox</surname><given-names>D</given-names></name><name><surname>Burgard</surname><given-names>W</given-names></name><name><surname>Thrun</surname><given-names>S</given-names></name></person-group><article-title>Monte Carlo Localization for Mobile Robots</article-title><conf-name>Proceedings of the IEEE International Conference on Robotics and Automation (ICRA)</conf-name><conf-loc>Kobe, Japan</conf-loc><year>1999</year></citation></ref>
<ref id="b24-sensors-10-11468"><label>24.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gil</surname><given-names>A</given-names></name><name><surname>Reinoso</surname><given-names>O</given-names></name><name><surname>Vicente</surname><given-names>MA</given-names></name><name><surname>Fernández</surname><given-names>C</given-names></name><name><surname>Payá</surname><given-names>L</given-names></name></person-group><article-title>Monte Carlo Localization Using SIFT Features</article-title><source>Lect Notes Comput Sci</source><year>2005</year><volume>I</volume><fpage>623</fpage><lpage>630</lpage></citation></ref>
<ref id="b25-sensors-10-11468"><label>25.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Pizarro</surname><given-names>D</given-names></name><name><surname>Mazo</surname><given-names>M</given-names></name><name><surname>Santiso</surname><given-names>E</given-names></name><name><surname>Marron</surname><given-names>M</given-names></name><name><surname>Jimenez</surname><given-names>D</given-names></name><name><surname>Cobreces</surname><given-names>S</given-names></name><name><surname>Losada</surname><given-names>C</given-names></name></person-group><article-title>Localization of Mobile Robots Using Odometry and an External Vision Sensor</article-title><source>Sensors</source><year>2010</year><volume>10</volume><fpage>3655</fpage><lpage>3680</lpage><pub-id pub-id-type="doi">10.3390/s100403655</pub-id><pub-id pub-id-type="pmid">22319318</pub-id></citation></ref>
<ref id="b26-sensors-10-11468"><label>26.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Linåker</surname><given-names>F</given-names></name><name><surname>Ishikawa</surname><given-names>M</given-names></name></person-group><article-title>Real-time Appearance-based Monte Carlo Localization</article-title><source>Robot Auton Systems</source><year>2006</year><volume>54</volume><fpage>205</fpage><lpage>220</lpage><pub-id pub-id-type="doi">10.1016/j.robot.2005.11.003</pub-id></citation></ref>
<ref id="b27-sensors-10-11468"><label>27.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Jogan</surname><given-names>M</given-names></name><name><surname>Leonardis</surname><given-names>A</given-names></name></person-group><article-title>Robust Localization Using Eigenspace of Spinning-Images</article-title><conf-name>Proceedings of the IEEE Workshop on Omnidirectional Vision</conf-name><conf-loc>Hilton Head Island, SC, USA</conf-loc><month>June</month><year>2000</year><fpage>37</fpage><lpage>44</lpage></citation></ref>
<ref id="b28-sensors-10-11468"><label>28.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Rossi</surname><given-names>F</given-names></name><name><surname>Ranganathan</surname><given-names>A</given-names></name><name><surname>Dellaert</surname><given-names>F</given-names></name><name><surname>Menegatti</surname><given-names>E</given-names></name></person-group><article-title>Toward Topological Localization with Spherical Fourier Transform and Uncalibrated Camera</article-title><conf-name>Proceedings of the Intnational Conferences on Simulation, Modeling and Programming for Autonomous Robots</conf-name><conf-loc>Venice, Italy</conf-loc><month>November</month><year>2008</year><fpage>319</fpage><lpage>330</lpage></citation></ref>
<ref id="b29-sensors-10-11468"><label>29.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Adini</surname><given-names>Y</given-names></name><name><surname>Moses</surname><given-names>I</given-names></name><name><surname>Ullman</surname><given-names>S</given-names></name></person-group><article-title>Face Recognition: The Problem of Compensating for Changes in Illumination Direction</article-title><source>IEEE Trans Robot Automat</source><year>1997</year><volume>19</volume><fpage>721</fpage><lpage>732</lpage></citation></ref>
<ref id="b30-sensors-10-11468"><label>30.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Murase</surname><given-names>H</given-names></name><name><surname>Nayar</surname><given-names>S</given-names></name></person-group><article-title>Illumination Planning for Object Recognition Using Parametric Eigenspaces</article-title><source>IEEE Trans Pattern Anal Mach Intell</source><year>1994</year><volume>16</volume><fpage>1219</fpage><lpage>1227</lpage><pub-id pub-id-type="doi">10.1109/34.387485</pub-id></citation></ref>
<ref id="b31-sensors-10-11468"><label>31.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>de Araújo</surname><given-names>VP</given-names></name><name><surname>Maia</surname><given-names>RD</given-names></name><name><surname>D’Angelo</surname><given-names>MFSV</given-names></name><name><surname>D’Angelo</surname><given-names>GNR</given-names></name></person-group><article-title>Automatic Plate Detection Using Genetic Algorithm</article-title><source>Proceedings of the 6th WSEAS International Conference on Signal, Speech and Image Processing, SSIP’06</source><publisher-name>World Scientific and Engineering Academy and Society (WSEAS)</publisher-name><publisher-loc>Stevens Point, WI, USA</publisher-loc><month>September</month><year>2006</year><fpage>43</fpage><lpage>48</lpage></citation></ref>
<ref id="b32-sensors-10-11468"><label>32.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Fernandez</surname><given-names>L</given-names></name><name><surname>Paya</surname><given-names>L</given-names></name><name><surname>Reinoso</surname><given-names>O</given-names></name><name><surname>Gil</surname><given-names>A</given-names></name><name><surname>Julia</surname><given-names>M</given-names></name><name><surname>Ballesta</surname><given-names>M</given-names></name></person-group><article-title>Robust Methods for Robot Localization Under Changing Illumination Conditions. Comparison of Different Filtering Techniques</article-title><conf-name>Proceedings of the Intnational Conferences on Agents and Artificial Intelligence</conf-name><conf-loc>Valencia, Spain</conf-loc><month>January</month><year>2010</year><volume>Volume 1</volume><fpage>223</fpage><lpage>228</lpage></citation></ref>
<ref id="b33-sensors-10-11468"><label>33.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Gonzalez</surname><given-names>RC</given-names></name><name><surname>Woods</surname><given-names>RE</given-names></name></person-group><source>Digital Image Processing</source><edition>3rd ed</edition><publisher-name>Addison-Wesley</publisher-name><publisher-loc>Reading, MA, USA</publisher-loc><year>1992</year></citation></ref>
<ref id="b34-sensors-10-11468"><label>34.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Seber</surname><given-names>G</given-names></name></person-group><source>Multivariate Observations</source><publisher-name>Wiley Interscience</publisher-name><publisher-loc>Malden, MA, USA</publisher-loc><year>1984</year></citation></ref>
<ref id="b35-sensors-10-11468"><label>35.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Fox</surname><given-names>D</given-names></name><name><surname>Burgard</surname><given-names>W</given-names></name><name><surname>Thrun</surname><given-names>S</given-names></name></person-group><article-title>Markov Localization for Mobile Robots in Dynamic Environments</article-title><source>JAIR</source><year>1999</year><volume>11</volume><fpage>391</fpage><lpage>427</lpage></citation></ref>
<ref id="b36-sensors-10-11468"><label>36.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Smith</surname><given-names>AFM</given-names></name><name><surname>Gelfand</surname><given-names>AE</given-names></name></person-group><article-title>Bayesian Statistics without Tears: A Sampling-Resampling Perspective</article-title><source>Amer Statist</source><year>1992</year><volume>46</volume><fpage>84</fpage><lpage>88</lpage></citation></ref>
<ref id="b37-sensors-10-11468"><label>37.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Rubin</surname><given-names>DB</given-names></name></person-group><source>Using the SIR Algorithm to Simulate Posterior Distributions</source><publisher-name>Oxford University Press</publisher-name><publisher-loc>Oxford, UK</publisher-loc><year>1988</year></citation></ref></ref-list>
<sec sec-type="display-objects">
<title>Figures and Table</title>
<fig id="f1-sensors-10-11468" position="float">
<label>Figure 1.</label>
<caption>
<p>Omnidirectional and Panoramic scenes.</p></caption>
<graphic xlink:href="sensors-10-11468f1.gif"/></fig>
<fig id="f2-sensors-10-11468" position="float">
<label>Figure 2.</label>
<caption>
<p>A robot rotation in the ground plane produces a shift in the columns of the panoramic images captured.</p></caption>
<graphic xlink:href="sensors-10-11468f2.gif"/></fig>
<fig id="f3-sensors-10-11468" position="float">
<label>Figure 3.</label>
<caption>
<p>Bird eye’s view of the <italic>corridor 1</italic> environment grid where omnidirectional images have been taken to perform map building and localization.</p></caption>
<graphic xlink:href="sensors-10-11468f3.gif"/></fig>
<fig id="f4-sensors-10-11468" position="float">
<label>Figure 4.</label>
<caption>
<p>Bird eye’s view of the <italic>laboratory 1</italic> environment grid.</p></caption>
<graphic xlink:href="sensors-10-11468f4.gif"/></fig>
<fig id="f5-sensors-10-11468" position="float">
<label>Figure 5.</label>
<caption>
<p>Euclidean distance between the Fourier signatures versus geometrical distance between the points where the images were captured.</p></caption>
<graphic xlink:href="sensors-10-11468f5.gif"/></fig>
<fig id="f6-sensors-10-11468" position="float">
<label>Figure 6.</label>
<caption>
<p>Example of some intermediate steps during the batch mapping process of the <italic>office</italic> environment (6 <italic>×</italic> 8 images grid).</p></caption>
<graphic xlink:href="sensors-10-11468f6.gif"/></fig>
<fig id="f7-sensors-10-11468" position="float">
<label>Figure 7.</label>
<caption>
<p>Example of some intermediate steps during the incremental mapping process of the <italic>office</italic> environment (6 <italic>×</italic> 8 images grid).</p></caption>
<graphic xlink:href="sensors-10-11468f7.gif"/></fig>
<fig id="f8-sensors-10-11468" position="float">
<label>Figure 8.</label>
<caption>
<p>Processing time to build the topological map of <italic>corridor 1</italic> with both methods (column 1) and comparison between the original images grid (small red circles) and the topological map obtained with the batch (column 2) and the incremental (column 3) method method (big yellow circles) when <italic>ξ</italic> = 0.5 (row 1), <italic>ξ</italic> = 0.1 (row 2) and <italic>ξ</italic> = 0.01 (row 3). The grid step is 0.2 m</p></caption>
<graphic xlink:href="sensors-10-11468f8.gif"/></fig>
<fig id="f9-sensors-10-11468" position="float">
<label>Figure 9.</label>
<caption>
<p>This figure shows the same results than <xref ref-type="fig" rid="f8-sensors-10-11468">Figure 8</xref> for <italic>laboratory 1</italic>. The grid step is 1 m.</p></caption>
<graphic xlink:href="sensors-10-11468f9.gif"/></fig>
<fig id="f10-sensors-10-11468" position="float">
<label>Figure 10.</label>
<caption>
<p><bold>(a)</bold> Shape difference <italic>μ</italic> versus <italic>ξ</italic> in the batch method and <bold>(b)</bold> in the incremental method. <bold>(c)</bold> Processing time to build the map (for an average map with 50 locations) versus <italic>ξ</italic> in the batch method and <bold>(d)</bold> in the incremental method.</p></caption>
<graphic xlink:href="sensors-10-11468f10.gif"/></fig>
<fig id="f11-sensors-10-11468" position="float">
<label>Figure 11.</label>
<caption>
<p><bold>(a)</bold> Shape difference <italic>μ</italic> versus <italic>k</italic> (number of Fourier components per row in the Fourier signature) in the batch method and <bold>(b)</bold> in the incremental method. <bold>(c)</bold> Processing time to build the map (for an average map with 50 locations) versus <italic>k</italic> in the batch method and <bold>(d)</bold> in the incremental method.</p></caption>
<graphic xlink:href="sensors-10-11468f11.gif"/></fig>
<fig id="f12-sensors-10-11468" position="float">
<label>Figure 12.</label>
<caption>
<p><bold>(a)</bold>, <bold>(b)</bold>, <bold>(d)</bold> and <bold>(e)</bold> are an example of some intermediate steps in a global Monte Carlo localization process using the PW1 and 8000 particles in <italic>corridor 1</italic>, <bold>(c)</bold> error in location for the previous experiment and <bold>(f)</bold> dispersion of the particles for the experiment.</p></caption>
<graphic xlink:href="sensors-10-11468f12.gif"/></fig>
<fig id="f13-sensors-10-11468" position="float">
<label>Figure 13.</label>
<caption>
<p><bold>(a)</bold>, <bold>(b)</bold>, <bold>(d)</bold> and <bold>(e)</bold> are an example of some intermediate steps in a local Monte Carlo localization process using the PW1 and 8000 particles in <italic>corridor 1</italic>, <bold>(c)</bold> error in location for the previous experiment and <bold>(f)</bold> dispersion of the particles for the experiment.</p></caption>
<graphic xlink:href="sensors-10-11468f13.gif"/></fig>
<fig id="f14-sensors-10-11468" position="float">
<label>Figure 14.</label>
<caption>
<p><bold>(a)</bold> Trajectory average error in position and <bold>(b)</bold> orientation versus the number of particles M when using different weighting methods in <italic>corridor 1</italic>.</p></caption>
<graphic xlink:href="sensors-10-11468f14.gif"/></fig>
<fig id="f15-sensors-10-11468" position="float">
<label>Figure 15.</label>
<caption>
<p>Trajectory average error in position versus associations number for all methods using 8,000 particles. <bold>(a)</bold> Tracking and <bold>(b)</bold> global localization in <italic>corridor 1</italic>.</p></caption>
<graphic xlink:href="sensors-10-11468f15.gif"/></fig>
<fig id="f16-sensors-10-11468" position="float">
<label>Figure 16.</label>
<caption>
<p><bold>(a)</bold>, <bold>(b)</bold>, <bold>(d)</bold> and <bold>(e)</bold> are an example of some intermediate steps in a local Monte Carlo localization process using the PW1 and 8000 particles in <italic>laboratory 1</italic>, <bold>(c)</bold> error in location for the previous experiment and <bold>(f)</bold> error in orientation for the experiment.</p></caption>
<graphic xlink:href="sensors-10-11468f16.gif"/></fig>
<fig id="f17-sensors-10-11468" position="float">
<label>Figure 17.</label>
<caption>
<p><bold>(a)</bold>, <bold>(b)</bold>, <bold>(d)</bold> and <bold>(e)</bold> are an example of some intermediate steps in a global Monte Carlo localization process using the PW1 and 8,000 particles in <italic>laboratory 1</italic>, <bold>(c)</bold> error in location for the previous experiment and <bold>(f)</bold> error in orientation for the experiment.</p></caption>
<graphic xlink:href="sensors-10-11468f17.gif"/></fig>
<fig id="f18-sensors-10-11468" position="float">
<label>Figure 18.</label>
<caption>
<p><bold>(a)</bold> Trajectory average error in position and <bold>(b)</bold> orientation versus the number of particles M when using different weighting methods in <italic>laboratory 1</italic>.</p></caption>
<graphic xlink:href="sensors-10-11468f18.gif"/></fig>
<fig id="f19-sensors-10-11468" position="float">
<label>Figure 19.</label>
<caption>
<p>Trajectory average error in position versus associations number for all methods using 8.000 particles. <bold>(a)</bold> Tracking and <bold>(b)</bold> global localization in <italic>laboratory 1</italic>.</p></caption>
<graphic xlink:href="sensors-10-11468f19.gif"/></fig>
<table-wrap id="t1-sensors-10-11468" position="float">
<label>Table 1.</label>
<caption>
<p>Relevant parameters of the image sets used in the mapping experiments.</p></caption>
<table frame="box" rules="all">
<thead>
<tr>
<th align="center" valign="top"><bold>Environment</bold></th>
<th align="center" valign="top"><bold>Size (Images)</bold></th>
<th align="center" valign="top"><bold>Resolution</bold></th>
<th align="center" valign="top"><bold>Grid step</bold></th>
<th align="center" valign="top"><bold>Environment size</bold></th></tr></thead>
<tbody>
<tr>
<td align="center" valign="top"><bold>Laboratory 1</bold></td>
<td align="center" valign="top">5 × 10</td>
<td align="center" valign="top">56 × 256 pixels</td>
<td align="center" valign="top">1 m</td>
<td align="center" valign="top">6 × 11 m</td></tr>
<tr>
<td align="center" valign="top"><bold>Laboratory 2</bold></td>
<td align="center" valign="top">10 × 15</td>
<td align="center" valign="top">56 × 256 pixels</td>
<td align="center" valign="top">0.3 m</td>
<td align="center" valign="top">3.5 × 4.5 m</td></tr>
<tr>
<td align="center" valign="top"><bold>Office</bold></td>
<td align="center" valign="top">6 × 8</td>
<td align="center" valign="top">56 × 256 pixels</td>
<td align="center" valign="top">0.5 m</td>
<td align="center" valign="top">3.5 × 4.5 m</td></tr>
<tr>
<td align="center" valign="top"><bold>Hall</bold></td>
<td align="center" valign="top">12 × 9</td>
<td align="center" valign="top">56 × 256 pixels</td>
<td align="center" valign="top">0.1 m</td>
<td align="center" valign="top">1.3 × 1 m</td></tr>
<tr>
<td align="center" valign="top"><bold>Corridor 1</bold></td>
<td align="center" valign="top">11 × 6</td>
<td align="center" valign="top">56 × 256 pixels</td>
<td align="center" valign="top">0.2 m</td>
<td align="center" valign="top">2.4 × 1.5 m</td></tr>
<tr>
<td align="center" valign="top"><bold>Corridor 2</bold></td>
<td align="center" valign="top">35 × 10</td>
<td align="center" valign="top">56 × 256 pixels</td>
<td align="center" valign="top">0.1 m</td>
<td align="center" valign="top">3.6 × 1.1 m</td></tr></tbody></table></table-wrap></sec></back></article>
