28
$\begingroup$

Using an IMU a robot can estimate its current position relative to its starting position, but this incurs error over time. GPS is especially useful for providing position information not biased by local error accumulation. But GPS cannot be used indoors, and even outdoors it can be spotty.

So what are some methods or sensors that a robot can use to localize (relative to some frame of reference) without using GPS?

$\endgroup$
2
  • 1
    $\begingroup$ Added SLAM (Simultaneous Localization And Mapping) tag, as both first two answers refer to it $\endgroup$
    – Andrew
    Commented Oct 27, 2012 at 17:29
  • $\begingroup$ Not sure what kind of a scale of this robot is, but if it is something massive and moves slowly in GPS denied unknown terrain indoor areas (ex: mine tunnel) you could look at getting precise positioning of the robot by using a total station and couple of tracking prisms. $\endgroup$
    – JJerome
    Commented Aug 26, 2019 at 23:36

8 Answers 8

24
$\begingroup$

Primarily, dead reckoning is used along with some other technique, generally SLAM-like. The robot builds a map, and then tries to localize within that map. For example, using laser range scanners, and based on dead reckoning, the robot has an idea of where it is. By comparing the laser range data to the map, it can improve its estimate.

Relevant resources are:

Methods include:

  • SLAM (or at least localization) with
    • laser
    • vision (cameras, stereo-vision)
    • structured environments
  • cellular signals
  • wifi signals
  • RF (radio frequency) beacons and triangulation (more information at http://www.wpi.edu/Images/CMS/PPL/ITT.pdf).
  • camera tracking systems (optical tracking of markers within a space)
$\endgroup$
1
  • $\begingroup$ To expand on ronalchn, basically you need either some form of beacons at known locations to get a relative fix from or a map and a way of sensing known objects (such as walls or doors). The beacons can be specific to your robot or dual use (known wifi routers, cell tower locations, etc.) $\endgroup$
    – ViennaMike
    Commented Oct 27, 2012 at 15:37
11
$\begingroup$

I understand you problem is to find different means to GPS to find your position within a given reference frame. This problem in isolation is called localization, and there are many ways to perform that. Firstly you will have to differentiate between relative methods, so measurements which provide a change in position to a previously known position. This method has the problem, that any errors are obviously accumulated, and will grow unbounded.

  • Dead reckoning is likely one of the oldest ways of relative localization. If you use heading, speed and time (so estimating the distance traveled) you can sum up you position changes from a starting position.

  • In addition to using dead reckoning you can also not landmarks and track them in a map. Finding those landmarks again will allow you to reduce your relative position error. This is the Simultaneous Localization and Mapping (SLAM) problem. It is still relative navigation.

Now coming to your actual question on absolute navigation. All that GPS does is provide you with distance estimations to Landmarks with a known position information in your reference frame (in this case geocentric). GPS receivers will take these information and generate a position solution, which also has an error. The good thing though is that this error is bounded within your frame of reference. This it what makes it an absolute positioning system. So whether its indoors or outdoors and regardless of your desired reference frame, all you need for absolute positioning systems are measurements that put you in relation to some known landmark position within your reference frames. Some of those methods have been given in a previous answer. Although, as I said, SLAM is not an absolute method.

  • The simplest form is direct landmark recognition. If you see an Eiffel-Tower you should have a good notion of your absolute position (at least with an absolute error bound) within the earth fixed frame (if you know the position of the Eiffel-Tower). You may have to do some disambiguation, though.

  • If you want to improve your absolute position error, you can use multiple landmarks at the same time. Classical Triangulation is such an example. Another one is using craters for a lunar descent vehicle. Landmarks don't have to be visual, and you can use things like RF signal strength for known signals like in WiFi or Cellular localization.

  • All of the above methods needed landmarks, which need to be identified and uniquely associated. If this is a problem, you can also use different methods, like the terrain profile. This have for example been applied for early cruise missile navigation. I've also used this method for localization on an elevation map without visual or range sensing.

With all of the above methods: as long as any of your map material has Geo-referenced information associated, you can obviously Geo-reference yourself without the use of GPS. The most important factor to differentiate the methods is their error characteristics.

$\endgroup$
5
$\begingroup$

I know this is an old question but I will just add a bit to the currently existing answers. First, this is a very complex problem that everyone is trying to tackle, including google with their Tango project. In general, to localise indoor you either need to rely on your internal sensors, or get assistances from a indoor infrastructure deployed to assist you locating yourself.

  • Relying on onboard sensors:
    • Using sensors like LIDAR/Lasers, cameras, RGBD sensors, IMUs
    • Perform complex algorithmic sensor fusion to perform some sort of accurate iterative localisation. SLAM (Simultaneous Localisation and Map building) is commonly used. I previously developed a method called MRICP (Map Reference Iterative Closest Point) to perform a simple, but error prone localisation. Plenty of literature to look at on that front, including the recent monocular and stereoscopic visual odometry which is quite promising (check vi sensor from skybotix or svo).
  • Rely on infrastructure:
    • Beacons (bluetooth, ultraband, Wireless ...)
    • Mocap (motion capture cameras: vicon, visualeyez ...)
    • Encoded positioning in light bulbs (philips is recently experimenting with this)

In general it really depends on what accuracy you are trying to achieve. In mobile robotics, from my experience, you really need to focus on globally consistent maps, and locally accurate positioning. This means you need to roughly know where you are from a high-level topological manner (this room is connected to the other room on the left, vs the next room on the left is 2.323m away), but locally you should have an accurate position estimation (lasers + IMUs can do this accurately).

Hope this helps.

$\endgroup$
3
$\begingroup$

If your goal is to have a georeferenced localization, you will have to use GPS at some point. The other techniques (dead reckoning, SLAM, ...) will only be useful to "bridge" spotty GPS/indoor absolute positioning reception.

$\endgroup$
2
$\begingroup$

You're asking how to use an acceleration sensor to make better position measurements. As you've correctly pointed out, these accumulate error over time.

One way to improve this is to have periodic absolute-position updates, like from GPS, or from the techniques in many of the answers here.

However, don't overlook any abilities you may have to get absolute-velocity updates. Any speed-over-ground sensor, or just the raw position/velocity data from the wheels (if you have wheels) can improve your dead reckoning accuracy.

$\endgroup$
2
$\begingroup$

http://www.locatacorp.com/ might be the solution you are looking for. They offer technology to create a local constellation indoor. It emulates the satellites for indoor GPS applications. I believe it can use GPS receivers indoor without the need for additional hardware on the robots.

$\endgroup$
2
$\begingroup$

Optical flow sensors (such as those used in computer mouses) are good for this situation. Most will give output in terms of translation.

Alternatively, you can just use a basic camera and run some optical flow algorithms on the data. This will give you the same basic information. It might be easier when doing it this way, to adapt an algorithm that will offer rotational motion as well as translation.

Some optical flow ICs do have the ability to give you the image data (eg the ADNS-3080), which you can further analyse for rotational information.

$\endgroup$
1
$\begingroup$

Recent advances in monocular vision based SLAM (ORB_SLAM, LSD_SLAM, SVO) have made it possible to determine a camera's pose w.r.t. an arbitrarily scaled and rotated initial frame. If you combine this information with an IMU and EKF system such as the one from ETH (ethzasl_msf) you can obtain a position estimate even when there is no GPS available. Even better, you can combine a number of pose/position/attitude/etc. sensors in the MSF.

$\endgroup$

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