VFH避障/局部路径规划算法

VFH*避障/局部路径规划算法 VFH*避障/局部路径规划算法1、VFH+存在的问题——dead-end2、VFH*算法2.1 VFH*算法概述2.1.1 VFH*的参数2.2.2 表示2.2.3 算法步骤2.2 投影位置和方向2.3 代价函数2.3.1 kek_eke​项2.3.2 平滑项2.3.3 折扣因子λ2.4 启发函数2.5 枝叶因子b3、算法分析 做个正直的人 VFH*是VFH、VFH+两个算法的持续改进,对这两个算法不熟悉的同学,不建议直接看这一篇文章。可以去看我写的两篇介绍VFH、VFH+算法的文章。 先说一下这三个算法的 阅读详情


做个正直的人

本文章是我看《The Vector Field Histogram-Fast Obstacle Avoidance for Mobile Robots》论文时候的笔记,感兴趣的欢迎去看原论文。

VFH中有一些概念是从其他算法中借鉴过来的,并且VFH算法本身就是对VFF(Virtural Force Field)的一种改进,其中有很多的相似之处。所以按照原论文的思路,先介绍由CMU提出的Certainty Grid算法中的一些概念,再介绍一下势场法中的一些概念,接着介绍一下VFF算法,最后介绍最重要的VFH算法。

1、信度栅格(Certainty Grid)

CMU提出的算法中最重要的思想就是The Certainty Grid for Obstacle Representation,即用一个置信度来表示这一个位置存在障碍物的可能性有多大。至于中文名字该叫什么,难道翻译成“基于置信度栅格的障碍物表示法”?

具体来说就是,把整个地图用一幅二维的栅格(grid)地图来表示,比如大小是1024*1024。机器人的工作空间(就是局部地图)也用一个二维数组来表示,这个工作空间只包括以机器人为中心的一块正方形区域,比如30*30大小。每一个grid都有一个信度值(certainty value,CV)这一个CV值表示了这一个grid中存在障碍物的可能性有多大。CMU算法,使用一个概率函数来更新每一个CV值。比如通过超声波传感器来获取周边情况。

VFH算法中工作空间中的每一个unite不再叫做grid,而是叫做cell。

2、势场法(Potential Field Methods)

势场法我觉得肯定是一个/一群物理相当不错的人提出来的。我觉得这种方法有一种天然的美感,自然、不做作。

势场法比如人工势场法(APF),思路非常简单。可以这么理解,目标位置和障碍物会通过一种叫做场(就像磁场或者电场)的东西对我们机器人施加力的作用,所不同的是,目标位置对机器人施加的是吸引力 F a t t F_{att} Fatt​ ,障碍物对机器人施加的是排斥力 F r e p F_{rep} Frep​ 。并且距离越远,力就越小。根据力的分析,我们的机器人总体上是受到一个合力 R 的作用,这个力就会不断的推着我们的机器人绕过障碍物到达目标位置。

3、VFH算法的前身——VFF(Virtual Force Field Method)

