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-на-2 матрица [x y] пар, где n - количество мировых координат.

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

Ограничения

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

См. также

|

Темы

Введенный в R2019b