BUG系列路径规划算法原理介绍(一)——总结篇

news2024/11/25 7:42:49

在这里插入图片描述


   本系列文章主要对Bug类路径规划算法的原理进行介绍,在本系列的第一篇文章中按照时间顺序梳理了自1986年至2018年Bug类路径规划算法的发展,整理了13种BUG系列中的典型算法,从本系列的第二篇文章开始依次详细介绍了其中具有代表性的BUG1、BUG2、Tangent BUG、I-BUG、RandomBug、BugFlood等算法。


本系列文章链接 (点击可跳转):

-----------------------------------------------------------------------------

   BUG系列路径规划算法原理介绍(一)——总结篇

   BUG系列路径规划算法原理介绍(二)——BUG1 BUG2算法

   BUG系列路径规划算法原理介绍(三)——Tangent BUG算法

   BUG系列路径规划算法原理介绍(四)——I-BUG算法

   BUG系列路径规划算法原理介绍(五)——RandomBug算法

   BUG系列路径规划算法原理介绍(六)——BugFlood算法

-----------------------------------------------------------------------------


   本篇文章作为本系列文章第一篇文章—总结篇或者说目录索引篇,整理索引了本系列所有的文章,提供了本系列中其他文章的链接。本篇文章按照时间顺序梳理了自1986年至2018年Bug类路径规划算法的发展,整理了13种BUG系列中的典型算法。


   BUG类算法的发展及典型算法

   BUG类算法,是基于几何地图规划的算法,算法原理类似昆虫爬行的运动决策策略,其核心思路是当机器人遇到障碍物时,就沿着障碍物边界运动,没有遇到障碍物时候,就沿着起点到终点的连线方向上运动。


   1、BUG1 and BUG2(在本系列第二篇文章中已详细介绍)

   1987年 Vladimir J. Lumelsky 和 Alexander A. Stepanov 在论文《Path-planning strategies for a point mobile automaton moving amidst unknown obstacles of arbitrary shape》中回顾了BUG1 算法,并提出了BUG2算法。

   (1)论文链接:https://linkspringer.53yu.com/article/10.1007/bf01840369

   (2)论文DOI:10.1007/bf01840369

   (3)论文摘要

   考虑了在充满未知障碍物的二维场景中移动的自动机的路径规划问题。自动机是一个点; 障碍物可以是任意形状,具有连续的边界和有限的大小; 对场景的大小没有限制。自动机可用的信息仅限于其自身的当前坐标和目标位置的坐标。同样,当自动机碰到障碍物时,自动机的 “触觉传感器” 会检测到此事实。该信息被证明足以达到目标或在有限的时间内得出无法达到目标的结论。开发了在公认模型框架内运行的任何算法生成的路径长度的最坏情况下界; 界限用场景中自动机遇到的障碍物的周长表示。提供了保证到达目标 (如果目标可到达) 的算法,以及目标可达性的测试。研究了算法的效率,并产生了生成路径长度的最坏情况上限。

   (4)规划示例:


   2、VisBug

   1990年 V.J. Lumelsky和T. Skewis在论文《Incorporating range sensing in the robot navigation function》中提出了VisBug算法

   (1)论文链接:https://ieeexplore.ieee.org/abstract/document/59969

   (2)论文DOI: 10.1109/21.59969

   (3)论文摘要:

   考虑了移动机器人导航模型,其中机器人是在具有未知形状的任意障碍物的环境中运行的点自动机。机器人的输入信息包括其自身和目标点坐标,以及本地感测信息,例如来自立体视觉或测距仪。解决了这些算法问题1) 是否有可能将传感和规划功能结合起来,从而产生与本质上类似的 “主动传感”,以规划的需求为指导?(答案是 “是”)。2) 更丰富的感测 (例如,立体视觉与触觉) 能否保证更好的性能,即导致更短的路径?(一般答案是 “否”。) 提出了一种将距离数据与运动计划相结合的范例。事实证明,需要对更简单的 “触觉” 算法进行广泛的修改,以充分利用额外的传感功能。描述了两种保证收敛并表现出不同行为 “风格” 的算法,并在仿真示例中演示了它们的性能。

   (4)规划示例:


   3、TangentBug(在本系列第三篇文章中已详细介绍)

   1996年 I. Kamon和E. Rivlin在论文《A new range-sensor based globally convergent navigation algorithm for mobile robots》中提出了TangentBug算法

   (1)论文链接:https://ieeexplore.ieee.org/abstract/document/503814

   (2)论文DOI: 10.1109/ROBOT.1996.503814

   (3)论文摘要

   我们提出了TangentBug,一种新的基于距离传感器的两自由度移动机器人导航算法。该算法将局部反应规划与全局收敛行为相结合。对于局部规划,TangentBug使用范围数据计算基于一种新结构的局部最短路径,称为局部切线图(LTG)。机器人使用LTG在向目标移动时选择局部最优方向。机器人还在其另一种运动模式中使用LTG,在该模式下,它遵循障碍物边界。在这种模式下,机器人使用LTG进行局部捷径,并测试允许机器人恢复朝向目标运动的离开条件。我们分析了TangentBug的收敛性和性能特性。我们还提供了仿真结果,表明TangentBug始终比经典VisBug算法性能更好。此外,TangentBug生成的路径在简单环境中随着传感器最大检测范围的增加而接近全局最优路径。

   (4)规划示例:


   4、DistBug

   1997年 I. Kamon和E. Rivlin在论文《Sensory-based motion planning with global proofs》中提出了DistBug算法

   (1)论文链接:https://ieeexplore.ieee.org/abstract/document/650160

   (2)论文DOI: 10.1109/70.650160

   (3)论文摘要

   提出了一种基于感官的算法DistBug,该算法可以保证在可能的情况下达到目标,并报告目标是否无法到达。该算法是反应性的,因为它依赖于范围数据来做出本地决策,并且不会创建世界模型。该算法由两种行为 (运动模式) 组成: 障碍物之间的直线运动和障碍物边界跟随。给出了仿真结果以及实际机器人的实验。离开障碍物边界的条件基于到目标方向的自由范围。这种情况允许机器人在当地条件保证全局收敛的情况下立即离开障碍物。当机器人接近障碍物时,范围数据用于选择转弯方向。还引入了在似乎方向错误的情况下反转跟随方向的边界的标准。这些本地决策的直接结果是无法显着改善性能。
   (4)规划示例:


   5、RoverBug

   1999年 Sharon Laubach 在 Joel Burdick论文《RoverBug: Long Range Navigation for Mars Rovers》中提出了RoverBug算法

   (1)论文链接 https://linkspringer.53yu.com/chapter/10.1007/BFb0119412

   (2)论文DOI: 10.1007/BFb0119412

   (3)论文摘要

   火星探路者成功后,对用于行星探索的新型移动机器人的需求出现了。这些机器人必须能够在严重的资源限制下,在崎rough,未知的地形上自主穿越长距离。我们提出了 “RoverBug” 算法,该算法是完整的,正确的,需要最小内存,并且仅使用车载传感器,这些传感器在算法的指导下仅感测导航所需的数据。描述了RoverBug在喷气推进实验室 (JPL) 的Rocky7火星探测器原型上的实现,并给出了在模拟火星地形中运行的实验结果。

   (4)规划示例:


   6、PE-BUG

   2001年 S. Rajko;和S.M. LaValle在论文《A pursuit-evasion BUG algorithm》中提出了PE-BUG算法

   (1)论文链接:https://ieeexplore.ieee.org/abstract/document/932894

   (2)论文DOI: 10.1109/ROBOT.2001.932894

   (3)论文摘要

   我们考虑了搜索不可预测的运动目标的问题,使用的II机器人缺乏环境地图,缺乏构建地图的能力,并且导航能力不完善。我们提出了一种完整的算法,该算法为机器人提供了一种运动策略,该策略可以确保检测到难以捉摸的目标 (如果存在这种策略)。假定机器人具有全向感测设备,该设备用于检测移动目标以及2D环境中深度数据的不连续性。我们还表明,该机器人具有与具有完整地图和完美导航能力的机器人相同的pi-oblem解决能力。该算法已在仿真中实现,并给出了一些示例。

   (4)规划示例:


   7、K-Bug

   2007年 Ricardo A. Langer和Leandro S. Coelho在论文《K-Bug, A New Bug Approach for Mobile Robot’s Path Planning》中提出了K-Bug

   (1)论文链接:https://ieeexplore.ieee.org/abstract/document/4389264

   (2)论文DOI: 10.1109/CCA.2007.4389264

   (3)论文摘要

   这项工作提出了K-Bug算法,这是一种属于Bug族的移动机器人路径规划的新方法。该算法的主要思想可用于提高使用局部信息的现有路径规划方法的性能,或者如果全局信息可用,则可以用作全新的方法。它还对文献中发现的方法进行了简短的比较,证明了即使在复杂的环境中,它的有效性,低的计算成本和高的鲁棒性。

   (4)规划示例:



   8、CBUG

   2008年, Yoav Gabriely和Elon Rimon在论文《CBUG: A Quadratically Competitive Mobile Robot Navigation Algorithm》中提出了CBUG算法

   (1)论文链接:https://ieeexplore.ieee.org/abstract/document/4689414

   (2)论文DOI: 10.1109/TRO.2008.2006237

   (3)论文摘要

   本文关注的问题是尺寸为D的移动机器人必须在未知的平面环境中导航到目标。在线导航算法的竞争力衡量其路径长度相对于最佳离线路径的长度。虽然竞争力通常意味着恒定的相对绩效,但这里将其概括为在线绩效与最佳离线解决方案之间的任何函数关系。本文介绍了一种新的在线导航算法,称为CBUG,该算法需要恒定的内存并具有二次竞争性能。此外,表明通常,任何在线导航算法都必须至少具有二次竞争性能。CBUG算法达到了二次下界,因此具有最佳竞争力。该算法经过了一些实际的改进,并在类似办公室的环境中说明了其性能。

   (4)规划示例:


   9、I-BUG(在本系列第四篇文章中已详细介绍)

   2009年 ,Kamilah Taylor和Steven M. LaValle在论文《I-Bug: An intensity-based bug algorithm》中提出了I-BUG算法

   (1)论文链接:https://ieeexplore.ieee.org/abstract/document/5152728

   (2)论文DOI: 10.1109/ROBOT.2009.5152728

   (3)论文摘要

   本文介绍了一种基于传感器的规划算法,该算法使用的传感信息比bug算法家族中的任何其他算法都要少。机器人无法访问有关位置坐标,角坐标,时间或测距的精确信息,但仍然能够将自己导航到平面中未知的分段分析障碍物中的目标。唯一提供真实值的传感器是强度传感器,它测量从目标发出的信号强度。信号强度函数可能是对称的,也可能不是对称的; 主要要求是电平集是同心圆的拓扑圆。为该方法建立了收敛性分析和距离界。

   (4)规划示例:


   10、RandomBug (在本系列第五篇文章中已详细介绍)

   2014年, 徐啟蕾在论文《RandomBug: Novel Path Planning Algorithm in Unknown Environment》中提出了RandomBug算法

   (1)论文链接:https://benthamopen.com/ABSTRACT/TOEEJ-8-252

   (2)论文DOI: 10.2174/1874129001408010252

   (3)论文摘要

   本文提出了一种在完全未知环境下用于自主移动代理的新颖实时路径规划算法。在该算法中,所有计划的路径都以矢量的形式被描述和存储在算法中。当自主沿着计划的路径移动时,仅考虑单个方向上的旋转角度和移动距离。该算法将距离传感器数据与安全半径相结合,从而确定阻塞障碍物并通过选择随机中间点来计算较短的路径。这些随机中间点是在当前路径中存在阻塞障碍时生成的。然后选择最佳中间点并将其插入当前路径中以重新生成新的计划路径。仿真结果表明,该算法是有效的。

   (4)规划示例:


   11、Real-Time Bug

   2015年 ,Thaker Nayl和George Nikolakopoulos等人在论文《Real-Time Bug-Like Dynamic Path Planning for an Articulated Vehicle》中提出了Real-Time Bug算法

   (1)论文链接:https://linkspringer.53yu.com/chapter/10.1007/978-3-319-10891-9_11

   (2)论文DOI 10.1007/978-3-319-10891-9_11

   (3)论文摘要

   本文提出了一种新颖的实时bug算法,用于在有限且感官重建的周围静态环境下为铰接式车辆执行动态平滑路径规划方案。在一般情况下,可以通过改变铰接式转向角以驱动铰接式车辆的前部和后部远离障碍物来执行防撞技术。在提出的方法因素中,例如铰接式车辆的实际动力学,初始和目标配置 (位移和方向),当前点和目标点之间的最小和总行驶距离,并且考虑了操作空间的几何形状,以计算铰接式车辆未来路途点的更新。在续集中,在产生车辆铰接角度的必要变化率之前,通过利用Bezier线在线迭代地平滑生成的路径规划。通过多个仿真研究来评估所提出方案的效率,这些仿真研究模拟了铰接式车辆在存在多个障碍物的情况下在开放和受限空间中的运动。

   (4)规划示例:


   12、BugFlood(在本系列第六篇文章中已详细介绍)

   2018年,Nishant Sharma和Shivam Thukral等人在论文《A virtual bug planning technique for 2D robot path planning》中提出了BugFlood算法

   (1)论文链接:https://ieeexplore.ieee.org/abstract/document/8430678

   (2)论文DOI: 10.23919/ACC.2018.8430678

   (3)论文摘要

   我们提出了一种受bug算法启发的路径规划技术,可以在障碍物丰富的环境中快速计算路径 (或报告不存在此类路径)。在我们的方法中,我们模拟了虚拟错误,这些错误在感知到障碍物后会分成两个错误,以相反的方向探索障碍物边界,直到错误在视线中找到目标。然后,错误离开了障碍,朝着目标前进。将一个bug一分为二的过程一直持续到所有bug达到目标为止。该算法易于实现,如果存在解决方案,则可以快速找到解决方案。我们在路径长度上提供最坏的情况范围,并提供可证明的收敛保证,并开发启发式方法以最大程度地减少环境中活动错误的数量。我们将算法的性能与开放式运动计划库 (OMPL) 和可见性图方法中的不同计划器进行了比较。结果表明,与其他计划者相比,所提出的算法以较低的计算时间提供了较低的成本路径,并且可以快速指示路径是否不存在。

   (4)规划示例:


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/65232.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【论文合集】2022年11月医学影像期刊论文合集

