1
$\begingroup$

I know that Occupancy Grid Mapping requires the assumption that the robots' pose is always known when generating a map. However, I also know that in reality, position and orientation usually treated as uncertain in practical applications. Assuming that my target mapping environment is inside a home, is there a way I can overcome inherent robot pose uncertainty in a real world application of Occupancy Grid Mapping without resorting to implementing a SLAM? That is, what is a low-cost way to increase the certainty about my pose?

Or is Occupancy Grid Mapping only useful in theory and not in practice?

Update:

It is clear to me, from the responses given, that occupancy grid mapping is just one possible way to represent a map, not a method in and of itself. The heart of what I really want to know is: Can mapping be done without also solving the localization problem at the same time (i.e. SLAM) in real life applications?

$\endgroup$
  • $\begingroup$ when you say " the robots' pose is always known", do you mean 100 percent? $\endgroup$ – CroCo Jan 30 '15 at 21:54
  • $\begingroup$ @CroCo: I assume that is what is meant when solving a pure Mapping problem (no localization involved). But I guess that's part of my confusion: How much uncertainty can we tolerate in order to reasonably solve a pure Mapping problem without having to localize at the same time in a real life application (i.e. not just in a simulation or theory)? $\endgroup$ – Paul Jan 30 '15 at 22:00
1
$\begingroup$

First off, occupancy grid mapping is just one possible representation of a map. I think your question really applies many map representations. Here are my thoughts.

Mapping without SLAM

Whether or not you can build a map from your sensor measurements without fully implementing SLAM depends on a couple things:

  • Do you have absolute sensors for localization? For example, you could drive all day, and if GPS is always available, your localization error will not grow. Or if you are indoors, external camera systems (i.e., not on your robot and in known positions) can serve the same purpose. If you do have absolute sensors, the accuracy of your map can only be as accurate as the uncertainty of your absolute localization sensor compounded by the uncertainty of your mapping sensor.

  • If you only have relative localization sensors (e.g., wheel encoders, IMU, camera mounted on the robot), you will have dead-reckoning error. The error in your pose estimate will grow over time. Then you have to ask yourself: is it growing at a small enough rate that I can produce a good enough map before the pose is too uncertain? Note that this approach is almost never used (you would implement SLAM instead).

In general, you need to answer these questions: What sensors do I have available? How accurate does my map need to be for its application? You asked about a low cost way to improve your pose estimate. Well the lowest cost of them all is to implement SLAM! In particular, if you "close the loop" (i.e., revisit earlier landmarks), you can drastically curtail the effects of dead-reckoning. But to answer your question with an actual sensor, take a look at setting up cheap stationary cameras that can triangulate the pose of the robot.

$\endgroup$
  • $\begingroup$ This is exactly the kind of answer that I was looking for! So, if one has an absolute position sensor (despite potential noise in the sensor readings), one can map without solving localization. And if one only has relative position sensors, SLAM is necessary. Am I understanding you correctly? $\endgroup$ – Paul Mar 2 '15 at 3:01
  • $\begingroup$ Yes, but keeping in mind the limitations to both approaches that I mentioned. Note also that you can still do SLAM when you have absolute sensors and you'll get a better map. SLAM (and especially graph-based SLAM) finds the most likely solution given your noisy measurements. $\endgroup$ – kamek Mar 2 '15 at 11:52
0
$\begingroup$

I wonder if your question is stated in the right way. You can have a mapping problem, then your aim is to create the most likely map given the assumption that your poses are good. You can do it incrementally and then it is an incremental mapping. Occupancy grid is more a representation that you choose, a special kind of discrete map. You can update the values inside this data structure by using an incremental approach. However it seems that you also want to localise yourself. Then or you first do a map assuming the robot is odometry is good enough and then you use that static map for localisation, or you do some sort of refinement every now and then, or you do slam. At least this is my opinion.

$\endgroup$
  • $\begingroup$ The key point is this: If a robot's pose is ALWAYS uncertain in real applications, how can one only solve the mapping problem without also solving the localization problem at the same time? $\endgroup$ – Paul Jan 30 '15 at 20:54
  • $\begingroup$ I would say that math is different from engineering. It is uncertain, true, but how much? Maybe driving in a room in your house make so little uncertainty, if you do a nice filtering of IMU and encoders, that doing mapping if enough. Then if you let the robot drive 10 hours a circle in your room, the odometry error will for sure build up and the robot crash on a precious Ming vase. Therefore a localisation algorithm using your previously created map might be employed $\endgroup$ – Mallo Jan 30 '15 at 21:04
0
$\begingroup$

As kamek said, you can do mapping without localization.

and it would be much easier if you have the locations and you just need to build a map.

note: dead reckoning alone is divergent even if you have very good models, however, its use in conjunction with other sensors is very helpful

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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