monostaticLidarSensor

Симулируйте и смоделируйте генератор облака точек лидара

Описание

monostaticLidarSensor Система object™ генерирует обнаружения облака точек целей моностатическим датчиком лидара. Можно использовать monostaticLidarSensor объект в сценарии, содержащем перемещение и стационарные платформы, такие как одно созданное использование trackingScenario. monostaticLidarSensor объект генерирует облака точек с платформ с заданными сетками (использующий Mesh свойство. monostaticLidarSensor Модели системных объектов генератор облака идеальной точки и не составляют эффекты ложных предупреждений и пропущенных обнаружений.

Сгенерировать обнаружения облака точек с помощью симулированного датчика лидара:

  1. Создайте monostaticLidarSensor объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?.

Создание

Описание

пример

sensor = monostaticLidarSensor(SensorIndex) создает симулированный датчик лидара с заданным индексом датчика, SensorIndex. Значения свойств по умолчанию используются.

sensor = monostaticLidarSensor(SensorIndex,Name,Value) свойства наборов с помощью одной или нескольких пар "имя-значение". Заключите каждое имя свойства в кавычки. Например, monostaticLidarSensor(1,'DetectionCoordinates','Sensor') создает симулированный датчик лидара, который сообщает об обнаружениях в Декартовой системе координат датчика с индексом датчика, равным 1.

Свойства

развернуть все

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release функция разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

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

Частота обновления датчика в виде положительной скалярной величины в Гц. Интервал обновления (обратная величина UpdateRate) должно быть целочисленное кратное интервал времени симуляции, заданный в trackingScenario. Любое обновление, которое требуют к датчику между интервалами обновления, не содержит никакой смысл облака.

Пример 5

Типы данных: double

Местоположение датчика на платформе в виде 1 3 вектора с действительным знаком. Это свойство задает координаты датчика относительно источника платформы. Значение по умолчанию указывает, что источник датчика является 1,5-метровым форвардом источника платформы. Модули исчисляются в метрах.

Пример: [.2 0.1 0]

Типы данных: double

Ориентация монтирования датчика на платформе в виде вектора с 3 элементами из скаляров в градусах. Каждый элемент вектора соответствует внутреннему вращению Угла Эйлера, которое несет оси тела платформы к осям датчика. Эти три элемента задают вращения вокруг z - y - и x - оси, в том порядке. Первое вращение вращает оси платформы вокруг z - ось. Второе вращение вращает систему координат вокруг вращаемого y - ось. Итоговое вращение вращает систему координат вокруг несомого x - ось.

Пример: [10 20 -15]

Типы данных: double

Максимальная область значений обнаружения в виде положительной скалярной величины в метрах.

Пример: 500

Типы данных: double

Точность измерений области значений в виде положительной скалярной величины в метрах. Значение свойства представляет, стандартное отклонение измерений области значений.

Пример: 0.1

Типы данных: double

Разрешение азимута датчика лидара в виде положительной скалярной величины в градусах. Число точек на канал вертикального изменения равно пределам азимута, разделенным на разрешение азимута.

Типы данных: double

Разрешение вертикального изменения датчика лидара в виде положительной скалярной величины в градусах. Число точек на канал азимута равно пределам вертикального изменения, разделенным на разрешение вертикального изменения.

Типы данных: double

Пределы азимута датчика лидара в виде вектора 1 на 2 строки скаляров в градусах.

Пример: [-90 90]

Типы данных: double

Пределы вертикального изменения датчика лидара в виде вектора 1 на 2 строки скаляров в градусах.

Пример: [-90 90]

Типы данных: double

Включите сложение шума к местоположениям облака точек в виде true или false. Установите это свойство на true добавить шум в местоположения облака точек. В противном случае местоположения облака точек не содержат шума. Датчик добавляет случайный Гауссов шум в каждую точку со средним равным нулю и стандартным отклонением, заданным RangeAccuracy свойство.

Типы данных: логический

Включите организованные местоположения облака точек в виде true или false.

  • Когда это свойство установлено как true, облако точек выходом является N-by-M-by-3 массив скаляров, где N является количеством каналов вертикального изменения и M, является количеством каналов азимута.

  • Когда это свойство установлено как false, выходом облака точек является P-by-3 матрица скаляров, где P является продуктом количеств каналов азимута и вертикального изменения.

Типы данных: логический

Включите дополнительный входной параметр, который передает текущую оценку INS положения платформы датчика к датчику в виде false или true. Когда true, информация о положении добавляется к MeasurementParameters свойство настройки, позволяя алгоритмам отслеживания и сплава оценить состояние целей в системе координат сценария. Это также включает, чтобы сообщить о местоположениях облака точек в системе координат сценария.

Типы данных: логический

Система координат, в которой в виде обнаружений сообщают:

  • 'Sensor' — Об обнаружениях сообщают в системе прямоугольной координаты датчика.

  • 'Body' — Об обнаружениях сообщают в прямоугольной системе тела платформы.

  • 'Scenario' — Об обнаружениях сообщают в прямоугольной системе координат координаты сценария. Чтобы включить это значение, установите HasINS свойство к true.

Типы данных: char

Использование

Описание

pointCloud = sensor(targetMeshes,time) возвращает измерения облака точек в 3-D геометрические сетки целей, tgtMeshes, при симуляции time.

pointCloud = sensor(targetMeshes,insPose,time) также задает оцененное по INS положение, insPose, для платформы датчика. Информация о INS используется путем отслеживания и алгоритмы сплава, чтобы оценить целевые положения в системе координат сценария.

Чтобы включить этот синтаксис, установите HasINS свойство к true.

[pointCloud,config] = sensor(___) также возвращает настройку датчика, config, в текущем времени симуляции. Можно использовать эти выходные аргументы с любым из предыдущих входных синтаксисов.

[pointCloud,config,clusters] = sensor(___) также возвращает clusters, истинный кластер помечает для каждой точки в облаке точек.

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

развернуть все

Сетки целей в виде массива структур. Каждая структура должна содержать следующие поля.

Имя поляОписание
PlatformIDУникальный идентификатор цели в виде неотрицательного целого числа.
ClassIDУникальный идентификатор класса цели в виде неотрицательного целого числа.
ПоложениеПоложение цели относительно датчика, монтирующего систему координат тела платформы в виде вектора с 3 элементами из скаляров.
ОриентацияОриентация цели относительно датчика, монтирующего систему координат тела платформы в виде quaternion возразите или матрица вращения.
MeshГеометрическая сетка цели в виде extendedObjectMesh объект относительно системы координат тела цели.

Положение платформы от оценки INS в виде структуры. Информация о INS может использоваться путем отслеживания и алгоритмы сплава, чтобы оценить положение платформы и скорость в системе координат сценария.

Информацией о положении платформы от инерционной системы навигации (INS) является структура с этими полями:

Поле Определение
Position

Положение в навигации структурирует в виде с действительным знаком 1 3 вектор. Модули исчисляются в метрах.

Velocity

Скорость в навигации структурирует в виде с действительным знаком 1 3 вектор. Модули исчисляются в метрах в секунду.

Orientation

Ориентация относительно навигации структурирует в виде quaternion или 3х3 матрица вращения с действительным знаком. Вращение от системы координат навигации до текущей системы координат тела INS. Это также упоминается как "родительский элемент к дочернему" вращению.

Зависимости

Чтобы включить этот аргумент, установите HasINS свойство к true.

Типы данных: struct

Текущее время симуляции в виде положительной скалярной величины в секундах.

Типы данных: double

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

развернуть все

Обнаружения облака точек, сгенерированные датчиком, возвратитесь как массив скаляров. Размерность массива определяется HasOrganizedOuput свойство.

  • Когда свойство установлено как true, pointClouds возвращен N-by-M-by-3 массив скаляров, где N является количеством каналов вертикального изменения, и M является количеством каналов азимута.

  • Когда свойство установлено как false, pointClouds возвращен как P-by-3 матрица скаляров, где P является продуктом количеств каналов азимута и вертикального изменения.

Координатная система координат, в которой сообщают о местоположениях облака точек, определяется DetectionCoordinates свойство.

Настройка датчика тока, возвращенная как структура. Структура имеет эти поля:

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

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

IsValidTime

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

IsScanDone

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

FieldOfView

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

MeasurementParameters

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

Типы данных: struct

Кластерные метки точек в pointCloud выведите, возвращенный как массив неотрицательных целых чисел. Размерность массива определяется HasOrganizedOuput свойство.

  • Когда это свойство установлено как true, cluster возвращен как N-by-M-by-2 массив скаляров, где N является количеством каналов вертикального изменения, и M является количеством каналов азимута. На третьей размерности первый элемент представляет PlatformID из цели, генерирующей точку и второй элемент, представляет ClassID из цели.

  • Когда это свойство установлено как false, pointClouds возвращен как P-by-2 матрица скаляров, где P является продуктом количеств каналов азимута и вертикального изменения. Для каждого столбца матрицы первый элемент представляет PlatformID из цели, генерирующей точку, тогда как второй элемент представляет ClassID из цели.

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

coverageConfigДатчик и эмиттерная настройка покрытия
perturbПримените возмущения, чтобы возразить
perturbationsВозмущение задано на объекте
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

Создайте сценарий отслеживания. Добавьте платформу эго и целевую платформу.

scenario = trackingScenario;

ego = platform(scenario);
target = platform(scenario,'Trajectory',kinematicTrajectory('Position',[10 -3 0],'Velocity',[5 0 0]));

Задайте геометрическую сетку цели. Размер mesh настроен после определения целевых размерностей.

target.Mesh = extendedObjectMesh('sphere');
target.Dimensions.Length = 5; 
target.Dimensions.Width = 3;
target.Dimensions.Height = 2;

Визуализируйте сетку цели.

show(target.Mesh)

Figure contains an axes. The axes contains an object of type patch.

ans = 
  Axes with properties:

             XLim: [-3 3]
             YLim: [-2 2]
           XScale: 'linear'
           YScale: 'linear'
    GridLineStyle: '-'
         Position: [0.1300 0.1100 0.7750 0.8150]
            Units: 'normalized'

  Show all properties

Создайте monostaticLidarSensor с заданным UpdateRate и DetectionCoordinates.

sensor = monostaticLidarSensor(1,'UpdateRate',10,'DetectionCoordinates','Body');

Получите сетку цели, просматриваемой с платформы эго после усовершенствования сценария один шаг вперед.

advance(scenario);
tgtmeshes = targetMeshes(ego);

Используйте созданный датчик, чтобы сгенерировать облака точек от полученной целевой mesh.

time = scenario.SimulationTime;
[ptCloud, config, clusters] = sensor(tgtmeshes, time);

Визуализируйте обнаружения облака точек.

figure()
plot3(ptCloud(:,1),ptCloud(:,2),ptCloud(:,3),'o')

Figure contains an axes. The axes contains an object of type line.

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

| |

Введенный в R2020b