checkPathValidity

检查计划车辆路径的有效性

描述

例子

isValid= checkPathValidity (refPath,costmap)检查计划车辆路径的有效性,refPath,对照车辆成本地图。使用此函数测试路径在变化的环境中是否有效。

如果下列条件为真,则路径有效:

  • 这条路至少有一个姿势。

  • 这条路是无碰撞的,在极限之内costmap

isValid= checkPathValidity (refPoses,costmap)检查车辆姿态序列的有效性,refPoses,对照车辆成本地图。

例子

全部折叠

使用最优快速探索随机树(RRT*)算法规划车辆通过停车场的路径。检查路径是否有效,然后绘制沿路径的过渡位姿。

加载一个停车场的成本地图。绘制成本地图,以看到停车场和膨胀的区域,为车辆避免。

data =负载(“parkingLotCostmap.mat”);costmap = data.parkingLotCostmap;情节(costmap)

将车辆的起始姿势和目标姿势定义为[x,y,Θ)向量。世界单位(x,y)地点以米为单位。世界单位为Θ方位角的单位是度。

startPose = [4,4,90];%[米,米,度]goalPose = [30, 13, 0];

使用一个pathPlannerRRT目标规划从起始姿势到目标姿势的路径。

规划师= pathPlannerRRT (costmap);refPath =计划(计划、startPose goalPose);

检查路径是否有效。

isPathValid = checkPathValidity (refPath costmap)
isPathValid =逻辑1

沿路径插入过渡位姿。

transitionPoses =插入(refPath);

在成本图上标出计划的路径和过渡位置。

持有情节(refPath“DisplayName的”,“计划路径”)散射(transitionPoses (: 1) transitionPoses (:, 2), [],“填充”,“DisplayName的”,“过渡姿势”)举行

输入参数

全部折叠

计划车辆路径,指定为adriving.Path对象。

用于冲突检查的成本图,指定为vehicleCostmap对象。

车辆姿态序列,指定为的-×3矩阵x,y,Θ)向量。为指定姿态的数量。

xy指定车辆的位置。这些值必须使用相同的世界单位costmap

Θ指定车辆的方向角,单位为度。

输出参数

全部折叠

表示计划车辆路径的有效性,refPath或者是车辆的姿势顺序,refPoses,作为逻辑值返回10

姿态的路径或序列是有效的(1)如符合下列条件:

  • 该路径或位姿序列具有至少一个位姿。

  • 该路径或位姿序列是无碰撞的,并在的限制costmap

算法

若要检查车辆路径是否有效,则checkPathValidity函数离散路径。然后,该函数检查在离散点的姿态是无碰撞的。无碰撞姿态的阈值取决于其分辨率checkPathValidity可获得。

扩展功能

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

介绍了R2018a