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 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,covcon,dets,senconfig] = read(recording);
    scanBuffer = [scanBuffer;dets]; %#ok<AGROW>
    plotPlatform(to,poses(1).Position);
    plotPlatform(pp,reshape([poses(2:4).Position]',3,[])');
    plotCoverage(cp,covcon);
    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 senconfig.IsScanDone
        scanBuffer = {};
        dp.clearData;
    end
end

Figure contains an axes. The axes contains 4 objects of type line, patch. These objects represent Tower, Targets, Detections, Radar Beam.

См. также

|

Введенный в R2020a