uavLidarPointCloudGenerator

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

Описание

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

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

  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

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

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

Пример: false

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

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

Описание

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

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

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

расширить все

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

Целевые данные объекта

ОбластьОписание
MeshСистема координат extendedObjectMesh объект, представляющий геометрию целевого объекта в его собственной координатной системе координат.
PositionТрехэлементный вектор, определяющий координатное положение цели относительно системы координат датчика.
OrientationA quaternion объект или матрица 3 на 3, содержащая углы Эйлера, определяющие ориентацию цели относительно системы координат датчика.

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

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

расширить все

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

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

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

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

Чтобы использовать функцию объекта, задайте системный объект в качестве первого входного параметра. Например, чтобы освободить системные ресурсы системного объекта с именем 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. The axes contains 2 objects of type patch, scatter.

Введенный в R2020b