lidarDetect

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

Описание

пример

pointCloulds = lidarDetect(plat,time) сообщает об обнаружениях облака точек из всех monostaticLidarSensor объект, установленный на платформе ego, 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-платформу к сценарию отслеживания.

ego = platform(sc);

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

target = platform(sc);

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

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

Отображение mesh целевого объекта.

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

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

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

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. The axes contains 2 objects of type line. These objects represent Sensor1, Sensor2.

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

свернуть все

Платформа Ego, заданная как Platform объект.

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

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

Включите создание отчетов об обнаружении сетки эго-платформы в выходах, заданных как true или false.

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

свернуть все

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

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

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

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

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

ОбластьОписание
SensorIndex

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

IsValidTime

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

IsScanDone

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

FieldOfView

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

MeasurementParameters

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

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

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

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

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

Введенный в R2020b