主要内容

Plannerrrt.

为几何规划创建一个RRT计划者

描述

Plannerrrt.对象创建一个快速探索的随机树(RRT)规划器,用于解决几何规划问题。RRT是一种基于树的运动计划程序,从给定状态空间随机绘制的样本逐渐构建搜索树。树最终跨越搜索空间并将启动状态连接到目标状态。一般树长过程如下:

  1. 规划师样本一个随机状态X兰特在国家空间。

  2. 计划者找到一个州X靠近已经在搜索树中,最接近(基于状态空间中的距离定义)X兰特

  3. 策划者扩展了X靠近X兰特,直到一个州X新的到达了。

  4. 然后是新的状态X新的添加到搜索树中。

对于几何RRT,可以在分析上发现两个状态之间的扩展和连接,而无需违反规定的规定在规范器对象的状态空间中指定的约束。

创建

描述

例子

策划者= plannerrrt(标准空间斯拔国从状态空间对象创建一个RRT计划者,标准空间,以及状态验证器对象,斯拔国。国家空间斯拔国必须是一样的标准空间标准空间斯拔国还设置了标准空间StateValidator.属性策划者

特性

展开全部

规定为状态空间对象的策划器的状态空间。您可以使用诸如的状态空间对象SolultPacese2.标准尼替代金斯, 和soursepacereedsshpp.。您还可以使用使用的状态空间对象NAV.STATESPACE.目的。

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

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

数据类型:单身的|双倍的

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

数据类型:单身的|双倍的

在树中允许的最大长度长度指定为标量。

数据类型:单身的|双倍的

回调函数来评估是否达到目标,指定为函数句柄。您可以创建自己的目标达到函数。该函数必须遵循此语法:

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

在哪里:

  • 策划者- 创建的Planner对象,指定为Plannerrrt.目的。

  • 当前状态- 当前状态,指定为三个元素真正的矢量。

  • 守门员- 目标状态,指定为三个元素真正的矢量。

  • 到达了- 布尔变量,以指示当前状态是否已达到目标状态,返回真的或者错误的

数据类型:功能手柄

在状态采样期间选择目标状态的概率,指定为[0,1]中的真正标量。该属性定义在从状态空间随机选择状态期间选择实际目标状态的概率。您可以通过将概率设置为诸如此类的小值来开始0.05

数据类型:单身的|双倍的

对象功能

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

例子

全部收缩

创建一个状态空间。

ss = statibalpacese2;

创建一个占领者基于所创建的状态空间的状态验证器。

SV = Validatoroccupancymap(SS);

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

加载exceplemaps.地图=占领扬(SimpleMap,10);sv.map = map;

为验证器设置验证距离。

sv.validationDistance = 0.01;

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

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

创建路径规划器并提高最大连接距离。

Planner = PlannerRRT(SS,SV);Planner.MaxConnectionDistance = 0.3;

设置开始和目标状态。

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

使用默认设置计划路径。

RNG(100,'twister');可重复结果的%[Pthobj,Solninfo] =计划(计划者,开始,目标);

可视化结果。

显示(地图)持有plot(solninfo.tredata(:,1),solninfo.tredata(:,2),'.-');%树扩展plot(pthobj.states(:,1),pthobj.states(:,2),'r-''行宽'2)%绘制路径

图包含轴。带有标题占用网格的轴包含3个类型图像,线路。

参考

[1]Lavalle和J.J.Kuffner。“随机的血管动力学规划。”国际机器人研究杂志。卷。20,第5,2001,第378 - 400。

扩展能力

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

在R2019B中介绍