controllerVFH
使用矢量场直方图避开障碍物
描述
的controllerVFH
系统对象™使您的车辆能够使用矢量场直方图(VFH)根据距离传感器数据避开障碍物。给定激光扫描读数和目标方向,该物体计算一个无障碍的转向方向。
controllerVFH
具体使用VFH+算法计算一个无障碍方向。首先,该算法从激光扫描数据中获取距离和角度,建立障碍物位置的极坐标直方图;然后,使用输入直方图阈值来计算指示占用方向和空闲方向的二进制直方图。最后,算法根据车辆转弯半径最小的二值直方图计算出屏蔽直方图。
该算法根据开放空间和可能的行驶方向选择多个转向方向。代价函数,其权重对应于前一个、当前和目标方向,计算不同可能方向的代价。然后该对象以最小的代价返回一个无障碍的方向。使用无障碍方向,您可以输入命令将车辆朝该方向移动。
要在自己的应用程序和环境中使用此对象,必须调优算法的属性。属性值取决于车辆类型、距离传感器和使用的硬件。
要找到一个无障碍的转向方向:
创建
controllerVFH
对象并设置其属性。使用参数调用对象,就像调用函数一样。
有关系统对象如何工作的详细信息,请参见什么是系统对象?
创建
描述
方法计算无障碍转向方向的向量场直方图对象VFH
= controllerVFHVFH +
算法。
返回一个向量字段直方图对象,其中包含一个或多个指定的附加选项VFH
= controllerVFH (的名字
,价值
)名称,值
对。Name是属性名,Value是对应的值。名称必须出现在单引号内(' '
).您可以以任意顺序指定多个名称-值对参数Name1, Value1,…,的家
.未指定的属性保留其默认值。
属性
使用
描述
使用VFH+算法为输入找到一个无障碍的转向方向steeringDir
= vfh (扫描
,targetDir
)lidarScan
对象,扫描
.根据目标位置给出目标方向。
要启用此语法,必须设置UseLidarScan
财产真正的
.例如:
mcl = monteCarloLocalization(“UseLidarScan”,真正的);...[isUpdated,pose,covariance] = mcl(odomPose,scan);
用两个向量定义激光雷达扫描:steeringDir
= vfh (范围
,角
,targetDir
)范围
而且角
.
输入参数
输出参数
对象的功能
要使用对象函数,请将System对象指定为第一个输入参数。例如,释放system对象的系统资源obj
,使用这种语法:
发行版(obj)
例子
参考文献
[1]博伦斯坦,J.和Y.科伦。矢量场直方图——移动机器人快速避障IEEE机器人与自动化杂志。第7卷第3期,1991年,第278 - 88页。
[2]乌尔里希,我,和J.博伦斯坦。VFH:快速移动机器人的可靠避障1998年IEEE机器人与自动化国际会议论文集.(1998): 1572 - 1577。
扩展功能
版本历史
R2019b引入