主要内容

pathPlannerRRT

配置“RRT* path planner”

描述

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

一旦pathPlannerRRT对象配置时,使用计划函数来规划从起始姿势到目标的路径。

创建

描述

例子

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

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

属性

全部展开

车辆环境的Costmap,指定为avehicleCostmap对象。成本图用于随机生成的姿态的碰撞检查。在创建您的成本图时指定此成本图pathPlannerRRT对象使用costmap输入。

目标位姿的公差,指定为[xTolyTolΘ托尔)向量。当车辆在这些公差范围内达到目标位姿时,路径规划器完成规划(xy)位置及方向角,Θ.的xTolyTol值的世界单位与vehicleCostmapΘ托尔是在度。

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

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

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

  • 直(向前)

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

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

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

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

  • 直的(向前或向后)

  • 以最大转向角度左转弯(前进或后退)

  • 以最大转向角度右转(前进或后退)

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

MinTurningRadius属性决定最大转向角度。

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

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

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

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

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

对象的功能

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

例子

全部折叠

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

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

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

图中包含一个轴对象。axis对象包含两个类型为image, patch的对象。这个对象表示膨胀的区域。

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

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

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

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

绘制计划的路径。

策划(计划)

图中包含一个轴对象。轴对象包含12个对象,类型为图像,补丁,散点,线,多边形。这些对象代表膨胀的区域,计划的路径,期望的目标姿势。

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

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

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

图中包含一个轴对象。axis对象包含两个类型为image, patch的对象。这个对象表示膨胀的区域。

定义车辆的起始和目标姿势为[xyΘ)向量。(xy)位置以米为单位。世界单位Θ方位角的单位是度。

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的”“过渡姿势”)举行

图中包含一个轴对象。坐标轴对象包含13个对象,类型为图像、补丁、散点、线、多边形。这些物体代表膨胀区域,规划路径,过渡姿势。

提示

  • 更新规划器的任何属性将清除已规划的路径pathPlannerRRT.调用情节只显示成本图,直到规划路径使用计划

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

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

参考文献

卡拉曼,瑟塔克和埃米利奥·弗拉佐利。基于增量采样方法的最优动态运动规划。第49届IEEE决策与控制会议(CDC).2010.

Shkel, Andrei M.和Vladimir Lumelsky。《杜宾斯集的分类》机器人技术与自主系统.第34卷第4期,2001年,179-202页。

里德,j。A。和洛杉矶。谢普。“这是一辆既能前进又能后退的汽车的最佳路径。”太平洋数学杂志.第145卷第2期,1990年,第367-393页。

扩展功能

介绍了R2018a