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