raycast

Вычислите индексы ячейки вдоль луча

Описание

[endpoints,midpoints] = raycast(map,pose,range,angle) возвращает индексы ячейки заданного map для всех ячеек, пересеченных лучом, происходящим из заданного pose в заданном angle и range значения. endpoints содержит все индексы, затронутые к концу луча, со всеми другими точками, включенными в midpoints.

пример

[endpoints,midpoints] = raycast(map,p1,p2) возвращает индексы ячейки линейного сегмента между двумя заданными точками.

Примеры

свернуть все

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

Создайте пустую карту. Карта с низкой разрешающей способностью используется, чтобы проиллюстрировать произведенные местоположения сетки.

map = occupancyMap(10,10,1);
show(map)

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

Получите индексы сетки средних точек и конечные точки луча от [2 3] к [8.5 8]. Установите значения заполнения для этих индексов сетки. Средние точки обработаны как открытое пространство. Обновите конечные точки с занятым наблюдением.

p1 = [2 3];
p2 = [8.5 8];
[endPts,midPts] = raycast(map,p1,p2);
setOccupancy(map,midPts,zeros(length(midPts),1),'grid');
setOccupancy(map,endPts,ones(length(endPts),1),'grid');

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

show(map)
hold on
plot([p1(1) p2(1)],[p1(2) p2(2)],'-b','LineWidth',2)
plot(p2(1),p2(2),'or')
grid on

Figure contains an axes object. The axes object with title Occupancy Grid contains 3 objects of type image, line.

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

свернуть все

Сопоставьте представление в виде occupancyMap объект. Этот объект представляет среду датчика. Объект содержит матричную сетку со значениями, представляющими вероятность заполнения той ячейки. Значения близко к 1 представляют высокую вероятность, что ячейка содержит препятствие. Значения близко к 0 представляют высокую вероятность, что ячейка не занята и свободное препятствие.

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

Область значений луча в виде скаляра в метрах.

Угол луча в виде скаляра в радианах. Угловое значение для соответствующего range.

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

Конечная точка луча в виде [x y] двухэлементный вектор. Точка задана в мировой системе координат.

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

свернуть все

Индексы конечной точки, возвращенные как n-by-2 матрица [i j] пары, где n является количеством индексов сетки. Конечные точки то, где range значение нападает на заданный angle. Несколько индексов возвращены, когда конечная точка находится на контуре нескольких ячеек.

Индексы средней точки, возвращенные как n-by-2 матрица [i j] пары, где n является количеством индексов сетки. Этот аргумент включает все индексы сетки, которые луч пересекает, исключая конечную точку.

Смотрите также

Введенный в R2019b