主要内容

向量场直方图

向量场直方图(VFH)算法计算无障碍转向方向对于机器人根据传感器读数范围。范围传感器读数来计算极密度直方图来识别障碍位置和距离。基于指定参数和阈值,这些直方图转换为二进制直方图来表示机器人的有效指导方向。机器人VFH算法因素大小和转弯半径为机器人输出一个指导方向,以避免障碍和遵循一个目标方向。

机器人的尺寸

计算指导方向,您必须指定关于机器人的大小和其驱动能力的信息。VFH算法只需要四个输入参数的机器人。这些参数的属性controllerVFH对象:RobotRadius,SafetyDistance,MinTurningRadius,DistanceLimits

  • RobotRadius指定最小的圆的半径可以包围机器人的所有部分。这个半径确保机器人避开障碍物基于它的大小。

  • SafetyDistance(可选)指定一个额外的距离上RobotRadius。您可以使用这个属性来添加一个导航一个环境时安全系数。

  • MinTurningRadius指定的最小转弯半径为机器人旅行所需的速度。机器人可能无法使急转弯在高速度。这个属性因素在障碍和导航给它足够的空间。

  • DistanceLimits指定的距离范围,你要考虑避障。你指定的限制在一个双元素向量,(低上)。的较低的限制用于忽略传感器读数,相交部分的机器人,在短距离传感器不准确,或传感器噪声。的限制的有效范围是传感器或者是根据您的应用程序。您可能不希望在整个传感器范围内考虑所有障碍。

请注意

所有信息传感器读数范围假定你的测距仪安装在机器人的中心。如果范围传感器安装在其他地方,改变你的传感器读数范围从激光坐标系到机器人基础坐标系。

成本函数的权重

使用成本函数权重来计算最终的指导方向。VFH算法考虑多个基于你当前的指导方向,前,和目标方向。通过设置CurrentDirectionWeight,PreviousDirectionWeight,TargetDirectionWeight属性,您可以修改指导机器人的行为。改变这些权重影响机器人的响应性,以及它如何反应的障碍。机器人的头向它的目标位置,设置TargetDirectionWeight高于其他权重的总和。这么高的TargetDirectionWeight值有助于确保计算转向方向接近目标方向。根据您的应用程序中,您可能需要调整这些权重。

直方图特性

VFH算法计算基于给定的范围传感器数据的直方图。需要在机器人各个方向,并将它们转换成角部门所指定的NumAngularSectors财产。这个属性non-tunable和保持固定一次controllerVFH调用对象。传感器数据被用来计算一个极性范围密度直方图对这些角领域。

请注意

使用一个小NumAngularSectors值可以导致VFH算法小小姐的障碍。错过了障碍不出现在直方图。

这个柱状图显示角部门蓝色和粉红色的直方图阈值。的HistogramThresholds属性是一个双元素向量决定掩盖了直方图的值,指定为(低上)。极地障碍密度值高于上部阈值被表示为占用空间(1)掩盖了直方图。值小于低阈值被表示为自由空间(0)。限制之间的值,设置为在前面的二元直方图的值,默认是自由空间(0),戴面具的直方图也因素MinTurningRadius,RobotSize,SafetyDistance

极地密度图具有以下相应的蒙面直方图的阴谋。这图显示了目标和指导方向,阅读,范围和距离限制。

调优参数使用显示

当处理一个controllerVFH对象,您可以可视化算法的属性和参数使用显示函数。这种方法显示了极密度图,蒙面二进制直方图。它还显示了算法参数和输出VFH指导方向。

您可以调整参数来帮助你避障应用程序原型。例如,如果你看到,不出现在某些障碍戴面具的极柱状图情节(右),然后在极地障碍密度情节,考虑调整适当的值的直方图阈值。在你做出的调整戴面具的极柱状图情节,传感器读数范围,显示为红色,应该在蒙面直方图匹配位置(蓝色)。同样,您可以看到目标和指导方向。你指定目标的方向。指导方向是主要的输出VFH算法。调整成本函数的权重可以帮你调的输出最终的指导方向。

尽管您可以使用显示方法在一个循环中,由于图形绘制,计算速度放缓。如果您正在运行该算法对于实时应用程序,获取和显示VFH数据在不同的操作。

另请参阅