Occupancy Grid

撰写于 2020-11-06 修改于 2021-07-07 标签 5 Minutes with Cyrill

Occupancy Grid

So what is an occupancy grid map?

Occupancy map is a 2D representation of the environment. And it’s very similar to the old-school map that you used to navigate through a city. Except that it is stored inside a computer or inside a mobile robot and is used for navigation task. For example, for driving around, for mapping the environment, for localizing. Although these techniques typically use maps and often occupants equipments.

So an occupancy grid map consists of so-called occupancy grid cells. And the occupancy grid cells refers to specific places in the environment. Let’s see a small 5x5 centimeter area, and the occupancy grid map stores the information in this cell is either occupied by an obstacle or if it is a free space. So you can see it’s very similar to a gray scale image. An image consists of pixels, and the occupancy grid map is the image and the pixel refers to an occupancy grid cell. So if it takes a value corresponding to a black color that means this place is occupied by an obstacle. If you put in a white color, it means this space is a free space. And the image you will generate from such an occupancy grid map will be very similar to architectural floor plan where for example you have dark areas indicating walls or other obstacles in the environment. White represents the free space.

The only problem we have in reality are especially if we work with mobile robot is that we are not certain if a place in environment is occupied by an obstacle or free place. We can only estimate that we typically use sensor data, noisy sensor data to do that. Therefore we maintain for every cell a probability, a probability that this cell is occupied or not. So it’s called the occupancy probability. And occupancy probability of one means the cell for sure is occupied, and occupancy probability of zero means this cell is free space for sure. And everything in between tell us I’m more or less certain that it’s either free or occupied. So the occupancy grid map is a set of those small probabilities distributions and we typically use independent probability distributions to represents that space.

This is not necessarily the case in reality that the places are independent of each other. It’s just use simplify math. And the occupancy grid map typically use 3 main assumptions. First one is a place can be either occupied or free. Those grid cells are independent of each other and we typically assume the world to be static. So there’s nothing moving in the world. And then we use sensor data such as laser range finder stereo camera, RGB-D camera and so on any type of range sensor to provide us with information if we can measure cells being occupied or free. And mathematically speaking, we use a static state binary bayes filter to estimate a probability distribution for every place. If you have a high quality sensors which can measure distances very well. You typically get very sharp maps in the environment. If you have a more noisy sensor, you may have more blurry walls and the map does not look that sharp. There has been an efficient algorithm and that has been proposed by more of a _ in 1980s in how to turn sensor information in this case sonar data into an occupancy grid map. So that we can estimate for different places in the environment if they are occupied by obstacles or if they are free spaces. And these types of map are used in large number of robotics applications today.

So indoor robots for example use this type of obstacle map in order to navigate the space. It could be an intelligent _ which drive their new environment or it could be your lawnmower. So most robots actually use some form of map and often use occupancy grid map for localizing, for planning path, for mapping the environment, for exploration task, basically for everything.

So these occupancy grid maps are nearly everywhere in robotics and it’s so important to understand their properties. They of course also extension of the occupancy grid maps for example for 3D spaces then it’s a small area in the environment then the map represents the voxel what so-called voxel grid in 3D. Things may become a little bit more complicated also if you have a dynamic evolved but overall they are basically using this very simple contact concept of using a single variable for a small area and environment estimating if the world is free or occupied. So I go but hope I gave you an idea how occupancy grid map work, what you can do with them and what the key properties are and they actually appear nearly every bound robotics.

Site by Luoadore using Hexo & Random