Skip to content

Occupancy Grids: How to Use Them, What They Are and What rho Is.

Simon Biberger edited this page Oct 5, 2021 · 1 revision

How to Decide Which Occupancy Grids to Use

  • Do you want to use a dataset's probability or intensity values?

Yes. -> relaxed occupancy grids.

No. ->next question.

  • Do you have a closed surface?

Yes. -> strict occupancy grids.

No. ->relaxed occupancy grids.

Additionally, sometimes a dataset's segmentation is structured such that irrelevant parts have values 0, a border (for example, cell membrane) has values 1, and the inside of the cell membrane has the value 2 (or similar). Then, you can either set the border area and inside to 1 and use the segmentation directly as a strict occupancy grid, or you use the border area as a mask, set it to 1 (if that's not already the case) and multiply it with the original values of the dataset. Then, you can use the result as a relaxed occupancy grid.

What even are occupancy grids? Here's some help.

Occupancy grids are often used in robotics, and here's the definition from Wikipedia: The basic idea of the occupancy grid is to represent a map of the environment as an evenly spaced field of binary random variables each representing the presence of an obstacle at that location in the environment. The original framework by Pottmann et al. allows only values 0 and 1 in their occupancy grids. I.e. they strictly limit their occupancy grids to 0 and 1, thus strict occupancy grids. So essentially, strict occupancy grids approximate an object by setting everything that is not on or inside the object to 0. Here's a two-dimensional example.

Two-Dimensional Example of a Strict Occupancy Grid of a Contour

Relaxed Occupancy Grids allow values between 0 and 1, i.e. they are a more relaxed notion of strict occupancy grids ->relaxed occupancy grids. If you probability or intensity values are in a different interval please shift and rescale them accordingly. Otherwise, you will get errors. In relaxed occupancy grids, you do not need to colour the inside of an object, this might not be super helpful in this setting, but if you use occupancy grid splitting, relaxed occupancy grids are essential.

What does the parameter rho do?

It controls the resolution of the occupancy grid. The higher the resolution, the better is the approximation of the surface. The higher the resolution, the better is the approximation of the surface. Here are some examples of occupancy grids that are not yet filled inside.

Low-Resolution (small rho) Approximation Higher-Resolution (higher rho) Approximation But if the resolution is too high (higher than the original resolution) or the dataset is too sparsely populated, the occupancy grid construction algorithm fails to fill the inside correctly. This is what happens in the following two figures. First, rho is chosen appropriately, which results in the correct occupancy grid of a sphere. In the second example, this is not the case.

rho=1 rho=2