Проверяйте автомобиль costmap на положения без коллизий или точки
Функция checkFree
проверяет, свободны ли положения автомобиля или точки от препятствий на автомобиле costmap. Алгоритмы планирования пути используют checkFree
, чтобы проверять, пригодны ли положения автомобиля кандидата вдоль пути для навигации.
Чтобы упростить проверку столкновения на положение автомобиля, vehicleCostmap
раздувает препятствия согласно InflationRadius
автомобиля, как задано свойством CollisionChecker
costmap. Средство проверки столкновения вычисляет радиус инфляции путем включения автомобиля в набор перекрывающихся кругов радиуса R, где центры этих кругов простираются вдоль продольной оси автомобиля. Радиусом инфляции является минимальный R, должен был полностью заключить автомобиль в эти круги.
Положение автомобиля без коллизий, когда следующие условия применяются:
Ни один из центров круга автомобиля не лежит на расширенной ячейке сетки.
Величина затрат на каждого содержащего центр круга является меньше, чем FreeThreshold
costmap.
Для получения дополнительной информации см. алгоритм на странице с описанием vehicleCostmap
.
free = checkFree(costmap,vehiclePoses)
free = checkFree(costmap,xyPoints)
freeMat = checkFree(costmap)
проверки, свободны ли положения автомобиля от столкновения с препятствиями на costmap.free
= checkFree(costmap
,vehiclePoses
)
Если вы задаете маленькое значение InflationRadius
, который не полностью заключает автомобиль, то checkFree
может сообщить занятый, изображает из себя без коллизий. Чтобы избежать этой ситуации, значение по умолчанию InflationRadius
полностью заключает автомобиль.