主要内容

plannerRRTStar

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

描述

plannerRRTStar对象创建一个渐近最优的RRT规划器,RRT*。RRT*算法根据状态空间距离收敛到最优解。而且,它的运行时间是RRT算法运行时间的常数因子。RRT*用于求解几何规划问题。几何规划问题要求状态空间中任意两个随机状态可以连通。

创建

描述

例子

策划者= plannerrrtstar(标准空间stateVal从状态空间对象创建一个RRT*规划器,标准空间,和状态验证器对象,stateVal.的状态空间stateVal一定和标准空间标准空间stateVal还设置了StateSpaceStateValidator.的属性策划者目的。

属性

全部展开

常数用于估计近邻搜索半径,指定为正标量。通过较大的球半径,搜索半径会降低较慢的树,随着树中的节点的数量增加。半径估计如下:

r 最小值 γ. LN. n n V d 1 / d η.

地点:

  • d-状态空间的维数

  • n—搜索树中的节点数

  • η.- 值的价值maxconnectiondistance.财产

  • Vd-单位球的体积d维度

数据类型:|

决定在达到目标后,规定计划员是否继续优化,指定为要么真的.如果达到了最大迭代次数或树节点的最大数目,规划器也将终止该属性,而不管该属性的值如何。

数据类型:逻辑

规定为状态空间对象的策划器的状态空间。您可以使用诸如的状态空间对象stateSpaceSE2stateSpaceDubins, 和stateSpaceReedsShepp.控件还可以自定义状态空间对象导航。StateSpace目的。

规定的策划器的状态验证器,指定为状态验证器对象。您可以使用状态验证器对象,例如Validatoroccupancemap.validatorVehicleCostmap

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

数据类型:|

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

数据类型:|

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

数据类型:|

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

函数isReached = mygoalreachedfcn(计划者,currentstate,守门员)

地点:

  • 策划者—创建的规划器对象,指定为plannerRRTStar目的。

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

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

  • isReached-一个布尔变量,用于指示当前状态是否已达到目标状态,返回为真的要么

数据类型:函数处理

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

数据类型:|

对象的功能

计划 两个州之间的计划路径
复制 创建规划器对象的副本

例子

全部收缩

创建一个状态空间。

党卫军= stateSpaceSE2;

创建一个occupancyMap基于状态验证器,使用创建的状态空间。

SV = Validatoroccupancymap(SS);

从示例地图创建占用映射并将地图分辨率设置为10个单元/仪表。

负载exampleMaps.mat地图=占领扬(SimpleMap,10);sv.map = map;

为验证器设置验证距离。

sv。ValidationDistance = 0.01;

更新状态空间范围与地图限制相同。

ss.statebounds = [map.xworldlimits;map.yworldlimits;[-pi pi]];

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

规划师= plannerRRTStar (ss、sv);计划。ContinueAfterGoalReached = true;

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

规划师..AxIterations = 2500;Planner.MaxConnectionDistance = 0.3;

设定开始和目标状态。

开始= [0.5,0.5 0];目标= [2.5,0.2,0];

使用默认设置计划路径。

rng (100“旋风”%可重复的结果[Pthobj,Solninfo] =计划(计划者,开始,目标);

可视化结果。

map.show;持有;plot(solninfo.tredata(:,1),solninfo.tredata(:,2),“。”);%树扩展plot(pthobj.states(:,1),pthobj.states(:,2),的r -“线宽”2);%画出路径

图中包含一个坐标轴。以“占用网格”为标题的坐标轴包含图像、直线三个对象。

参考

[1] Karaman,S.和E. Frazzoli。“基于采样的最佳运动规划算法。”国际机器人研究杂志。第30卷第7期,2011年,第846 - 894页。

扩展功能

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

介绍了R2019b