updateOccupancy

Класс: робототехника. OccupancyGrid
Пакет: робототехника

Интегрируйте наблюдение вероятности в местоположении

Синтаксис

updateOccupancy(map,xy,obs)
updateOccupancy(map,ij,occval,"grid")

Описание

пример

updateOccupancy(map,xy,obs) вероятностно интегрирует значения наблюдения, obs, к каждой координате, заданной в xy. Значения наблюдения определяются на основе Обратной Модели Датчика.

updateOccupancy(map,ij,occval,"grid") вероятностно интегрирует значения наблюдения к заданным местоположениям сетки, ij, вместо к мировым координатам.

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

развернуть все

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

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

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

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

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

Значения наблюдения вероятности, заданные как скаляр или n-by-1 вектор-столбец тот же размер или как xy или как ij.

Значения obs могут быть любым значением от 0 до 1, но если obs является логическим массивом, значения наблюдения по умолчанию 0,7 (true) и 0.4 (false) используются. Эти значения коррелируют к обратной модели датчика для кастинга луча. Если obs является скаляром или логический, значение применяется ко всем координатам в xy или ij.

Примеры

развернуть все

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

map = robotics.OccupancyGrid(10,10,10);

Обновите заполнение мировых местоположений с определенными значениями вероятности.

map = robotics.OccupancyGrid(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];

pvalues = [0.2 0.4 0.6 0.8 1];

updateOccupancy(map,[x y],pvalues)
figure
show(map)

Раздуйте занятые области данным радиусом. Большие значения заполнения перезаписывают меньшие значения.

inflate(map,0.5)
figure
show(map)

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

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

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

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

Больше о

развернуть все

Введенный в R2017b