Схема затрат, представляющая пространство для планирования вокруг транспортного средства
vehicleCostmap объект создает карту затрат, представляющую пространство поиска для планирования вокруг транспортного средства. Карта затрат содержит информацию об окружающей среде, такую как препятствия или области, которые транспортное средство не может пересекать. Чтобы проверить наличие столкновений, карта затрат раздувает препятствия, используя радиус инфляции, указанный в CollisionChecker собственность. Карта затрат используется алгоритмами планирования путей, такими как pathPlannerRRT, чтобы найти свободные от столкновения пути для транспортного средства, чтобы следовать.
Карта затрат хранится как 2-D сетка ячеек, часто называемая сеткой занятости или картой занятости. Каждая ячейка сетки в карте затрат имеет значение в диапазоне [0, 1], представляющее стоимость навигации по этой ячейке сетки. Состояние каждой ячейки сетки свободно, занято или неизвестно, как определено FreeThreshold и OccupiedThreshold свойства.
На следующем рисунке показана схема затрат с выборочными затратами и состояниями ячеек сетки.

costmap = vehicleCostmap( создает карту затрат на транспортное средство с использованием значений затрат в матрице C)C.
costmap = vehicleCostmap( создает карту затрат на транспортное средство на основе карты заполняемости occMap)occMap. Для использования этого синтаксиса требуется Toolbox™ навигации.
costmap = vehicleCostmap(___,'MapLocation', указывает в mapLocation)mapLocation координаты нижнего левого угла карты затрат. Определить 'MapLocation',mapLocation после любого из предыдущих входов и в любом порядке между Name,Value аргументы пары.
costmap = vehicleCostmap(___, использование Name,Value)Name,Value пары аргументов для указания FreeThreshold, OccupiedThreshold, CollisionChecker, и CellSize свойства. Например, vehicleCostmap(C,'CollisionChecker',ccConfig) использует inflationCollisionChecker объект, ccConfig, для представления формы транспортного средства и проверки на наличие столкновений. После создания объекта можно обновить все эти свойства, кроме CellSize.
checkFree | Проверка карты стоимости транспортного средства на наличие безударных поз или точек |
checkOccupied | Проверка карты затрат на транспортное средство для занятых поз или точек |
getCosts | Получение стоимостной стоимости ячеек в карте затрат на транспортные средства |
setCosts | Установить стоимость ячеек в карте затрат на транспортное средство |
plot | План расходов на транспортные средства |
Упростить проверку на предмет столкновения позы транспортного средства, vehicleCostmap раздувает размеры препятствий. Алгоритм проверки коллизий выполняется следующим образом:
Рассчитать радиус накачки в мировых единицах по размерам транспортного средства. Радиус накачки по умолчанию равен радиусу наименьшего набора перекрывающихся кругов, необходимых для полного охвата транспортного средства. Центральные точки окружностей расположены вдоль продольной оси транспортного средства. Увеличение числа окружностей уменьшает радиус накачки, что позволяет более точно проверять столкновение.
| Радиус инфляции, один центр | Радиус инфляции, три центра |
|---|---|
|
|
|
Преобразование радиуса инфляции в несколько ячеек сетки, R. Округление неинтегрированных значений R до следующего наибольшего целого числа.
Надувать размер препятствий с помощью R. Маркировать все ячейки в надутой области как занятые.
На диаграммах показаны занятые клетки темно-красным цветом. Клетки в надутой области окрашены в светло-красный цвет. Сплошная черная линия показывает исходный радиус накачки. На диаграмме слева R равно 3. На диаграмме справа R равно 2.
| Раздутые ячейки сетки, один центр | Раздутые ячейки сетки, три центра |
|---|---|
|
|
|
Проверьте, лежат ли центральные точки транспортного средства на ячейках накачанной сетки.
Если какая-либо центральная точка лежит на накачанной ячейке сетки, то поза транспортного средства занята. checkOccupied функция возвращает true. Занятая поза не обязательно означает столкновение. Например, транспортное средство может лежать на накачанной ячейке сетки, но не на фактически занятой ячейке сетки.
Если на накачанных ячейках сетки нет центральных точек, а стоимость каждой ячейки, содержащей центральную точку, меньше FreeThreshold, то поза транспортного средства свободна. checkFree функция возвращает true.
Если на накачанных ячейках сетки нет центральных точек, а значение стоимости любой ячейки, содержащей центральную точку, больше, чем FreeThreshold, тогда поза транспортного средства неизвестна. Оба checkFree и checkOccupied вернуть false.
Следующие позы рассматриваются при столкновении, поскольку по меньшей мере одна центральная точка находится на надутой области.
| Поза при столкновении, один центр | Поза в столкновении, три центра |
|---|---|
|
|
|