Department of Biomedical Engineering and Computational Science

RBMCDA Toolbox for Matlab V1.0

Maintainers: Simo Särkkä, Jouni Hartikainen

News

  • 2008-02-20 First version of toolbox and documentation have been published!

Introduction

RBMCDA Toolbox is software package for Matlab consisting of multiple target tracking methods based on Rao-Blackwellized particle filters. The purpose of the toolbox is provide a testing platform for constructing multiple target tracking applications based on the provided RBMCDA (Rao-Blackwellized Monte Carlo Data Association) algorithms.

Most of the code has been written by Simo Särkkä in the Laboratory of Computational Engineering. Later Jouni Hartikainen cleaned, commented, modified and extended it. He also wrote a documentation with examples for it.

The toolbox uses several functions of the Kalman filtering toolbox EKF/UKF.

License

This software is distributed under the GNU General Public License (version 2 or later); please refer to the file License.txt, included with the software, for details.

Download and Installation guide

Documentation

The documentation demonstrates the use of software as well . The purpose is not to give a complete guide to the subject, but to discuss the implementation and properties of provided algorithms.

The methods that are discussed in the current documentation are:

  • Particle filters.
  • RBMCDA algorithm for known constant number of targets.
  • RBMCDA algorithm for unknown and time-varying number of targets.

Demos

There are four documented demonstration programs for the provided RBMCDA algorithms. The code of demonstrations and short introduction to them are given below. All of the demonstration programs are discussed completely in the documentation.

Demonstration programs for RBMCDA with known and constant number of targets:
Tracking a Single Object with Cluttered Measurements, 'clutter_demo'
Bearings Only Tracking of Two Targets, 'bot_tt_demo'

Demonstration programs for RBMCDA with unknown and time-varying number of targets:
Tracking Unknown Number of 1D signals, 'multisignal_demo'
Tracking Unknown Number of Targets in 2D, 'mt_demo'

Contents


% Rao-Blackwellized Monte Carlo Data Association
% Toolbox for Matlab 7.x,
% Version 1.0, February 20. 2008
%
% Copyright (C) 2003-2008 Simo Särkkä, 
%               2008      Jouni Hartikainen 
%
% This software is distributed under the GNU General Public
% Licence (version 2 or later); please refer to the file
% Licence.txt, included with the software, for details.
%
%
% RBMCDA for known and constant number of targets:
%   MCDA_INIT           Particle structure initialization
%   KF_MCDA_PREDICT     KF RBMCDA prediction
%   KF_MCDA_UPDATE      KF RBMCDA update
%   KF_MCDA_SMOOTH      RTS smooothing for RBMCDA particles
%   EKF_MCDA_PREDICT    EKF RBMCDA prediction
%   EKF_MCDA_UPDATE     EKF RBMCDA update
%   EKF_MCDA_SMOOTH     ERTS smooothing for RBMCDA particles
%   UKF_MCDA_PREDICT    UKF RBMCDA prediction
%   UKF_MCDA_UPDATE     UKF RBMCDAupdate
%   UKF_MCDA_SMOOTH     URTS smooothing for RBMCDA particles
%
%
% RBMCDA for unknown and time-varying number of targets:
%   NMCDA_INIT          Particle structure initialization
%   KF_NMCDA_PREDICT    KF RBMCDA prediction
%   KF_NMCDA_UPDATE     KF RBMCDA update
%   KF_NMCDA_COLLECT    Collects and smooths the target trajectories
%   EKF_NMCDA_PREDICT   EKF RBMCDA prediction
%   EKF_NMCDA_UPDATE    EKF RBMCDA update
%   EKF_NMCDA_COLLECT   Collects and smooths the target trajectories
%   UKF_NMCDA_PREDICT   UKF RBMCDA prediction
%   UKF_NMCDA_UPDATE    UKF RBMCDAupdate
%   UKF_NMCDA_COLLECT   Collects and smooths the target trajectories
%
%
% Functions for handling particles
%   CALCULATE_MEAN      Calculation the mean estimates of particles
%   EFF_PARTICLES       Calculates the effective number of particles
%   GET_WEIGHTS         Extraction of weights from particle structures
%   NORMALIZE_WEIGHTS   Weights normalization for particle structures
%   RESAMPLE            Resampling for particle filtering
%   SET_WEIGHTS         Setting of particle weights
%
%
% Misc:
%   BIN_PDF             PDF of Binomial distribution
%   CATEG_RND           Draw random category
%   GAMMA_CDF           CDF of Gamma distribution
%   GAMMA_PDF           PDF of Gamma distribution
%   GMM_PDF             PDF of Gaussian mixture
%   GMM_RND             Random samples of Gaussian mixture distribution
%   POISSON_RND         Random samples of Poisson distribution
%
%
% /DEMOS/
%   /CLUTTER_DEMO/
%      CLUTTER_DEMO       Single target tracking with clutter measurements
%      CLUTTER_PLOT1      Plots the filtered estimates using particles
%      CLUTTER_PLOT2      Plots the smoothed estimates using particles
%
%   /BOT_TT_DEMO/
%      AZ_H               Measurement model function
%      AZ_DH_DX           1st order derivative of the measurement model
%      EKF_BOT_TT_DEMO    Bearings only tracking of two targets demo with EKF/RBMCDA
%      UKF_BOT_TT_DEMO    Bearings only tracking of two targets demo with UKF/RBMCDA
%
%   /MULTISIGNAL_DEMO/
%      MULTISIGNAL_DEMO     Estimation of multiple 1D Gaussian signals demo
%      MULTISIGNAL_DEMO_DP  Same as above with the death processing in the prediction step
%      MULTISIGNAL_PLOT     Plotting of filtered and smoothed signals
%
%   /MT_DEMO/
%      KF_MT_DEMO         Estimation of multiple 2D Gaussian targets with linear measurements
%      KF_MT_DEMO_DP      Same as above with the death processing in the prediction step
%      KF_MT_DEMO2        Same as KF_MT_DEMO with the restriction of data associations
%      KF_MT_PLOT2D       Plotting of filtered and smoothed trajectories
%
%  Currently not documented demos:
%
%   /EKF_MT_DEMO
%      AZ_H               Measurement model function
%      AZ_H_2A            Measurement model function with 2D attributes
%      AZ_DH_DX           1st order derivative of the measurement model
%      AZ_DH_DX_2A        1st order derivative of the measurement model with 2D attributes
%      EKF_MT_DEMO1       Same as KF_MT_DEMO where the measument model is the bearings only model
%      EKF_MT_DEMO1_DP    Same as above with the death processing in the prediction step
%      EKF_MT_DEMO2       Same as EKF_MT_DEMO1 with additional 2D attribute measurements
%      EKF_MT_DEMO2_DP    Same as above with the death processing in the prediction step


See also