exponenta event banner

getOccupancy

Получение значения заполняемости местоположений

Описание

пример

occVal = getOccupancy(map,xy) возвращает массив значений вероятности занятости в xy местоположения в мировой рамке. Значения, близкие к 1, представляют высокую вероятность того, что ячейка содержит препятствие. Значения, близкие к 0, представляют высокую вероятность того, что ячейка не занята и не содержит препятствий. Неизвестные местоположения, в том числе за пределами карты, возврат map.DefaultValue.

occVal = getOccupancy(map,xy,'local') возвращает массив значений занятости в xy местоположения в локальной рамке.

occVal = getOccupancy(map,ij,'grid') определяет ij индексы ячеек сетки вместо xy местоположения.

[occVal,validPts] = getOccupancy(___) дополнительно выводит n-элементный вектор логических значений, указывающий, находятся ли входные координаты в пределах карты.

occMatrix = getOccupancy(map) возвращает все значения занятости на карте в виде матрицы.

occMatrix = getOccupancy(map,bottomLeft,matSize) возвращает матрицу значений заполняемости, указывая местоположение нижнего левого угла в мировых координатах и размер матрицы в метрах.

occMatrix = getOccupancy(map,bottomLeft,matSize,'local') возвращает матрицу значений заполняемости путем указания расположения нижнего левого угла в локальных координатах и размера матрицы в метрах.

occMatrix = getOccupancy(map,topLeft,matSize,'grid') возвращает матрицу значений занятости, указывая расположение верхнего левого угла в индексах сетки и размер матрицы.

Примеры

свернуть все

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

map = occupancyMap(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 Occupancy Grid contains an object of type image.

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

getOccupancy(map,[8 5])
ans = 0.7000

Добавьте второе чтение и просмотрите обновление значений занятости. Дополнительное считывание повышает доверие к показаниям. Свободные и занятые ценности становятся более отчетливыми.

insertRay(map,pose,scan,maxrange);
show(map)

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

getOccupancy(map,[8 5])
ans = 0.8448

Доступ к значениям занятости и проверка их статуса занятости на основе занятых и свободных пороговых значений occupancyMap объект.

Создайте матрицу и заполните ее значениями. Эта матрица используется для создания карты занятости.

p = 0.5*ones(20,20);
p(11:20,11:20) = 0.75*ones(10,10);
map = occupancyMap(p,10);

Получение заполняемости различных местоположений и проверка их статусов заполняемости. Состояние занятости возвращает 0 для свободного пространства и 1 для занятого пространства. Неизвестные значения возвращают -1.

pocc = getOccupancy(map,[1.5 1])
pocc = 0.7500
occupied = checkOccupancy(map,[1.5 1])
occupied = 1
pocc2 = getOccupancy(map,[5 5],'grid')
pocc2 = 0.5000
occupied2 = checkOccupancy(map,[5 5],'grid')
occupied2 = -1

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

свернуть все

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

Мировые координаты, указанные как матрица n-by-2 [x y] пар, где n - число мировых координат.

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

Позиции сетки, указанные как матрица n-by-2 [i j] пары в [rows cols] формат, где n - количество позиций сетки.

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

Расположение нижнего левого угла выходной матрицы в мировых или локальных координатах, определяемое как двухэлементный вектор, [xCoord yCoord]. Местоположение находится в мировых или локальных координатах на основе синтаксиса.

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

Размер выходной матрицы, определяемый как двухэлементный вектор, [xLength yLength] или [gridRow gridCol]. Размер соответствует мировым, локальным координатам или координатам сетки на основе синтаксиса.

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

Расположение верхнего левого угла сетки, заданного как двухэлементный вектор, [iCoord jCoord].

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

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

свернуть все

Значения вероятности занятости, возвращаемые в виде вектора столбца той же длины, что и любой из них xy или ij.

Значения, близкие к 0, представляют высокую вероятность того, что ячейка не занята и не содержит препятствий.

Допустимые расположения карт, возвращаемые в виде вектора столбца n-by-1, равного по длине xy или ij. Расположение внутри карты возвращает значение 1. Местоположения за пределами границ карты возвращают значение 0.

Матрица значений занятости, возвращаемая как матрица с размером, равным matSize или размер map.

Значения, близкие к 0, представляют высокую вероятность того, что ячейка не занята и не содержит препятствий.

Ограничения

Значения заполняемости имеют ограниченное разрешение ± 0,001. Значения сохраняются какint16 с использованием представления логарифмов. Этот тип данных ограничивает разрешение, но экономит память при сохранении больших карт в MATLAB ®. При звонкеsetOccupancy а затем getOccupancy, возвращаемое значение может не совпадать с заданным. Дополнительные сведения см. в разделе Представления регистрационных шансов в Сетках занятости.

См. также

|

Темы

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