This tutorial shows the possible application of a Monte Carlo Simulation method (particle filter) for mobile robot tracking and localisation.
Many problems in science require estimation of the state of a system that changes over time using a sequence of noisy measurements made on the system.
In order to analyze and make inference about a dynamic description, at least two models are required: First, a model describing the evolution of the state with time (the system model); second, a model relating the noisy measurements to the state (the measurement model). In this case these models are available in probablistic form. A probablistic state-space formulation and the requirement for the updating of information on receipt of new measurements are ideally suited for the Bayesian approach. This approach provides a rigorous general framework for dynamic state estimation problems.
In the Bayesian approach to dynamic state estimation one attempts to construct the posterior probability density function (pdf) of the state based on all available information including the set of received measurements. Since this pdf embodies all available statistical information, it may be considered as the "complete" solution to the estimation problem. In principle, an optimal (with respect to any criterion) estimate of the state may be obtained from the pdf.
The main objective of a particle filter is to "track" a variable of interest as it evolves over time. In contrast with Kalman filters a particle filter can typically handle non-Gaussian and potentially multi-model pdf. The basis of the method is to construct a sample-based representation of the entire pdf. A series of actions are taken, each one modifying the state of the variable of interest according to some model. Moreover at certain times an observation is made that contains information about the state of the variable of interest at that time.
Multiple copies (particles) of the variable of interest are used, each associated with a weigth that is a measure for the the quality (the likelihook) of that particle. An estimate of the variable of interest at each time step can be obtained by considering all particles at that moment, eg by taking the weighted mean.
The particle filter is recursive in nature and operates in two phases: prediction and update. After each action, each particle is modified according to the existing model (prediction stage), including the addition of random noise in order to simulate the effect of noise on the variable of interest. Then, each particle's weight is re-evaluated based on the latest observations (eg sensor measurements), this is the update stage. At times the particles with small weights are eliminated and particles with higher weights are duplicated, a process called resampling.
More formally, the variable of interest, in this case the pose (position and orientation) of the moving robot: xk=[xk,yk,thetak]T at time k is prepresented by a set of M samples (the particles): Sik=[xjk,wjk] : j=1..M, the variable of interest and a weight (wjk) that defines the contribution of this particle to the overall estimate of the variable.
If at time t=k we know the pdf of the system at the previous instant (time t=k-1) then we model the effect of the action to obtain a prior of the pdf at time t=k (prediction). In other words, the prediction phase uses a model in order to simulate the effect an action has on the set of particles with the appropriate noise added. The update phase uses the information obtained from sensing to update the particle weights in order to accurately describe the moving robot's pdf.
Given a particle distribution it is often needed to take actions based on the robot pose. Three different methods of evaluation have been used in order to obtain an estimate of the pose. First, the weighted mean can be used; second the best particle and third the weighted mean in a small window around the best particle (also called the robust mean) can be used. Each method has its advantages and disadvantages: the weighted mean fails when faced with multi-modal distributions, while the best particle often introduces a discritization error. The best method is the robust mean but it is also the most computationally expensive.
eg. the normalisation of the weights
A zip of all m-files: M-files
The parameters in the different m-files
In a tracking problem, the initial position of the mobile robot is approximately known and the position of the robot has to be estimated during the further movement.
The situation in which only prediction is used is achieved by skipping the resampling. This situation is also known as deadreckoning.
Remark: In the movies the weigth of each particle is shown based on an US and RF measurement although this weight isn't used to resample.
The mobile robot follows a trajectory. The initial position and orientation is exactly known, but there is some uncertainty about the traveled distance and the angle during translation. Example 1 Example 1b: memory
The mobile robot follows a trajectory. The initial position and orientation is exactly known, but there is some uncertainty about the angle during translation. Example 2
The mobile robot follows a trajectory. The initial position and orientation is exactly known, but there is some uncertainty about the translation distance. Example 3
Every time-step the robot measures it's distance to a fixed wall with an ultrasonic sensor.
Remark: In the movies the weigth of each particle is shown based on an US measurement.
The mobile robot follows a trajectory. The initial position and orientation is exactly known, but there is some uncertainty about the traveled distance and angle during translation. Example 1
Every time-step the robot measures it's distance and orientation relative to a beaken with a range finder.
Remark: In the movies the weigth of each particle is shown based on a RF measurement.
The mobile robot follows a trajectory. The initial position and orientation is exactly known but there is some uncertainty about the translation distance, the angle during translation and the rotation angle. Example 1
Every time-step the robot measures it's distance to a fixed wall with an US sensor and it's distance and orientation relative to a beaken with a range finder.
Remark: In the movies the weigth of each particle is showed based on the US and RF measurements.
The mobile robot follows a trajectory. The initial position and orientation is exactly known but there is some uncertainty about the translation distance, the angle during translation and the rotation angle. Example 1
In a localisation problem, the initial pose (position and orientation) of the robot is not known. The pose of the robot has to be estimated based on the available information from the measurements.
Every time-step the robot measures it's distance to a fixed wall with an ultrasonic sensor.
Remark: In the movies the weigth of each particle is shown based on an US measurement.
The mobile robot follows a trajectory. The initial position and orientation is unknown and there is some uncertainty about the translation distance, the angle during translation and the rotation angle. Example 1
Every time-step the robot measures it's distance and orientation relative to a beaken with a range finder.
Remark: In the movies the weigth of each particle is shown based on a RF measurement.
The mobile robot follows a trajectory. The initial orientation is known, but the initial position is unknown. There is some uncertainty about the traveled distance, the angle during translation and the rotation angle. Example 1
The mobile robot follows a trajectory. The initial position and orientation is unknown and there is some uncertainty about the translation distance, the angle during translation and the rotation angle. Example 2
Every time-step the robot measures it's distance to a fixed wall with an US sensor and it's distance and orientation relative to a beaken with a range finder.
Remark: In the movies the weigth of each particle is showed based on the US and RF measurements.
The mobile robot follows a trajectory. The initial orientation is known, but the initial position is unknown. There is some uncertainty about the traveled distance, the angle during translation and the rotation angle. Example 1
The mobile robot follows a trajectory. The initial position and orientation is unknown and there is some uncertainty about the translation distance, the angle during translation and the rotation angle. Example 2
The mobile robot follows a trajectory. The initial orientation is known, but the initial position is unknown. There is some uncertainty about the traveled distance, the angle during translation and the rotation angle. The initial distribution of the particles is assymmetrical around the real initial position. Example 4