主要内容

pathPlannerRRT

配置RRT*路径规划器

描述

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

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

创建

描述

例子

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

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

属性

全部展开

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

目标姿态周围的容差,指定为[xTolyTolΘ托尔)向量。当车辆在这些公差范围内达到目标姿态时,路径规划器完成规划。xy)位置和方位角,Θ.的xTol而且yTol值在同一世界单位vehicleCostmapΘ托尔单位是度。

选择目标姿态而不是随机姿态的概率,指定为范围[0,1]中的实标量。大的数值加速了目标的实现,但却冒着无法绕过障碍的风险。

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

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

  • 直(向前)

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

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

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

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

  • 直线(向前或反向)

  • 在车辆最大转向角处左转(前进或倒车)

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

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

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

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

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

用于探索成本图的最少计划器迭代次数,指定为正整数。增加这个值将增加开销映射中可选路径的采样。

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

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

对象的功能

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

例子

全部折叠

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

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

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

图中包含一个轴对象。axis对象包含image、patch类型的2个对象。此对象表示膨胀区域。

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

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

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

规划师= pathPlannerRRT(成本地图);refPath = plan(planner,startPose,goalPose);

画出规划的路径。

策划(计划)

图中包含一个轴对象。axis对象包含图像、补丁、散射、直线、多边形等12个对象。这些对象代表膨胀区域、计划路径、期望的目标姿势。

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

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

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

图中包含一个轴对象。axis对象包含image、patch类型的2个对象。此对象表示膨胀区域。

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

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

使用一个pathPlannerRRT对象来规划从开始姿势到目标姿势的路径。

规划师= pathPlannerRRT(成本地图);refPath = plan(planner,startPose,goalPose);

检查路径是否有效。

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

沿着路径插值过渡姿势。

transitionposed =插值(refPath);

在成本图上绘制计划路径和转换姿势。

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

图中包含一个轴对象。坐标轴对象包含图像、补丁、散点、直线、多边形等13个对象。这些对象表示膨胀区域、计划路径、过渡姿势。

提示

  • 更新计划器的任何属性将清除计划的路径pathPlannerRRT.调用情节只显示开销映射,直到使用计划

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

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

参考文献

[1] Karaman, Sertac和Emilio Frazzoli。基于增量采样方法的最优运动学运动规划。第49届IEEE决策与控制会议.2010.

[2] Shkel, Andrei M.和Vladimir Lumelsky。杜宾斯集合的分类机器人与自主系统.卷34,第4期,2001,179-202页。

[3]里德斯,J. A.和L. A.谢普。“既能前进又能后退的汽车的最佳路径。”太平洋数学杂志.卷145,第2期,1990,第367-393页。

扩展功能

版本历史

在R2018a中引入