uavLidarPointCloudGenerator

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

Описание

uavLidarPointCloudGenerator Система object™ генерирует обнаружения от датчика лидара. Системный объект использует статистическую модель датчика, чтобы симулировать действительные обнаружения лидара с добавленным случайным шумом. Все обнаружения относительно координатной системы координат смонтированного датчика транспортного средства. Можно использовать uavLidarPointCloudGenerator объект в сценарии, содержащем статические сетки, платформы UAV и датчики, которые можно создать использование uavScenario объект.

Сгенерировать облака точек лидара:

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

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

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

Создание

Описание

lidar= uavLidarPointCloudGenerator возвращает статистическую модель датчика, чтобы сгенерировать облако точек для лидара. Эта модель датчика будет иметь свойства по умолчанию.

Сгенерируйте облака точек от Mesh

lidar= uavLidarPointCloudGenerator(Name,Value) дополнительные свойства наборов для статистической модели датчика, использующей одну или несколько пар "имя-значение". Например, uavLidarPointCloudGenerator('UpdateRate',100,'HasNoise',0) создает генератор облака точек лидара, который сообщает об обнаружениях в частоте обновления 100 Гц без шума.

Свойства

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

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

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

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

Частота обновления датчика лидара задает частоту, на которой облака точек лидара сгенерированы в Гц. Это наборы свойств частота, на которой происходят новые обнаружения.

Пример: 20

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

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

Пример: 120

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

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

Пример: 0.001

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

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

Пример: 0.6

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

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

Пример: 0.6

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

Пределы азимута лидара в виде 1 2 вектора с действительным знаком из формы [min макс.]. Модули в градусах.

Пример: [-60 100]

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

Пределы вертикального изменения лидара в виде 1 2 вектора с действительным знаком из формы [min макс.]. Модули в градусах.

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

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

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

Пример: ложь

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

Выведите сгенерированные данные как организованное облако точек в виде true или false. Установите это свойство на true выводить организованное облако точек. В противном случае выход не организован.

Пример: ложь

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

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

Описание

ptCloud= lidar(tgts,simTime) генерирует объект ptCloud облака точек лидара от массива N-элемента структур, tgts, в текущем времени симуляции simTime.

[ptCloud,isValidTime]= lidar(tgts,simTime) дополнительно возвращает isValidTime который задает если заданный simTime является кратным интервалу обновления датчика (1/UpdateRate).

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

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

Данные о целевом объекте в виде структуры или массива структур. Каждая структура соответствует mesh. Таблица показывает свойства что объектное использование, чтобы сгенерировать обнаружения.

Данные о целевом объекте

Поле Описание
MeshextendedObjectMeshпредставление геометрии целевого объекта в его собственной координатной системе координат.
PositionВектор с 3 элементами, задающий положение координат цели относительно системы координат датчика
Orientationquaternion возразите или 3х3 матрица, задающая ориентацию цели относительно системы координат датчика.

Текущее время симуляции в виде положительного действительного скаляра. lidar вызовы объектов генератор облака точек лидара равномерно, чтобы сгенерировать новые облака точек на частоте, заданной updateRate свойство. Значение updateRate свойство должно быть целочисленным кратным интервал времени симуляции. Обновления, которые требуют от датчика между интервалами обновления, не генерируют облако точек. Модули находятся в секундах.

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

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

Данные об облаке точек, возвращенные как pointCloud объект.

Допустимое время, чтобы сгенерировать облако точек, возвращенное как 0 или 1. isValidTime 0, когда обновления время от времени требуют, которые являются между интервалами обновления, заданными 1/updateRate.

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

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

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

release(obj)

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

stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

В этом примере показано, как использовать статистическую модель датчика лидара, чтобы сгенерировать облака точек от сеток.

Создайте модель датчика

Используйте uavLidarPointCloudGenerator создать статистическую модель датчика, lidar.

lidar = uavLidarPointCloudGenerator('HasOrganizedOutput',false);

Создайте пол

Используйте extendedObjectMesh объект создать mesh для целевого объекта.

tgts.Mesh = scale(extendedObjectMesh('cuboid'),[100 100 2]); 

Задайте положение целевого объекта относительно системы координат датчика.

tgts.Position = [0 0 -10];

Задайте ориентацию цели относительно системы координат датчика.

 tgts.Orientation = quaternion([1 0 0 0]);

Сгенерируйте облака точек от пола

 ptCloud = lidar(tgts,0); 

Visulaize

Используйте translate функция, чтобы перевести объектную mesh в ее местоположение и использовать show функция, чтобы визуализировать его. Используйте scatter3 функционируйте, чтобы построить облака точек, сохраненные в ptCloud.

figure(1);
show(translate(tgts.Mesh,tgts.Position));
hold on
scatter3(ptCloud.Location(:,1), ptCloud.Location(:,2), ...
ptCloud.Location(:,3));

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

Введенный в R2020b
Для просмотра документации необходимо авторизоваться на сайте