<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">JCC</journal-id><journal-title-group><journal-title>Journal of Computer and Communications</journal-title></journal-title-group><issn pub-type="epub">2327-5219</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/jcc.2016.411001</article-id><article-id pub-id-type="publisher-id">JCC-70458</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject></subj-group></article-categories><title-group><article-title>
 
 
  Image-Based Mobile Robot Guidance System by Using Artificial Ceiling Landmarks
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Ching-Long</surname><given-names>Shih</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Yu-Te</surname><given-names>Ku</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>Department of Electrical Engineering, National Taiwan University of Science and Technology, Taiwan</addr-line></aff><pub-date pub-type="epub"><day>08</day><month>09</month><year>2016</year></pub-date><volume>04</volume><issue>11</issue><fpage>1</fpage><lpage>14</lpage><history><date date-type="received"><day>July</day>	<month>20,</month>	<year>2016</year></date><date date-type="rev-recd"><day>Accepted:</day>	<month>September</month>	<year>4,</year>	</date><date date-type="accepted"><day>September</day>	<month>8,</month>	<year>2016</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  This paper presents an image-based mobile robot guidance system in an indoor space with installed artificial ceiling landmarks. The overall system, including an omni-directional mobile robot motion control, landmark image processing and image recognition, is implemented on a single FPGA chip with one CMOS image sensor. The proposed feature representation of the artificial ceiling landmarks is invariant with respect to rotation and translation. One unique feature of the proposed ceiling landmark recognition system is that the feature points of landmarks are determined by topological information from both the foreground and background. To enhance recognition accuracy, landmark classification is performed after the mobile robot is moved to a position such that the ceiling landmark is located in the upright- top corner position of the robot’s camera image. The accuracy of the proposed artificial ceiling landmark recognition system using the nearest neighbor classification is 100% in our experiments.
 
