Создайте карту заполнения с вероятностными значениями
occupancyMap
создает объект сетки заполнения 2-D. Каждая камера в сетке заполнения имеет значение, представляющее вероятность заполнения этой камеры. Значения, близкие к 1, представляют высокую вероятность того, что камера содержит препятствие. Значения, близкие к 0, представляют высокую вероятность того, что камера не занята и свободна от препятствий.
Карты заполнения используются в алгоритмах навигации, таких как планирование пути (см plannerRRT
). Они также используются в приложениях отображения для нахождения путей без столкновений, выполнения предотвращения столкновений и вычисления локализации (см monteCarloLocalization
). Карту заполнения можно изменить в соответствии с конкретным приложением.
The occupancyMap
объекты поддерживают локальные координаты, мировые координаты и индексы сетки. Первое расположение сетки с индексами (1,1)
начинается в левом верхнем углу сетки.
Используйте occupancyMap
класс, чтобы создать 2-D карты окружения с вероятностными значениями, представляющими различные препятствия в вашем мире. Можно задать точные значения вероятностей камер или включить наблюдения с датчиков, таких как лазерные сканеры.
Значения вероятности хранятся с помощью двоичного фильтра Байеса, чтобы оценить заполненность каждой сеточной камеры. Используется представление логарифмических шансов со значениями, сохраненными как int16
чтобы уменьшить размер памяти карты и позволить приложениям реального времени.
создает карту заполнения с заданным разрешением сетки в камерах на метр. map
= occupancyMap(width
,height
,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
| readOccupancyGrid
(ROS Toolbox) | writeOccupancyGrid
(ROS Toolbox) | controllerPurePursuit
(Robotics System Toolbox) | mobileRobotPRM
(Robotics System Toolbox)