<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Localization with a low-cost robot?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Stanislav Slu</string-name>
          <email>slusny@cs.cas.cz</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Roman Neruda</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Petra Vidnerova</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute of Computer Science, Academy of Sciences</institution>
          ,
          <country country="CZ">Czech Republic</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2000</year>
      </pub-date>
      <fpage>77</fpage>
      <lpage>80</lpage>
      <abstract>
        <p>The robot localization problem is a fundamental and well studied problem in robotics research. Algorithms used to estimate pose on the map are usually based on Kalman or particle ¯lters. These algorithms are able to cope with errors, that arise due to inaccuracy of robot sensors and e®ectors. The performance of the localization algorithm depends heavily on their quality. This work shows performance of localization algorithm based on particle ¯lter with small miniature low-cost E-puck robot. Information from VGA camera and eight infrared sensors are used to correct estimation of the robot's pose.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Parameters
Value
Maximum translational velocity 12.8 cm / sec
Maximum rotational velocity 4.86 rad / sec
Stepper motor maximum speed +- 1000 steps / sec
Distance between tires 5.3 cm</p>
      <sec id="sec-1-1">
        <title>The major drawback of this procedure is error ac</title>
        <p>
          3 Dead reckoning cumulation. At each step (each time you take an
encoder measurement), the position update will involve
Dead reckoning ([
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], derived originally from deduced some error. This error accumulates over time
reckoning) is the process of estimating robot's current and therefore renders accurate tracking over large
position based upon a previously determined position. distances impossible (see Figure 4). Tiny di®erences
For shorter trajectories, position can be estimated us- in wheel diameter will result in important errors
afing shaft encoders and precise stepper motors. ter a few meters, if they are not properly taken into
        </p>
        <p>E-puck is equipped with a di®erential drive (Fig- account.
ure 3) - a simplest method to control robot. For a
differential drive robot the position of the robot can be
estimated by looking at the di®erence in the encoder 4 Image processing
values ¢sR and ¢sL. By estimating the position of the
robot, we mean the computation of tuple x; y; £ as The robot has a low-cost VGA camera with resolution
a function of previous position (xOLD; yOLD; £OLD) of 480x640 pixels. Unfortunately, the Bluetooth
conand encoder values (¢sR and ¢sL). nection supports only a transmission of 2028 colored
pixel. For this reason a resolution of 52x39 pixels
max0 x 1 0 xOLD 1 0 ¢x 1 imizes the Bluetooth connection and keeps a 4:3 ratio.
@ y A = @ yOLD A + @ ¢y A (1) This is the resolution we have used in our experiments
µ µOLD ¢µ (see Figure 4). Another drawback of the camera is that
it is very sensitive to the light conditions.
¢µ = (2) Despite these limitations, camera can be used to
detect objects or landmarks. However, the information
¢s = (3) about distance to the landmark extracted from the
¢sR ¡ ¢sL</p>
        <p>L
¢sR + ¢sL
2</p>
        <p>
          Localization with a low-cost robot
Fig. 5. The physical parameters of the real camera
(picture taken from [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]). Camera settings used in experiments
corresponds to parameters a = 6 cm, b = 4:5 cm, c = 5:5
cm, ® = 0:47 rad, ¯ = 0:7 rad.
camera is not reliable (due to the noise), and we do
not use it in following section.
        </p>
        <p>Landmarks are objects of rectangular shape of size
5x5 cm and three di®erent colors - red, green and blue.</p>
        <p>We implemented image processing subsystem, that
