exponenta event banner

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 в сценарий отслеживания.

ego = platform(sc);

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

target = platform(sc);

Определите простую траекторию ППМ для цели.

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

Определите сетку сферы для цели.

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

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

свернуть все

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

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

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

Включить обнаружение сетки платформы ego в выходных данных, указанных как 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