trackingScenarioRecording

Отслеживание записи сценария

Описание

Используйте trackingScenarioRecording возразите, чтобы записать сценарий отслеживания.

Создание

Описание

пример

TSR = trackingScenarioRecording(recordedData) возвращает trackingScenarioRecording объект TSR использование записанных данных. recordedData устанавливает значение RecordedData свойство.

TSR = trackingScenarioRecording(recordedData,Name,Value) свойства наборов с помощью одной или нескольких пар "имя-значение". Заключите каждое имя свойства в кавычки.

Входные параметры

развернуть все

Записанные данные в виде структуры. Поля структуры совпадают с полями выхода record метод trackingScenario.

Свойства

развернуть все

Записанные данные, хранимые в записи, возражают в виде структуры. Можно установить это свойство только при создании объекта. Поля структуры совпадают с полями выхода record метод trackingScenario.

Метка времени последних данных о чтении в виде неотрицательного скаляра. Когда вы используете read метод на объекте, метод читает записанный набор данных, который имеет SimulationTime больше, чем CurrentTime.

Индекс шага последних данных о чтении в виде неотрицательного целого числа. Когда вы используете read метод на объекте, метод читает набор данных следующего шага.

Функции объекта

readСчитайте зарегистрированные данные
isDoneСостояние конца данных

Примеры

свернуть все

Загрузите зарегистрированные данные из записанного заранее сценария под названием recordedScenario. Создайте trackingScenarioRecording объект с помощью записанных данных.

load recordedScenario recordedData
recording = trackingScenarioRecording(recordedData);

Создайте театральный график отобразить записанные данные с помощью нескольких плоттеров.

tp = theaterPlot('AxesUnits', ["km" "km" "km"], 'XLimits',[-50 50]*1e3,...
    'YLimits',[-50 50]*1e3,'ZLimits', [-20 20]*1e3);
to = platformPlotter(tp,'DisplayName','Tower','Marker','d');
pp = platformPlotter(tp,'DisplayName','Targets');
dp = detectionPlotter(tp,'DisplayName','Detections','MarkerFaceColor','black');
cp = coveragePlotter(tp,'DisplayName','Radar Beam');

coverage = struct('Index',1,'LookAngle',[0;-7],'FieldOfView',[1;10],...
    'ScanLimits',[0 365;-12 -2],'Range',100e3,'Position',[0;0;-15],...
    'Orientation',eye(3));

Запустите записанный сценарий и анимируйте результаты.

scanBuffer = {};
while ~isDone(recording)
    % Step the reader to read the next frame of data.
    [simTime,poses,dets,configs] = read(recording);
    scanBuffer = [scanBuffer;dets]; %#ok<AGROW>
    m = configs.MeasurementParameters(1).Orientation;
    coverage.LookAngle(1) = atan2d(m(1,2),m(1,1));
    plotPlatform(to,poses(1).Position);
    plotPlatform(pp,reshape([poses(2:4).Position]',3,[])');
    plotCoverage(cp,coverage);
    if ~isempty(dets)
        plotDetection(dp,cell2mat(cellfun(@(c) c.Measurement(:)', scanBuffer, 'UniformOutput', false)));
    end
    
    % Clear the buffer when a 360 degree scan is complete.
    if configs.IsScanDone
        scanBuffer = {};
        dp.clearData;
    end
end

Смотрите также

|

Введенный в R2020a