read

Считайте зарегистрированные данные

Описание

пример

[simTime,poses,detections,sensorConfigs,sensorPlatformIDs,emissions,emitterConfigs,emitterPlatformIDs] = read(TSR) возвращается тот записал набор данных во времени симуляции, simTime, из сценария отслеживания, записывающего TSR.

Примеры

свернуть все

Загрузите зарегистрированные данные из записанного заранее сценария под названием 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,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

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

свернуть все

Отслеживание записи сценария в виде trackingScenarioRecording объект.

Выходные аргументы

свернуть все

Время симуляции, возвращенное как неотрицательный скаляр.

Положения платформ, возвращенных как массив структур. Поля каждой структуры:

Поле Описание
PlatformID

Уникальный идентификатор для платформы в виде положительного целого числа. Это - обязательное поле без значения по умолчанию.

ClassID

Пользовательское целое число раньше классифицировало тип цели в виде неотрицательного целого числа. Нуль резервируется для несекретных типов платформы и является значением по умолчанию.

Position

Положение цели в сценарии координирует в виде с действительным знаком 1 3 вектор-строку.

  • Если coordinateSystem аргумент задан как 'Cartesian', Position Декартовы координаты положения с 3 элементами в метрах.

  • Если coordinateSystem аргумент задан как 'Geodetic', Position геодезические координаты с 3 элементами: широта в градусах, долгота в градусах и высота в метрах.

Velocity

Скорость платформы в сценарии координирует в виде с действительным знаком 1 3 вектор-строку. модули являются метрами в секунду. Значением по умолчанию является [0 0 0].

Acceleration

Ускорение платформы в координатах сценария в виде 1 3 вектора-строки в метрах в секунду придало квадратную форму. Значением по умолчанию является [0 0 0].

Orientation

Ориентация платформы относительно локальной навигации сценария структурирует в виде скалярного кватерниона или 3х3 матрицы вращения. Ориентация задает вращение системы координат от локальной системы координат навигации до текущей системы координат тела платформы. Модули являются безразмерными. Значением по умолчанию является quaternion(1,0,0,0).

AngularVelocity

Скорость вращения платформы в сценарии координирует в виде с действительным знаком 1 3 вектор. Величина вектора задает угловую скорость. Направление задает ось по часовой стрелке вращения. модули являются степенями в секунду. Значением по умолчанию является [0 0 0].

Обнаружения, возвращенные как массив ячеек objectDetection объекты.

Настройки датчика, возвращенные как массив структур. Поля каждой структуры:

Поле Описание
SensorIndex

Уникальный индекс датчика, возвращенный как положительное целое число.

IsValidTime

Допустимое время обнаружения, возвращенное как true или false. IsValidTime false когда обновления обнаружения требуют между интервалами обновления, заданными частотой обновления.

IsScanDone

IsScanDone true когда датчик завершил скан.

FieldOfView

Поле зрения датчика, возвращенного как 2 1 вектор из положительных действительных значений, [azfov; elfov]. azfov и elfov представляйте поле зрения в азимуте и вертикальном изменении, соответственно.

MeasurementParameters

Параметры измерения датчика, возвращенные как массив структур, содержащих координатную систему координат, преобразовывают, должен был преобразовать положения и скорости в системе координат верхнего уровня к системе координат датчика тока.

Идентификаторы платформы датчиков, возвращенных как массив неотрицательных целых чисел.

Эмиссия, возвращенная как массив ячеек radarEmission или sonarEmission объекты.

Эмиттерные настройки, возвращенные как массив структур. Поля каждой структуры:

Поле Описание
EmitterIndex

Уникальный эмиттерный индекс, возвращенный как положительное целое число.

IsValidTime

Допустимое время эмиссии, возвращенное как 0 или 1. IsValidTime 0 когда эмиттерные обновления время от времени требуют, которые являются между интервалами обновления, заданными UpdateInterval свойство.

IsScanDone

Завершил ли эмиттер скан, возвращенный как true или false.

FieldOfView

Поле зрения эмиттера, возвращенного как двухэлементный вектор [азимут; вертикальное изменение] в градусах.

MeasurementParameters

Эмиттерные параметры измерения, возвращенные как массив структур, содержащих координатную систему координат, преобразовывают, должен был преобразовать положения и скорости в системе координат верхнего уровня к текущей эмиттерной системе координат.

Идентификаторы платформы эмиттеров, возвращенных как массив неотрицательных целых чисел.

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

| |

Введенный в R2020a