Считайте следующий шаг от радарной записи сценария
[
возвращается тот записал набор данных во времени симуляции, 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.