read

Считайте следующий шаг из записи радиолокационного сценария

Описание

пример

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

Примеры

свернуть все

Загрузите предварительно записанные данные из радарного сценария. Данные сохраняются как struct с именем переменной recordedData. Создайте radarScenarioRecording объект, использующий записанные данные.

load recordedRadarScenarioData.mat
recording = radarScenarioRecording(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

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

свернуть все

Радиолокационная запись сценария, заданная как radarScenarioRecording объект.

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

свернуть все

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

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

ОбластьОписание
PlatformID

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

ClassID

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

Position

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

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

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

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 объекты.

Строения эмиттера, возвращенные как массив структур. Каждая структура имеет эти поля.

ОбластьОписание
EmitterIndex

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

IsValidTime

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

IsScanDone

Завершил ли эмиттер скан, возвращается следующим true или false.

FieldOfView

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

MeasurementParameters

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

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

См. также

Введенный в R2021a