VFF算法使用一个二维的笛卡尔直方图栅格区域(Cartesian histogram grid,我能怎么翻译?真的翻译不出来呀!)C来表示整个区域,和CMU方法一样,VFF的每一个cell具有一个属性CV 即 c i , j c_{i,j} ci,j​ 表示这一个cell存在障碍物的可能性有多大。和CMU方法不同的是,CV建立和更新的方法更加快速。
CMU是通过传感器数据来给这一个传感器范围内的每一个grid赋予概率值,VFF则是只更新每一个传感器范围内仅仅一个cell的值。打一个比方,我们拿着手电筒照射一堵墙,很明显我们的手电筒会在墙上形成一个一定大小的圆形光斑,对待这一个光斑CMU和VFF有不同的处理方法,CMU会给整个光斑区域进行更新,而VFF只会更新位于光斑中心位置的那一个点,那其他的点怎么办?不用担心,我们的机器人是在运动的呀,虽然只更新一个点,但是点动成线,扫过去不就连续更新了嘛?看下图就清楚了。
在这里插入图片描述
很明显,VFF的计算量大大减少,速度比较快,这也是VFF可以允许机器人进行快速、连续、光滑运动的原因。不过凡事有好就有坏,VFF此举导致丢失了很多的信息,从控制的角度来说,我们对系统信息知道的越少,就越是难以对系统进行控制,所以VFF带来了一些比较大的缺点,后面会提到。
此外,VFF还使用了势场法的思想。在机器人运动过程中,会维护一个特定大小的(比如30*30)、以机器人为中心的正方形区域,称为活跃窗口(active region),记为C*。C*中的每一个cell记为 c i , j c_{i,j} ci,j​ 。其实理论上应该维护的是一个圆形,但是如果用圆形就会大大增大算法的计算量,所以就用了矩形,这样处理起来比较方便。
在这里插入图片描述
C*内的每一个 c i , j c_{i,j} ci,j​都会对机器人施加力(virtual force) F i , j F_{i,j} Fi,j​ ,这样就好象有一个力场一样推动机器人运动。 F i , j F_{i,j} Fi,j​ 的大小和 c i , j c_{i,j} ci,j​ 大小成正比,和 d x d^{x} dx 成反比,其中d是该cell到机器人中心的距离。x一般取为2。

在每一次循环的时候,所有的 F i , j F_{i,j} Fi,j​

【PCL自学:Feature5】视点特征直方图VFH概念及使用 (持续更新) 一、视点特征直方图(VFH)原理   这篇博文描述了视点特征直方图(Viewpoint Feature Histogram[VFH])描述符,在一些其他文章也称为视角特征直方图,这是一种用于聚类识别和6DOF姿态估计问题(六自由度姿态估计)的点聚类的描述符。 1.理论基础:   视点特征直方图(或VFH)起源于FPFH描述符(参见快速点特征直方图(FPFH)描述符)。FPFH有很好的速度和辨别能力,在此基础上添加视点方差,同时保持尺度不变性。   VFH对目标识别和位姿识别问题的主要贡献是将FPFH扩展到整 阅读详情

相关推荐

点云特征提取及分类、VFH、SVM、CNN

数据与特征决定了机器学习的上限, 模型/算法/参数只是来逼近这个上限。 0: 分类方式 按照特征的物理属性,可以将特征分为:几何域,强度域。 按照特征的空间尺度,可以分为:单点特征,局部特征,全局特征。 1:传统特征 单点特征 主要有:三维坐标(X, Y, Z), 回波强度 Intensity, 法线 (Nx,Ny,Nz),主曲率(PCx, PCy, PCz, 及两个特征值 PC1, PC2) 局部特征 (一)几何域 局部特征常见的有各种几何特征描述子:PFH,FPFH,SHOT,C-SHOT,RSD,3D

人生得意须尽欢 3万+

VFH+避障/局部路径规划算法

VFH+避障/局部路径规划算法 这篇文章是我看论文《VFH+: Reliable Obstacle Avoidance for Fast Mobile Robots》(Iwan Ulrich and Johann Borenstein)的笔记,所以说是文章的翻译也可以。想看原paper的可以自己去找,看过VFH算法的话,这个VFH+算法还是非常好懂的。 我前面写过一篇讲VFH算法的文章,感兴趣的可以去看看。 VFH局部路径规划算法 我在讲VFH算法的最后,写了一点我对VFH算法的评价,主要有两点,一是VFH

qq_41845878的博客 4555

机器人避障规划算法之VFH系列算法研究现状

