主要内容

plannerHybridAStar

混合*路径规划

自从R2019b

描述

混合*路径规划对象生成一个平滑的路径在一个给定的车辆具有非完整约束的二维空间。

plannerHybridAStar对象使用Reeds-Shepp连接找到一个无障碍路径。您可以修改连接通过调整属性的行为MinTurningRadius,ForwardCost,ReverseCost。您可以使用AnalyticExpansionInterval属性设置周期检查Reeds-Shepp连接。

请注意

混合*规划师的碰撞检查地图通过插值运动原语和分析基于扩张ValidationDistance财产的stateValidator对象。如果ValidationDistance属性设置为对象插入基于地图的单元尺寸验证器中指定的状态。膨胀的入住率在分配之前映射到规划师占车辆大小。

创建

描述

例子

规划师= plannerHybridAStar (验证器)创建一个使用混合a *算法路径规划对象。指定验证器输入作为一个validatorOccupancyMapvalidatorVehicleCostmap对象。的验证器输入设置的值StateValidator财产。

规划师= plannerHybridAStar (验证器,名称,值)属性路径的规划师通过使用一个或多个名称-值对参数。附上每个属性名称在单引号(')。

属性

全部展开

国家规划、验证器指定的作为validatorOccupancyMapvalidatorVehicleCostmap基于状态空间SE(2)的对象。

生成运动基元的长度,指定为逗号分隔组成的“MotionPrimitiveLength”在米和积极的标量。增加长度为大地图或稀疏的环境。减少长度为密集的环境。

请注意

“MotionPrimitiveLength”的长度不能超过四分之一圆的周长的基础上“MinTurningRadius”

数据类型:

最小转弯半径的车辆,指定为逗号分隔组成的“MinTurningRadius”在米和积极的标量。

请注意

的价值“MinTurningRadius”是这样吗“MotionPrimitiveLength”不能超过四分之一的长度根据这一个圆的周长。

数据类型:

数量的运动生成原语,指定为逗号分隔组成的“NumMotionPrimitives”和积极的奇数标量大于或等于3。

旅行成本倍增前进方向,指定为逗号分隔组成的“ForwardCost”和积极的标量。增加的成本价值惩罚向前运动。

数据类型:

旅行成本倍增在相反方向,指定为逗号分隔组成的“ReverseCost”和积极的标量。增加的成本价值惩罚反向运动。

数据类型:

添加剂成本转换的方向运动,指定为逗号分隔组成的“DirectionSwitchingCost”和积极的标量。增加惩罚的成本价值方向转换。

数据类型:

间隔尝试分析扩张成本最低的节点可以在实例,指定为逗号分隔组成的“AnalyticExpansionInterval”和一个正整数标量。

混合*路径规划扩展节点的运动基元最低的成本可以在该实例:

  • 节点扩展的数量取决于原语生成的数量在这两个方向及其有效性,在这样的循环,直到“AnalyticExpansionInterval”是达到了。

  • 规划师然后分析扩张试图达到目标构成从树上使用Reeds-Shepp模型。如果尝试失败,规划师重复循环。

提高算法的性能通过减少间隔增加检查的数量Reeds-Shepp连接到最终目标。

距离插值带来产出路径,指定为逗号分隔组成的“InterpolationDistance”在米和积极的标量。

数据类型:

对象的功能

计划 找到两个姿势之间无障碍路径
显示 可视化计划路径

例子

全部折叠

计划通过一个停车场车辆的无碰撞路径通过使用混合a *算法。

创建和分配映射到状态验证器

负载细胞的成本价值的车辆costmap停车场。

负载parkingLotCostVal.mat% costVal

创建一个binaryOccupancyMap与成本值。

分辨率= 3;地图= binaryOccupancyMap (costVal,决议);

创建一个状态空间。

党卫军= stateSpaceSE2;

更新状态空间边界地图限制一样。

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

创建一个状态验证器对象的碰撞检查。

sv = validatorOccupancyMap (ss);

指定映射到状态验证器对象。

sv。地图=地图;

计划和可视化道路

初始化plannerHybridAStar对象的状态验证器对象。指定MinTurningRadiusMotionPrimitiveLength规划师的属性。

规划师= plannerHybridAStar (sv,MinTurningRadius = 4,MotionPrimitiveLength = 6);

启动和目标提出了车辆定义为(x, y,θ)向量。xy指定位置的米,θ指定的定向角弧度。

startPose =[4 9π/ 2];%(米,米,弧度)goalPose =[30 19 -π/ 2];

计划从一开始就对道路目标构成。

refpath =计划(计划、startPose goalPose, SearchMode =“详尽”);

可视化使用显示函数的路径。

显示(计划)

图包含一个坐标轴对象。坐标轴对象标题混合*路径规划,包含X [m], ylabel Y [m]包含8图像类型的对象,线,散射。这些对象代表前进运动原语,反向运动原语,转发路径,路径点,定位,首先,目标。

引用

[1]Dolgov德米特里,Sebastian Thrun和詹姆斯·迈克尔·Montemerlo Diebel。实用的搜索技术为自主驾驶路径规划。美国人工智能协会,2008。

[2]Petereit之前,托马斯•emt基督教w·弗雷,托马斯Kopfstedt,安德烈亚斯Beutel。“应用程序混合的*在室外非结构化环境中自主移动机器人路径规划。”机器人ROBOTIK 2012: 7日德国会议。2012年,页1 - 6。

扩展功能

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

版本历史

介绍了R2019b