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. The axes 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. The axes 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-на-2 матрица [i j] пар, где n количество индексов сетки. Конечные точки находятся где range попадания значений в заданную angle. Несколько индексов возвращаются, когда конечная точка лежит на контуре нескольких камер.

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

Введенный в R2019b