[データ融合] AISとレーダーに基づくマルチセンサートラック融合[Matlab129]

マルチセンサー
フュージョン-MATLABトラッカーの概要MATLABは、マルチターゲットトラッカーを介して複数のセンサーによって検出されたターゲット情報をフュージョンできます。一般的に使用されるマルチターゲットトラッカーには、trackerGNN、trackerJPDA、trackerTOMHT、trackerPHDなどがあります。trackerGNNは、追跡対象が測定対象とのみ一致することを前提としています。trackerJDPAは、追跡対象ごとに複数の測定対象と一致する場合があります。trackerPHDは、確率仮説密度(PHD)関数を介してターゲットを追跡します。trackerTOMHTは、追跡対象のターゲットに、それに一致する複数の仮想ターゲットがあると考えています。

1.トラッカーを使用する手順

MATLABでトラッカーを使用する主な手順には、(1)トラッカーのパラメーターの設定、(2)検出されたターゲットの情報の取得、トラッカーの呼び出し、(3)正常に追跡されたターゲットの位置と速度の情報の抽出が含まれます。 。

(1)トラッカーのパラメータを以下のように設定します。

tracker = trackerGNN( 'FilterInitializationFcn'、@ initcvkf、 'AssignmentThreshold'、10、…

'ConfirmationThreshold', [3 5], 'TrackLogic', 'History', ...

'DeletionThreshold'、10);

(2)以下のように、検出対象の情報を取得し、トラッカーを呼び出します。

[確認済み、暫定的、alltracks、info] = tracker(detection、time);

(3)以下に示すように、正常に追跡されたターゲットの位置と速度の情報を抽出します。

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

vel = getTrackVelocities(confirmed、velocitySelector);

2.測定ターゲットの作成

表1測定対象の属性表測定対象の属性表は、
ここに写真の説明を挿入
detection = objectDetection(time、measurement)関数により取得されます。入力は、時間と測定対象の結果です。

   通过如下两个例子可以建立测量目标

   例1:detection = objectDetection(1,[100;250;10])

例2:detection = objectDetection(1、[100; 250; 10]、 'MeasurementNoise'、10、…

'SensorIndex',1,'ObjectAttributes',{'Example object',5})

3.目標捕捉の追跡

表2追跡対象の属性表
ここに写真の説明を挿入
確認済みおよび暫定的は、[確認済み、暫定的、alltracks、info] = tracker(detection、time)で取得できますこれは、トラッカーによって返される確認済みの真のターゲットと仮想のターゲットをそれぞれ参照します。確認済みトラックと暫定トラックの両方に、表2のターゲット属性が含まれています。

4.グラフィカルな追跡および測定ターゲット

   Matlab通过创建theater 绘图来展现虚拟化的跟踪目标和测量目标。Matlab 中的trackPlotter 函数与detectionPlotter 函数分别用于在theater 中绘制跟踪目标和测量目标的结果。具体例子如下所示:

(1)追跡対象と測定対象の結果を初期化する

tp = theatrePlot( 'XLimits'、[-1 1200]、 'YLimits'、[-600 600]); %%は、作図領域のX軸とY軸の範囲を決定します。

trackP = trackPlotter(tp、 'DisplayName'、 'Tracks'、 'MarkerFaceColor'、 'g'、… 'HistoryDe​​pth'、0); %%描画追跡ターゲット

DetectionP = DetectionPlotter(tp、 'DisplayName'、 'Detections'、 'MarkerFaceColor'、… 'r'); %%測定されたターゲットを描画します

(2)追跡対象と測定対象の結果を更新する

trackP.plotTrack(pos、vel、cov、labels); %%追跡ターゲットを更新

DetectionP.plotDetection(meas '、measCov); %%測定ターゲットを更新します

5.その他

   在使用matlab的跟踪器时遇到的问题汇总如下:

matlabのトラッカーがデフォルトで使用する拡張カルマンフィルター(EKF)では、測定結果が3次元(X、Y、Z)である必要があり、2次元の場合はエラーが報告されます。
解決策:トラッカーのフィルター方法をカルマンフィルター(KF)に設定するか、2次元データを3次元に展開すると、3次元の測定データは常に0になります。

MATLABのplotTrack(trPlotter、pos、vel、cov)関数では、pos、vel、covが3次元情報である必要があります。2次元情報しかない場合、この関数を直接呼び出すと、次元の不一致エラーが報告されます。
解決策:plotTrack関数を呼び出す前に、2次元の位置、速度、および共分散情報を3次元に展開してから、plotTrack関数を呼び出して追跡結果を描画します。このメソッドは、plotDetection関数にも使用できます。

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')

ここに写真の説明を挿入
注:完全なコードまたは記述のためにQQ2449341593を追加してください

おすすめ

転載: blog.csdn.net/TIQCmatlab/article/details/112758871