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- вектор элемента логических значений, указывающих, являются ли введенные координаты в пределах карты.

[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)

Проверяйте заполнение пятна непосредственно перед транспортным средством.

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

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

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

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