pathPlannerRRT

配置RRT *路径规划

描述

pathPlannerRRT对象配置基于最优快速随机树(RRT *)算法的车辆路径规划。一个RRT *路径规划通过构建随机无碰撞姿势的树探索车辆周围的环境。

一旦pathPlannerRRT对象已配置,请使用计划功能计划从一开始就构成了对目标的路径。

创建

描述

规划师= pathPlannerRRT (costmap回报pathPlannerRRT用于规划车辆路径的对象。costmap是一个vehicleCostmap对象确定车辆周围的环境。costmap设置Costmap属性值。

规划师= pathPlannerRRT (costmap名称,值性能通过使用一个或多个名称值对自变量的路径规划器。例如,pathPlanner (costmap GoalBias, 0.5)设置GoalBias属性,以0.5的概率。在引号中每个属性的名称。

属性

全部展开

车辆周围环境的Costmap,指定为vehicleCostmap宾语。所述costmap用于随机产生的姿势碰撞检测。在创建时,指定此costmap您pathPlannerRRT对象使用costmap输入。

宽容周围的目标姿态,指定为[xTolyTolΘTol)向量。路径规划器完成规划时,车辆达到目标的姿态在这些公差(Xÿ)的位置和取向角,Θ。该xTolyTol值的世界单位与。相同vehicleCostmapΘTol是在度。

选择目标位姿而不是随机位姿的概率,指定为[0,1]范围内的实数。较大的数值可以加速实现目标,但存在无法绕过障碍的风险。

方法用于计算连续的姿势,指定为之间的连接“杜宾”要么“Reeds-Shepp”。使用“杜宾”如果只向前运动是允许的。

“杜宾”方法包含三个基本动作序列,每一个基本动作都是以下类型之一:

  • 直(向前)

  • 在车辆的最大转向角左转(正向)

  • 在车辆的最大转向角右转(向前)

如果使用此连接方法,则规划的车辆路径的段将存储为driving.DubinsPathSegment对象。

“Reeds-Shepp”方法包含三个到五个基本动作的序列,每一个基本动作都是以下类型之一:

  • 直线(前进或后退)

  • 车辆最大转向角向左转弯(前进或后退)

  • 在车辆(正向或反向)的最大转向角向右转

如果使用此连接方法,则规划的车辆路径的段将存储为driving.ReedsSheppPathSegment对象。

MinTurningRadius属性决定最大转向角。

两个连接的姿势之间的最大距离,指定为正实数标量。pathPlannerRRT计算两个姿势之间的连接距离,包括转弯。较大的值导致更长的路径片段之间的姿态。

车辆的最小转弯半径,指定为正实标。此值对应于转弯圆的在最大转向角的半径。较大的值限制用于路径规划器的最大转向角,和较小的值导致急转弯。缺省值是使用2.8米的轴距为35度的最大转向角来计算。

最小数目规划器迭代探索costmap,指定为一个正整数。增加该值增加在costmap替代路径的采样。

探索成本图的最大计划迭代次数,指定为正整数。增加这个值会增加寻找有效路径的样本数量。如果未找到有效路径,则路径规划器将在超过此最大值后退出。

启用近似最近邻搜索,指定为真正的要么。将此值设置为真正的使用更快,但近似的搜索算法。将此值设置为在增加的计算时间成本,使用精确搜索算法。

对象的功能

计划 使用RRT*路径规划器规划车辆路径
情节 由RRT* path planner规划的路径

例子

全部折叠

使用RRT*算法规划车辆到停车位的路径。

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

data =负载('parkingLotCostmapReducedInflation.mat');costmap = data.parkingLotCostmapReducedInflation;图(costmap)

定义起点和目标姿势的路径规划为[x, y,Θ)向量。世界单位(Xÿ)位置是在米。世界单位为Θ方向值以度为单位。

startPose = [11, 10, 0];%[米,米,度]goalPose = [31.5,17,90];

创建RRT *路径规划计划从一开始姿势到目标姿势的路径。

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

绘制计划的路径。

图(规划师)

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

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

data =负载('parkingLotCostmap.mat');costmap = data.parkingLotCostmap;图(costmap)

将车辆的起始姿势和目标姿势定义为[XÿΘ)向量。世界单位(Xÿ)位置是在米。世界单位为Θ取向角的单位为度。

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

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

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

检查路径是否有效。

isPathValid = checkPathValidity(refPath,costmap)
isPathValid =合乎逻辑1

沿路径插入过渡位姿。

transitionPoses =插入(refPath);

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

保持情节(refPath'显示名称'“计划路径”)散射(transitionPoses (: 1) transitionPoses (:, 2), [],'填充'...'显示名称'“过渡体式”)举行

提示

  • 更新任何规划者的属性清除从规划路径pathPlannerRRT。调用情节直到一个路径是使用计划只显示costmap计划

  • 为了提高性能,pathPlannerRRT对象使用近似最近邻搜索。只有这种搜索技术检查SQRT(N)节点,其中,ñ是节点进行搜索的次数。要使用精确最近邻搜索,设置ApproximateSearch属性

  • 所述的Dubins和芦苇-Shepp连接方法被认为是可行的运动学和忽略惯性效应。这些方法使路径规划器适合于低速的环境中,其中车轮力的惯性效果小。

参考

[1]卡拉曼,Sertac,和埃米利奥Frazzoli。“最佳Kinodynamic运动规划的增量采样为基础的方法。”第49次IEEE会议决定和控制中心(CDC)。2010。

[2] Shkel, Andrei M.和Vladimir Lumelsky。" Dubins分类集"机器人和自动系统。第34卷,第4期,2001年,第179-202页。

[3] Reeds, J. A.,和L. A. Shepp。“汽车前进和后退的最佳路径。”太平洋数学杂志。第145卷,第2期,1990年,第367-393页。

扩展功能

介绍了在R2018a