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 object. The axes object 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 object. The axes object 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