detects relative position of the landmark from the robot.</p>
        <p>
          Following steps are included:
{ Gaussian ¯lter is used to reduce camera noise ([
          <xref ref-type="bibr" rid="ref5">5</xref>
          ])
{ Color segmentation into the red, blue and green
        </p>
        <p>
          color. ([
          <xref ref-type="bibr" rid="ref6">6</xref>
          ])
{ Blob detection is used to detect position and size
        </p>
        <p>
          of the objects on the image. ([
          <xref ref-type="bibr" rid="ref7">7</xref>
          ])
{ Object detection is used to remove objects from
image, that have non-rectangular shape.
        </p>
      </sec>
      <sec id="sec-1-2">
        <title>Output from the image processing is the relative position and color of the detected landmarks (for example - I see red landmark by angle 15 degrees).</title>
        <p>5</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Particle ¯lter localization</title>
      <p>
        As shown previously (Figure 4), pose estimation based
on dead reckoning is possible for short distances only.
For longer trajectories, more clever methods are
needed. These methods are based either on Kalman
¯lter [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] (or some of its variants) or particle
¯lter (PF) [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>The PF possesses three basic steps - state
prediction, observation integration and resampling. It works
with quantity p(xt) - the probability, that robots is
located at the position xt in time t. In the case of PF,
the probability distribution is represented by the set
of particles. Such a representation is approximate, but
can represent much broader space of distributions
that, for example, Gaussians, as it is nonparametric.</p>
      <p>Each particle x[tm] is a hypothesis, where the robot
can be at time t. We have used M particles in our
experiment. The input of the algorithm is the set of
particles Xt, most recent control command ut and the
most recent sensor measurements zt.</p>
      <sec id="sec-2-1">
        <title>1. State prediction based on odometry.</title>
        <p>The ¯rst step is the computation of temporary
particle set X from Xt. It is created by
applying odometry model p(xtjut; xt¡1) to each
particle x[tm] from Xt.
2. Correction step - Observation integration
The next step is the computation of importance
factor wt[m]. It is the probability of the
measurement zt under particle x[tm], given by w[m] =
t
p(ztjx[tm]).</p>
        <p>Two types of measurements were considered:
{ Measurement coming from distance sensors
Distance sensor (one averaged value for front,
left, right and back direction) were used as
bumpers only. In case of any contradiction
between real state and hypothesis, importance
factor was decreased correspondingly.
{ Measurement obtained from image processing
7</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Conclusions</title>
      <p>Localization and pose estimation is an opening gate
towards more sophisticated robotics experiments. As
we have shown, the localization process can be
carried out even with low-cost robot. Experiments were
executed both in simulation and real environment.</p>
      <p>A lot of work remains to be done. The experiments
in this work considered static environment only.
Addition of another robot will make the problem much
more di±cult.</p>
      <p>
        As we have mentioned already, there are certain
areas in the environment, where convergence of the
localization algorithm is very fast - in corners or near
walls. Sensor fusion is the process of combining
senOutput from image processing was compared sory data from disparate sources such that the
resultwith expected position of the landmarks. In ing information is in some sense better than would be
case of any contradiction (colors and relative possible when these sources were used individually. We
angle of landmarks were checked), importance are dealing with sensor fusion of infrared sensors and
factor was decreased. The bigger mismatch, input from camera.
the smaller importance factor was assigned to As a future work, we would like to implement path
the hypothesis. planning, that takes into account performance of the
localization algorithm. Suggested path (generated by
3. Re-sampling path planning algorithm) should be safe (the chance
The last step incorporates so-called importance to get lost should be small) and short. Multi-criterial
sampling. The algorithm draws with replacement path planning will be based on dynamic
programM particles from temporary set X and creates new ming ([
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]). The idea is to learn areas with high loss
particle set Xt+1. The probability of drawing each probability from experience.
particles is given by its importance weight. This
principle is called survival of the ¯ttest in AI ([
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]).
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>S.</given-names>
            <surname>Thrun</surname>
          </string-name>
          , W. Burgard, and
          <string-name>
            <given-names>D.</given-names>
            <surname>Fox</surname>
          </string-name>
          : Probabilistic Robotics. Cambridge, MA: MIT Press,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>2. http://en.wikibooks.org/wiki/Cyberbotics Robot Curriculum/</mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>3. E-puck, online documentation. http://www.e-puck.org</mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>R.C.</surname>
          </string-name>
          <article-title>Arking: Behavior-Based Robotics</article-title>
          . The MIT Press,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>L.G.</given-names>
            <surname>Shapiro</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.C.</surname>
          </string-name>
          <article-title>Stockman: Computer Vision</article-title>
          . Prentence Hall,
          <volume>150</volume>
          ,
          <year>2001</year>
          , p.
          <fpage>137</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>J.</given-names>
            <surname>Bruce</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Balch</surname>
          </string-name>
          and
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Veloso: Fast and Inexpensive Color Image Segmentation for Interactive Robots</article-title>
          .
          <source>In Proceedings of IROS-2000</source>
          ,
          <year>2000</year>
          ,
          <year>2061</year>
          {
          <year>2066</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>7. http://www.v3ga.net/processing/BlobDetection/ index-page-home.html</mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>R.E. Kalman:</surname>
          </string-name>
          <article-title>A new approach to linear ¯ltering and prediction problems</article-title>
          .
          <source>Trans. ASME, Journal of Basic Engineering</source>
          <volume>82</volume>
          , 35{
          <fpage>45</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. R.Y. Rubinstein:
          <article-title>Simulation and the Monte Carlo Method</article-title>
          .. John Wiley and Sons, Inc.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>K.</given-names>
            <surname>Kanazawa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Koller</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.J.</given-names>
            <surname>Russel</surname>
          </string-name>
          :
          <article-title>Stochastic simulation algorithms for dynamic probabilistic networks</article-title>
          .
          <source>In Proceedings of the 11th Annual Conference on Uncertainty in AI</source>
          , Montreal, Canada.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>11. Webots simulator. http://www.cyberbotics.com.</mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>12. Video demonstration. http://www.cs.cas.cz/slusny.</mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>R.S.</given-names>
            <surname>Sutto</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Barto</surname>
          </string-name>
          :
          <article-title>Reinforcement Learning: An Introduction</article-title>
          . The MIT Press,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>