read

Чтение записанных данных

Описание

пример

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

Примеры

свернуть все

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

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

свернуть все

Запись сценария отслеживания, заданная как 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