lidarDetect

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

Описание

пример

pointCloulds = lidarDetect(scene) обнаружения облака точек отчетов от всего monostaticLidarSensor объекты, смонтированные на каждой платформе в trackingScenario, scene.

[pointClouds,configs] = lidarDetect(scene) также возвращает настройки датчиков, configs, в сценарии отслеживания.

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

Примеры

свернуть все

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

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

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

plat1 = platform(sc);
plat2 = 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.2);
plat1.Sensors = {sensor1};
plat2.Sensors = {sensor2};

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

[pointClouds,configs,clusters] = lidarDetect(sc);

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

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.

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

свернуть все

Отслеживание сценария в виде trackingScenario объект.

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

свернуть все

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

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

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

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

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

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

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

IsValidTime

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

IsScanDone

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

FieldOfView

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

MeasurementParameters

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

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

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

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

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

Введенный в R2020b