Создайте карту заполнения с вероятностными значениями
occupancyMap
создает 2D объект карты сетки заполнения. Каждая ячейка в сетке заполнения имеет значение, представляющее вероятность заполнения той ячейки. Значения близко к 1 представляют высокую вероятность, что ячейка содержит препятствие. Значения близко к 0 представляют высокую вероятность, что ячейка не занята и свободное препятствие.
Карты заполнения используются в алгоритмах навигации, таких как планирование пути (см. plannerRRT
). Они также используются в отображении приложений для нахождения путей без коллизий, выполнения предотвращения столкновения и вычисления локализации (см. monteCarloLocalization
). Можно изменить карту заполнения, чтобы соответствовать определенному приложению.
occupancyMap
объекты поддерживают локальные координаты, мировые координаты и индексы сетки. Первое местоположение сетки с индексом (1,1)
начинается в верхнем левом углу сетки.
Используйте occupancyMap
класс, чтобы создать 2D карты среды со значениями вероятности, представляющими различные препятствия в вашем мире. Можно задать точные значения вероятности ячеек или включать наблюдения от датчиков, таких как лазерные сканеры.
Значения вероятности хранятся с помощью двоичного файла фильтр Бейеса, чтобы оценить заполнение каждой ячейки сетки. Представление логарифмических разногласий используется со значениями, сохраненными как int16
уменьшать размер ресурса хранения карты и допускать приложения реального времени.
создает карту заполнения с заданным разрешением сетки в ячейках на метр. map
= occupancyMap(width
,height
,resolution
)resolution
устанавливает свойство Resolution.
создает карту заполнения с конкретным количеством строк и столбцов и с разрешением в ячейках на метр. Значения map
= occupancyMap(rows
,cols
,resolution
,'grid')rows
и cols
устанавливает свойство GridSize.
создает карту заполнения из значений в матричном map
= occupancyMap(p
)p
. Размер сетки совпадает с размером матрицы с каждым значением вероятности ячейки, интерпретированным от матричного местоположения.
создает карту заполнения из заданной матрицы и разрешения в ячейках на метр.map
= occupancyMap(p
,resolution
)
map = occupancyMap(
создает объект с помощью значений от другого sourcemap
)occupancyMap
объект.
map = occupancyMap(
создает объект с помощью значений от другого sourcemap
,resolution
)occupancyMap
объект, но передискретизирует матрицу, чтобы иметь заданное разрешение.
checkOccupancy | Проверяйте местоположения бесплатно, занятые, или неизвестные значения |
copy | Создайте копию сетки заполнения |
getOccupancy | Получите значение заполнения местоположений |
grid2local | Преобразуйте индексы сетки в локальные координаты |
grid2world | Преобразуйте индексы сетки в мировые координаты |
inflate | Раздуйте каждое занятое местоположение сетки |
insertRay | Вставьте луч от лазерного наблюдения скана |
local2grid | Преобразуйте локальные координаты в индексы сетки |
local2world | Преобразуйте локальные координаты в мировые координаты |
move | Переместите карту в мировую систему координат |
occupancyMatrix | Преобразуйте сетку заполнения, чтобы удвоить матрицу |
raycast | Вычислите индексы ячейки вдоль луча |
rayIntersection | Найдите точки пересечения лучей и занятых ячеек карты |
setOccupancy | Установите значение заполнения местоположений |
show | Покажите значения сетки на рисунке |
syncWith | Синхронизирующая карта с перекрывающейся картой |
updateOccupancy | Интегрируйте наблюдения вероятности в местоположениях |
world2grid | Преобразуйте мировые координаты в индексы сетки |
world2local | Преобразуйте мировые координаты в локальные координаты |
Значения заполнения имеют ограниченное разрешение ±0.001. Значения хранятся как int16
использование представления логарифмических разногласий. Этот тип данных ограничивает разрешение, но сохраняет память при хранении больших карт в MATLAB®. При вызове setOccupancy
и затем getOccupancy
, возвращенное значение не может равняться значению, которое вы устанавливаете. Для получения дополнительной информации смотрите раздел представлений логарифмических разногласий в Сетках Заполнения.
Если емкость памяти является ограничением, рассмотрите использование binaryOccupancyMap
вместо этого. Бинарная карта заполнения использует меньше памяти с двоичными значениями, но все еще работает с алгоритмами Navigation Toolbox™ и другими приложениями.
binaryOccupancyMap
| mobileRobotPRM
(Robotics System Toolbox) | controllerPurePursuit
(Robotics System Toolbox) | rosReadOccupancyGrid
(ROS Toolbox) | rosWriteOccupancyGrid
(ROS Toolbox)