binaryOccupancyMap

Создайте сетку заполнения с двоичными значениями

Описание

The binaryOccupancyMap создает объект карты заполнения 2-D, который можно использовать для представления и визуализации рабочей области робота, включая препятствия. Интегрирование данных о датчике и оценок положения создает пространственное представление приблизительных местоположений препятствий.

Сетки заполнения используются в алгоритмах робототехники, таких как планирование пути. Они также используются в приложениях отображения, таких как поиск путей без столкновения, выполнение предотвращения столкновения и вычисление локализации. Сетку заполнения можно изменить в соответствии с конкретным приложением.

Каждая камера в сетке заполнения имеет значение, представляющее статус заполнения этой камеры. Занимаемое местоположение представлено как true (1) и свободное местоположение представлено как false (0).

Объект отслеживает три системы координат: мировую, локальную и сетку. Начало мировой системы координат определяется GridLocationInWorld, который определяет нижний левый угол карты относительно мировой системы координат. The LocalOriginInWorld свойство задает положение источника локальной системы координат относительно лабораторной системы координат. Первое расположение сетки с индексами (1,1) начинается в левом верхнем углу сетки.

Примечание

Этот объект был ранее назван robotics.BinaryOccupancyGrid.

Создание

Описание

пример

map = binaryOccupancyMap создает 2-D двоичную сетку заполнения с шириной и высотой 10 м. Разрешение сетки по умолчанию является одной камерой на метр.

пример

map = binaryOccupancyMap(width,height) создает 2-D двоичную сетку заполнения, представляющую рабочее пространство width и height в метрах. Разрешение сетки по умолчанию является одной камерой на метр.

map = binaryOccupancyMap(width,height,resolution) создает сетку с Resolution свойство, заданное в камерах на метр. Карта по умолчанию находится в мировых координатах.

map = binaryOccupancyMap(rows,cols,resolution,"grid") создает 2-D двоичную сетку заполнения размера (rows, cols).

пример

map = binaryOccupancyMap(p) создает сетку из значений в матрице p. Размер сетки совпадает с размером матрицы, причем каждое значение камеры интерпретируется из ее местоположения в матрице. p содержит любой числовой или логический тип с нулями (0) и таковыми (1).

map = binaryOccupancyMap(p,resolution) создает карту из матрицы с Resolution свойство, заданное в камерах на метр.

map = binaryOccupancyMap(p,resolution) создает объект с Resolution свойство, заданное в камерах на метр.

map = binaryOccupancyMap(sourcemap) создает объект с использованием значений другого binaryOccupancyMap объект.

map = binaryOccupancyMap(sourcemap,resolution) создает объект с использованием значений другого binaryOccupancyMap объект, но повторно формирует матрицу, чтобы иметь заданное разрешение.

Входные параметры

расширить все

Ширина карты, заданная как положительная скалярная величина в метрах.

Высота карты, заданная как положительная скалярная величина в метрах.

Сопоставьте значения сетки, заданные как матрица.

Объект карты заполнения, заданный как binaryOccupancyMap объект.

Свойства

расширить все

Это свойство доступно только для чтения.

Количество строк и столбцов в сетке, хранящихся в виде двухэлементного горизонтального вектора формы [rows cols].

Это свойство доступно только для чтения.

Разрешение сетки, хранится в виде скаляра в камерах на метр.

Это свойство доступно только для чтения.

Минимальное и максимальное значения x-координат в локальной системе координат, сохраненные как двухэлементный горизонтальный вектор вида [min max]. Локальная система координат определяется LocalOriginInWorld свойство.

Это свойство доступно только для чтения.

Минимальное и максимальное значения y-координат в локальной системе координат, сохраненные как двухэлементный горизонтальный вектор вида [min max]. Локальная система координат определяется LocalOriginInWorld свойство.

Это свойство доступно только для чтения.

Минимальное и максимальное значения x-координат в мировой системе координат, сохраненные как двухэлементный горизонтальный вектор вида [min max]. Эти значения указывают мировую область значений x -кординатов в сетке.

Это свойство доступно только для чтения.

Минимальное и максимальное значения y -cordinates, сохраненные как двухэлементный вектор вида [min max]. Эти значения указывают мировую область значений y -кординатов в сетке.

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

Расположение источника локальной системы координат в мировых координатах, заданное как двухэлементный вектор, [xLocal yLocal]. Используйте move функция, чтобы переместить локальную систему координат, когда ваше транспортное средство перемещается.

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

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

Функции объекта

checkOccupancyПроверяйте значения заполнения для местоположений
getOccupancyПолучите значение заполнения местоположений
grid2localПреобразуйте индексы сетки в локальные координаты
grid2worldПреобразуйте индексы сетки в мировые координаты
inflateРаздувайте каждое место занятой сетки
insertRayВставьте луч из наблюдения лазерного скана
local2gridПреобразуйте локальные координаты в индексы сетки
local2worldПреобразуйте локальные координаты в мировые
moveПеремещение карты в лабораторной системе координат
occupancyMatrixПреобразуйте сетку заполнения в матрицу
raycastВычислите индексы камер вдоль луча
rayIntersectionНайти точки пересечения лучей и занятых камер карты
setOccupancyУстановите значение заполнения местоположений
showПоказать значения сетки заполнения
syncWithСинхронизация карты с перекрывающейся картой
world2gridПреобразуйте мировые координаты в сетчатые индексы
world2localПреобразуйте мировые координаты в локальные

Примеры

свернуть все

Создайте пустую карту размером 10m x 10m.

map = binaryOccupancyMap(10,10,10);

Установите заполнение мировых локаций и покажите карту.

x = [1.2; 2.3; 3.4; 4.5; 5.6];
y = [5.0; 4.0; 3.0; 2.0; 1.0];

setOccupancy(map, [x y], ones(5,1))
figure
show(map)

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

Надьте занятые местоположения на заданный радиус.

inflate(map, 0.5)
figure
show(map)

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

Получите местоположения сетки из мировых местоположений.

ij = world2grid(map, [x y]);

Установите местоположения сетки в свободные местоположения.

setOccupancy(map, ij, zeros(5,1), 'grid')
figure
show(map)

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

В этом примере показано, как преобразовать изображение в двоичную сетку заполнения для использования с отображением и планированием пути.

Импорт изображения.

image = imread('imageMap.png');

Преобразуйте в полутоновое, а затем черно-белое изображение на основе заданного порогового значения.

grayimage = rgb2gray(image);
bwimage = grayimage < 0.5;

Используйте черно-белое изображение в качестве матричного входа для двоичной сетки заполнения.

grid = binaryOccupancyMap(bwimage);

show(grid)

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

В этом примере показано, как преобразовать .pgm файл в binaryOccupancyMap объект для использования в MATLAB.

Импортируйте изображение с помощью imread. Изображение довольно большое и должно быть обрезано до соответствующей области.

image = imread('playpen_map.pgm');
imageCropped = image(750:1250,750:1250);
imshow(imageCropped)

Figure contains an axes. The axes contains an object of type image.

Неизвестные области (серые) следует удалить и рассматривать как свободное пространство. Создайте логическую матрицу на основе порога. В зависимости от вашего изображения это значение может отличаться. Занимаемое пространство должно быть установлено равным 1 (белый на изображении).

imageBW = imageCropped < 100;
imshow(imageBW)

Figure contains an axes. The axes contains an object of type image.

Создание binaryOccupancyMap объект с использованием скорректированного изображения карты.

map = binaryOccupancyMap(imageBW);
show(map)

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

Вопросы совместимости

расширить все

Изменение поведения в будущем релизе

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Введенный в R2015a