updateOccupancy

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

Описание

updateOccupancy(map,occMatrix) вероятностно интегрирует матрицу значений заполнения, occMatrix, с текущей матрицей заполнения occupancyMap map объекта. Размер матрицы должен быть равен GridSize свойство карты.

пример

updateOccupancy(map,locations,obs) вероятностно интегрирует значения наблюдений, obs, в камеры карты заполнения, соответствующие матрице n -на-2 мировых координат locations. Значения наблюдений определяются на основе модели обратного датчика.

updateOccupancy(map,xy,obs,'world') вероятностно интегрирует значения наблюдений, obs, в ячейки, соответствующие матрице n -by-2 мировых координат xy.

updateOccupancy(map,xy,obs,'local') вероятностно интегрирует значения наблюдений, obs, в ячейки, соответствующие матрице n -by-2 локальных координат xy.

updateOccupancy(map,ij,obs,'grid') вероятностно интегрирует значения наблюдений, obs, в ячейки, соответствующие матрице n -by-2 индексов сетки ij.

updateOccupancy(map,bottomLeft,obsMatrix) вероятностно интегрирует m -by - n матрицу значений наблюдений, obsMatrix, в субрегион на карте. Задайте нижний левый угол субрегиона как мировое положение, bottomLeft. Субрегион простирается m строки вверх и n столбцы вправо от заданного положения.

updateOccupancy(map,bottomLeft,obsMatrix,'world') вероятностно интегрирует m -by - n матрицу значений наблюдений, obsMatrix, в субрегион на карте. Задайте нижний левый угол субрегиона как мировое положение, bottomLeft. Субрегион простирается m строки вверх и n столбцы вправо от заданного положения.

updateOccupancy(map,bottomLeft,obsMatrix,'local') вероятностно интегрирует m -by - n матрицу значений наблюдений, obsMatrix, в субрегион на карте. Задайте нижний левый угол субрегиона как локальное положение, bottomLeft. Субрегион простирается m строки вверх и n столбцы вправо от заданного положения.

updateOccupancy(map,topLeft,obsMatrix,'grid') вероятностно интегрирует m -by - n матрицу значений наблюдений, obsMatrix, в субрегион на карте. Задайте верхний левый угол субрегиона как индекс сетки, topLeft. Субрегион простирается m строки вниз и n столбцы вправо от заданного индекса.

Примеры

свернуть все

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

map = occupancyMap(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)

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

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

inflate(map,0.5)
figure
show(map)

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

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

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

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

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

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

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

свернуть все

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

Матрица значений заполнения, заданная как матрица. Размер матрицы должен быть равен GridSize свойство карты.

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

Пример: updateOccupancy(map,ones(map.GridSize)*0.6)

Типы данных: single | double | logical

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

Пример: updateOccupancy(map,[1 1; 3 3; 5 5],false)

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

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

Пример: updateOccupancy(map,[2 2],[0.2 0.4; 0.6 0.8],'world')

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

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

Пример: updateOccupancy(map,[2 2],[0.2 0.4; 0.6 0.8],'grid')

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

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

Пример: updateOccupancy(map,[2 2; 4 4; 6 6],[0.2; 0.4; 0.6],'world')

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

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

Пример: updateOccupancy(map,[2 2; 4 4; 6 6],[0.2; 0.4; 0.6],'grid')

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

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

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

Пример: updateOccupancy(map,[2 2; 4 4; 6 6],[0.2; 0.4; 0.6],'local')

Типы данных: single | double | logical

Матрица значений наблюдений вероятностей, заданная как m -by n числовая или логическая матрица.

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

Пример: updateOccupancy(map,[2 2],[0.2 0.4; 0.6 0.8])

Типы данных: single | double | logical

Подробнее о

свернуть все

Модель обратного датчика

Модель обратного датчика определяет, как значения устанавливаются вдоль луча от чтения датчика области значений до препятствий на карте. NaN значения области значений игнорируются. Области значений, больше maxrange не обновляются.

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

Введенный в R2019b