title: Looking for ways for a robot to locate itself in the house
body: <p>I am hacking a <strong>vacuum cleaner robot</strong> to control it with a microcontroller (Arduino). I want to make it <strong>more efficient when cleaning a room</strong>. For now, it just go straight and turn when it hits something.</p>
  
  <p>But I have trouble finding the <strong>best algorithm or method</strong> to use to <strong>know its position in the room</strong>. I am looking for an idea that stays cheap (less than $100) and not to complex (one that don't require a PhD thesis in computer vision). I can add some discrete markers in the room if necessary.</p>
  
  <p>Right now, my robot has:</p>
  
  <ul>
  <li>One webcam</li>
  <li>Three proximity sensors (around 1 meter range)</li>
  <li>Compass (no used for now)</li>
  <li>Wi-Fi</li>
  <li>Its speed can vary if the battery is full or nearly empty</li>
  <li>A netbook <a href="http://en.wikipedia.org/wiki/Asus_Eee_PC" rel="noreferrer">Eee PC</a> is embedded on the robot</li>
  </ul>
  
  <p>Do you have any idea for doing this? Does any standard method exist for these kind of problems?</p>
  
  <p><em>Note: if this question belongs on another website, please move it, I couldn't find a better place than Stack&nbsp;Overflow.</em></p>