checkOccupied

检查车辆costmap为占据姿势或点

描述

checkOccupied功能检查是否车辆的姿势或点通过在车辆costmap障碍占据。路径规划算法使用checkOccupied检查沿着路径候选车辆姿势是否通航。

为了简化碰撞检查车辆姿态,vehicleCostmap根据车辆的充气障碍InflationRadius,由指定的CollisionChecker在costmap的财产。碰撞检查通过在一组半径的重叠圆形的包围车辆计算通货膨胀半径[R,其中这些圆的中心沿所述车辆的纵向轴线所在。膨胀半径是最小[R需要在这些圈子完全包围了车辆。一种车辆姿态是无碰撞的当没有这些圆的中心的躺在充气网格单元。有关详细信息,请参阅算法vehicleCostmap参考页。

OCC= checkOccupied(costmapvehiclePoses检查是否车辆姿态被占用。

OCC= checkOccupied(costmapxyPoints检查是否(Xÿ)点xyPoints被占用。

occMat= checkOccupied(costmap返回指示costmap的每个单元是否被占用的逻辑矩阵。

例子

全部收缩

负荷停车场一个costmap。

数据=负载('parkingLotCostmap.mat');parkMap = data.parkingLotCostmap;图(parkMap)

创建以下直线道车辆的姿势。Xÿ是(Xÿ车辆的后轴的)坐标。THETA是后轴相对于该角度X-轴。此外,在车辆的尺寸都存储在vehicleDimensions属性costmap的,并且有一个在车辆的后轴和它的中心之间的偏移。

X = 6:0.25:10;Y = repmat(5,尺寸(X));THETA =零(大小(X));vehiclePoses = [X 'Y',THETA'];保持积(X,Y,'B'。

检查姿势被占用。

OCC = checkOccupied(parkMap,vehiclePoses)
OCC =17x1逻辑阵列0 0 0 0 0 1 1 1 1 1⋮

车辆姿态被占用与第六姿势开始。换言之,车辆在第六姿态所在的充气半径内的中心占用网格单元。

输入参数

全部收缩

Costmap,指定为vehicleCostmap宾语。

车辆姿势,指定为-by-3的矩阵[XÿΘ]载体。是姿势的数目。

Xÿ指定世界单位,如米,车辆的位置。这个位置是车辆的后轴的中心。

Θ指定度车辆的朝向的角度相对于所述X-轴。Θ在顺时针方向为正。

例:[3.4 2.6 0]指定与后轴的在(3.4,2.6)的中心和0度的定向角的车辆。

点,指定为中号-by-2,它表示实值矩阵(Xÿ)的坐标中号点。

例:[3.4 2.6]指定在单个点(3.4,2.6)

例:[3 2; 3 3; 4 7]指定三点:(3,2),(3,3),和(4,7)

输出参数

全部收缩

车辆姿态或点被占用,返回一个中号×1逻辑矢量。的元素OCC1真正)当相应的车辆姿态在vehiclePoses在或平面点xyPoints被占用。

Costmap细胞被占用时,返回作为相同大小costmap网格的逻辑矩阵。该尺寸由指定MapSize财产costmap。的元素occMat1真正)当在对应的小区costmap被占用。

扩展功能

C / C ++代码生成
生成使用MATLAB®编码器™C和C ++代码。

介绍了在R2018a