vehicleCostmap
Costmap代表规划车辆周围的空间
描述
的vehicleCostmap
对象创建一个costmap代表车辆周围的规划搜索空间。costmap持有关于环境的信息,如障碍或区域,车辆不能遍历。检查碰撞,costmap使用通货膨胀中指定半径膨胀的障碍CollisionChecker
财产。使用costmap路径规划算法,如pathPlannerRRT
,找到车辆跟随的无碰撞路径。
costmap存储为一个二维网格的细胞,通常被称为一个占用网格或入住率地图。costmap中的每个网格单元有一个值在[0,1]代表浏览,网格单元的成本。每个网格单元的状态免费的,被占领的,或未知的决定的FreeThreshold
和OccupiedThreshold
属性。
下图显示了一个costmap样品成本和网格单元的状态。
创建
语法
描述
costmap = vehicleCostmap (
创建一个汽车使用成本值costmap矩阵C
)C
。
costmap = vehicleCostmap (
创建一个车辆costmap入住率的地图occMap
)occMap
。使用这种语法需要导航工具箱™。
costmap = vehicleCostmap (___“MapLocation”,
指定在mapLocation
)mapLocation
costmap角落左下角坐标。指定MapLocation, MapLocation
后的任何前输入和以任何顺序名称,值
对参数。
costmap = vehicleCostmap (___,
使用名称,值
)名称,值
对指定的参数FreeThreshold
,OccupiedThreshold
,CollisionChecker
,CellSize
属性。例如,vehicleCostmap (C ' CollisionChecker ccConfig)
使用一个inflationCollisionChecker
对象,ccConfig
,代表车辆形状和检查碰撞。创建对象后,您可以更新除了所有这些属性CellSize
。
输入参数
属性
对象的功能
checkFree |
检查车辆costmap无碰撞的姿势或点 |
checkOccupied |
检查车辆costmap占领姿势或点 |
getCosts |
细胞的车辆costmap获得成本的价值 |
setcost |
细胞的车辆costmap设置成本值 |
情节 |
情节车辆costmap |
例子
算法
为了简化检查车辆是否构成碰撞,vehicleCostmap
充气障碍的大小。collision-checking算法遵循这些步骤:
计算通货膨胀半径,在世界单位,从车辆尺寸。默认的通货膨胀半径等于最小的组重叠的圆圈的半径必须完全封闭。圆的中心点谎言沿着纵轴的车辆。增加圈的数量降低了通货膨胀半径,使更精确的碰撞检查。
通货膨胀半径,一个中心 通货膨胀半径,三个中心 通货膨胀半径转换为一个网格单元的数量,R。围捕noninteger值R下一个最大的整数。
充气障碍使用的大小R。标签中的所有细胞膨胀区域。
图显示了深红色的细胞。细胞膨胀区域根据红色标注。扎实的黑线表示原来的通货膨胀半径。在左边的图,R是3。在右边的图,R是2。
膨胀的网状细胞,一个中心 膨胀的网格单元,三个中心 检查车辆的中心点是否躺在充气网格细胞。
如果任何中心位于一个充气的网格单元,然后车辆构成被占领的。的
checkOccupied
函数返回真正的
。一个被占领的姿势并不一定意味着一个碰撞。例如,车辆可能会躺在一个充气的网格单元而不是实际占领的网格单元。如果没有中心点躺在充气网格细胞,和每个单元包含一个中心的成本价值小于
FreeThreshold
,那么车辆构成免费的。的checkFree
函数返回真正的
。如果没有中心点躺在充气网格细胞,和成本的价值包含一个中心点大于任何细胞
FreeThreshold
,那么车辆构成未知的。这两个checkFree
和checkOccupied
返回假
。
下面的姿势被认为是在碰撞,因为至少有一个中心点的膨胀区域。
造成碰撞,一个中心 | 在冲突中,三个中心 |
---|---|
|
|