290 likes | 567 Views
Target Tracking Performance Evaluation A General Software Environment for Filtering. Rickard Karlsson Gustaf Hendeby Automatic Control Linköping University, SWEDEN. rickard@isy.liu.se. Motivating Example. Range-Only Measurements. Two Sensors with range uncertainties. Performance?
E N D
Target Tracking Performance EvaluationA General Software Environment for Filtering Rickard Karlsson Gustaf Hendeby Automatic Control Linköping University, SWEDEN rickard@isy.liu.se
Motivating Example Range-Only Measurements Two Sensors with range uncertainties • Performance? • General Software for filtering
Outline • Nonlinear filtering using particle filters • Performace measure for nonlinear filtering Kullback-Divergence vs RMSE • General Filtering Software Object oriented design Design Patterns • Examples
Filtering Process noise STATE SPACE MODEL PROBABILISTIC DESCRIPTION Measurement noise Method? Performance? Implementation?
Bayesian Recursions: Probability Density Function (pdf) M.U. T.U. Approx system Approx pdf Particle Filter Extended Kalman Filter
Filter Evaluation: Mean Square Error (MSE) Mean square error (MSE) • Standard performance measure • Approximates the estimation error covariance • Bounded by the Cramér-Rao Lower Bound (CRLB) • Ignores higher-order moments! Compare the true trajectory with the estimated!!! What can we do instead?
Filter Evaluation: Kullback Divergence (KD) Kullback Divergence (KD) • Compares the distance between two distributions • Captures all moments of the distributions • True PDF from a grid-based method • True PDF from PF, compare sub-optimal filters • Smoothing kernel needed for implementation Compare the true PDF with the estimated PDF.
Generalized Gaussian Generalized Gaussion Distribution Kullback Divergence PDF
Example 1: One-dimensional Nonlinear System Probability Density Function x Time
Example 1: One-dimensional Nonlinear System RMSE Kullback Divergence KD for one realization comparing PF and EKF RMSE for 400 MC simulations
Example 2: Range-Only Measurement • Estimate target position from range-only measurements • Nonlinear measurements but Gaussian noise • Posterior distribution: bimodal • Point Estimate: EKF vs PF the same, i.e. same RMSE
Example 2: Simulation Results for Range-Only KD MSE EKF EKF PF PF No Difference! KD Indicates a Difference!
Calculating the probability EKF Probability for target within the circle with radius R PF&True
F++ A General Filtering Environment in C++ • MATLAB • Easy to use • Weak typing • Somewhat slow • Object oriented (not really) • C++ • More complicated to use • Fast • Strong typing • Object oriented • Can be implemented ! F++: Fairly easy to use Just provide models f(x), h(x), etc Estimators: EKF, PF, IMM, UKF OOP & Design Patterns Open Source code available www.control.isy.liu.se/resources/f++
Object Oriented Programming (OOP) • Inheritance • Encapsulation • Overloading
Design Patterns – What is it? “Design patterns are general, programming language independent, conceptual high level solutions to common problems” Example: • Smart Pointers • Singletons • Object factories • …
F++ A General Filtering Framwork in C++ Model Noise Estimator I/O • EKF • PF • IMM • UKF • MPF • MATLAB • XML • Gauss • SumNoise • … • LinModel • MultiModel • GenericModel • <LinDyn,LinMeas>
F++ A General Filtering Framwork in C++ Model Noise Estimator I/O • EKF • PF • IMM • UKF • MPF • MATLAB • XML • Gauss • SumNoise • … • LinModel • MultiModel • GenericModel • <LinDyn,LinMeas>
F++ A General Filtering Framwork in C++ Model Noise Estimator I/O • EKF • PF • IMM • UKF • MPF • MATLAB • XML • Gauss • SumNoise • … • LinModel • MultiModel • GenericModel • <LinDyn,LinMeas>
F++ A General Filtering Framwork in C++ Model Noise Estimator I/O • EKF • PF • IMM • UKF • MPF • MATLAB • XML • Gauss • SumNoise • … • LinModel • MultiModel • GenericModel • <LinDyn,LinMeas>
F++ A General Filtering Framwork in C++ Ex: Linear Gaussian system with KF and MATLAB support Model Noise Estimator I/O • EKF • PF • IMM • UKF • MPF • MATLAB • XML • Gauss • SumNoise • … • LinModel • MultiModel • GenericModel • <LinDyn,LinMeas>
F++ A General Filtering Framwork in C++ Ex: Non-Linear Gaussian system with PF and MATLAB support Model Noise Estimator I/O • EKF • PF • IMM • UKF • MPF • MATLAB • XML • Gauss • SumNoise • … • LinModel • MultiModel • GenericModel • <LinDyn,LinMeas>
Code: Main Estimation Loop u y filter estimate Estimator Time Update Meas. Update Estimate This works for any estimator!
Code: Main Program INPUT MC-loop True/Meas Estimate OUTPUT Same Code for any Model
Summary • Proposed KD as a performance measure • General Filtering Software Rickard Karlsson Automatic Control Linköping University, SWEDEN rickard@isy.liu.se www.control.isy.liu.se/~rickard