DynamicMap’s documentation

The present software implements a kind of map that extends to the traditional occupancy grid model. In the traditional map, as presented in Probabilistic Robotics, each cell only holds the probability of being occupied or not. This probability gets updated with a Bayesian filter after every observation of a particular cell, where there is no control action because the state of the cell cannot change. In DynamicMap each cell is represented as a Hidden Markov Model, thus adding dynamics to the map. Using this model we take into account that the cell can change from one state to another. The dynamic model of each cell is also learnt from the sensor information so no further information is required to build the map.

This modification allows the map to better represent slowly changing environments, like parking lots. Also, this map can hold more than two states, occupied or free. Each cell can be in one of any number of states, which can be used to transform this into a semantic map, holding information not just of the shape of the space but also where it is more probable to find any given object.

This last application can allow a robot to learn from the environment the position of recognisable objects and to later on find them, and also to get information about the most common uses of different parts of the mapped environments.

Map showing two objects on a table.

This image shows an example map with 4 states in each cell. Here the map was formed with 3 different objects, a table a box and a cup, each showed in one subplot. The forth graph shows the resulting map, which was queried for the most probable location to find each of the objects.

This software is written in Python, with the most time critical portions written in a C extension to greatly improve the execution speed.


In the following sections you can find a description of every class used to build this software, followed by their APIs. Even though great effort was done to ensure good documentation of every method, it is sometimes not enough to understand how to use a library. For that reason the distribution includes a number of examples used to shown different use cases, and to provide a better understanding of how to use this software.

Indices and tables

Table Of Contents

Next topic


This Page