exponenta event banner

insertRay

Вставить луч от наблюдения лазерного сканирования

Описание

пример

insertRay(map,pose,scan,maxrange) вставляет один или несколько наблюдений датчика сканирования лидара в сетку занятости, map, с использованием входных данных lidarScan(Панель инструментов системы робототехники), scan, чтобы получить конечные точки луча. Расположения конечных точек обновляются с использованием занятого значения. Если диапазоны выше maxrangeконечные точки луча считаются свободным пространством. Все остальные точки вдоль луча рассматриваются как свободные от препятствий.

insertRay(map,pose,ranges,angles,maxrange) задает показания диапазона в виде векторов, определяемых вводом ranges и angles.

insertRay(map,startpt,endpoints) вставляет наблюдения между сегментами линии от начальной точки до конечных точек. Конечные точки обновляются как занимаемое пространство, а другие точки вдоль сегментов линии обновляются как свободное пространство.

Примеры

свернуть все

Создайте пустую двоичную сетку занятости.

map = binaryOccupancyMap(10,10,20);

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

pose = [5,5,0];
ranges = 3*ones(100,1);
angles = linspace(-pi/2,pi/2,100);
maxrange = 20;

Создать lidarScan с указанными диапазонами и углами.

scan = lidarScan(ranges,angles);

Вставьте данные лазерного сканирования в карту занятости.

insertRay(map,pose,scan,maxrange);

Отображение карты для просмотра результатов вставки лазерного сканирования.

show(map)

Figure contains an axes. The axes with title Binary Occupancy Grid contains an object of type image.

Проверьте наличие места непосредственно перед транспортным средством.

getOccupancy(map,[8 5])
ans = logical
   1

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

свернуть все

Представление карты, указанное как binaryOccupancyMap объект. Этот объект представляет среду робота. Объект содержит матрицу с двоичными значениями, указывающими препятствия как true (1) и свободные места в качестве false (0).

Положение и ориентация транспортного средства, указанные как [x y theta] вектор. Поза транспортного средства представляет собой положение х и у с угловой ориентацией тета (в радианах), измеренной от оси х.

Показания сканирования Lidar, указанные как lidarScan объект.

Значения диапазона из данных сканирования, заданные как вектор элементов, измеренных в метрах. Эти значения диапазона - расстояния от датчика при заданных angles. Вектор должен иметь ту же длину, что и соответствующий angles вектор.

Значения углов из данных сканирования, заданные как вектор элементов, измеренных в радианах. Эти угловые значения соответствуют заданным ranges. Вектор должен иметь ту же длину, что и соответствующий ranges вектор.

Максимальная дальность лазерного датчика дальности, заданная как скаляр в метрах. Значения диапазона больше или равны maxrange считаются свободными по всей длине луча, до maxrange.

Начальная точка для лучей, заданная как двухэлементный вектор, [x y], в мировой системе координат. Все лучи являются прямыми сегментами, исходящими из этой точки.

Конечные точки для лучей, заданные как матрица n-by-2 [x y] пары в мировой координатной рамке, где n - длина ranges или angles. Все лучи являются прямыми сегментами, исходящими из startpt.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

| | (инструментарий робототехнической системы) | (Панель инструментов системы робототехники)

Темы

Представлен в R2019b