A list,

Multi-sensor fusion – MATLAB tracker MATLAB can fuse the target information detected by multi-sensors through multi-target tracker, commonly used multi-target tracker has trackerGNN, trackerJPDA, trackerTOMHT, trackerPHD and so on. TrackerGNN works by assuming that a tracked target matches only one measured target. TrackerJDPA may match multiple measured targets for each tracked target. TrackerPHD tracks targets through probability hypothesis density (PHD) functions. TrackerTOMHT holds that the tracked target has multiple hypothetical targets that match it.

1. Procedure of using tracker

The main steps of using the tracker in MATLAB include (1) setting the parameters of the tracker, (2) obtaining the information of the detected target and calling the tracker, and (3) extracting the position and speed information of the successfully tracked target.

(1) Set the parameters of the tracker, as shown below

Tracker = trackerGNN(‘ FilterInitializationFcn ‘, @initcvkf, ‘AssignmentThreshold’,10,…

'ConfirmationThreshold', [3 5], 'TrackLogic', 'History', ...
Copy the code

‘DeletionThreshold, 10);

(2) To obtain the detection target information, call the tracker, as shown below

[confirmed,tentative,alltracks,info] = tracker(detection,time);

(3) Extract the position and speed information of the successfully tracked target, as shown below

[pos,cov] = getTrackPositions(confirmed,positionSelector);

vel = getTrackVelocities(confirmed,velocitySelector);

2. Creation of measurement targets

Table 1 Attributes of measurement targets



The measurement object property sheet is obtained through detection = objectDetection(time,measurement). The input is the result of the time and the measured object.

Detection = objectDetection(1,[100;250;10])Copy the code

Example 2: Detection = objectDetection(1,[100;250;10], ‘MeasurementNoise’,10, MeasurementNoise…

'SensorIndex',1,'ObjectAttributes',{'Example object',5})
Copy the code

3. Tracking target acquisition

Table 2 Property table of trace target



Through [confirmed, tentative, alltracks, info] = tracker (detection, time) can be confirmed and tentative, which refers to the tracker return proved true targets and hypothetical goal. Both classes of targets, Confirmed Tracks and Tentative Tracks, contain the target properties of Table 2.

4, tracking and measuring the target of the graph

Matlab creates theater plots to represent virtual tracking and measurement targets. The trackPlotter function and detectionPlotter function in Matlab are used to draw the results of tracking target and measuring target in theater respectively. Specific examples are as follows:Copy the code

(1) Initialize the result of tracking target and measuring target

Tp = theaterPlot(‘ XLimits’,[-1 1200], ‘YLimits’,[-600 600]); %% determines the range of the X-axis and Y-axis of the drawing area

TrackP = trackPlotter (tp, ‘DisplayName’, ‘seen’, ‘MarkerFaceColor’, ‘g’,… ‘HistoryDepth, 0); %% draws the tracking target

DetectionP = detectionPlotter (tp, ‘DisplayName’, ‘Detections’,’ MarkerFaceColor,… “R”); %% draws the measured target

(2) Update the results of tracking and measuring targets

trackP.plotTrack(pos,vel,cov,labels); %% updates the trace target

DetectionP. PlotDetection (meas’, measCov); %% Update measurement target

5, other

The problems encountered in the use of MATLAB tracker are summarized as follows:Copy the code

The default tracker of MATLAB uses the extended Kalman filter (EKF), whose function requires the measurement result to be three-dimensional (X,Y,Z), if it is two-dimensional will report an error. Solution: Set the filter method of the tracker to Kalman filter (KF), or expand the two-dimensional data to three-dimensional, and the measurement data of the third dimension is always 0.

MATLAB plotTrack(trPlotter,pos,vel, COv) requires pos, VEL, and COV to be three-dimensional information. If only 2-dimensional information is directly called, dimension mismatch errors will be reported. Solution: Before calling plotTrack function, expand 2d position, speed and covariance information into 3D, and then call plotTrack function to draw tracking results. The plotDetection function can also be processed by this method.

Ii. Source code

clc;
clear;
close all
load('MarCE_Radar_Detections_01_005_patched.mat');
load('dtGroundTruthAIS.mat')
 
 
 
figure(1);
for i = 1:numel(data)
    TR = extractfield(data{i},'TR');
    TR = reshape(TR,2[]); Azimuth = TR(1, :); Range = TR(2, :); [X,Y] = pol2cart(Azimuth, Range); plot(X,Y,'.b');
    axis([- 7000. 7000 - 7000. 7000]); hold on; A = gt{i}; scatter(A(:,1),A(:,2),'r.');
    
%     pause(.01);
end
grid on;
xlabel('X')
ylabel('Y')
title('Radar Data with AIS Ground Truth')
 
legend('Radar Data'.'AIS Data')
Copy the code

3. Operation results

Fourth, note

Version: 2014 a