Occupany Grid Mapping
In order to map out an unknown environment for future reference, a robot uses the Simultaneous Localization And Mapping (SLAM) algorithm. We talked about solving the localization problem using Filtering in the previous posts. In this post, we will look at the mapping problem. We will assume that we know the position/orientation of the robot in the 3D world (which we obtain from filtering), and want to build a map of the objects in the world.
Occupancy grid map (OGM) is a very common way of representing the layout of the unknown environment. It is a large gray-scale image where each pixel represents a cell in the physical world. The cells that are occupied are colored black and empty cells represent free space are colored white. The grey cells represent unexplored areas. Before moving forward, lets make some assumptions:
- Assumption 1: each cell is either free or occupied. We model each cell as a binary random variable that indicates occupancy. Let the probability that the cell
be occupied be , then indicates a free cell and indicates an occupied cell. A priori, we do not know the state of the cell so we will set the prior probability to be .
- Assumption 2: the world is static. We assume that the objects in a room do not move when the mapping is carried out as we are interested in building a map of the walls inside the room.
- Assumption 3: cells are independent of each other. This means that the probability distribution of the map is given by the product of its individual cells, if cells in the map are denoted by a vector
then the map is given by,
Estimating the map from the data
Given the robot pose
We can obtain the odds ratio of this term- the ratio of probability that the
Let us rewrite this formula using the log-odds-ratio that makes implementing it particularly easy. The log-odds-ratio of the probability
Occupancy grids are a very popular approach to represent the environment given the poses of the robot as it travels in this environment. We can also use occupancy grids to localize the robot in a future run (which is usually the purpose of creating them).
Comments
Post a Comment