Считайте следующий шаг из записи радиолокационного сценария
[ возвращает один записанный набор данных во время симуляции, 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
recording - Запись радиолокационного сценарияradarScenarioRecording объектРадиолокационная запись сценария, заданная как radarScenarioRecording объект.
simTime - Время симуляцииВремя симуляции, возвращенное как неотрицательный скаляр.
poses - Положения платформПоложения платформ, возвращенные как массив структур. Каждая структура имеет эти поля.
| Область | Описание |
|---|---|
PlatformID | Уникальный идентификатор для платформы, заданный как положительное целое число. Это обязательное поле без значения по умолчанию. |
ClassID | Пользовательское целое число, используемое для классификации типа целевого значения, заданное как неотрицательное целое число. Нуль зарезервирован для неклассифицированных типов платформ и является значением по умолчанию. |
Position | Положение цели в координатах сценария, заданное как реальный вектор-строка 1 на 3.
|
Velocity | Скорость платформы в координатах сценария, заданная как реальный вектор-строка 1 на 3. Модули - метры в секунду. Значение по умолчанию |
Acceleration | Ускорение платформы в координатах сценария, заданное как вектор-строка 1 на 3 в метрах в секунду за секунду. Значение по умолчанию |
Orientation | Ориентация платформы относительно локальной навигационной системы координат сценария, заданная как скалярный кватернион или матрица вращения 3 на 3. Ориентация определяет поворот системы координат локальной навигации к текущей системе координат тела платформы. Модули безразмерны. Значение по умолчанию |
AngularVelocity | Скорость вращения платформы в координатах сценария, заданная как действительный вектор 1 на 3. Величина вектора задает угловую скорость. Направление задает ось поворота по часовой стрелке. Модулями являются степени в секунду. Значение по умолчанию |
detections - ОбнаружениеobjectDetection объектыОбнаружения, возвращенные как массив ячеек objectDetection объекты.
sensorConfigs - строения датчикаДатчик строений, возвращенный как массив структур. Каждая структура имеет эти поля.
| Область | Описание |
SensorIndex | Уникальный индекс датчика, возвращенный как положительное целое число. |
IsValidTime | Допустимое время обнаружения, возвращаемое как |
IsScanDone |
|
FieldOfView | Поле зрения датчика, возвращаемое как вектор 2 на 1 положительных вещественных значений, [ |
MeasurementParameters | Параметры измерения датчика, возвращенные как массив структур, содержащих преобразования координатной системы координат, необходимые для преобразования положений и скоростей в системе координат верхнего уровня в систему координат тока. |
sensorPlatformIDs - Идентификаторы платформ датчиковИдентификаторы платформ датчиков, возвращенные как массив неотрицательных целых чисел.
emissions - ВыбросыВыбросы, возвращенные как массив ячеек объектов эмиссии, таких как radarEmission объекты.
emitterConfigs - строения эмиттераСтроения эмиттера, возвращенные как массив структур. Каждая структура имеет эти поля.
| Область | Описание |
EmitterIndex | Уникальный индекс эмиттера, возвращенный как положительное целое число. |
IsValidTime | Допустимое время излучения, возвращаемое следующим |
IsScanDone | Завершил ли эмиттер скан, возвращается следующим |
FieldOfView | Поле зрения эмиттера, возвращаемое как двухэлементный вектор [азимут; повышение] в степенях. |
MeasurementParameters | Параметры измерения Эмиттера, возвращенные как массив структур, содержащих преобразования координатной системы координат, необходимые для преобразования положений и скоростей в системе координат верхнего уровня в систему координат тока. |
emitterPlatformIDs - Идентификаторы платформы излучателейИдентификаторы платформы эмиттеров, возвращенные как массив неотрицательных целых чисел.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.