Multisensor data fusion in object tracking applications
1. Multisensor Data Fusion in Object Tracking Applications S.A.Quadri and Othman Sidek Collaborative µ-electronic Design Excellence Centre Universiti Sains Malaysia
2.
3.
4.
5. DATA FUSION APPLICATION IN ESTIMATION PROBLEMS Application Dynamic system Sensor Types Process control Chemical plant Pressure Temperature Flow rate Gas analyzer Flood predication River system Water level Rain gauge Weather radar Tracking Spacecraft Radar Imaging system Navigation Ship Sextant Log Gyroscope Accelerometer Global Navigation satellite system
6.
7.
8.
9. SIMULATION OF TARGET TRACKING AND ESTIMATION USING DATA FUSION Objective: Target tracking and estimation of a moving object Sensors used: Multiple sensors => Position estimation sensors => Velocity estimation sensors Need for heterogeneous multi sensors ? =>It is not possible to deduce a comprehensive picture about the entire target scenario from each of the pieces of evidence alone. =>Due to the inherent limitations of technical features characterizing each sensor. Coordinate system Selected : Cartesian coordinate system Technique applied : Multisensor data fusion using Kalman filter
10.
11.
12. Kalman Filtering Equations A – Dynamic coefficient matrix of a continuous linear differential equation defining dynamic system B – Coupling matrix between random process noise and state of a linear dynamic system Q- Covariance matrix of process noise in the system state dynamics R - Covariance matrix of measurement noise in the system state dynamics P- Covariance matrix of state estimation uncertainty K – Kalman gain ; H – Measurement sensitivity ; z- measurement vector :u – control input ŷ - k = Ay k-1 + Bu k P - k = AP k-1 A T + Q Prediction (Time Update) (1) Project the state ahead (2) Project the error covariance ahead Correction (Measurement Update) (1) Compute the Kalman Gain (2) Update estimate with measurement z k (3) Update Error Covariance ŷ k = ŷ - k + K(z k - H ŷ - k ) K = P - k H T (HP - k H T + R) -1 P k = (I - KH)P - k
14. Simulation has been carried out by with two-dimensional state model of the moving object along x; y and z directions. The program is executed in Matlab environment .
15. Result and conclusion As shown in figure estimation using state vector fusion method using Kalman filter is more close and accurate to actual track .
16.
17. Sample code % Missile_Launcher tracking Moving_Object using kalman filter clear all %% define our meta-variables (i.e. how long and often we will sample) duration = 10 %how long the Moving_Object flies dt = .1; %The Missile_Launcher continuously looks for the Object-in-motion , %but we'll assume he's just repeatedly sampling over time at a fixed interval %% Define update equations (Coefficent matrices): A physics based model for A = [1 dt; 0 1] ; % state transition matrix: expected flight of the Moving_Object (state prediction) B = [dt^2/2; dt]; %input control matrix: expected effect of the input accceleration on the state. C = [1 0]; % measurement matrix: the expected measurement given %% define main variables u = 1.5; % define acceleration magnitude Q= [0; 0]; %initized state--it has two components: [position; velocity] of the Moving_Object Q_estimate = Q; %x_estimate of initial location estimation of where the Moving_Object Moving_ObjectAccel_noise_mag = 0.05; %process noise: the variability in Q_loc = []; % ACTUAL Moving_Object flight path vel = []; % ACTUAL Moving_Object velocity Q_loc_meas = []; % Moving_Object path that the Missile_Launcher sees %% simulate what the Missile_Launcher sees over time figure(2);clf figure(1);clf % Generate the Moving_Object flight Moving_ObjectAccel_noise = Moving_ObjectAccel_noise_mag * [(dt^2/2)*randn; dt*randn]; Q= A * Q+ B * u + Moving_ObjectAccel_noise; ......................... pause end %plot theoretical path of Missile_Launcher that doesn't use kalman plot(0:dt:t, smooth(Q_loc_meas), '-g.') %plot(0:dt:t, vel, '-b.') %% Do kalman filtering %initize estimation variables ......................... % Plot the results figure(2); plot(tt,Q_loc,'-r.',tt,Q_loc_meas,'-k.', tt,Q_loc_estimate,'-g.'); %data measured by the Missile_Launcher ……………………… .. %combined position estimate mu = Q_loc_estimate(T); % mean sigma = P_mag_estimate(T); % standard deviation y = normpdf(x,mu,sigma); % pdf y = y/(max(y)); hl = line(x,y, 'Color','g'); % or use hold on and normal plot axis([Q_loc_estimate(T)-5 Q_loc_estimate(T)+5 0 1]); %actual position of the Moving_Object plot(Q_loc(T)); ylim=get(gca,'ylim'); line([Q_loc(T);Q_loc(T)],ylim.','linewidth',2,'color','b'); legend('state predicted','measurement','state estimate','actual Moving_Object position') pause end