Проверяйте автомобиль 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 полностью заключает автомобиль.