机器人路径规划算法可以分为全局路径规划与局部路径规划,全局规划算法一般需要地图信息作为先验知识,而局部规划算法利用传感器探测环境信息避开障碍物。常用的全局算法算法有可视图法,栅格地图法,智能算法等。常见的局部规划算法有人工势场,BUG算法,VFH算法,DWA算法,TEB算法等。本文针对VFH算法的研究现状做个简单概述。 ​ 图1 VFH算法发展历程图 1 VFF算法 ​ 该算法是一种虚拟力场法,针对传感器感知周围环境,生成笛卡尔坐标障碍图,整个地图划分成栅格,每个

qq_33828485的博客 5252

文献阅读之机器人局部路径规划VFH+ VFH*算法

大家好,我已经把CSDN上的博客迁移到了知乎上,欢迎大家在知乎关注我的专栏慢慢悠悠小马车(https://zhuanlan.zhihu.com/duangduangduang)。希望大家可以多多交流,互相学习。 1. VFH+ VFH+是对VFH的改进,输入是局部栅格地图,输出下一步的运动方向。论文可以参考上一篇博客。相比VFH,主要的提升在于更平滑的轨迹和更好的可靠性,具体体现为: 将polar histogram转换为二值直方图binary polar histogram时,使用迟滞双阈值,去除抖

silver bullet 1万+

VFH & VFH+ & VFH*—— Path Planning

版权声明:本文为博主原创博文,未经允许不得转载,若要转载,请说明出处并给出博文链接 最近在学习VFH算法,感觉蛮神奇,特意从维基百科扒来了资料,供学习研究。。。 在机器人技术中,Vector Field Histogram(VFH,向量场直方图)是Johann Borenstein和Yoram Koren在1991年提出的一种实时路径规划算法。VFH通过所谓的直方图网格利用机器人环境的统计表示,因此非常重视处理来自传感器和建模误差的不确定性。与...

慕离巷的博客 5566

避障算法之3DVFH+

博主平时玩ROS+PX4的避障功能包(avoidance)的时候,对其避障原理颇为好奇...据查用的是本blog的主角——3D-VFH+算法。先附上论文链接:3D-VFH+,值得一提的是论文发表于2014年,彼时并没有ORB-SLAM、LSD-SLAM之属。

wbzhang233的博客 8501

【局部路径规划模块地图算法】基于势场地图的VFH、VFH+、VFH*算法(附C++代码)

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对基于地图的方法–VFH、VFH+、VFH*算法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。

qq_35635374的博客 1684

vfh-python:向量场直方图的Python重新实现

向量场直方图-Python实现 作者:陈占文(Phil)Chen 向量场直方图是一种机器人路径规划算法。 我们最初是在中的C ++中实现此算法的。 我们重新实现VFH,因为原始的C ++实现包含一个神秘的错误,使其无法使用。 我们怀疑该错误可能是错误的C ++指针导致的,而Python可以帮助避免这种特质。 另一个考虑因素是,Phil精通C ++,但没有人精通Python。 “生产呢?” 你问。 可以使用Cython将Python编译成C ++代码,还有其他可能的技巧将其塞入ROSMOD中。 待办事项 (已修复)错误:直方图网格活动区域上下颠倒了。 可能的原因:一直在使用[x] [y],但应该一直在使用[y] [x](这是绘制x.append(y)) [] FIXME:极坐标直方图饼图切换角度,也可以逆时针旋转。

用SimaPro做碳足迹分析:手把手教你完成产品生命周期评估报告

本文详细介绍了如何使用SimaPro进行碳足迹分析,从软件安装到生命周期评估报告的完整流程。通过实战案例演示,帮助制造业企业、咨询机构和科研团队掌握产品生命周期评估(LCA)的核心技术,精准识别环境热点并优化决策,为可持续发展转型提供科学依据。

yhn45678901的博客 709

ITK-snap进行分割区域标注、三维显示及改变显示颜色

在进行医学图像器官分割时,无论我们是用传统方法还是深度学习,最后肯定要用到手动分割的区域作为金标准来验证我们方法的精度。但是手动标注器官的轮廓是十分耗时的,这里我介绍一个比较简单的标注方法,以肺分割作为例子。 我们使用ITK-snap作为分割标注工具。 当切片间距离比较小时,比如1mm,一个患者的完整HRCT序列通常在200张以上,如果让医生一一进行分割区域标注是非常耗时乏味的。因此,我们可以使用最简单的阈值法比如OSTU,加上基本的形态学操作对肺进行粗分割得到粗略的分割掩码,在此基础上再手动的对分割结果进

u010409517的博客 2万+

使用openMVS对样例数据进行重建

openMVS根据github上的步骤进行编译。注意,如果没有GPU,用不了CUDA的话,那么需要在openMVS目录下找到CmakeLists.txt文件,把CUDA设置为OFF: SET(OpenMVS_USE_CUDA OFF CACHE BOOL "Enable CUDA library") 可执行的文件生成在openMVS_build/bin/里面,在openMVS_build文件夹下打开终端,按照顺序执行如下命令即可逐步重建。其中,-w 设置的是数据的总路径,-i 后接输入的文件名,-o

YuhsiHu的博客 2876

从AND到XOR:5种门控电路在PrimeTime中的检查策略差异

本文深入探讨了AND、NAND、OR、NOR和XOR五种门控电路在PrimeTime静态时序分析中的检查策略差异。重点解析了XOR门控因其非单调性而无法被工具自动推断,需要工程师手动配置的特殊性,并提供了针对各类门控的配置模板与调试技巧,以确保时钟网络的完整性与芯片设计的可靠性。

rgv2345678的博客 265

手把手教你用Logisim搞定华科计组实验:单总线CPU硬布线控制器设计(含Excel自动生成电路技巧)

本文详细解析了如何使用Logisim完成华科计组实验中的单总线CPU硬布线控制器设计,特别分享了利用Excel自动生成电路逻辑的高效技巧。从实验准备、状态机表格填写到模块化构建和系统联调,提供全流程实战指导,帮助读者快速掌握计算机组成原理核心概念,大幅提升实验效率。

weixin_28744423的博客 318

从零到一:Silvaco中跨导曲线的自动化脚本实现

本文详细介绍了如何使用Python脚本在Silvaco中实现跨导曲线(gm曲线)的自动化分析,包括数据加载、跨导计算和结果可视化。通过自动化处理Id-Vg曲线,显著提升半导体器件工程师的工作效率,特别适用于工艺优化和DOE分析。文章还提供了批量处理和关键参数提取的高级技巧,帮助工程师快速掌握Silvaco脚本开发。

nn3456的博客 560

2024年游戏策划最新面试题及答案

1. **游戏策划**:负责游戏设计和开发的创意和技术过程。2. **主要职责**:设计游戏玩法、故事、角色、世界等。4. **游戏机制**:定义玩家如何与游戏世界互动的规则。13. **引人入胜的角色**:深入的背景故事、个性特征。3. **游戏平衡**:确保游戏公平、有趣且具有挑战性。7. **RPG特点**:角色发展、故事驱动、玩家选择。12. **关卡设计技巧**:挑战性、流动性、视觉引导。11. **游戏关卡设计**:创建游戏世界的不同阶段。5. **游戏循环**:玩家在游戏中重复的行为模式。

guo162308的博客 2308

第4章-上下文管理-对话历史记忆系统与窗口优化-《Agentic AI 智能体应用开发》

当上下文窗口接近极限时,需要对已有内容进行压缩。压缩不是简单的截断——你需要保留核心语义,去除冗余。# Python: 对话摘要压缩# 使用 Haiku 做摘要任务,成本最低"""将一段对话历史压缩为摘要"""system="你是一个对话摘要专家。请生成简洁但有信息量的摘要。",f"'用户'

AI天才研究院 239

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: 从RRT到RRT*,再到Informed RRT*,路径规划算法怎么写
下一篇: VFH+避障/局部路径规划算法
听得见我的声音吗
博客等级 码龄9年 57粉丝 20原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值