★ 本月IEEE Transactions on Medical Imaging(1区 top if 11.037) 共41篇, Medical Image Analysis(1区 top if 13.828) 共47篇. ”标题高频词汇 (segmentation, 15), (medical, 13), (3d, 6), (domain, 6), (surgical, 5), (reconstruction, 5), (at…

confluence的几个高危漏洞复现

序言 本次复现涉及了好几个confluence的相关漏洞,从复现利用到提权,有兴趣的可以自行搭建环境测试。 1.CVE-2021-26084 Confluence OGNL 注入漏洞 1.1 漏洞描述 在某些情况下,远程攻击者在经过身份验证或在特定环境下未经身份验证的情况下…

【MySQL】表的增删改查(二)

你可以了解世间万物,但追根溯源的唯一途径便是亲身尝试。——《心灵捕手》 前言: 大家好,上期我们讲到了表的GRUD操作中的新增数据、查询数据以及表中数据的排序、去重等操作,本期讲解条件查询、修改数据、删除数据的简单操作&…

Jlink_V9固件修复教程

最近自己的Jlink坏了,于是找了一个好的Jlink给坏的重新刷了一下固件就修好了。记录一下修复过程,以及遇到的问题。 故障现象:Jlink丢失固件之后指示灯不亮,连接板子时,KEIL无法识别。 注:JLINK_V9主控芯…

【Vue】从vue2到vue3,生命周期函数有何变化之详解

vue2与vue3生命周期的对比: Vue2--------------Vue3 beforeCreate—————–>setup() created————————>setup() beforeMount—————–>onBeforeMount mounted—————-------> onMounted beforeUpdate -————–> onBeforeUpdate u…

Spring Boot自动配置原理(Spring Boot面试题)

目录 1、产生疑惑 2、源码分析 2.1、pom.xml文件分析 2.2、启动类分析 3、总结 1、产生疑惑 当我们第一次使用Spring Boot练习的时候会觉得Spring Boot这么厉害,不管是依赖还是配置,它都为我们准备好了,我们只需要去编写业务代码就可…

[附源码]Python计算机毕业设计Django数字乡村基础治理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,我…

调优四剑客的实战演练,福尔摩斯•K带你轻松优化性能

前言天下武功,唯快不破。在侦探的世界中,破案效率永远是衡量一名侦探能力的不二法门。作为推理界冉冉升起的新星,大侦探福尔摩斯K凭借着冷静的头脑、严谨的思维,为我们展现了一场场华丽而热血的推理盛宴。接下来,我们不…

【运维面试题】访问www.baidu.com背后发生了什么·dns解析过程·ping过程

文章目录 一、访问www.baidu.com背后发生了什么二、dns解析过程答法1(推荐)答法2三、ping过程一、访问www.baidu.com背后发生了什么 1.浏览器解析url是否合法 2.浏览器向DNS服务器请求解析ip地址 3.dns将解析出来的ip地址返回给浏览器 4.三次握手,浏览器与服务器进行tcp连接…

TVM 从入门到精通 | 安装 TVM (Part 2)

By 超神经内容一览:TVM 共有三种安装方法:从源码安装、使用 Docker 镜像安装和 NNPACK Contrib 安装。本文讲解如何通过 Docker 镜像 和 NNPACK Contrib 安装。关键词:TVM Docker 基础教程 欢迎回到 TVM 文档讲解 101,这个系…

【Python+Appium】开展自动化测试(十二)通过坐标定位元素

目录 前言 1,通过绝对坐标定位(不推荐) 2,通过相对坐标定位(推荐) 写在最后 前言 在使用appium做app自动化测试的过程中,可能会遇到元素的属性值不是唯一的情况,导致不能通过fin…

Linux上docker部署Mysql备份与恢复

Linux上Mysql备份与恢复 1.完全备份 完整备份是将所选的全部数据都备份起来,将备份文件生成一个镜像,再保存到其他的硬盘分区中。 1.1 完全备份一个或多个完整的库 ps: 博主mysql是用docker部署的,这时候需要进入docker容器进行操作。 d…

太极限了,JDK的这个BUG都能被我踩到!

之前遇到个文件监听变更的问题,刚好这周末有空研究了一番,整理出来分享给大家。 从一次故障说起 我们还是从故障说起,这样更加贴近实际,也能让大家更快速理解背景。 有一个下发配置的服务,这个配置服务的实现有点特…

详解设计模式:访问者模式

访问者模式(Visitor Pattern),是在 GoF 23 种设计模式中定义了的行为型模式。据《大话设计模式》中说算是最复杂也是最难以理解的一种模式了。 访问者模式 是一种将数据操作与数据结构分离的设计模式,它可以算是 23 中设计模式中最…

NewStar CTF Week3Misc 4-5Web

目录 <1> Week-3 Misc (1) Whats HTTP (2) qsdzs girlfriend 3 (3) WebShell&#xff01; (4) 混沌的图像 <1> Week-4 Web (1) So Baby RCE(%0A进行rce rev|sort读取flag) (2) UnserializeThree(%0d换行rce) <2> week5-web (1) Give me your photo…

step-by-step 配置 gtest 在 vscode 测试 c/c++(Ubuntu 环境下示范)

1. 去把 gtest 装好 详见&#xff1a;CSND-PangCoder-[Ubuntu]GTest安装和测试-https://blog.csdn.net/qq_36251561/article/details/85319547 2. 在 VS Code 打上这几个插件 印象里打上 C TestMate 下面的就会自动装了…如果没有就手动装一下 3. 编写测试脚本 第一步那…

【Pytorch】第 1 章 :强化学习和 PyTorch 入门

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

Java并发常见面试题(三)

并发编程三大特性 原子性 一次操作或者多次操作&#xff0c;要么所有的操作都得到执行并且不受任何因素的干扰而中断&#xff0c;要么都不会执行。 在 Java 中&#xff0c;可以借助synchronized 、各种 Lock 以及各种原子类实现原子性。synchronized 和各种 Lock 可以保证任…

【吴恩达机器学习笔记】十三、异常检测

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 &#x1f4e3;专栏定位&#xff1a;为学习吴恩达机器学习视频的同学提供的随堂笔记。 &#x1f4da;专栏简介&#xff1a;在这个专栏&#xff0c;我将整理吴恩达机器学习视频的所有内容的笔记&…

[附源码]计算机毕业设计人事系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…