主要内容

策划者之星

创建最优的RRT路径规划器(RRT*)

描述

这个策划者之星对象创建一个渐近最优的RRT规划器RRT*。RRT*算法根据状态空间距离收敛到最优解。此外,它的运行时间是RRT算法运行时间的常数。RRT*用于解决几何规划问题。几何规划问题要求从状态空间中提取的任意两个随机状态可以连接。

创造

描述

实例

规划师= plannerRRTStar (stateSpace,斯塔夫)从状态空间对象创建RRT*规划器,stateSpace,以及状态验证程序对象,斯塔夫.状态空间斯塔夫必须与相同stateSpace.stateSpace斯塔夫还设置了StateSpaceStateValidator特性规划师对象。

性质

全部展开

用于估计附近邻居搜索半径的常数,指定为正标量。在球半径较大的情况下,随着树中节点数量的增加,搜索半径的减小速度会变慢。半径估计如下:

R = ( { γ ln ( N ) N v D } 1. / D , η )

哪里:

  • D-状态空间的维数

  • N-搜索树中的节点数

  • η—取值MaxConnectionDistance所有物

  • vD-单位球的体积Dth维度

数据类型:仅有一个的|双重的

决定计划者在达到目标后是否继续优化,具体为错误的真正的. 如果达到最大迭代次数或最大树节点数,则无论此属性的值如何,规划器也将终止。

数据类型:必然的

规划器的状态空间,指定为状态空间对象。您可以使用状态空间对象,例如StateSpace SE2,stateSpaceDubins,StateSpeedsshepp. 还可以使用自定义状态空间对象导航状态空间对象。

规划器的状态验证器,指定为状态验证器对象。您可以使用状态验证器对象,例如validatorOccupancyMap汽车成本图.

搜索树中最大节点数(不包括根节点),指定为正整数。

数据类型:仅有一个的|双重的

最大迭代次数,指定为正整数。

数据类型:仅有一个的|双重的

树中允许的最大运动长度,指定为标量。

数据类型:仅有一个的|双重的

用于确定是否达到目标的回调函数,指定为函数句柄。您可以创建自己的目标达成函数。函数必须遵循以下语法:

function isReached = myGoalReachedFcn(planner,currentState,goalState)

哪里:

  • 规划师-创建的计划器对象,指定为策划者之星对象。

  • 当前状态-当前状态,指定为三元素实向量。

  • goalState-目标状态,指定为三元素实向量。

  • 伊斯雷奇-一个布尔变量,指示当前状态是否已达到目标状态,返回为真正的错误的.

数据类型:函数句柄

在状态采样期间选择目标状态的概率,在[0,1]中指定为实标量。该属性定义了在从状态空间随机选择状态的过程中选择实际目标状态的概率。您可以首先将概率设置为一个较小的值,例如0.05.

数据类型:仅有一个的|双重的

目标函数

计划 规划两种状态之间的路径
复制 创建规划器对象的副本

例子

全部折叠

创建一个状态空间。

ss=状态空间SE2;

创建一个职业地图-使用创建的状态空间的基于状态的验证器。

sv = validatorOccupancyMap (ss);

从示例地图中创建一张占用地图,并将地图分辨率设置为10个单元格/米。

负载exampleMaps.matmap = occupancyMap(simpleMap, 10);sv。地图=地图;

为验证器设置验证距离。

sv.ValidationDistance=0.01;

更新状态空间边界,使其与地图限制相同。

ss.StateBounds = [map.XWorldLimits;map.YWorldLimits;[-ππ]];

创建RRT*路径规划器,并在达到目标后允许进一步优化。

规划师=规划师注册星(ss,sv);planner.ContinueAfterGoalReached=真;

减少最大迭代次数并增加最大连接距离。

计划。MaxIterations = 2500;计划。MaxConnectionDistance = 0.3;

设置开始和目标状态。

Start = [0.5, 0.5 0];目标= [2.5,0.2,0];

使用默认设置规划路径。

rng(100,“龙卷风”)%可重复结果[pthObj, solnInfo] =计划(计划,开始,目标);

将结果可视化。

地图展示;持有;情节(solnInfo.TreeData (: 1) solnInfo.TreeData (:, 2),'.-');%树扩张情节(pthObj.States (: 1) pthObj.States (:, 2),“r-”,“线宽”,2);%绘制路径

图中包含一个轴。带有标题占用栅格的轴包含3个类型为image、line的对象。

参考文献

卡拉曼,S.和E.弗拉佐利。基于采样的最优运动规划算法。国际机器人研究杂志。2011年第7期第30卷,第846-894页。

扩展能力

C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。

在R2019b中引入