13
$\begingroup$

I'm doing some groundwork for a project, and I have a question about the current state of SLAM techniques.

When a SLAM-equipped device detects an object, that object's position is stored. If you look at the point cloud the device is generating, you'll see points for this object, and models generated from it will include geometry here.

If an object is placed in a previously-empty space, it is detected, and points are added. Subsequent models will feature geometry describing this new object.

How does the device react if that object is removed? As far as I've seen, SLAM systems will tend to leave the points in place, resulting in "ghost" geometry. There are algorithms that will disregard lone points caused by transient contacts, but objects that remained long enough to build up a solid model will remain in the device's memory. Are there any systems that are capable of detecting that previously-occupied space is now empty?

$\endgroup$
  • $\begingroup$ This question doesn't have much to do with machine learning. $\endgroup$ – Josh Vander Hook Aug 12 '13 at 14:20
  • $\begingroup$ Perhaps not; I wasn't 100% sure which tags would fit. The application I have in mind seemed to fit, but perhaps without that context it's less applicable... $\endgroup$ – anaximander Aug 12 '13 at 14:23
5
$\begingroup$

That very much depends. Since SLAM is a problem (or at least a technique), not a solution, there is no definitive SLAM algorithm. Semantically, you have to decide what goes on a "map" of the environment, and that determines how your algorithm should handle transient (aka moving) signals. But that's a digression.

Permanent maps:

Permanent maps should contain enough information to localize yourself with respect to known geometry. Typically used in buildings. Typically human-readable. See Willow-Garage's work. or anything by Thrun in his quite famous textbook. If you lose this map, you have to build it up over time again.

  1. Removing objects. Yes, the object will appear in a static map for a time. If no measures are taken to remove previously-detected objects, then it will persist. A typical 2D grid-based representation will use each grid cell to represent the probability of an object, so after time the object will "fade".

  2. Adding objects. Same as above.

Local maps:

In reality, SLAM is usually used to localize a robot as it moves, and the map is not kept permanently (or, it is kept permanently, but only the closest Y features are used). Local maps are whatever the robot needs to know to determine how it moved in the last X minutes, where X depends on the application. If you lose the map, you can still fly just fine by using whatever features are in sight right now.

  1. Batch methods such as Bundle Adjustment using visual features is a very common technique in this direction. Features may be kept over time, and even revisited, but a moving feature is just an unreliable feature, and it will be ignored when trying to figure out where the robot is.

  2. Visual SLAM is exactly this. It is a delta-P (change in pose) estimator, not a map-based localization algorithm.

  3. In short, as long as most things are not currently moving, it doesn't matter if you remove an object when the robot isn't "looking" at it.

Example

So do this. When you read a SLAM paper, decide the following:

  1. Are they really building a map?

  2. Are they just keeping a list of features and locations?

  3. If so, what "features" go in the map? Lines, points, visual features?

  4. Are these features likely to move?

  5. If so, how can they handle that?

  6. Finally, sensor noise often "looks" like moving features. How do they handle sensor noise? Because this will often determine what happens to moving features.

You'll get a different answer for each paper / author / book / application. In short, they are typically omitted since they don't help the robot localize much, and can be avoided by simply having a few low-level path planner that only uses local information.

Good luck, slam is a huge topic.

$\endgroup$
  • $\begingroup$ Thanks! Do you know of any techniques that track where objects were "acquired" and "lost"? I'm looking at applications of a subset of SLAM-type algorithms and one area of interest is the identification of "transition" areas like doors and occluded corners where objects might appear from. This application turns the usual fading probability metric on its head - instead of having objects "fade" when out of sight, unobserved areas slowly increment their value to denote that we don't know what's here because we haven't looked recently, so we should be cautious when moving into this space. $\endgroup$ – anaximander Aug 12 '13 at 14:20
  • $\begingroup$ Way harder. The only way to do this correctly is to uniquely identify objects. Like, put a barcode on them. Otherwise object A may have moved to location B, or maybe A and B swapped, etc. Read up on semantic mapping. You need an algorithm which can "recognize" that moving things are actually "doors" which should be attached to "walls" but only when I'm "inside" but what does "inside" mean to a robot anyway? I think you should read more and report back. $\endgroup$ – Josh Vander Hook Aug 12 '13 at 14:23
  • $\begingroup$ Yeah, the idea here is to sidestep the problem of semantics by simply highlighting "this is an area where I keep seeing things that weren't there before, or ceasing to see things that were there". Chances are, this area is some kind of transition - door, box, window, occluded corner. Which of those we're dealing with is less important; this is purely for collision avoidance, so we want to avoid all of these areas. Likewise, we don't particularly need to know which object is which; only that there's a significant change in the overall amount of space being occupied by Stuff. $\endgroup$ – anaximander Aug 12 '13 at 14:25
  • $\begingroup$ Review. Literature. Such a problem arises from A) Stuff moving. B) robot moving. C) Robot getting lost. D) incorrect maps. Each of those 4 things has 4 different correct solutions. If you don't handle all 4, you will build completely incorrect maps. This is why SLAM is not solved, and still hard. Read Up and come back with specific questions related to what you have learned. $\endgroup$ – Josh Vander Hook Aug 12 '13 at 14:28
  • 1
    $\begingroup$ That's what I'm doing; the more I read, the longer my list of things to read gets! This was the first of the many questions my reading has raised. Apologies for extending the question somewhat in the comments; I've not been getting much response, and SLAM is such a huge topic... you seemed to know what you're talking about so I was hoping I could get a few pointers. I have semantic mapping papers on my list, but there's a few others I need to read as a foundation for that... Anyways, I guess it's back to the reading for now. $\endgroup$ – anaximander Aug 12 '13 at 14:32

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.