exponenta event banner

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