lidarDetect

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

Описание

пример

pointCloulds = lidarDetect(plat,time) сообщают обнаружения облака точек от всего monostaticLidarSensor объект смонтирован на платформе эго, plat.

pointCloulds = lidarDetect(plat,time,includeSelf) позволяет вам выбирать, сообщает ли датчик лидара об обнаружениях платформы эго, plat, на котором смонтированы датчики. Задайте includeSelf как true или false.

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

[pointClouds,configs, clusters] = lidarDetect(___) также возвращает clusters, кластер помечает для каждой точки в облаке точек.

Примеры

свернуть все

Создайте сценарий отслеживания.

sc = trackingScenario;
rng(2020)% for repeatable results

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

ego = platform(sc);

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

target = platform(sc);

Задайте простую waypoint траекторию для цели.

traj = waypointTrajectory("Waypoints",[1 1 1; 2 2 2],"TimeOfArrival",[0,1]);
target.Trajectory = traj;

Задайте mesh сферы для цели.

target.Mesh = extendedObjectMesh("Sphere");
target.Dimensions = struct("Length",4,"Width",3,"Height",2,"OriginOffset",[0 0 0]);

Покажите сетку цели.

figure()
show(target.Mesh);
legend("Target Mesh")
xlabel('x (m)'); ylabel('y (m)'); zlabel('z (m)');

Figure contains an axes object. The axes object contains an object of type patch. This object represents Target Mesh.

Создайте два датчика лидара с различной точностью области значений. Смонтируйте их на платформе эго.

sensor1 = monostaticLidarSensor(1,"RangeAccuracy",0.01);
sensor2 = monostaticLidarSensor(2,"RangeAccuracy",0.1);
ego.Sensors = {sensor1;sensor2};

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

[pointClouds,configs,clusters] = lidarDetect(ego,0);

Визуализируйте результаты.

cloud1 = pointClouds{1};
cloud2 = pointClouds{2};
figure()
plot3(cloud1(:,1),cloud1(:,2),cloud1(:,3),'bo')
hold on
plot3(cloud2(:,1),cloud2(:,2),cloud2(:,3),'go')
legend('Sensor1','Sensor2')
xlabel('x (m)'); ylabel('y (m)'); zlabel('z (m)')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Sensor1, Sensor2.

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

свернуть все

Платформа эго в виде Platform объект.

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

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

Позвольте сообщить об обнаружении mesh платформы эго в выходе в виде true или false.

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

свернуть все

Обнаружения облака точек сгенерированы датчиками, возвращенными как K - массив ячеек элемента. K является количеством monostaticLidarSensor объекты смонтированы на платформе, plat. Каждый элемент ячеек является массивом, представляющим облако точек, сгенерированное соответствующим датчиком. Размерность массива определяется HasOrganizedOuput свойство датчика.

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

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

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

Настройки датчика тока, возвращенные как K - массив элемента структур. K является количеством monostaticLidarSensor объекты смонтированы на платформе, plat. Каждая структура имеет эти поля:

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

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

IsValidTime

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

IsScanDone

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

FieldOfView

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

MeasurementParameters

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

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

Кластерные метки точек в pointClouds выведите, возвращенный как K - массив ячеек элемента. K является количеством monostaticLidarSensor объекты смонтированы на платформе, plat. Каждый элемент ячеек является массивом, представляющим кластерные метки точек в облаке точек, сгенерированном соответствующим датчиком. Размерность массива определяется HasOrganizedOuput из датчика.

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

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

Введенный в R2020b