RBMCDA Toolbox for Matlab V1.0
- 2008-02-20 First version of toolbox and documentation have been published!
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.
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.
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.
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'
% 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