VFH & VFH+ & VFH*—— Path Planning

16 篇文章 1 订阅
10 篇文章 8 订阅

版权声明:本文为博主原创博文,未经允许不得转载,若要转载,请说明出处并给出博文链接

              

       最近在学习VFH算法,感觉蛮神奇,特意从维基百科扒来了资料,供学习研究。。。

       在机器人技术中,Vector Field Histogram(VFH,向量场直方图)是Johann Borenstein和Yoram Koren在1991年[1]提出的一种实时路径规划算法。VFH通过所谓的直方图网格利用机器人环境的统计表示,因此非常重视处理来自传感器和建模误差的不确定性。与其他避障算法不同,VFH考虑了机器人的动力学和形状,并返回特定于平台的转向指令。VFH作为一个局部路径规划器而非全局路径规划器,已被证明产生接近最优路径。

        原VFH算法是基于 Virtual Force Field虚拟力场的局部路径规划算法。VFH在1998年由Iwan Ulrich和Johann Borenstein[2]更新,并重新命名为VFH+(非官方的“增强VFH”)。这个方法在2000年由Ulrich和Borenstein再次更新,并被重新命名为VFH*[3]。 VFH是目前移动机器人中最受欢迎的局部路径规划器之一,与后来开发的动态窗口方法竞争。许多机器人开发工具和仿真环境都内置了对VFH的支持。

 

VFH的目标是计算效率,鲁棒,不敏感的误读。在实践中,VFH算法被证明是快速和可靠的,特别是在穿越密集的障碍。VFH算法的中心是通过直方图网格使用障碍物的统计表示。这样的表示非常适合不准确的传感器数据,并适应多传感器读数的融合。

  • VFH算法包含三个主要部分:

①直角直方图网格:利用机器人的距离传感器,如声纳或激光测距仪,构建二维直角直方图网格。网格不断实时更新。
②极坐标直方图:将围绕机器人瞬间位置的笛卡尔坐标直方图降低,构造一维极坐标直方图。
③候选谷:根据与目标方向的接近度,选择极障碍密度低于阈值的连续扇区,称为候选谷。
一旦选定的候选方向的中心被确定,机器人的方向被引导。机器人在迎面接近障碍物时降低速度。

VFH 2D simulation

  • VFH+算法改进包括:

①阈值迟滞:迟滞增加了计划轨迹的平滑性。
②机器人体型尺寸:考虑不同体型的机器人,不需要通过低通滤波器手动调整参数。
③障碍物前视:被障碍物阻挡的扇区在VFH+中被遮蔽,这样引导角度就不会直接进入障碍物。
④成本函数:添加了一个成本函数来更好地表征算法的性能,并通过改变成本函数或其参数来提供行为切换的可能性。

  • VFH*算法

2000年8月,Iwan Ulrich和Johann Borenstein发表了一篇描述VFH*的论文,声称改进了原来的VFH算法,明确地处理了局部规划算法在全局最优性没有得到保证的缺点。在VFH*中,算法通过最小化代价和启发式函数来验证A*搜索算法生成的转向命令。虽然在实践中很简单,但在实验结果中表明,这种向前看的验证能够成功地处理原VFH和VFH+无法处理的问题情况(产生的轨迹是快速和平滑的,没有明显的减速存在障碍)。

 

参考文献:

  1.  Borenstein, J.; Koren, Y. (1991). "The vector field histogram-fast obstacle avoidance for mobile robots". IEEE Transactions on Robotics and Automation7 (3): 278–288.     ——>   VFH(原始paper)
  2. ^ Ulrich, I.; Borenstein, J. (1998). "VFH+: reliable obstacle avoidance for fast mobile robots". Robotics and Automation, 1998. Proceedings. 1998 IEEE International Conference on2.   ——>     VFH+(原始paper)
  3. ^ Ulrich, I.; Borenstein, J. (2000). "VFH: local obstacle avoidance with look-aheadverification". Robotics and Automation, 2000. Proceedings. ICRA'00. IEEE International Conference on3.   ——>     VFH*(原始paper)
  • 11
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
VFH算法(Vector Field Histogram Algorithm)是一种用于机器人导航和避障的算法。它通过分析环境中的障碍物信息,构建一个直方图,然后根据直方图进行路径规划。 在Matlab中实现VFH算法,可以按照以下步骤进行: 1. 首先,需要获取机器人的传感器数据,例如激光雷达数据或超声波传感器数据。这些数据用于检测环境中的障碍物。可以使用Matlab提供的传感器接口进行数据获取。 2. 接下来,根据传感器数据,将环境划分为一系列的扇形区域。每个扇区表示一个特定角度范围内的障碍物信息。可以使用Matlab的向量和矩阵操作来进行扇区划分。 3. 然后,分析每个扇区中的障碍物数据,并将其转换为极坐标。根据障碍物的位置和距离,计算其相对于机器人的极坐标表示。绘制这些障碍物的极坐标表示,并将其加入到直方图中。 4. 构建直方图后,可以根据直方图中的信息进行路径规划。通过分析直方图的形状和障碍物的分布,选择一条不会与障碍物相交的安全路径。 5. 最后,使用Matlab提供的控制命令将路径转化为机器人的运动指令。根据路径规划结果,控制机器人的运动方向和速度。 通过以上步骤,就可以在Matlab中实现VFH算法,并实现机器人的导航和避障功能。在实际应用中,还可以对算法进行优化和改进,以提高导航和避障的效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值