<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!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" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Robot. AI</journal-id>
<journal-title>Frontiers in Robotics and AI</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Robot. AI</abbrev-journal-title>
<issn pub-type="epub">2296-9144</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/frobt.2016.00068</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Robotics and AI</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>An Odometry-Free Approach for Simultaneous Localization and Online Hybrid Map Building</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name><surname>Chin</surname> <given-names>Wei Hong</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="corresp" rid="cor1">&#x0002A;</xref>
<uri xlink:href="http://frontiersin.org/people/u/345922"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Loo</surname> <given-names>Chu Kiong</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Toda</surname> <given-names>Yuichiro</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Kubota</surname> <given-names>Naoyuki</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>Graduate School of System Design, Tokyo Metropolitan University</institution>, <addr-line>Tokyo</addr-line>, <country>Japan</country></aff>
<aff id="aff2"><sup>2</sup><institution>Faculty of Computer Science and Information Technology, University of Malaya</institution>, <addr-line>Kuala Lumpur</addr-line>, <country>Malaysia</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: S. M. N. Arosha Senanayake, Universiti Brunei Darussalam, Brunei Darussalam</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Shalabh Gupta, University of Connecticut, USA; Muhammad Arif, Umm Alqura University, Saudi Arabia</p></fn>
<corresp content-type="corresp" id="cor1">&#x0002A;Correspondence: Wei Hong Chin, <email>weihong118118&#x00040;gmail.com</email></corresp>
<fn fn-type="other" id="fn001"><p>Specialty section: This article was submitted to Sensor Fusion and Machine Perception, a section of the journal Frontiers in Robotics and AI</p></fn>
</author-notes>
<pub-date pub-type="epub">
<day>14</day>
<month>11</month>
<year>2016</year>
</pub-date>
<pub-date pub-type="collection">
<year>2016</year>
</pub-date><volume>3</volume>
<elocation-id>68</elocation-id>
<history>
<date date-type="received">
<day>29</day>
<month>04</month>
<year>2016</year>
</date>
<date date-type="accepted">
<day>24</day>
<month>10</month>
<year>2016</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2016 Chin, Loo, Toda and Kubota.</copyright-statement>
<copyright-year>2016</copyright-year>
<copyright-holder>Chin, Loo, Toda and Kubota</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/"><p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) or licensor are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p></license>
</permissions>
<abstract>
<p>In this article, we propose a new approach for mobile robot localization and hybrid map building simultaneously without using any odometry hardware system. The proposed method termed as Genetic Bayesian ARAM comprises two main components: (1) steady-state genetic algorithm (SSGA) for self-localization and occupancy grid map building and (2) Bayesian Adaptive Resonance Associative Memory (ARAM) for online topological map building. The model of the explored environment is formed as a hybrid representation, both topological and grid based, and it is incrementally constructed during the exploration process. During occupancy map building, the robot-estimated self-position is updated by SSGA. At the same time, the robot-estimated self-position is transmitted to Bayesian ARAM for topological map building and localization. The effectiveness of our proposed approach is validated by a number of standardized benchmark datasets and real experimental results carried on the mobile robot. Benchmark datasets are used to verify the proposed method capable of generating topological map in different environment conditions. Real robot experiment to verify the proposed method can be implemented in real world.</p>
</abstract>
<kwd-group>
<kwd>Bayesian</kwd>
<kwd>genetic algorithm</kwd>
<kwd>SLAM</kwd>
<kwd>topological map</kwd>
<kwd>hybrid map</kwd>
<kwd>mobile robot</kwd>
<kwd>navigation</kwd>
</kwd-group>
<counts>
<fig-count count="8"/>
<table-count count="8"/>
<equation-count count="20"/>
<ref-count count="22"/>
<page-count count="9"/>
<word-count count="6137"/>
</counts>
</article-meta>
</front>
<body>
<sec id="S1" sec-type="introduction">
<label>1</label> <title>Introduction</title>
<p>An autonomous mobile robot is defined as a robot that has the ability to navigate in an environment and execute desired works with little or no human guidance. Previous work in intelligent robotics has proposed multistrategy learning that integrated several inference types and/or computational mechanisms into one learning system (Michalski and Tecuci, <xref ref-type="bibr" rid="B14">1994</xref>). Examples consist of the integration of symbolic and numerical learning, hybrid computation of discrete and continuous spaces, integration of stochastic and deterministic heuristic searches, path planning and behavioral learning (Bianco and Cassinis, <xref ref-type="bibr" rid="B4">1996</xref>), and reinforcement learning that uses value and policy iteration.</p>
<p>An efficient autonomous robot should be able to estimate its location during navigation and travel from one place to another in order to complete certain tasks. Also, the robot should be able to generate the map of the traversed environment corresponding to its position and posture (mapping) and calculate its position and posture based on the generated map (localization). These two processes are interdependent and usually termed as simultaneous localization and mapping (SLAM) (Tomono and Yuta, <xref ref-type="bibr" rid="B20">2003</xref>; Thrun et al., <xref ref-type="bibr" rid="B18">2005</xref>), which is considered to be an example of a multistrategy learning method.</p>
<p>Various conventional approaches for SLAM were developed, for instance, extended Kalman filter (EKF) SLAM, visual SLAM, and graph SLAM. These methods can handle uncertainty, high convergence, and do not require odometry hardware system. On the one hand, the EKF SLAM approach using maximum likelihood data associations for online SLAM and the resulted feature-based maps are used with point landmarks. On the other hand, graph SLAM overcomes the full SLAM problem in offline by obtaining all data gathered such as the current time, e.g., all poses and all features in the map during map building (Folkesson and Christensen, <xref ref-type="bibr" rid="B9">2007</xref>; Kaess et al., <xref ref-type="bibr" rid="B11">2008</xref>). However, all these conventional methods are computationally expensive.</p>
<p>Topological approaches map the environment as a set of nodes and edges (Benjamin and Yung-Tai, <xref ref-type="bibr" rid="B3">1991</xref>). Nodes store information about the environment, while edges of the map contain robot&#x02019;s odometry information gathered during navigation. Thus, a topological map represents the environment by only storing information of crucial places and connections between these places that will be used for navigation.</p>
<p>Hybrid approaches combine the topological and metric mapping methods in order to retain the advantages of both methods and compensate for the negative ones. Thrun (<xref ref-type="bibr" rid="B16">1998</xref>) proposed a method that uses the Occupancy Grid method in building a metric map of the environments, and a topological map is a posterior calculated from the metric map. However, the accuracy and consistency of the map generated by this approach are affected by accumulated odometric error present in the metric map. In Taylor and Kriegman (<xref ref-type="bibr" rid="B15">1998</xref>), the environment is represented as a collection of local metric maps, all of which are stored as nodes in a global topological map. The node in the topological map of this approach stores a set of landmarks observed from the boundary of each obstacle detected by the robot and uses this information for navigation between nodes in the map in the later stage. This method neglects robot pose estimation entirely.</p>
<p>Recently, vision-based navigation system was introduced for hybrid map building (Cristforis et al., <xref ref-type="bibr" rid="B7">2015</xref>). However, this approach is based on teach-and-replay technique and requires odometry system for robot localization. Previous works such as Battesti et al. (<xref ref-type="bibr" rid="B1">2011</xref>) and Bazeille and Filliat (<xref ref-type="bibr" rid="B2">2011</xref>) used vision-based hybrid map building to create consistent topometric map and compensate odometry drift. However, these methods require robot odometry system for topometric map building.</p>
<p>In this article, we proposed a new approach that integrated our previous work SSGA (Toda et al., <xref ref-type="bibr" rid="B19">2012</xref>) and Bayesian ARAM with map maintenance for hybrid map building. The Bayesian ARAM with map maintenance is the extension of our previous work (Chin et al., <xref ref-type="bibr" rid="B5">2015</xref>) that is crucial for dealing with proliferation problem of nodes. The proposed method termed as Genetic Bayesian ARAM, which constructs map, contains both a metric and a topological representation. First, SSGA allows the robot to perform self-localization and metric mapping simultaneously based on occupancy grid mapping. Then, Bayesian ARAM utilizes the localization information from the metric map and sensory information from the explored environment to construct the topological map. Topological nodes represent distinct places, while edges connect nodes and store robot&#x02019;s bearing information such as orientation and direction. The metric grid map describes the explored environment outline for understanding of human operators and further operations. In addition, it also provides global position of robot for Bayesian ARAM to generate the topological map and overcome the online detection and recognition problem. With the topological map, the robot could perform localization and path planning without recalculating the entire metric grid map. In addition, previous works such as Duan et al. (<xref ref-type="bibr" rid="B8">2015</xref>) and Wu et al. (<xref ref-type="bibr" rid="B22">2013</xref>) have used genetic algorithm for SLAM purpose. Table <xref ref-type="table" rid="T1">1</xref> shows the difference between the previous two works and our proposed method.</p>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p><bold>Comparison between previous works and Genetic Bayesian ARAM</bold>.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left">Method and Feature</th>
<th align="left">Map</th>
<th align="left">Localization</th>
<th align="left">Path planning</th>
<th align="left">Implementation</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Wu et al. (<xref ref-type="bibr" rid="B22">2013</xref>)</td>
<td align="left">No</td>
<td align="left">Yes</td>
<td align="left">No</td>
<td align="left">Simulation</td>
</tr>
<tr>
<td align="left">Duan et al. (<xref ref-type="bibr" rid="B8">2015</xref>)</td>
<td align="left">No</td>
<td align="left">Yes</td>
<td align="left">No</td>
<td align="left">Simulation</td>
</tr>
<tr>
<td align="left">Genetic Bayesian ARAM</td>
<td align="left">Hybrid map</td>
<td align="left">Yes</td>
<td align="left">Yes (not cover in this paper)</td>
<td align="left">Simulation and robot implementation</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Contributions of this paper are: (i) it does not require odometry system such as encoder and GPS for robot position estimation; (ii) the unsupervised online learning feature enables the robot to build the topological metric map from scratch and maintain it naturally without any human interference; and (iii) it does not require any artificial marker or adjustment and complicated cognitive intelligence for operating in a natural environment. Section <xref ref-type="sec" rid="S2">2</xref> introduces the theoretical framework of the proposed simultaneous localization and hybrid map building approach. The experimental setup is explained in Section <xref ref-type="sec" rid="S3">3</xref>, and experimental results are discussed in Sections <xref ref-type="sec" rid="S4">4</xref> and <xref ref-type="sec" rid="S5">5</xref>. Finally, conclusions are presented in Section <xref ref-type="sec" rid="S6">6</xref>.</p>
</sec>
<sec id="S2">
<label>2</label> <title>Genetic Bayesian ARAM</title>
<p>Our proposed method termed as Genetic Bayesian ARAM is the integration of our previous works (Toda et al., <xref ref-type="bibr" rid="B19">2012</xref>; Chin et al., <xref ref-type="bibr" rid="B5">2015</xref>). In this paper, we have further improved our proposed method with map maintenance feature, which overcomes the proliferation problem of nodes. In our proposed hybrid mapping method, the <italic>notion</italic> of map is described by both a metric and a topological feature. On the metric side, the environment is represented by a global occupancy grid map. Steady-state genetic algorithm (SSGA) simultaneously performs self-localization and metric map building based on occupancy grid mapping.</p>
<p>On the other hand, Bayesian ARAM obtains robot&#x02019;s location from the metric mapping and sensory information to build the topological map. Bayesian ARAM continuously clusters sensory sources as nodes and creates edges to connect one another if the robot traverses between these nodes. Each of these connections contains robot&#x02019;s movement information, while nodes represent important places of the explored surroundings. The proposed method continuously updates the hybrid map representations with little or no human intervention. The overall process of our proposed framework is shown in Figure <xref ref-type="fig" rid="F1">1</xref>.</p>
<fig position="float" id="F1">
<label>Figure 1</label>
<caption><p><bold>Genetic Bayesian ARAM for hybrid map building process</bold>.</p></caption>
<graphic xlink:href="frobt-03-00068-g001.tif"/>
</fig>
<sec id="S2-1">
<label>2.1</label> <title>Metric Map Building</title>
<p>As stated in Section <xref ref-type="sec" rid="S1">1</xref>, we utilize the occupancy grid mapping (Thrun, <xref ref-type="bibr" rid="B17">2003</xref>; Lee and Chung, <xref ref-type="bibr" rid="B13">2009</xref>) for constructing the metric map. The theory of the occupancy grid map is shown in Figure <xref ref-type="fig" rid="F2">2</xref>.</p>
<fig position="float" id="F2">
<label>Figure 2</label>
<caption><p><bold>Definition of occupancy grid map</bold>.</p></caption>
<graphic xlink:href="frobt-03-00068-g002.tif"/>
</fig>
<p>The value of each individual cell is defined as follows:
<disp-formula id="E1"><label>(1)</label><mml:math id="M1"><mml:mtable columnalign="left" class="align"><mml:mtr><mml:mtd columnalign="right" class="align-odd"><mml:mtext>ma</mml:mtext><mml:msub><mml:mrow><mml:mtext>p</mml:mtext></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:mfenced separators="" open="{" close=""><mml:mrow><mml:mtable class="array"><mml:mtr><mml:mtd columnalign="left" class="array"><mml:mn>1</mml:mn><mml:mspace width="1em" class="quad"/></mml:mtd><mml:mtd columnalign="left" class="array"><mml:mtext>if occupied</mml:mtext></mml:mtd></mml:mtr><mml:mtr><mml:mtd columnalign="left" class="array"><mml:mn>0</mml:mn><mml:mo class="MathClass-punc">.</mml:mo><mml:mn>5</mml:mn><mml:mspace width="1em" class="quad"/></mml:mtd><mml:mtd class="array"><mml:mtext>if partially occupied</mml:mtext></mml:mtd></mml:mtr><mml:mtr><mml:mtd columnalign="left" class="array"><mml:mn>0</mml:mn><mml:mspace width="1em" class="quad"/></mml:mtd><mml:mtd class="array" columnalign="left"><mml:mtext>if unknown</mml:mtext></mml:mtd></mml:mtr><mml:mtr><mml:mtd columnalign="left" class="array"><mml:mo class="MathClass-bin">&#x02212;</mml:mo><mml:mn>1</mml:mn><mml:mspace width="1em" class="quad"/></mml:mtd><mml:mtd columnalign="left" class="array"><mml:mtext>if empty</mml:mtext></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mfenced></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
Initially, all cell values are set as 0. The measurement value is represented as (<italic>d<sub>i</sub></italic>, <italic>&#x003B8;<sub>i</sub></italic>), where <italic>i</italic>&#x02009;&#x0003D;&#x02009;1, 2,&#x02009;&#x02026;,&#x02009;<italic>M</italic>; <italic>i</italic>&#x02009;&#x0003D;&#x02009;1, 2,&#x02009;&#x02026;,&#x02009;<italic>L</italic>; <italic>d<sub>i</sub></italic> is the measurement of laser rangefinder; <italic>&#x003B8;<sub>i</sub></italic> is the intersection of the measured directions; <italic>M</italic> is the sum of all measured directions; and <italic>L<sub>i</sub></italic>&#x02009;&#x0003D;&#x02009;[<italic>&#x003B1;</italic><sup>Res</sup>&#x022C5;<italic>d<sub>i</sub></italic>] is the value of the generated map resolution.</p>
<p>The updating process is shown in Algorithm <xref ref-type="table" rid="AL1">1</xref> where (<italic>x<sub>p</sub></italic>, <italic>y<sub>p</sub></italic>) is the robot&#x02019;s position; <italic>r<sub>p</sub></italic> is the posture; <italic>d<sub>i</sub></italic> is the measured distance value obtained from the laser rangefinder in the <italic>i</italic>th direction; <italic>&#x003B8;<sub>i</sub></italic> is the angle of the measured direction; <italic>&#x003B1;</italic><sup>MAP</sup> is the scale factor for the grid mapping with respect to the real world; and <italic>f</italic> (&#x022C5;) in equation (4) is a function corresponding to IF&#x02013;THEN hypothesis as stated in Table <xref ref-type="table" rid="T2">2</xref>.</p>
<table-wrap position="float" id="AL1">
<label>Algorithm 1</label>
<caption><p><bold>Occupancy grid map update process</bold>.</p></caption>
<table frame="hsides" rules="groups">
<tbody>
<tr>
<td valign="top" align="center"><inline-graphic xlink:href="frobt-03-00068-at001.tif"/></td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap position="float" id="T2">
<label>Table 2</label>
<caption><p><bold>State transitions of map update</bold>.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="center" colspan="2">Condition<hr/></th>
<th align="center">Output</th>
</tr>
<tr>
<th align="left"><italic>j</italic></th>
<th align="center">map<sub>0</sub>(<italic>x, y</italic>)</th>
<th align="center"/>
</tr>
</thead>
<tbody>
<tr>
<td align="left"><italic>j</italic>&#x02009;&#x0003C;&#x02009;<italic>L</italic></td>
<td align="center">0</td>
<td align="center">&#x02212;1</td>
</tr>
<tr>
<td align="left"><italic>j</italic>&#x02009;&#x0003C;&#x02009;<italic>L</italic></td>
<td align="center">1</td>
<td align="center">0.5</td>
</tr>
<tr>
<td align="left"><italic>j</italic>&#x02009;&#x0003D;&#x02009;<italic>L</italic></td>
<td align="center">0</td>
<td align="center">1</td>
</tr>
<tr>
<td align="left"><italic>j</italic>&#x02009;&#x0003D;&#x02009;<italic>L</italic></td>
<td align="center">&#x02212;1</td>
<td align="center">0.5</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>We employ SSGA for the adjustment of the position and angle. In the evolution of robotics computing, genetic algorithms (GAs) have been adequately implemented to optimize the problem-solving ability. GAs, which are capable of generating an appropriate solution, not certainly an ideal one, require less computational effort. SSGA replicates the continuous model of the generation that excludes and produces some individuals for every generation. A successor solution consists of numerical parameters or updated value of the current position (<italic>g<sub>k,x</sub></italic>, <italic>g<sub>k,y</sub></italic>) and rotation (<italic>g<sub>k,r</sub></italic>).</p>
<p>In the learning process, only a few of current solutions are substituted by the successor candidates that are produced by the crossover and mutation processes. In this experiment, we utilize the elitist crossover and adaptive mutation. Elitist crossover irregularly chooses one candidate and produces a candidate by integrating genetic information from the chosen candidate and the best candidate to achieve suitable solutions promptly.</p>
<p>Then, the generated individual is updated through the following adaptive mutation as follows:
<disp-formula id="E2"><label>(5)</label><mml:math id="M7"><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>y</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>r</mml:mi></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo class="MathClass-rel">&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>y</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>r</mml:mi></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo class="MathClass-bin">&#x0002B;</mml:mo><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:msup><mml:mrow><mml:mn>&#x003B1;</mml:mn></mml:mrow><mml:mrow><mml:mtext>SSGA</mml:mtext></mml:mrow></mml:msup><mml:mo class="MathClass-bin">&#x022C5;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mtext>max</mml:mtext></mml:mrow></mml:msub><mml:mo class="MathClass-bin">&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mtext>max</mml:mtext></mml:mrow></mml:msub><mml:mo class="MathClass-bin">&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mtext>min</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo class="MathClass-bin">&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mn>&#x003B2;</mml:mn></mml:mrow><mml:mrow><mml:mtext>SSGA</mml:mtext></mml:mrow></mml:msup></mml:mrow></mml:mfenced><mml:mo class="MathClass-bin">&#x022C5;</mml:mo><mml:mi>N</mml:mi><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo class="MathClass-punc">,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:math></disp-formula>
where <italic>f<sub>k</sub></italic> is the fitness value of the <italic>k</italic>th individual; <italic>f</italic> <sub>max</sub> and <italic>f</italic> <sub>min</sub> are the maximum and minimum fitness values in the population; <italic>N</italic>(0, 1) shows a normal random value; and <italic>&#x003B1;</italic><sup>SSGA</sup> and <italic>&#x003B2;</italic><sup>SSGA</sup> are the coefficient and offset accordingly. Equation (<xref ref-type="disp-formula" rid="E6">6</xref>) is used to determine the fitness value of the <italic>k</italic>th candidate&#x02019;s result.</p>
<p>The localization process is shown in Algorithm <xref ref-type="table" rid="AL2">2</xref>.
<disp-formula id="E3"><label>(6)</label><mml:math id="M8"><mml:mi mathvariant="italic">fi</mml:mi><mml:msubsup><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mtext>Loc</mml:mtext></mml:mrow></mml:msubsup><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:mrow><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>M</mml:mi></mml:munderover><mml:mrow><mml:mtext>&#x02009;</mml:mtext></mml:mrow></mml:mstyle></mml:mrow><mml:mtext>ma</mml:mtext><mml:msub><mml:mrow><mml:mtext>p</mml:mtext></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>L</mml:mi></mml:mrow></mml:msub><mml:mo class="MathClass-punc">,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>L</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:math></disp-formula></p>
<table-wrap position="float" id="AL2">
<label>Algorithm 2</label>
<caption><p><bold>SSGA for localization</bold>.</p></caption>
<table frame="hsides" rules="groups">
<tbody>
<tr>
<td valign="top" align="center"><inline-graphic xlink:href="frobt-03-00068-at002.tif"/></td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="S2-2">
<label>2.2</label> <title>Topological Map Building</title>
<p>The MBARAM builds the topological map starting with one node (category) at the first step. Next, the map updates continuously based on the robot location generated by SSGA and sensory information gathered from robot&#x02019;s sensors. The map update is shown in Algorithm <xref ref-type="table" rid="AL3">3</xref>.</p>
<table-wrap position="float" id="AL3">
<label>Algorithm 3</label>
<caption><p><bold>Topological map building</bold>.</p></caption>
<table frame="hsides" rules="groups">
<tbody>
<tr>
<td valign="top" align="center"><inline-graphic xlink:href="frobt-03-00068-at003.tif"/></td>
</tr>
</tbody>
</table>
</table-wrap>
<sec id="S2-2-1">
<label>2.2.1</label> <title>Node Definition</title>
<p>Places we mentioned previously are defined as Bayesian ART categories that represent the environment where the robot is placed. Bayesian ART category is determined through categorization of sensors data. Each node contains a robot location <inline-formula><mml:math id="M9"><mml:mover accent="true"><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mo class="MathClass-op">&#x02192;</mml:mo></mml:mover></mml:math></inline-formula> encoded from SSGA. It has a multidimensional Gaussian component such as mean vector <inline-formula><mml:math id="M10"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mn>&#x003BC;</mml:mn></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, covariance matrix <inline-formula><mml:math id="M11"><mml:mrow><mml:msub><mml:mover accent='true'><mml:mo>&#x03A3;</mml:mo><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and prior probability <inline-formula><mml:math id="M12"><mml:mover accent="true"><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:math></inline-formula>. The node definition is entirely dependent on the robot&#x02019;s sensing abilities and does not require human being to define the place meaning. This helps the robot to recognize places easily from sensory information.</p>
</sec>
<sec id="S2-2-2">
<label>2.2.2</label> <title>Topological Map Learning and Update</title>
<p>The algorithm consists of three core process (Chin et al., <xref ref-type="bibr" rid="B6">2016</xref>), namely, &#x0201C;node competition,&#x0201D; &#x0201C;node matching (vigilance test),&#x0201D; and &#x0201C;node learning.&#x0201D;</p>
<list list-type="simple">
<list-item><label>(1)</label> <p>&#x0201C;<italic>Node Competition</italic>&#x0201D;: all current nodes are competing to each other for representing a sensor reading pattern. Equation (<xref ref-type="disp-formula" rid="E7">7</xref>)
shows the computation of the <italic>a posteriori</italic> probability of the <italic>j</italic>th node for describing the <italic>M</italic>-dimensional input pattern <italic>x</italic>.
<disp-formula id="E4"><label>(7)</label><mml:math id="M13"><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mn>&#x0007C;</mml:mn><mml:mi>x</mml:mi></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:mfrac><mml:mrow><mml:mover accent='true'><mml:mi>p</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mn>&#x0007C;</mml:mn><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>c</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:mrow><mml:mtext>&#x02009;</mml:mtext></mml:mrow></mml:mstyle><mml:mover accent='true'><mml:mi>p</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mn>&#x0007C;</mml:mn><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:math></disp-formula>
where <italic>N<sub>cat</sub></italic> is the node quantity in the map and <inline-formula><mml:math id="M14"><mml:mover accent="true"><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:math></inline-formula> is the predicted prior probability of the <italic>j</italic>th node. The likelihood of <italic>w<sub>j</sub></italic> with respect to <bold><italic>x</italic></bold> is predicted using all patterns that have already been correlated with the multivariate Gaussian node <italic>w<sub>j</sub></italic>:
<disp-formula id="E5"><label>(8)</label><mml:math id="M15"><mml:mspace width="0.3em" class="thinspace"/><mml:mspace width="0.3em" class="thinspace"/><mml:mover accent='true'><mml:mi>p</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mn>&#x0007C;</mml:mn><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow><mml:mtext>&#x02009;</mml:mtext><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:mtext>&#x02009;</mml:mtext><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:mo>&#x003C0;</mml:mo></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>M</mml:mi><mml:mo class="MathClass-bin">&#x02215;</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mn>&#x0007C;</mml:mn><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mo class="MathClass-op">&#x003A3;</mml:mo></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mn>&#x0007C;</mml:mn></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo class="MathClass-bin">&#x02215;</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mfrac><mml:mo class="MathClass-bin">&#x000D7;</mml:mo><mml:mtext>exp</mml:mtext><mml:mrow><mml:mo class="MathClass-open">&#x0007B;</mml:mo><mml:mrow><mml:mo class="MathClass-bin">&#x02212;</mml:mo><mml:mn>0</mml:mn><mml:mo class="MathClass-punc">.</mml:mo><mml:mn>5</mml:mn><mml:msup><mml:mrow><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo class="MathClass-bin">&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mn>&#x003BC;</mml:mn></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mo class="MathClass-op">&#x003A3;</mml:mo></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mo class="MathClass-bin">&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo class="MathClass-bin">&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mn>&#x003BC;</mml:mn></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow><mml:mo class="MathClass-close">&#x0007D;</mml:mo></mml:mrow></mml:math></disp-formula>
where <inline-formula><mml:math id="M16"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mn>&#x003BC;</mml:mn></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula><mml:math id="M17"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mo class="MathClass-op">&#x003A3;</mml:mo></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> are the predicted mean and covariance matrix of the <italic>j</italic>th node.</p>
<p>If the algorithm receives K sensory sources for training, then the <italic>M<sub>j</sub></italic> for every node is:
<disp-formula id="E6"><label>(9)</label><mml:math id="M18"><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:mrow><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>K</mml:mi></mml:munderover><mml:mrow><mml:mtext>&#x02009;</mml:mtext></mml:mrow></mml:mstyle></mml:mrow><mml:msub><mml:mrow><mml:mn>&#x003B1;</mml:mn></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo class="MathClass-open">[</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mn>&#x0007C;</mml:mn><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow><mml:mo class="MathClass-close">]</mml:mo></mml:mrow></mml:math></disp-formula>
<disp-formula id="E7"><label>(10)</label><mml:math id="M19"><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:mrow><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>K</mml:mi></mml:munderover><mml:mrow><mml:mtext>&#x02009;</mml:mtext></mml:mrow></mml:mstyle></mml:mrow><mml:msub><mml:mrow><mml:mn>&#x003B1;</mml:mn></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mfenced separators="" open="[" close="]"><mml:mrow><mml:mfrac><mml:mrow><mml:mover accent='true'><mml:mi>p</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mn>&#x0007C;</mml:mn><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>c</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:mrow><mml:mtext>&#x02009;</mml:mtext></mml:mrow></mml:mstyle><mml:mover accent='true'><mml:mi>p</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mn>&#x0007C;</mml:mn><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mfenced></mml:math></disp-formula>
where
<disp-formula id="E8"><label>(11)</label><mml:math id="M20"><mml:mtable columnalign="left" class="align"><mml:mtr><mml:mtd columnalign="right" class="align-odd"><mml:mover accent='true'><mml:mi>p</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mn>&#x0007C;</mml:mn><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mtd><mml:mtd class="align-even"><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:mo>&#x003C0;</mml:mo></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>M</mml:mi><mml:mo class="MathClass-bin">&#x02215;</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mn>&#x0007C;</mml:mn><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mo class="MathClass-op">&#x003A3;</mml:mo></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mn>&#x0007C;</mml:mn></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo class="MathClass-bin">&#x02215;</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mfrac><mml:mo class="MathClass-bin">&#x000D7;</mml:mo><mml:mtext>exp</mml:mtext><mml:mrow><mml:mo class="MathClass-open">&#x0007B;</mml:mo><mml:mrow><mml:mo class="MathClass-bin">&#x02212;</mml:mo><mml:mtext></mml:mtext><mml:mn>0</mml:mn><mml:mo class="MathClass-punc">.</mml:mo><mml:mn>5</mml:mn><mml:msup><mml:mrow><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo class="MathClass-bin">&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mn>&#x003BC;</mml:mn></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mo class="MathClass-op">&#x003A3;</mml:mo></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mo class="MathClass-bin">&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo class="MathClass-bin">&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mn>&#x003BC;</mml:mn></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow><mml:mo class="MathClass-close">&#x0007D;</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
and <italic>&#x003B1;<sub>k</sub></italic> is the impact factor for every sensory channel; the sum of <italic>&#x003B1;<sub>k</sub></italic> is always equal to 1.</p>
<p>The winning node <bold><italic>J</italic></bold> is the node that has the maximum <italic>a posteriori</italic> probability (MAP):
<disp-formula id="E9"><label>(12)</label><mml:math id="M21"><mml:mi>J</mml:mi><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:mtext>arg max</mml:mtext><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:math></disp-formula>
</p></list-item>
<list-item><label>(2)</label> <p>&#x0201C;<italic>Node Matching</italic> (Vigilance Test)&#x0201D;: this process is to assure that the winner node has enough confidence for representing the particular place that the robot is currently situated. The vigilance test restrains the <italic>J</italic>th node hypervolume <italic>S<sub>J</sub></italic> to the maximal hypervolume allowed for a node <italic>S</italic><sub>MAX</sub>:
<disp-formula id="E10"><label>(13)</label><mml:math id="M22"><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>J</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo class="MathClass-rel">&#x02264;</mml:mo><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mtext>MAX</mml:mtext><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></disp-formula>
where the determinant of the Gaussian covariance matrix is the hypervolume. This hypervolume will be decreased to the product of the variances each for a dimension if it is a diagonal covariance matrix:
<disp-formula id="E11"><label>(14)</label><mml:math id="M23"><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>J</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mi>&#x0225C;</mml:mi><mml:mtext>det</mml:mtext><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mo class="MathClass-op">&#x003A3;</mml:mo></mml:mrow><mml:mrow><mml:mi>J</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:mrow><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>d</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>M</mml:mi></mml:munderover><mml:mrow><mml:mtext>&#x02009;</mml:mtext></mml:mrow></mml:mstyle></mml:mrow><mml:msubsup><mml:mrow><mml:mn>&#x003C3;</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></disp-formula>
The learning process is started if the winner node satisfies equation (<xref ref-type="disp-formula" rid="E13">13</xref>). If the winner node failed the test, then it will be eliminated from the competition for this sensory input. Then, the algorithm continues searching for another node until one complies with equation (<xref ref-type="disp-formula" rid="E13">13</xref>). If all existing nodes failed the vigilance test, then it means that the robot is situated at a new location. Next, a new node will be added to the network, which stores the sensory pattern, an initial covariance matrix <inline-formula><mml:math id="M24"><mml:msub><mml:mrow><mml:mo class="MathClass-op">&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="italic">init</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, and robot location for describing this new location. An edge will be added to link it with the previous winner node.</p></list-item>
<list-item><label>(3)</label> <p>&#x0201C;<italic>Node Learning</italic>&#x0201D;: If the chosen node satisfies equation (<xref ref-type="disp-formula" rid="E13">13</xref>), the node components will be updated as below:
<disp-formula id="E12"><label>(15)</label><mml:math id="M25"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mn>&#x003BC;</mml:mn></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>J</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:mtext>new</mml:mtext></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>J</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>J</mml:mi></mml:mrow></mml:msub><mml:mo class="MathClass-bin">&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfrac><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mn>&#x003BC;</mml:mn></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>J</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:mtext>old</mml:mtext></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo class="MathClass-bin">&#x0002B;</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>J</mml:mi></mml:mrow></mml:msub><mml:mo class="MathClass-bin">&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfrac><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></disp-formula>
<disp-formula id="E13"><label>(16)</label><mml:math id="M26"><mml:mtable columnalign="left" class="align"><mml:mtr><mml:mtd columnalign="right" class="align-odd"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mo class="MathClass-op">&#x003A3;</mml:mo></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>J</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:mtext>new</mml:mtext></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>J</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>J</mml:mi></mml:mrow></mml:msub><mml:mo class="MathClass-bin">&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfrac><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mo class="MathClass-op">&#x003A3;</mml:mo></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>J</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:mtext>old</mml:mtext></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo class="MathClass-bin">&#x0002B;</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>J</mml:mi></mml:mrow></mml:msub><mml:mo class="MathClass-bin">&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfrac><mml:mspace width="0.3em" class="thinspace"/><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo class="MathClass-bin">&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mn>&#x003BC;</mml:mn></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>J</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:mtext>new</mml:mtext></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mfenced><mml:mo class="MathClass-bin">&#x000D7;</mml:mo><mml:mtext></mml:mtext><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo class="MathClass-bin">&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mn>&#x003BC;</mml:mn></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>J</mml:mi><mml:mo class="MathClass-punc">,</mml:mo><mml:mi>k</mml:mi><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:mtext>new</mml:mtext></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow><mml:msup><mml:mtext>&#x02009;</mml:mtext><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mo class="MathClass-bin">&#x02217;</mml:mo><mml:mi>I</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E14"><label>(17)</label><mml:math id="M27"><mml:mover accent="true"><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>J</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>J</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:mrow><mml:mtext>&#x02009;</mml:mtext></mml:mrow></mml:mstyle><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:math></disp-formula>
<disp-formula id="E15"><label>(18)</label><mml:math id="M28"><mml:msubsup><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mtext>new</mml:mtext></mml:mrow></mml:msubsup><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:msubsup><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mtext>old</mml:mtext></mml:mrow></mml:msubsup><mml:mo class="MathClass-bin">&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:math></disp-formula>
where <italic>N<sub>J</sub></italic> is the frequency of the <bold><italic>J</italic></bold>th node that chose to be winner for learning during node competition before the present input data are transmitted to the network. <bold><italic>I</italic></bold> is the identity matrix.</p></list-item></list>
</sec>
<sec id="S2-2-3">
<label>2.2.3</label> <title>Topological Map Preservation</title>
<p>During the robot navigation, the topological map algorithm will be adding nodes continuously according to the changes in environment. This shows that the robot constantly maintains and updates the map representation for the traversed environment. This characteristic is the nature of the algorithm.</p>
<p>The drawback for this map preservation is that the robot will recognize <italic>all</italic> environmental changes during navigation and generate uncontrollable nodes for searching and updating. Therefore, the list of nodes must be managed for navigation and mapping in a natural environment for a long period of time. In this paper, we have implemented the Instantaneous Topological Map (ITM) technique (Jockusch and Ritter, <xref ref-type="bibr" rid="B10">1999</xref>) for map maintenance. This is also an extension of our previous work in Chin et al. (<xref ref-type="bibr" rid="B5">2015</xref>).</p>
<p>Figure <xref ref-type="fig" rid="F3">3</xref> shows the node elimination mechanism. First, the algorithm scans and deletes nodes whenever a new node is added to the topological map. If nodes are situated within the Thales sphere of the new node, then these nodes will be deleted from the map. Thales sphere is defined as radius <italic>e</italic><sub>max</sub>, and the mathematical equation is shown in equation (<xref ref-type="disp-formula" rid="E19">19</xref>). In addition, edges that are connected to deleted nodes are either updated or removed. For instance, traverse information for the new edge can be determined from the new connection.
<disp-formula id="E16"><label>(19)</label><mml:math id="M29"><mml:mtext>Dis</mml:mtext><mml:msub><mml:mrow><mml:mtext>t</mml:mtext></mml:mrow><mml:mrow><mml:mtext>node</mml:mtext><mml:mo class="MathClass-punc">,</mml:mo><mml:mtext>new</mml:mtext></mml:mrow></mml:msub><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:msqrt><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mtext>node</mml:mtext><mml:mo class="MathClass-punc">,</mml:mo><mml:mtext>x</mml:mtext></mml:mrow></mml:msub><mml:mo class="MathClass-bin">&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mn>&#x003BC;</mml:mn></mml:mrow><mml:mrow><mml:mtext>new</mml:mtext><mml:mo class="MathClass-punc">,</mml:mo><mml:mtext>x</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo class="MathClass-bin">&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mtext>node</mml:mtext><mml:mo class="MathClass-punc">,</mml:mo><mml:mtext>y</mml:mtext></mml:mrow></mml:msub><mml:mo class="MathClass-bin">&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mn>&#x003BC;</mml:mn></mml:mrow><mml:mrow><mml:mtext>new</mml:mtext><mml:mo class="MathClass-punc">,</mml:mo><mml:mtext>y</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:msqrt></mml:math></disp-formula></p>
<fig position="float" id="F3">
<label>Figure 3</label>
<caption><p><bold>Topological map preservation</bold>. <bold>(A)</bold> Unwanted nodes within the given radius <italic>e<sub>max</sub></italic> are eliminated. <bold>(B)</bold> Transitions in or out from removed nodes are relinked to maintain the connectivity of the map.</p></caption>
<graphic xlink:href="frobt-03-00068-g003.tif"/>
</fig>
</sec>
<sec id="S2-2-4">
<label>2.2.4</label> <title>Self-Localization</title>
<p>After building the topological map, node matching and localization are accomplished by measuring sensor information at robot&#x02019;s current location with destination nodes in the map. If the match value <italic>G<sub>j</sub></italic> is higher than vigilance parameter, the robot is localized and vice versa. However, the Genetic Bayesian ARAM has to deal with perceptual uncertainty; this method is useful when two or more nodes have similar sensory information. To differentiate these nodes, ideothetic information (robot location) has to be included. For example, assume that there are two nodes that have identical sensor data <inline-formula><mml:math id="M30"><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mtext>laser</mml:mtext></mml:mrow></mml:msubsup><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:msubsup><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mrow><mml:mtext>laser</mml:mtext></mml:mrow></mml:msubsup></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:math></inline-formula>; the equations are given as follows:
<disp-formula id="E17"><label>(20)</label><mml:math id="M31"><mml:msub><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:msub><mml:mrow><mml:mn>&#x003B1;</mml:mn></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mtext>laser front</mml:mtext></mml:mrow></mml:msubsup></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow><mml:mo class="MathClass-bin">&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mn>&#x003B1;</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mtext>laser back</mml:mtext></mml:mrow></mml:msubsup></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow><mml:mo class="MathClass-bin">&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mn>&#x003B1;</mml:mn></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mtext>robot location</mml:mtext></mml:mrow></mml:msubsup></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:math></disp-formula>
<disp-formula id="E18"><label>(21)</label><mml:math id="M32"><mml:msub><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi></mml:mrow></mml:msub><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:msub><mml:mrow><mml:mn>&#x003B1;</mml:mn></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mrow><mml:mtext>laser front</mml:mtext></mml:mrow></mml:msubsup></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow><mml:mo class="MathClass-bin">&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mn>&#x003B1;</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mrow><mml:mtext>laser back</mml:mtext></mml:mrow></mml:msubsup></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow><mml:mo class="MathClass-bin">&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mn>&#x003B1;</mml:mn></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mrow><mml:mtext>robot location</mml:mtext></mml:mrow></mml:msubsup></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:math></disp-formula>
However, the ideothetic information (odometry) will not be the same for each node. Therefore, <inline-formula><mml:math id="M33"><mml:msubsup><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mtext>robot location</mml:mtext></mml:mrow></mml:msubsup><mml:mo class="MathClass-rel">&#x02260;</mml:mo><mml:mtext></mml:mtext><mml:msubsup><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mrow><mml:mtext>robot location</mml:mtext></mml:mrow></mml:msubsup></mml:math></inline-formula> and lead to <italic>G<sub>A</sub></italic>&#x02009;&#x02260;&#x02009;<italic>G<sub>B</sub></italic>. Figure <xref ref-type="fig" rid="F4">4</xref> illustrates the concept of the node localization.</p>
<fig position="float" id="F4">
<label>Figure 4</label>
<caption><p><bold>In the topological map, each node contains a set of sensor data and a particular robot location</bold>. The robot&#x02019;s metric position can be located by recognizing the node with respect to the current sensory information.</p></caption>
<graphic xlink:href="frobt-03-00068-g004.tif"/>
</fig>
<p>In our experiments, we always obtain sensory (from sensors) information around the current robot location, ideothetic information (from SSGA), and destination nodes information. We then use equation (<xref ref-type="disp-formula" rid="E8">8</xref>) to determine <italic>G<sub>destination</sub></italic>. If <italic>G<sub>destination</sub></italic> is higher than the vigilance parameter, the robot reaches the destination point.</p>
</sec>
</sec>
</sec>
<sec id="S3">
<label>3</label> <title>Experimental Setup</title>
<p>This section shows the setup of experiment, while Section <xref ref-type="sec" rid="S4">4</xref> shows the results collected from the simulation and real robot implementation. The hybrid map is formed by the occupancy grid map and topological map. For the occupancy grid map, white color represents empty space, gray color represents unknown space, and black color represents obstacles or boundary detected, whereas the topological map represents set of nodes and links. Red color circles at the (<italic>x</italic>, <italic>y</italic>) coordinates and black color lines represent nodes and links in the map, respectively.</p>
<p>According to Vigdor and Lerner (<xref ref-type="bibr" rid="B21">2007</xref>) and Chin et al. (<xref ref-type="bibr" rid="B6">2016</xref>), we have mentioned the optimized range of parameters&#x02019; setting. Therefore, we follow the parameters&#x02019; setup mentioned in paper (Vigdor and Lerner, <xref ref-type="bibr" rid="B21">2007</xref>; Chin et al., <xref ref-type="bibr" rid="B6">2016</xref>) because the authors have determined the optimized value for the Bayesian ART parameters; therefore, we will not cover in details in this paper.</p>
<p>First, we set the Thales sphere radius <italic>e<sub>max</sub></italic> as 0.3 and the initial covariance matrix to be spherical <inline-formula><mml:math id="M34"><mml:msub><mml:mrow><mml:mo class="MathClass-op">&#x003A3;</mml:mo></mml:mrow><mml:mrow><mml:mtext>init</mml:mtext></mml:mrow></mml:msub><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:msubsup><mml:mrow><mml:mn>&#x003C3;</mml:mn></mml:mrow><mml:mrow><mml:mtext>init</mml:mtext></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mi>I</mml:mi></mml:math></inline-formula>, where <italic>I</italic> is the identity matrix; hence, the parameter <inline-formula><mml:math id="M35"><mml:msubsup><mml:mrow><mml:mn>&#x003C3;</mml:mn></mml:mrow><mml:mrow><mml:mtext>init</mml:mtext></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo class="MathClass-rel">&#x0226A;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mtext>MAX</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo class="MathClass-bin">&#x02215;</mml:mo><mml:mi>M</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> [equations (<xref ref-type="disp-formula" rid="E13">13</xref>) and (<xref ref-type="disp-formula" rid="E14">14</xref>)] to ensure that the <inline-formula><mml:math id="M36"><mml:msubsup><mml:mrow><mml:mn>&#x003C3;</mml:mn></mml:mrow><mml:mrow><mml:mtext>init</mml:mtext></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> is always lower than the <italic>S</italic><sub>MAX</sub>. Then, we set the maximal category hypervolume parameter value (<italic>S</italic><sub>MAX</sub>) as 1. Next, the value of the initial parameter <inline-formula><mml:math id="M37"><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mn>&#x003C3;</mml:mn></mml:mrow><mml:mrow><mml:mtext>init</mml:mtext></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo class="MathClass-rel">&#x0226A;</mml:mo><mml:msup><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo class="MathClass-bin">&#x02215;</mml:mo><mml:mn>682</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:math></inline-formula> was set to 0.01. Note that 682 is the laser scanner scans. Finally, we set the <inline-formula><mml:math id="M38"><mml:mover accent="true"><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mo class="MathClass-op">&#x0005E;</mml:mo></mml:mover><mml:msub><mml:mrow><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mtext>init</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> to 1 for generating the deterministic region instead of probabilistic region map.</p>
<p>As mentioned in the previous section, we have configured Genetic Bayesian ARAM to two channels for attaining laser rangefinder data and robot location in the experiment. Thus, the importance factor <italic>&#x003B1;</italic> for laser rangefinder channel was set to 0.8 because its data are the main dominant for map building. Last, the importance factor <italic>&#x003B1;</italic> was set to 0.2 for robot location channel to deal with perceptual ambiguities of sensory information but not the environment condition. For SSGA variables&#x02019; setup, we set parent candidates (<italic>&#x003BC;</italic>)&#x02009;&#x0003D;&#x02009;1000 and offspring candidates (<italic>&#x003BB;</italic>)&#x02009;&#x0003D;&#x02009;500.</p>
</sec>
<sec id="S4">
<label>4</label> <title>Results</title>
<p>In Section <xref ref-type="sec" rid="S4-1">4.1</xref>, the performance of Genetic Bayesian ARAM in a hybrid map building was validated using several benchmark datasets. The benchmark datasets were produced by the University of Freiburg, Department of Computer Science, with the objective for contributing benchmarking tools to robotics community.</p>
<p>For the physical robot implementation, the front laser rangefinder data, rear laser rangefinder data, and robot odometry system that was installed on the robot are transmitted to Genetic Bayesian ARAM for map building and learning. Section <xref ref-type="sec" rid="S4-3">4.3</xref> explains details of the setup.</p>
<sec id="S4-1">
<label>4.1</label> <title>Simulation Result</title>
<p>In simulation experiments, we input 3 benchmark datasets that gathered in Intel research lab, MIT CSAIL building, and Freiburg indoor building (K&#x000FC;mmerle et al., <xref ref-type="bibr" rid="B12">2009</xref>). Figure <xref ref-type="fig" rid="F5">5</xref> shows the exact grid map and robot navigation path for each dataset.</p>
<fig position="float" id="F5">
<label>Figure 5</label>
<caption><p><bold>Simulation benchmark datasets</bold>. <bold>(A)</bold> MIT CSAIL Building. <bold>(B)</bold> Intel Research Lab. <bold>(C)</bold> Freiburg.</p></caption>
<graphic xlink:href="frobt-03-00068-g005.tif"/>
</fig>
<p>Figure <xref ref-type="fig" rid="F5">5</xref> illustrates Genetic Bayesian ARAM hybrid map learning result. All the generated hybrid maps consist of grid occupancy map and topological map. As shown in Figure <xref ref-type="fig" rid="F6">6</xref>, all metric maps are almost identical to the benchmark datasets. In addition, all topological maps are almost similar to the robot traverse direction. Each node in the topological map consists of a robot metric location and a set of sensor data that represent the particular region of the environment.</p>
<fig position="float" id="F6">
<label>Figure 6</label>
<caption><p><bold>Simulation result</bold>. <bold>(A)</bold> MIT CSAIL Building. <bold>(B)</bold> Intel Research Lab. <bold>(C)</bold> Freiburg.</p></caption>
<graphic xlink:href="frobt-03-00068-g006.tif"/>
</fig>
</sec>
<sec id="S4-2">
<label>4.2</label> <title>Node Localization</title>
<p>The efficiency of the hybrid maps generated by Genetic Bayesian ARAM is validated by node localization process. For this, the laser scanner datasets are transmitted to the corresponding built map and then equation (<xref ref-type="disp-formula" rid="E7">7</xref>) is used to find out the best candidate for localization. If the best candidate&#x02019;s weight and the robot&#x02019;s current sensor data fulfill equation (<xref ref-type="disp-formula" rid="E13">13</xref>), it means that the best candidate node is localized.</p>
<p>Next, equations (<xref ref-type="disp-formula" rid="E19">22</xref>) and (<xref ref-type="disp-formula" rid="E20">23</xref>) are required to measure the Euclidean distance between the winning node and the robot current location to ensure that the robot is localized. The results of node localization are shown in Table <xref ref-type="table" rid="T3">3</xref>; the average rate of successful node localization is 92.7%.
<disp-formula id="E19"><label>(22)</label><mml:math id="M39"><mml:mtext>Success localization</mml:mtext><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:msqrt><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mtext>node</mml:mtext></mml:mrow></mml:msub><mml:mtext>&#x02009;</mml:mtext><mml:mo class="MathClass-bin">&#x02212;</mml:mo><mml:mtext>&#x02009;</mml:mtext><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mtext>target</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mtext>&#x02009;</mml:mtext><mml:mo class="MathClass-bin">&#x0002B;</mml:mo><mml:mtext>&#x02009;</mml:mtext><mml:msup><mml:mrow><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mtext>node</mml:mtext></mml:mrow></mml:msub><mml:mtext>&#x02009;</mml:mtext><mml:mo class="MathClass-bin">&#x02212;</mml:mo><mml:mtext>&#x02009;</mml:mtext><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mtext>target</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:msqrt><mml:mtext>&#x02009;</mml:mtext><mml:mo class="MathClass-rel">&#x0003C;</mml:mo><mml:mtext>&#x02009;</mml:mtext><mml:mn>1</mml:mn></mml:math></disp-formula>
<disp-formula id="E20"><label>(23)</label><mml:math id="M40"><mml:mtext>Fail localization</mml:mtext><mml:mo class="MathClass-rel">&#x0003D;</mml:mo><mml:msqrt><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mtext>node</mml:mtext></mml:mrow></mml:msub><mml:mtext>&#x02009;</mml:mtext><mml:mo class="MathClass-bin">&#x02212;</mml:mo><mml:mtext>&#x02009;</mml:mtext><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mtext>target</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mtext>&#x02009;</mml:mtext><mml:mo class="MathClass-bin">&#x0002B;</mml:mo><mml:mtext>&#x02009;</mml:mtext><mml:msup><mml:mrow><mml:mrow><mml:mo class="MathClass-open">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mtext>node</mml:mtext></mml:mrow></mml:msub><mml:mtext>&#x02009;</mml:mtext><mml:mo class="MathClass-bin">&#x02212;</mml:mo><mml:mtext>&#x02009;</mml:mtext><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mtext>target</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo class="MathClass-close">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:msqrt><mml:mtext>&#x02009;</mml:mtext><mml:mo class="MathClass-rel">&#x0003E;</mml:mo><mml:mtext>&#x02009;</mml:mtext><mml:mn>1</mml:mn></mml:math></disp-formula></p>
<table-wrap position="float" id="T3">
<label>Table 3</label>
<caption><p><bold>Node localization rate for benchmark datasets</bold>.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left">Datasets</th>
<th align="center">Localization rate (%)</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">MIT CSAIL Building</td>
<td align="center">93.6</td>
</tr>
<tr>
<td align="left">Intel Research Lab</td>
<td align="center">91.2</td>
</tr>
<tr>
<td align="left">Freiburg</td>
<td align="center">93.3</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="S4-3">
<label>4.3</label> <title>Physical Robot Implementation</title>
<p>For physical robot implementation, we used the robot with omnidirectional movement and attached with a Hokuyo UTM-30LX laser rangefinder as shown in Figure <xref ref-type="fig" rid="F7">7</xref>A. Sensors signal were sampled at 10&#x02009;Hz. All processing and recording were operated on Intel Core i5 1.4-GHz processor. The mobile robot navigated locally by means of a motion control algorithm, which played the role of both wall following and obstacle avoidance. Table <xref ref-type="table" rid="T4">4</xref> shows the robot&#x02019;s specification.</p>
<fig position="float" id="F7">
<label>Figure 7</label>
<caption><p><bold>Real robot experimental setup</bold>. <bold>(A)</bold> Omnidirectional mobile. <bold>(B)</bold> Experimental corridor.</p></caption>
<graphic xlink:href="frobt-03-00068-g007.tif"/>
</fig>
<table-wrap position="float" id="T4">
<label>Table 4</label>
<caption><p><bold>Specifications of omnidirectional mobile robot</bold>.</p></caption>
<table frame="hsides" rules="groups">
<tbody>
<tr>
<td align="left">Diameter</td>
<td align="center">300&#x02009;mm</td>
</tr>
<tr>
<td align="left">Height</td>
<td align="center">177&#x02009;mm</td>
</tr>
<tr>
<td align="left">Maximal speed</td>
<td align="center">1.5&#x02009;km/h</td>
</tr>
<tr>
<td align="left">Operating time</td>
<td align="center">1&#x02009;h</td>
</tr>
<tr>
<td align="left">Communication</td>
<td align="center">Wi-Fi (2.4&#x02009;GHz)</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The real robot experiments were conducted in the university laboratory corridor as shown in Figure <xref ref-type="fig" rid="F7">7</xref>B. The width and length of the place are 5&#x02009;m&#x02009;&#x000D7;&#x02009;40&#x02009;m. The environment is dynamic with pedestrian moving around, furniture and other equipment relocation, door open or close, and different lighting conditions. The experiment environment was set to be as natural as possible to verify that our proposed method is able to handle environment condition changes without any presumptions or alterations.</p>
<p>Then, we commanded the robot to traverse our laboratory room and corridor for two times to verify the hybrid map building. For the first exploration, the learning algorithm was without map maintenance, whereas for the second exploration, the learning algorithm was with map maintenance. Note that the two exploration paths are identical. During the navigation, the robot performed self-localization and built the grid map by using laser rangefinder measurement data. Then, robots&#x02019; position was used by Bayesian ARAM for topological map building. Figure <xref ref-type="fig" rid="F8">8</xref> shows the resulted hybrid map built by the proposed method with map maintenance. The final hybrid map contained a grid map representing the outline of explored corridor and our laboratory room. At the same time, the topological map contained 164 nodes to represent the traversed place. For the proposed algorithm without map maintenance, the topological map contained 461 nodes. The result shows that the map maintenance feature reduces 65% of number of nodes to represent the same explored environment.</p>
<fig position="float" id="F8">
<label>Figure 8</label>
<caption><p><bold>Final hybrid map that represents the explored environment</bold>.</p></caption>
<graphic xlink:href="frobt-03-00068-g008.tif"/>
</fig>
</sec>
<sec id="S4-4">
<label>4.4</label> <title>Robot Localization</title>
<p>After the hybrid map is generated, we commanded the robot to go to the starting point and then explore the corridor for five times to further verify the localization capability. The robot kept examining nodes in the hybrid map with respect to the current sensor data for localization. If the best candidate&#x02019;s weight and robot&#x02019;s current sensory information fulfilled equation (<xref ref-type="disp-formula" rid="E19">22</xref>), the localization of robot was successful and vice versa.</p>
<p>Table <xref ref-type="table" rid="T5">5</xref> shows the result of localization rate for each loop. The successful localization rate was generally 92.3%.</p>
<table-wrap position="float" id="T5">
<label>Table 5</label>
<caption><p><bold>Node localization rate for real robot implementation</bold>.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left">Traverse loop</th>
<th align="center">Localization rate (%)</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">1</td>
<td align="center">92.8</td>
</tr>
<tr>
<td align="left">2</td>
<td align="center">91.7</td>
</tr>
<tr>
<td align="left">3</td>
<td align="center">92.4</td>
</tr>
<tr>
<td align="left">4</td>
<td align="center">92.4</td>
</tr>
<tr>
<td align="left">5</td>
<td align="center">92.1</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec id="S5" sec-type="discussion">
<label>5</label> <title>Discussion</title>
<p>We have shown that the Genetic Bayesian ARAM framework is capable of generating a metric&#x02013;topological hybrid map incrementally using nearly unprocessed sensory information and without any feature extraction and predefined knowledge about the environment. The algorithm updates both the metric map and creates nodes incrementally to represent the explored environment as regions in real time.</p>
<p>In all the experiments, SSGA continuously performed localization and metric mapping without using any odometry system. Then, Bayesian ARAM uses these localization data and laser scanner data for topological map building. The localization data are important for distinguishing places that have similar sensor data, which is important to overcome the online topological nodes&#x02019; localization. After building the map, the robot can perform path planning by just comparing its current location with topological nodes without recalculating the grid map. These features help to compensate the weakness of metric map and topological map.</p>
<p>In addition, the experiment showed that the map maintenance algorithm greatly reduces the number of nodes that represent the explored environment. This method also reduces the amount of memory required for storing the map, especially when the area is very large.</p>
<p>According to the node matching and localization results, the robot failed for localization occasionally during navigation because it encountered sudden change in the environment, which caused none of topological nodes match with these sensor data. This problem can be overcome by measuring few time stamps of sensor at the same position with the topological nodes in the map. Another reason is that the robot was unable to differentiate similar sensor data at particular places. As our proposed method can take more than one sensory source, this issue can be solved by integrating camera input with certain image processing techniques to help on disambiguate similar sensory information at different locations.</p>
</sec>
<sec id="S6">
<label>6</label> <title>Conclusion</title>
<p>In this article, we proposed a new framework for simultaneous localization and hybrid map building without any odometry hardware. The experiments presented show the feasibility of the proposed approach. The proposed framework was verified through simulation of standardized benchmark datasets and real robot application. Both metric and topological maps were generated as expected, correctly representing the environment according to our proposed method. The algorithm does not require high-level cognitive knowledge or any artificial landmark to construct the hybrid map, which makes it ready to work in a natural environment. In addition, the robot can perform self-localization automatically without any odometry system.</p>
<p>Future work in this subject will include an analysis of effectiveness of the value of framework parameters. Besides, we will extend our method for reinforcement learning capability for path planning. Last, we will conduct more experiments in different kinds of indoor and outdoor environment for further verification.</p>
</sec>
<sec id="S7">
<title>Author Contributions</title>
<p>WC is the main contributor for this research and paper writing. YT is the contributor for developing steady-state genetic algorithm and grid map building. Dr. CL and Dr. NK are the supervisors.</p>
</sec>
<sec id="S8">
<title>Conflict of Interest Statement</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
</body>
<back>
<ack>
<p>This research is partially subsidized by &#x0201C;HIR grant UM.C/625/1/HIR/MOHE/FCSIT/10&#x0201D; from the University of Malaya.</p>
</ack>
<ref-list>
<title>References</title>
<ref id="B1"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Battesti</surname> <given-names>E.</given-names></name> <name><surname>Bazeille</surname> <given-names>S.</given-names></name> <name><surname>Filliat</surname> <given-names>D.</given-names></name></person-group> (<year>2011</year>). &#x0201C;<article-title>Qualitative localization using vision and odometry for path following in topo-metric maps</article-title>,&#x0201D; in <conf-name>European Conference on Mobile Robotics (ECMR)</conf-name> (<conf-loc>Sweden</conf-loc>: <conf-sponsor>IEEE</conf-sponsor>), <fpage>303</fpage>&#x02013;<lpage>308</lpage>.</citation></ref>
<ref id="B2"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Bazeille</surname> <given-names>S.</given-names></name> <name><surname>Filliat</surname> <given-names>D.</given-names></name></person-group> (<year>2011</year>). &#x0201C;<article-title>Incremental topo-metric SLAM using vision and robot odometry</article-title>,&#x0201D; in <conf-name>2011 IEEE International Conference on Robotics and Automation (ICRA)</conf-name> (<conf-loc>Shanghai</conf-loc>: <conf-sponsor>IEEE</conf-sponsor>), <fpage>4067</fpage>&#x02013;<lpage>4073</lpage>.</citation></ref>
<ref id="B3"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Benjamin</surname> <given-names>K.</given-names></name> <name><surname>Yung-Tai</surname> <given-names>B.</given-names></name></person-group> (<year>1991</year>). <article-title>A robot exploration and mapping strategy based on a semantic hierarchy of spatial representations</article-title>. <source>J. Robot. Autonomous Syst.</source> <volume>8</volume>, <fpage>47</fpage>&#x02013;<lpage>63</lpage>.<pub-id pub-id-type="doi">10.1016/0921-8890(91)90014-C</pub-id></citation></ref>
<ref id="B4"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Bianco</surname> <given-names>G.</given-names></name> <name><surname>Cassinis</surname> <given-names>R.</given-names></name></person-group> (<year>1996</year>). &#x0201C;<article-title>Multi-strategic approach for robot path planning</article-title>,&#x0201D; in <conf-name>Proceedings of the First Euromicro Workshop on Advanced Mobile Robot, 1996</conf-name> (<conf-loc>Kaiserslautern</conf-loc>), <fpage>108</fpage>&#x02013;<lpage>115</lpage>.</citation></ref>
<ref id="B5"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Chin</surname> <given-names>W. H.</given-names></name> <name><surname>Loo</surname> <given-names>C. K.</given-names></name> <name><surname>Kubota</surname> <given-names>N.</given-names></name></person-group> (<year>2015</year>). &#x0201C;<article-title>Multi-channel Bayesian adaptive resonance associative memory for environment learning and topological map building</article-title>,&#x0201D; in <conf-name>2015 International Conference on Informatics, Electronics Vision (ICIEV)</conf-name> (<conf-loc>Fukuoka</conf-loc>), <fpage>1</fpage>&#x02013;<lpage>5</lpage>.</citation></ref>
<ref id="B6"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chin</surname> <given-names>W. H.</given-names></name> <name><surname>Loo</surname> <given-names>C. K.</given-names></name> <name><surname>Seera</surname> <given-names>M.</given-names></name> <name><surname>Kubota</surname> <given-names>N.</given-names></name> <name><surname>Toda</surname> <given-names>Y.</given-names></name></person-group> (<year>2016</year>). <article-title>Multi-channel bayesian adaptive resonance associate memory for on-line topological map building</article-title>. <source>Appl. Soft. Comput.</source> <volume>38</volume>, <fpage>269</fpage>&#x02013;<lpage>280</lpage>.<pub-id pub-id-type="doi">10.1016/j.asoc.2015.09.031</pub-id></citation></ref>
<ref id="B7"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Cristforis</surname> <given-names>P. D.</given-names></name> <name><surname>Nitsche</surname> <given-names>M.</given-names></name> <name><surname>Krajnk</surname> <given-names>T.</given-names></name> <name><surname>Pire</surname> <given-names>T.</given-names></name> <name><surname>Mejail</surname> <given-names>M.</given-names></name></person-group> (<year>2015</year>). <article-title>Hybrid vision-based navigation for mobile robots in mixed indoor/outdoor environments</article-title>. <source>Pattern Recognit. Lett.</source> <volume>53</volume>, <fpage>118</fpage>&#x02013;<lpage>128</lpage>.<pub-id pub-id-type="doi">10.1016/j.patrec.2014.10.010</pub-id></citation></ref>
<ref id="B8"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Duan</surname> <given-names>J.-M.</given-names></name> <name><surname>Liu</surname> <given-names>D.</given-names></name> <name><surname>Yu</surname> <given-names>H.-X.</given-names></name> <name><surname>Shi</surname> <given-names>H.</given-names></name></person-group> (<year>2015</year>). &#x0201C;<article-title>An improved Fastslam algorithm for autonomous vehicle based on the strong tracking square root central difference Kalman filter</article-title>,&#x0201D; in <conf-name>Proceedings of the 2015 IEEE 18th International Conference on Intelligent Transportation Systems, ITSC&#x02019;15</conf-name> (<conf-sponsor>IEEE Computer Society</conf-sponsor>), <fpage>693</fpage>&#x02013;<lpage>698</lpage>.</citation></ref>
<ref id="B9"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Folkesson</surname> <given-names>J.</given-names></name> <name><surname>Christensen</surname> <given-names>H.</given-names></name></person-group> (<year>2007</year>). <article-title>Closing the loop with graphical slam</article-title>. <source>IEEE Trans. Robot.</source> <volume>23</volume>, <fpage>731</fpage>&#x02013;<lpage>741</lpage>.<pub-id pub-id-type="doi">10.1109/TRO.2007.900608</pub-id></citation></ref>
<ref id="B10"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Jockusch</surname> <given-names>J.</given-names></name> <name><surname>Ritter</surname> <given-names>H.</given-names></name></person-group> (<year>1999</year>). &#x0201C;<article-title>An instantaneous topological mapping model for correlated stimuli</article-title>,&#x0201D; in <conf-name>International Joint Conference on Neural Networks, 1999. IJCNN&#x02019;99</conf-name>, Vol. <volume>1</volume>, <fpage>529</fpage>&#x02013;<lpage>534</lpage>.</citation></ref>
<ref id="B11"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kaess</surname> <given-names>M.</given-names></name> <name><surname>Ranganathan</surname> <given-names>A.</given-names></name> <name><surname>Dellaert</surname> <given-names>F.</given-names></name></person-group> (<year>2008</year>). <article-title>iSAM: incremental smoothing and mapping</article-title>. <source>IEEE Trans. Robot.</source> <volume>24</volume>, <fpage>1365</fpage>&#x02013;<lpage>1378</lpage>.<pub-id pub-id-type="doi">10.1109/TRO.2008.2006706</pub-id></citation></ref>
<ref id="B12"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>K&#x000FC;mmerle</surname> <given-names>R.</given-names></name> <name><surname>Steder</surname> <given-names>B.</given-names></name> <name><surname>Dornhege</surname> <given-names>C.</given-names></name> <name><surname>Ruhnke</surname> <given-names>M.</given-names></name> <name><surname>Grisetti</surname> <given-names>G.</given-names></name> <name><surname>Stachniss</surname> <given-names>C.</given-names></name> <etal/></person-group> (<year>2009</year>). <article-title>On measuring the accuracy of slam algorithms</article-title>. <source>Auton. Robots</source> <volume>27</volume>, <fpage>387</fpage>&#x02013;<lpage>407</lpage>.<pub-id pub-id-type="doi">10.1007/s10514-009-9155-6</pub-id></citation></ref>
<ref id="B13"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lee</surname> <given-names>K.</given-names></name> <name><surname>Chung</surname> <given-names>W. K.</given-names></name></person-group> (<year>2009</year>). <article-title>Effective maximum likelihood grid map with conflict evaluation filter using sonar sensors</article-title>. <source>IEEE Trans. Robot.</source> <volume>25</volume>, <fpage>887</fpage>&#x02013;<lpage>901</lpage>.<pub-id pub-id-type="doi">10.1109/TRO.2009.2024783</pub-id></citation></ref>
<ref id="B14"><citation citation-type="book"><person-group person-group-type="author"><name><surname>Michalski</surname> <given-names>R.</given-names></name> <name><surname>Tecuci</surname> <given-names>G.</given-names></name></person-group> (<year>1994</year>). <source>Machine Learning: A Multistrategy Approach</source>. <publisher-name>Morgan Kaufmann</publisher-name>.</citation></ref>
<ref id="B15"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Taylor</surname> <given-names>C. J.</given-names></name> <name><surname>Kriegman</surname> <given-names>D. J.</given-names></name></person-group> (<year>1998</year>). <article-title>Vision-based motion planning and exploration algorithms for mobile robots</article-title>. <source>IEEE Trans. Robot. Automation</source> <volume>14</volume>, <fpage>417</fpage>&#x02013;<lpage>426</lpage>.<pub-id pub-id-type="doi">10.1109/70.678451</pub-id></citation></ref>
<ref id="B16"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Thrun</surname> <given-names>S.</given-names></name></person-group> (<year>1998</year>). <article-title>Learning metric-topological maps for indoor mobile robot navigation</article-title>. <source>Artif. Intell.</source> <volume>99</volume>, <fpage>21</fpage>&#x02013;<lpage>71</lpage>.<pub-id pub-id-type="doi">10.1016/S0004-3702(97)00078-7</pub-id></citation></ref>
<ref id="B17"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Thrun</surname> <given-names>S.</given-names></name></person-group> (<year>2003</year>). <article-title>Learning occupancy grid maps with forward sensor models</article-title>. <source>Auton. Robots</source> <volume>15</volume>, <fpage>111</fpage>&#x02013;<lpage>127</lpage>.<pub-id pub-id-type="doi">10.1023/A:1025584807625</pub-id></citation></ref>
<ref id="B18"><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> (<year>2005</year>). <source>Probabilistic Robotics (Intelligent Robotics and Autonomous Agents)</source>. <publisher-name>The MIT Press</publisher-name>.</citation></ref>
<ref id="B19"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Toda</surname> <given-names>Y.</given-names></name> <name><surname>Suzuki</surname> <given-names>S.</given-names></name> <name><surname>Kubota</surname> <given-names>N.</given-names></name></person-group> (<year>2012</year>). &#x0201C;<article-title>Evolutionary computation for intelligent self-localization in multiple mobile robots based on slam</article-title>,&#x0201D; in <conf-name>Proceedings of the 5th International Conference on Intelligent Robotics and Applications &#x02013; Volume Part I</conf-name> (<conf-loc>Montreal</conf-loc>: <conf-sponsor>Springer-Verlag</conf-sponsor>), <fpage>229</fpage>&#x02013;<lpage>239</lpage>.</citation></ref>
<ref id="B20"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Tomono</surname> <given-names>M.</given-names></name> <name><surname>Yuta</surname> <given-names>S.</given-names></name></person-group> (<year>2003</year>). &#x0201C;<article-title>Object-based localization and mapping using loop constraints and geometric prior knowledge</article-title>,&#x0201D; in <conf-name>IEEE International Conference on Robotics and Automation, 2003. Proceedings. ICRA&#x02019;03</conf-name>, Vol. <volume>1</volume> (<conf-loc>Karlsruhe</conf-loc>: <conf-sponsor>IEEE</conf-sponsor>), <fpage>862</fpage>&#x02013;<lpage>867</lpage>.</citation></ref>
<ref id="B21"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Vigdor</surname> <given-names>B.</given-names></name> <name><surname>Lerner</surname> <given-names>B.</given-names></name></person-group> (<year>2007</year>). <article-title>The bayesian artmap</article-title>. <source>IEEE Trans. Neural Netw.</source> <volume>18</volume>, <fpage>1628</fpage>&#x02013;<lpage>1644</lpage>.<pub-id pub-id-type="doi">10.1109/TNN.2007.900234</pub-id></citation></ref>
<ref id="B22"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Wu</surname> <given-names>C.-H.</given-names></name> <name><surname>Chen</surname> <given-names>Y.-H.</given-names></name> <name><surname>Lee</surname> <given-names>Y.-Y.</given-names></name> <name><surname>Tsai</surname> <given-names>C.-H.</given-names></name></person-group> (<year>2013</year>). &#x0201C;<article-title>A fast genetic slam approach for mobile robots</article-title>,&#x0201D; in <conf-name>Proceedings of the 2013 14th ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing, SNPD&#x02019;13</conf-name> (<conf-loc>Honolulu</conf-loc>: <conf-sponsor>IEEE Computer Society</conf-sponsor>), <fpage>563</fpage>&#x02013;<lpage>568</lpage>.</citation></ref>
</ref-list>
</back>
</article>