uavLidarPointCloudGenerator

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

Описание

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

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

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

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

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

Создание

Описание

пример

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

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

Свойства

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

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

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

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

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

Пример: 20

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

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

Пример: 120

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

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

Пример: 0.001

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

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

Пример: 0.6000

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

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

Пример: 0.6000

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

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

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

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

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

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

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

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

Пример: false

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

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

Пример: false

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

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

Описание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

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

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

Создайте статистическую модель датчика, lidar, использование uavLidarPointCloudGenerator Системный объект.

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); 

Визуализировать

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

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

Figure contains an axes object. The axes object contains 2 objects of type patch, scatter.

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

Введенный в R2020b