I was wondering if you could reccomend possible solutions for locating a robot within a multilevel house. What seems obvious to me is that need an altitude sensor to derive the story the robot, and a compass sensor to derive the heading. However I was wondering what I could use to locate the robots xy position in the house. If this requirement is unclear, imagine that I have to map a dot representing my robot position to an image of the current floor from the top.
My original idea was to use GPS, however as I need submeter accuracy that would be incredibly expensive. I also considered Monti-Carlo localization, however that requires no obstruction between sonar sensors and walls. It is also a significant task programically. I had an idea to place 3 wireless beacons of some sort on the vertexes of an equilateral triangle surrounding the house, then triangulate my position using distance from each beacon. However, I have no idea how I would go about this hardware-wise. Do any of these ideas seem viable, and if so do you have suggestions on how to implement them? Otherwise, can you reccomend an easier or cheaper alternative? My platform is essentially an arduino hooked up to sensors and motor drivers connected to java on a laptop over serial. Thanks.


1 Answer 1


GPS won't give you the accuracy you are looking for. Outdoors it's good for around 1-3 m, indoors if you get a signal at all the multipath will increase your error. There are better GPS technologies out there such as RTK and PPP but their performance degrades significantly when the view of the sky is obstructed.

If you don't have line of sight to the landmarks, your options are a bit more limited.

RF trilateration is a good direction to investigate; there's a lot of interesting research these days into using COTS wifi access points for this purpose. You'll have to read some fairly recent research papers to find an algorithm.

This is actually a pretty difficult problem that you are trying to solve. To make it easier, I would suggest making the problem simpler. Try using a large number of artificial landmarks that are identifiable (such as QR codes or April tags), and use the landmark IDs to indicate the floor of the house you are on. (You can color code them by floor, for example.) From there you can implement a basic SLAM algorithm to find your position. It will be even easier if you map out the locations of the landmarks in advance, because then instead of SLAM you can just do triangulation.

  • $\begingroup$ Yeah, unfortunately QR codes are not an option as all electronics for the house need to be hidden. Do you think I could do the same thing with IR leds? $\endgroup$
    – nanogru
    May 13, 2014 at 15:31
  • $\begingroup$ Essentially, you need to get angle, distance, and id to at least 4-5 landmarks to calculate your position. There are a number of technologies that can achieve this. IR LEDs can be difficult because sunlight will wash them out, the landmarks will require batteries, and any data encoding you do over IR will be complicated if the robot is moving while localizing. $\endgroup$ May 13, 2014 at 19:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.