pathPlannerRRT

配置RRT*路径规划器

描述

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

一旦pathPlannerRRT对象已配置,请使用计划功能规划从开始姿势到目标的路径。

创建

描述

例子

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

规划师= pathPlannerRRT (costmap,名称,值)属性使用一个或多个名称-值对参数设置路径规划器。例如,pathPlanner (costmap GoalBias, 0.5)设置GoalBias属性的概率为0.5。将每个属性名括在引号中。

属性

全部展开

车辆环境成本图,指定为avehicleCostmap对象。该算法对随机生成的姿态进行碰撞检测。在创建时指定此成本地图pathPlannerRRT对象使用costmap输入。

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

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

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

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

  • 直(向前)

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

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

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

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

  • 直线(前进或后退)

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

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

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

MinTurningRadius属性决定最大转向角。

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

车辆的最小转弯半径,指定为正的实标量。此值对应于最大转向角处的转弯半径。较大的值限制路径规划器的最大转向角,较小的值导致更尖锐的转弯。默认值是计算使用的轴距为2.8米,最大转向角度为35度。

探索成本图的最小计划迭代次数,指定为正整数。增加这个值会增加成本图中备选路径的抽样。

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

启用近似最近邻搜索,指定为真正的。将此值设置为真正的使用更快,但近似的搜索算法。将此值设置为以增加计算时间为代价来使用精确的搜索算法。

对象的功能

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

例子

全部折叠

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

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

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

为路径规划器定义开始和目标姿势为[x, y,Θ)向量。世界单位(x,y)地点以米为单位。世界单位为Θ方向值以度为单位。

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

创建一个RRT*路径规划器来规划从起始姿态到目标姿态的路径。

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

绘制计划的路径。

策划(计划)

使用最优快速探索随机树(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的”,“过渡姿势”)举行

提示

  • 更新计划程序的任何属性将清除计划的路径pathPlannerRRT。调用情节在计划使用路径之前,只显示成本图计划

  • 为了提高性能,pathPlannerRRT对象使用近似最近邻搜索。这种搜索技术只检查sqrt (N)节点,N是要搜索的节点数。若要使用精确的最近邻居搜索,请设置ApproximateSearch财产

  • 假设Dubins和reed - shepp的连接方法在运动学上是可行的,并且忽略了惯性效应。这些方法使路径规划器适用于低速环境,在那里轮力的惯性效应很小。

参考文献

[1] Karaman, Sertac和Emilio Frazzoli。最佳动态运动规划使用增量采样的方法。第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