Создайте карту заполнения с вероятностными значениями
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)