使用向量场直方图避免障碍物
这controllerVFH
System Object™使您的车辆能够避免使用矢量字段直方图(VFH)基于范围传感器数据的障碍物。给定激光扫描读数和朝向的目标方向朝向,物体计算出无障碍的转向方向。
controllerVFH
具体使用VFH +算法来计算无障碍方向。首先,该算法从激光扫描数据中获取范围和角度,并为障碍物位置构建极性直方图。然后,输入直方图阈值用于计算指示占用和自由方向的二进制直方图。最后,算法计算屏蔽直方图,基于车辆的最小转弯半径从二进制直方图计算。
该算法基于开路空间和可能的驱动方向选择多个转向方向。具有对应于先前的电流和目标方向的重量的成本函数计算不同可能的方向的成本。然后,对象以最小的成本返回无障碍方向。使用无障碍方向,您可以输入命令以将车辆移动到该方向。
要将此对象用于您自己的应用程序和环境,您必须调优算法的属性。属性值取决于车辆的类型、距离传感器和所使用的硬件。
找到一个无障碍的方向:
创建controllerVFH
对象并设置其属性。
使用参数调用对象,就像它是一个函数。
要了解关于System对象如何工作的更多信息,请参见什么是系统对象?.
返回一个矢量字段直方图对象,使用该对象计算无障碍的转向方向VFH
= ContractervFH.VFH +
算法。
返回一个向量字段直方图对象,该对象具有由一个或多个指定的附加选项VFH
= controllerVFH (名称
那价值
)名称,值
对。名称是属性名称和值是相应的值。名称必须出现在单引号内(''
).可以按如下顺序指定几个名称-值对参数Name1, Value1,…,的家
.未指定的属性保留其默认值。
使用VFH +算法为输入找到无障碍的转向方向转向迪尔
= vfh (扫描
那TargetDir.
)lidarScan
目的,扫描
.基于目标位置给出目标方向。
要启用此语法,必须设置USELIDARSCAN.
财产真正的
.例如:
制程= monteCarloLocalization ('USELIDARSCAN',真的);......[ISUPDATED,POSE,协方差] = MCL(履历,扫描);
用两个向量定义激光雷达扫描:转向迪尔
= vfh (范围
那角
那TargetDir.
)范围
和角
.
要使用对象函数,请将System对象指定为第一个输入参数。例如,要发布命名的系统对象的系统资源obj
,使用以下语法:
发行版(obj)
Borenstein, J.和Y. Koren。矢量场直方图-移动机器人快速避障IEEE机器人与自动化杂志。第7卷,第3期,1991,页278 - 88。
[2] Ulrich,I.和J. Borenstein。“VFH:快速移动机器人的可靠障碍避免。”诉讼程序。1998年IEEE机器人和自动化国际会议.(1998): 1572 - 1577。