</p></abstract><kwd-group><kwd>Mobile Robot Guidance System</kwd><kwd> Artificial Ceiling Landmark</kwd><kwd> Image Processing</kwd><kwd> NCC (Nearest Neighbor Classification)</kwd><kwd> FPGA</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>The basic functions of AGV and mobile robots are automated navigation to recognized sites to stop and perform tasks. Thus, navigation and guidance control are a couple of the most critical parts in mobile robot systems. An essential issue of mobile robot navigation and ocalization focuses on the process for a robot to identify its position. A variety of AGV and mobile robot navigation technologies have been used in the past, including tape, electromagnetic (e.g. RFID), optical, laser, inertial, GPS, ultrasonic, vision and image recognition guidance [<xref ref-type="bibr" rid="scirp.70458-ref1">1</xref>] . The accuracy and limitations of these sensors are quite different from one to another. Among these sensors, cameras, which are known for their lower prices, ease of use and ability to capture in abundance information, have been increasingly applied to vision-based mobile robot localization. Due to their flexibility and setup without requirement for guidance paths, vision and image based recognition systems have become the trend in mobile robot guidance technology [<xref ref-type="bibr" rid="scirp.70458-ref2">2</xref>] [<xref ref-type="bibr" rid="scirp.70458-ref3">3</xref>] .</p><p>The simultaneous localization and mapping (SLAM) algorithm approach has drawn great attention among researchers in the mobile robotics field [<xref ref-type="bibr" rid="scirp.70458-ref3">3</xref>] . The SLAM algorithm assists autonomous robots navigation in large environments where precise maps are not available. In SLAM, a map of an unknown environment is built from a sequence of landmark measurements performed by a moving robot. SIFT/SURF algorithms have successfully extracted feature information from an unknown environment and created the environmental map based on the feature points [<xref ref-type="bibr" rid="scirp.70458-ref4">4</xref>] [<xref ref-type="bibr" rid="scirp.70458-ref5">5</xref>] . Most SLAM algorithms rely on unique environmental features or use artificial landmarks captured in camera images. The extracted features of landmarks are used to increase the accuracy of the estimated position of the robot. Robot position is calibrated through the following steps: artificial landmark recognition, current position calculation, navigation towards the landmark until directly underneath, and calibration of the robot pose using information from the landmark.</p><p>Artificial landmarks may carry additional information about the environment and may be used to assist a robot in localization and navigation. Artificial landmarks are commonly used for navigation and map building in indoor environments. Compared with natural landmarks, artificial landmarks are designed with particular colors and shapes to greatly reduce identification difficulty. This approach may increase the accuracy in localization and positioning for vision based mobile robot guidance systems. Landmark recognition is of great significance to robotic autonomous navigation or task execution. One commonly used artificial landmark is a visually printed landmark, such as a QR code. There are several ways to detect a QR code in an image. The detection quality turns out to be very sensitive to the distance and the angle between the camera and QR code plane [<xref ref-type="bibr" rid="scirp.70458-ref6">6</xref>] . Robot navigation control scheme based on dead-reckoning localization and refined by artificial ceiling landmarks setup in the environment for indoor positioning and navigation has been reported in [<xref ref-type="bibr" rid="scirp.70458-ref7">7</xref>] . Robot localization could be refined using fixed/static artificial QR-code landmarks setup in the environment for indoor positioning and navigation [<xref ref-type="bibr" rid="scirp.70458-ref8">8</xref>] . Since it is difficult to position the robot precisely perpendicularly to the artificial landmark using a single camera, the system has position localization error. A visual odometer technique based on artificial landmarks is described in [<xref ref-type="bibr" rid="scirp.70458-ref9">9</xref>] ; however, it is still subject to accumulated error.</p><p>To overcome some difficulties of previous works in [<xref ref-type="bibr" rid="scirp.70458-ref6">6</xref>] - [<xref ref-type="bibr" rid="scirp.70458-ref9">9</xref>] , this paper presents an image-based mobile robot localization and guidance system in an indoor space with installed artificial ceiling landmarks. Most previous approaches on artificial landmark pattern matching focus only on foreground information. In the contrary, the proposed ceiling landmark recognition system is that the feature points of landmarks are determined by topological information from both foreground and background. This work focuses on an entirely FPGA based mobile robot guidance control system with only one CMOS image sensor. To enhance recognition accuracy, landmark recognition/classifi- cation is performed after the mobile robot has moved to a position such that the ceiling landmark is located in the upright-top position of the robot’s camera image. The proposed system achieved recognition accuracy of 100% for 36 digit and upper case alphabet ceiling landmarks using the nearest neighbor classification. One requirement of the system is that one of the ceiling landmarks on the (route) map is visible to the robot’s camera at power up for localization.</p><p>The contributions of this work are as follows: 1) Only one CMOS image camera is required for the proposed mobile robot guidance control system. 2) The proposed foreground/background feature representation of the artificial ceiling landmarks is invariant with respect to rotation and translation. 3) The overall system, including omni- directional mobile robot motion control and landmark image processing and recognition, is implemented on a single FPGA chip.</p></sec><sec id="s2"><title>2. Omni-Directional Mobile Robot System</title><p>The mobile robot system coordinate systems, as shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>, include the world coordinate frame<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x2.png" xlink:type="simple"/></inline-formula>, robot coordinate frame<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x3.png" xlink:type="simple"/></inline-formula>, camera pixel coordinate frame (c, r), and landmark coordinate Frame (u, v). Let <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x4.png" xlink:type="simple"/></inline-formula> be the position and orientation of the robot frame with respect to the world coordinate. The camera system has a pixel resolution of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x5.png" xlink:type="simple"/></inline-formula> with 1.225 mm per pixel. The origin of robot coordinate is located at the center of the LCD image screen, pixel coordinate (400, 240). The transformation from robot coordinate to world coordinate is</p><disp-formula id="scirp.70458-formula41"><label>(1)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730425x6.png"  xlink:type="simple"/></disp-formula><p>and the transformation from camera coordinate to robot coordinate is</p><disp-formula id="scirp.70458-formula42"><label>(2)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730425x7.png"  xlink:type="simple"/></disp-formula><fig id="fig1"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref></label><caption><title> Coordinate systems of an image-based omni-directional mobile robot and ceiling land- marks</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x8.png"/></fig><p>The mobile robot consists of three omni-directional driving wheels with radius R, and its body platform is circular with radius W. Let<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x9.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x10.png" xlink:type="simple"/></inline-formula>, be the angular speed of each driving wheel, the velocity kinematic equation of the mobile robot is</p><disp-formula id="scirp.70458-formula43"><label>(3)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730425x11.png"  xlink:type="simple"/></disp-formula><p>and the inverse velocity kinematic equation is</p><disp-formula id="scirp.70458-formula44"><label>(4)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730425x12.png"  xlink:type="simple"/></disp-formula><p>The velocity kinematics between the world frame and robot frame is</p><disp-formula id="scirp.70458-formula45"><label>(5)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730425x13.png"  xlink:type="simple"/></disp-formula></sec><sec id="s3"><title>3. Ceiling Landmark Feature Points</title><p>A ceiling landmark is an artificial character symbol that consists of blue foreground and yellow background as Shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>. Let F and B denote the center of foreground (blue) and background (yellow) pixels respectively; it is assumed that<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x14.png" xlink:type="simple"/></inline-formula>. The origin of the landmark (u, v) frame is located at the center of the line from F to B, the u-axis points from F to B, and the v-axis is perpendicular to the u-axis in <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x15.png" xlink:type="simple"/></inline-formula> rotation. There are 4 feature points <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x16.png" xlink:type="simple"/></inline-formula> used to encode each ceiling landmark. <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x17.png" xlink:type="simple"/></inline-formula></p><fig id="fig2"  position="float"><label><xref ref-type="fig" rid="fig2">Figure 2</xref></label><caption><title> Landmark feature points in the object frame</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x18.png"/></fig><p>and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x19.png" xlink:type="simple"/></inline-formula> are centers of the foreground and background pixels respectively of the landmark in the first and fourth quarters of the (u, v) frame. <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x19.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x20.png" xlink:type="simple"/></inline-formula>and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x19.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x20.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x21.png" xlink:type="simple"/></inline-formula> are centers of foreground and background pixels respectively of the landmark in the second and third quarters of the (u, v) frame.</p><p>The computation of feature points in the landmark frame is straight forward as follows. First, ceiling landmark foreground and background centers <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x22.png" xlink:type="simple"/></inline-formula> in the robot frame,</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x23.png" xlink:type="simple"/></inline-formula>and<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x23.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x24.png" xlink:type="simple"/></inline-formula>,</p><p>and its feature points <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x25.png" xlink:type="simple"/></inline-formula> (also in the robot coordinate frame),</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x26.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x26.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x27.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x26.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x27.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x28.png" xlink:type="simple"/></inline-formula>and<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x26.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x27.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x28.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x29.png" xlink:type="simple"/></inline-formula>,</p><p>are obtained from the camera image processing system. The origin and orientation of the landmark frame with respect to the robot coordinate can then be expressed by</p><disp-formula id="scirp.70458-formula46"><label>(6)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730425x30.png"  xlink:type="simple"/></disp-formula><p>and</p><disp-formula id="scirp.70458-formula47"><label>(7)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730425x31.png"  xlink:type="simple"/></disp-formula><p>The feature points <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x32.png" xlink:type="simple"/></inline-formula> in (u, v) coordinate can then be computed by</p><p><img data-original="http://html.scirp.org/file/1-1730425x33.png" />,<img data-original="http://html.scirp.org/file/1-1730425x34.png" /> (8)</p><p>where<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x35.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x35.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x36.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x35.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x36.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x37.png" xlink:type="simple"/></inline-formula>and<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x35.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x36.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x37.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x38.png" xlink:type="simple"/></inline-formula>.</p><p>The procedure of building the landmark feature template table is as follows. Navigate the mobile robot underneath each ceiling landmark, such that the robot frame origin is at the center of each landmark's foreground/background center points, F and B. Rotate the mobile robot in place so that the robot frame’s x-axis is alignment with the world frame's x-axis. Record landmark’s orientation angle <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x39.png" xlink:type="simple"/></inline-formula> and feature points<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x39.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x40.png" xlink:type="simple"/></inline-formula>, for<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x39.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x40.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x41.png" xlink:type="simple"/></inline-formula>. Repeat the above procedure for each landmark. These landmark feature points are not only used for identifying landmarks, but also for calibrating the robot frame's orientation with respect to the world frame.</p><p><xref ref-type="fig" rid="fig3">Figure 3</xref> shows 36 experimental ceiling landmarks including digits 0 - 9 and alphabets A~Z. <xref ref-type="fig" rid="fig4">Figure 4</xref> shows the feature points of each ceiling landmark in <xref ref-type="fig" rid="fig3">Figure 3</xref>. <xref ref-type="table" rid="table1"><xref ref-type="table" rid="table">Table </xref>1</xref> shows the nearest neighbor for each landmark and the 1-norm distance of the difference between each landmark’s and its nearest neighbor’s feature points, where 1-norm distance is the sum of absolute values. It is noted that the feature points of a landmark depend on both foreground and back ground shape patterns. Therefore, it is</p><fig id="fig3"  position="float"><label><xref ref-type="fig" rid="fig3">Figure 3</xref></label><caption><title> Experimental ceiling landmarks, digits 0 - 9 and alphabets A~Z</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x42.png"/></fig><fig id="fig4"  position="float"><label><xref ref-type="fig" rid="fig4">Figure 4</xref></label><caption><title> Feature points <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x44.png" xlink:type="simple"/></inline-formula> of 36 ceiling landmarks in <xref ref-type="fig" rid="fig3">Figure 3</xref>, small circles denote<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x44.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x45.png" xlink:type="simple"/></inline-formula></title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x43.png"/></fig><table-wrap-group id="1"><label><xref ref-type="table" rid="table1"><xref ref-type="table" rid="table">Table </xref>1</xref></label><caption><title> The nearest neighbor (NN) and distance of digits 0 - 9 and alphabets A~Z</title></caption><table-wrap id="1_1"><table><tbody><thead><tr><th align="center" valign="middle" >Landmark</th><th align="center" valign="middle" >0</th><th align="center" valign="middle" >1</th><th align="center" valign="middle" >2</th><th align="center" valign="middle" >3</th><th align="center" valign="middle" >4</th><th align="center" valign="middle" >5</th><th align="center" valign="middle" >6</th><th align="center" valign="middle" >7</th><th align="center" valign="middle" >8</th><th align="center" valign="middle" >9</th><th align="center" valign="middle" >A</th><th align="center" valign="middle" >B</th></tr></thead><tr><td align="center" valign="middle" >NN</td><td align="center" valign="middle" >I</td><td align="center" valign="middle" >S</td><td align="center" valign="middle" >Q</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >E</td><td align="center" valign="middle" >G</td><td align="center" valign="middle" >U</td><td align="center" valign="middle" >C</td><td align="center" valign="middle" >E</td><td align="center" valign="middle" >E</td><td align="center" valign="middle" >B</td><td align="center" valign="middle" >J</td></tr><tr><td align="center" valign="middle" >Distance</td><td align="center" valign="middle" >207</td><td align="center" valign="middle" >175</td><td align="center" valign="middle" >74</td><td align="center" valign="middle" >198</td><td align="center" valign="middle" >60</td><td align="center" valign="middle" >152</td><td align="center" valign="middle" >95</td><td align="center" valign="middle" >107</td><td align="center" valign="middle" >107</td><td align="center" valign="middle" >61</td><td align="center" valign="middle" >173</td><td align="center" valign="middle" >63</td></tr></tbody></table></table-wrap><table-wrap id="1_2"><table><tbody><thead><tr><th align="center" valign="middle" >Landmark</th><th align="center" valign="middle" >C</th><th align="center" valign="middle" >D</th><th align="center" valign="middle" >E</th><th align="center" valign="middle" >F</th><th align="center" valign="middle" >G</th><th align="center" valign="middle" >H</th><th align="center" valign="middle" >I</th><th align="center" valign="middle" >J</th><th align="center" valign="middle" >K</th><th align="center" valign="middle" >L</th><th align="center" valign="middle" >M</th><th align="center" valign="middle" >N</th></tr></thead><tr><td align="center" valign="middle" >NN</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >V</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >R</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >B</td><td align="center" valign="middle" >S</td><td align="center" valign="middle" >C</td><td align="center" valign="middle" >9</td><td align="center" valign="middle" >S</td></tr><tr><td align="center" valign="middle" >Distance</td><td align="center" valign="middle" >107</td><td align="center" valign="middle" >64</td><td align="center" valign="middle" >60</td><td align="center" valign="middle" >89</td><td align="center" valign="middle" >152</td><td align="center" valign="middle" >85</td><td align="center" valign="middle" >182</td><td align="center" valign="middle" >63</td><td align="center" valign="middle" >60</td><td align="center" valign="middle" >110</td><td align="center" valign="middle" >72</td><td align="center" valign="middle" >63</td></tr></tbody></table></table-wrap><table-wrap id="1_3"><table><tbody><thead><tr><th align="center" valign="middle" >Landmark</th><th align="center" valign="middle" >O</th><th align="center" valign="middle" >P</th><th align="center" valign="middle" >Q</th><th align="center" valign="middle" >R</th><th align="center" valign="middle" >S</th><th align="center" valign="middle" >T</th><th align="center" valign="middle" >U</th><th align="center" valign="middle" >V</th><th align="center" valign="middle" >W</th><th align="center" valign="middle" >X</th><th align="center" valign="middle" >Y</th><th align="center" valign="middle" >Z</th></tr></thead><tr><td align="center" valign="middle" >NN</td><td align="center" valign="middle" >X</td><td align="center" valign="middle" >O</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >S</td><td align="center" valign="middle" >K</td><td align="center" valign="middle" >U</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >D</td><td align="center" valign="middle" >D</td><td align="center" valign="middle" >O</td><td align="center" valign="middle" >9</td><td align="center" valign="middle" >E</td></tr><tr><td align="center" valign="middle" >Distance</td><td align="center" valign="middle" >67</td><td align="center" valign="middle" >106</td><td align="center" valign="middle" >74</td><td align="center" valign="middle" >66</td><td align="center" valign="middle" >60</td><td align="center" valign="middle" >240</td><td align="center" valign="middle" >95</td><td align="center" valign="middle" >64</td><td align="center" valign="middle" >129</td><td align="center" valign="middle" >67</td><td align="center" valign="middle" >158</td><td align="center" valign="middle" >92</td></tr></tbody></table></table-wrap></table-wrap-group><p>not surprising that the digit 0 and alphabet O (or digit 3 and digit 8) have distinct feature points.</p></sec><sec id="s4"><title>4. Image-Based Guidance Control</title><p>A robot road map is a deterministic orientation (angle) table for guiding the mobile robot from a current landmark to a target landmark. To illustrate, a simple example of a robot road map is presented in <xref ref-type="fig" rid="fig5">Figure 5</xref> and <xref ref-type="table" rid="table2"><xref ref-type="table" rid="table">Table </xref>2</xref>. The mobile robot landmark guidance control procedure is as follows (<xref ref-type="fig" rid="fig6">Figure 6</xref>):</p><p>Step 1: Wait for new target landmark command.</p><p>Step 2: Move toward next landmark.</p><p>Step 3: Arrive at the next landmark.</p><p>Step 4: If current landmark is the target landmark then go to Step 1; otherwise, go to Step 2.</p><fig id="fig5"  position="float"><label><xref ref-type="fig" rid="fig5">Figure 5</xref></label><caption><title> A simple example of a robot road map, where each arrow line shows a landmark’s orientation angle<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x47.png" xlink:type="simple"/></inline-formula></title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x46.png"/></fig><fig id="fig6"  position="float"><label><xref ref-type="fig" rid="fig6">Figure 6</xref></label><caption><title> Landmark-based mobile robot guidance control state diagram</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x48.png"/></fig><table-wrap-group id="2"><label><xref ref-type="table" rid="table2"><xref ref-type="table" rid="table">Table </xref>2</xref></label><caption><title> (a) Robot route map (<xref ref-type="fig" rid="fig5">Figure 5</xref>); (b) Route map landmark orientation</title></caption><table-wrap id="2_1"><caption><title> (b)</title></caption><table><tbody><thead><tr><th align="center" valign="middle" ><xref ref-type="table" rid="table">Table </xref>index</th><th align="center" valign="middle" >Current landmark</th><th align="center" valign="middle" >Target landmarks</th><th align="center" valign="middle" >Next landmark</th><th align="center" valign="middle" >Motion direction <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x49.png" xlink:type="simple"/></inline-formula></th></tr></thead><tr><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x50.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >2</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >6, 7</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x51.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >9</td><td align="center" valign="middle" >9</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x52.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >4</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >1, 6, 7, 9</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x53.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >5</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x54.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >6</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >1, 2, 9</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x55.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >7</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >1, 6, 2, 9</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x56.png" xlink:type="simple"/></inline-formula></td></tr><tr><td align="center" valign="middle" >8</td><td align="center" valign="middle" >9</td><td align="center" valign="middle" >1, 6, 2, 7</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x57.png" xlink:type="simple"/></inline-formula></td></tr></tbody></table></table-wrap><table-wrap id="2_2"><caption><title></title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Landmark</th><th align="center" valign="middle" >1</th><th align="center" valign="middle" >2</th><th align="center" valign="middle" >6</th><th align="center" valign="middle" >7</th><th align="center" valign="middle" >9</th></tr></thead><tr><td align="center" valign="middle" >Orientation <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x58.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x59.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x60.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x61.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x62.png" xlink:type="simple"/></inline-formula></td><td align="center" valign="middle" ><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x63.png" xlink:type="simple"/></inline-formula></td></tr></tbody></table></table-wrap></table-wrap-group><sec id="s4_1"><title>4.1. Move toward Next Landmark</title><p>Assume that the mobile robot is located directly underneath landmark i. Robot frame orientation to world frame (landmark map) is</p><disp-formula id="scirp.70458-formula48"><graphic  xlink:href="http://html.scirp.org/file/1-1730425x64.png"  xlink:type="simple"/></disp-formula><p>where<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x65.png" xlink:type="simple"/></inline-formula>. When the mobile robot move to the next landmark along a linear trajectory with a constant linear speed V,</p><disp-formula id="scirp.70458-formula49"><label>(9)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730425x66.png"  xlink:type="simple"/></disp-formula><p>and the angular speeds of driving wheels are planned as</p><disp-formula id="scirp.70458-formula50"><label>(10)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730425x67.png"  xlink:type="simple"/></disp-formula><p>The current landmark leaves the camera image when <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x68.png" xlink:type="simple"/></inline-formula> is increasing and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x68.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x69.png" xlink:type="simple"/></inline-formula> is zero, where <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x68.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x69.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x70.png" xlink:type="simple"/></inline-formula> stands for vector 1-norm (sum of absolute values).</p></sec><sec id="s4_2"><title>4.2. Arrive at the Next Landmark</title><p>If new feature points show up and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x71.png" xlink:type="simple"/></inline-formula> is decreasing, then the mobile robot is approaching the next landmark. If <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x71.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x72.png" xlink:type="simple"/></inline-formula> maintains a constant finite value, then a new landmark is detected. At the time, the mobile robot moves under image-based guidance control to the center position of the next landmark,</p><disp-formula id="scirp.70458-formula51"><label>(11)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730425x73.png"  xlink:type="simple"/></disp-formula><p>The mobile robot translates a relative movement <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x74.png" xlink:type="simple"/></inline-formula> with a constant linear speed V, the driving wheels incremental angles are</p><disp-formula id="scirp.70458-formula52"><label>(12)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-1730425x75.png"  xlink:type="simple"/></disp-formula><p>The angular speeds of the driving wheels are planned as</p><p><img data-original="http://html.scirp.org/file/1-1730425x76.png" />,<img data-original="http://html.scirp.org/file/1-1730425x77.png" /> (13)</p><p>After time T the next landmark is located directly above the mobile robot, and then landmark recognition is performed. The identified landmark based on nearest neighbor classification is the landmark (in <xref ref-type="fig" rid="fig3">Figure 3</xref>) which has the minimum value of</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x78.png" xlink:type="simple"/></inline-formula>, for landmark feature-point sets<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x78.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x79.png" xlink:type="simple"/></inline-formula>.</p></sec></sec><sec id="s5"><title>5. System Implementation and Experiments</title><p>The proposed image-based guidance control mobile robot system, as shown in <xref ref-type="fig" rid="fig7">Figure 7</xref>, is built on the Altera DE2-115 FPGA development board running at a system clock rate of 50 Mhz. A LCD display with a camera module (VEEK_MT) is connected to the DE2-115 and mounted on the top of the mobile robot. All FPGA modules are implemented using the Verilog HDL and synthesized by the Altera Quartus II EDA tool.</p><fig id="fig7"  position="float"><label><xref ref-type="fig" rid="fig7">Figure 7</xref></label><caption><title> Experimental finger-tip writing and recognition process</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x80.png"/></fig><sec id="s5_1"><title>5.1. Ceiling Landmark Recognition</title><p>The landmark detection image processing module captures real-time images with a CMOS image sensor. <xref ref-type="fig" rid="fig8">Figure 8</xref> shows the functional block diagram of the image processing module. The processing pipeline includes color space transformation, histogram equalization, color detection, filtering, object tracking and recording.</p><p>The proposed ceiling landmark recognition system is implemented as a dedicated logic circuit on a FPGA chip. Real-time image input is fed to the FPGA chip line by line. Up to 5 rows of an image are stored in line-buffers (FIFO) in a pipelined fashion. The image processing clock is 96 MHz. Raw image data is captured by a color camera with <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x81.png" xlink:type="simple"/></inline-formula> resolution and a frame rate of 7 fps (frames per second). The raw image is converted to a <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x81.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x82.png" xlink:type="simple"/></inline-formula> 24-bit RGB image (by a local neighborhood of every four scanned pixels). The detected landmark position is recorded and tracked at a frequency of 7 times per seconds corresponding. <xref ref-type="fig" rid="fig9">Figure 9</xref> shows an example experimental</p><fig id="fig8"  position="float"><label><xref ref-type="fig" rid="fig8">Figure 8</xref></label><caption><title> The image processing of landmark detection</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x83.png"/></fig><fig-group id="fig9"><label><xref ref-type="fig" rid="fig9">Figure 9</xref></label><caption><title> Experimental ceiling landmark example and landmark detection and classification result. (a) ceiling landmark “7”; (b) result of landmark classification.</title></caption><fig id ="fig9_1"><label> (b)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x84.png"/></fig><fig id ="fig9_2"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x85.png"/></fig></fig-group><p>ceiling landmark and the image processing result for landmark detection and classification, landmark identification accuracy is 100% under experiments. We had tested each landmark 10 times from different orientations (a total of 360 landmarks), and no recognition error occurred.</p></sec><sec id="s5_2"><title>5.2. Mobile Robot Speed Control</title><p>The mobile robot consists of 3 omni-directional driving wheels actuated respectively by 3 BLDC servo motors, each with gear trains of ratio 246:1. The radius of the robot platform is W = 22.746 cm and the radius of wheels are R = 5.093 cm. The motor drive is under pulse-type motor position control with 100 steps per cycle, 24600/360 = 68.33 step/deg. The maximum position pulse command rate is <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x86.png" xlink:type="simple"/></inline-formula> steps per second and 360 * 7872/24600 = 115.2 deg/sec, resulting in a robot rotational speed of 25.8 deg/ sec (W) and translational speed of 10.24 cm/sec (V).</p><p>A simple rectangular velocity profile PTP (point-to-point) motion control is applied to each servo motor to achieve the desired mobile robot motion trajectory. The design goal of the digital rectangular velocity profile for each servo motor is to exactly generate a train of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x87.png" xlink:type="simple"/></inline-formula> position pulses of duty cycle 50% in N input <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x87.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x88.png" xlink:type="simple"/></inline-formula> clock cycles with a</p><p>constant output frequency<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x89.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x89.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x90.png" xlink:type="simple"/></inline-formula>, where the frequency of the input clock</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-1730425x91.png" xlink:type="simple"/></inline-formula>. Since the output frequency is a fraction of input frequency, this method is also called the frequency divider method.</p><p><xref ref-type="fig" rid="fig1">Figure 1</xref>0 shows a finite-state machine approach for the implementation of the frequency divider method.</p></sec><sec id="s5_3"><title>5.3. User Command Interface and Experiment</title><p>The user command interface for the experimental mobile robot guidance system, as shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>1, is a vision-based fingertip-writing character recognition system, proposed by the same authors in [<xref ref-type="bibr" rid="scirp.70458-ref10">10</xref>] . In the beginning, the mobile robot is located directly underneath a landmark, for instance, landmark “2” of the route map in <xref ref-type="fig" rid="fig5">Figure 5</xref>, and waiting for a command to move to a new target landmark location. The user orders the mobile robot to move to the target landmark “7” by writing digit “7” as shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>2. <xref ref-type="fig" rid="fig1">Figure 1</xref>3 shows the recorded path of the mobile robot moving from Landmark “2” to Landmark “7”, following the route map in <xref ref-type="table" rid="table2"><xref ref-type="table" rid="table">Table </xref>2</xref>.</p><fig id="fig10"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>0</label><caption><title> Finite-state machine implementation of the frequency divider</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x92.png"/></fig><fig id="fig11"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>1</label><caption><title> Experimental mobile robot ceiling landmark guidance control system</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x93.png"/></fig><fig id="fig12"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>2</label><caption><title> User input target landmark location</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x94.png"/></fig><fig-group id="fig13"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>3</label><caption><title> Robot moves from Landmark &quot;2&quot; to Landmark &quot;7&quot; (route map in <xref ref-type="table" rid="table2"><xref ref-type="table" rid="table">Table </xref>2</xref>). (a) start location: Landmark “2”; (b) leaves “2”; (c) moves from “2” to “1”; (d) arrives “1”; (e) leaves “1”; (f) moves from “1” to “6”; (g) arrives “6”; (h) leaves “6”; (i) moves from “6” to “7”; (j) arrives “7”; (k) final location: LandSmark “7”.</title></caption><fig id ="fig13_1"><label>(b)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x95.png"/></fig><fig id ="fig13_2"><label> (c)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x96.png"/></fig><fig id ="fig13_3"><label> (d)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x97.png"/></fig><fig id ="fig13_4"><label>(e)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x98.png"/></fig><fig id ="fig13_5"><label> (f)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x99.png"/></fig><fig id ="fig13_6"><label> (g)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x100.png"/></fig><fig id ="fig13_7"><label>(h)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x101.png"/></fig><fig id ="fig13_8"><label> (i)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x102.png"/></fig><fig id ="fig13_9"><label> (j)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x103.png"/></fig><fig id ="fig13_10"><label>(k)</label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x104.png"/></fig><fig id ="fig13_11"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x105.png"/></fig><fig id ="fig13_12"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x106.png"/></fig><fig id ="fig13_13"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-1730425x107.png"/></fig></fig-group></sec></sec><sec id="s6"><title>6. Conclusion</title><p>We have presented a simple but effective vision-based artificial ceiling landmark recognition and mobile robot indoor guidance and localization system. The feature points of ceiling landmarks are characterized by topological information from both foreground and background. The landmark identification accuracy by the nearest neighbor classification is 100% in our tests. One requirement of the proposed mobile robot guidance control system is that one of the ceiling landmarks on the route map is visible to the robot’s camera in the beginning. The contributions of this work are as follows: 1) Only one CMOS image camera is required for the proposed mobile robot guidance control system. 2) The proposed foreground/background feature representation of the artificial ceiling landmarks is invariant with respect to rotation and translation. 3) The overall system, including omni-directional mobile robot motion control and landmark image processing and recognition, is implemented on a single FPGA chip. In future work, we would like to install odometer and compass sensors to the mobile robot and to build the route map automatically.</p></sec><sec id="s7"><title>Acknowledgements</title><p>This work is supported by Taiwan Ministry of Science and Technology grants MOST104-2221-E-011-035 and MOST 105-2221-E-011-047.</p></sec><sec id="s8"><title>Cite this paper</title><p>Shih, C.-L. and Ku, Y.-T. (2016) Image-Based Mobile Robot Guidance System by Using Artificial Ceiling Landmarks. Journal of Computer and Com- munications, 4, 1-14. http://dx.doi.org/10.4236/jcc.2016.411001</p></sec></body><back><ref-list><title>References</title><ref id="scirp.70458-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Long, J. and Zhang, C.L. (2012) The Summary of AGV Guidance Technology, Advanced Materials Research, 591-593, 1625-1628. 
http://dx.doi.org/10.4028/www.scientific.net/AMR.591-593.1625</mixed-citation></ref><ref id="scirp.70458-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">DeSouza, G.N. and Kak, A.C. (2002) Vision for Mobile Robot Navigation: A Survey. IEEE Transactions on Pattern Analysis and Machine Intelligence, 24, 237-267. 
http://dx.doi.org/10.1109/34.982903</mixed-citation></ref><ref id="scirp.70458-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Siegwart, R., Nourbakhsh, I.R. and Scaramuzza, D. (2011) Introduction to Autonomous Mobile Robots. MIT Press, Cambridge.</mixed-citation></ref><ref id="scirp.70458-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Lowe, D.G. (2004) Distinctive Image Features from Scale-Invariant Keypoints. International Journal of Computer Vision, 60, 91-110.  
http://dx.doi.org/10.1023/B:VISI.0000029664.99615.94</mixed-citation></ref><ref id="scirp.70458-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Bay, H., Ess, A., Tuytelaars, T. and Gool, L.V. (2008) SURF: Speeded up Robust Features. Computer Vision and Image Understanding, 110, 346-359. 
http://dx.doi.org/10.1016/j.cviu.2007.09.014</mixed-citation></ref><ref id="scirp.70458-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Kartashov, D., Krinkin, K. and Huletski, A. (2015) Fast Artificial Landmark Detection for Indoor Mobile Robots. Proceedings of the Federated Conference on Computer Science and Information Systems, Vol. 5, 209-214. http://dx.doi.org/10.15439/2015f232</mixed-citation></ref><ref id="scirp.70458-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Kim, T., and Lyou, J. (2009) Indoor Navigation of Skid Steering Mobile Robot Using Ceiling Landmarks. IEEE International Symposium on Industrial Electronics, Seoul, 5-8 July 2009, 1743-1748.</mixed-citation></ref><ref id="scirp.70458-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Okuyama, K., Kawasaki, T. and Kroumov, V. (2011) Localization and Position Correction for Mobile Robot Using Artificial Visual Landmarks. Proceedings of the 2011 International Conference on Advanced Mechatronic Systems, Zhengzhou, 11-13 August 2011, 414-418.</mixed-citation></ref><ref id="scirp.70458-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Fernandes, C., l’audio dos S., Campos, F.M. and Chaimowicz, L. (2012) A Low-Cost Localization System Based on Artificial Landmarks. 2012 Brazilian Robotics Symposium and Latin American Robotics Symposium, Brazilian, 16-19 October 2012, 109-114.  
http://dx.doi.org/10.1109/SBR-LARS.2012.25</mixed-citation></ref><ref id="scirp.70458-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Shih, C.L., Lee, W.Y. and Ku, Y.T. (2016) A Vision-Based Fingertip-Writing Character Recognition System. Journal of Computer and Communications, 4, 160-168. 
http://dx.doi.org/10.4236/jcc.2016.44014</mixed-citation></ref></ref-list></back></article>