[ros-users] SLAM_Gmapping Occupancy cell

Brian Gerkey gerkey at willowgarage.com
Thu Jul 15 15:59:23 UTC 2010

hi Prasad,

On Thu, Jul 15, 2010 at 5:37 AM, Prasad Dixit
<prasad.dixit at fennecfoxtech.com> wrote:
> I am working on slam_gmapping tutorial "How to build a Map using logged
> data".
> I have a case like,
> A Robot while building its own map initially; if it comes across the
> location where there are downstairs and so it will not find any boundary
> line to draw. In such case what would be the cell occupancy?
> Will it be treated as "-1 completely unknown"?

gmapping is a 2-D SLAM system, so it cannot reason about downward
stairs.  Depending on the configuration of your building, the laser
might see walls on the other side of stairs.  In this situation, the
map will indicate that the space over the stairs is unoccupied.  If
the laser doesn't see walls on the other side of the stairs, then the
space over the stairs will be unknown.

> If so then, according to 'LRF readings method' it should be completely
> 'undecided area' and has to be treated always as an obstacle in future map
> updates.

Mapping is a separate operation from navigation.  Depending on how you
configure navigation (http://www.ros.org/wiki/navigation), the robot
might be allowed to go through space that is unknown in the map, or it
might not.  But as I said above, the space over the stairs might be
unoccupied in the map.

You can prevent the robot from *planning* to go through the area over
the stairs by manually drawing a line in the map image (e.g., using
Gimp).  But this is NOT a safe way to ensure that the robot will
actually avoid stairs or other no-go areas.  If the robot becomes
mis-localized, it might go anywhere.  This technique famously led to a
robot falling down a flight of stairs

To actually avoid stairs, the robot must be capable of perceiving
negative obstacles (or you need to modify the environment, for example
by closing the doors that lead to the stairs).  In general, if the
robot is to avoid hazards in the environment, it must be able to sense

> Also, while initial mapping, do we require encoder reading (==distance
> travelled) to match with the laser input?

Yes, gmapping requires an odometry-like sensor that give information
about the motion of the base in X, Y, and yaw.


More information about the ros-users mailing list