主要内容

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”方法包含由3到5个基本运动组成的序列,每个基本运动都是以下类型之一:

  • 直(向前或向后)

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

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

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

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

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

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

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

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

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

对象的功能

计划 使用RRT*路径规划器规划车辆路径
情节 通过RRT*路径规划器规划路径

例子

全部折叠

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

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

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

图中包含一个axes对象。坐标轴对象包含两个类型为image、patch的对象。该对象表示膨胀区域。

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

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

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

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

画出规划的路径。

策划(计划)

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

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

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

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

图中包含一个axes对象。坐标轴对象包含两个类型为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的”“过渡姿势”)举行

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

提示

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

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

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

参考文献

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

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

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

扩展功能

版本历史

介绍了R2018a

Baidu
map