热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

遍历所有点的最短路径matlab_全覆盖路径规划及其在slam无人车适用方案

基本概念:CCPP:CompleteCoveragePathPlanningCCPP需解决的关键问题:遍历工作区域内除障碍物以外的全部区域在遍历过程中有

基本概念:

CCPP:

Complete Coverage Path Planning

CCPP需解决的关键问题:

遍历工作区域内除障碍物以外的全部区域

在遍历过程中有效避开所有障碍物

在遍历过程中要尽量避免路径重复,缩短移动距离

CCPP技术指标:

区域覆盖率

路径重复率

总行程

死区:

是指它的周边相邻区域,或者是边界,或者是障碍物,或者是已覆盖过的区域

全覆盖路径规划问题本质:

在栅格地图中,全覆盖路径规划问题就演变为寻找机器人的下一个移动位置,只有准确找出了该位置,才能使机器人自主规划出一条切实可行的无碰撞且重复率低的移动路径。

路径搜索

路径表达:以环境模型中的结点序列组成或由直线段序列组成

路径平滑:根据机器人运动学或动力学约束,形成机器人可跟踪执行的运动轨迹

运动学约束:路径轨迹的一阶导数应连续

动力学约束:路径轨迹的二阶导数应连续

CCPP方法分类

1 行为覆盖法:随机碰撞法

原理:机器人根据简单的移动行为,尝试性地覆盖工作区域,如果遇到障碍物,则执行对应的转向命令

缺点:行为全覆盖算法工作效率低,路径规划策略过于简单,面对复杂地形机器人经常无法逃离死区

随机覆盖法,也称为随机碰撞式导航,但这并非是指机器人真正与环境中的物体产生碰撞,也非毫无章法的在地板上随机移动,随机覆盖法是指机器人根据一定的移动算法,如三角形、五边形轨迹尝试性的覆盖作业区,如果遇到障碍,则执行对应的转向函数。这种方法是一种以时间换空间的低成本策略,如不计时间可以达到 100%覆盖率。随机覆盖法不用定位、也没有环境地图,也无法对路径进行规划,所以其移动路径基本依赖于内置的算法,算法的优劣也决定了其清扫质量与效率的高低。

31b4b861b438db84e2a93ac4f3adefc3.png

2 区域分割法

原理:为了使机器人能够逃离死区,同时减少算法的计算量,Jin等提出一种基于时空信息的全局导航与局部导航组合的算法。

优点:

该算法一方面能够通过局部计算代替不必要的全局计算,减少了实时决策时局部最优导航的计算量;

另一方面通过分层的方式使机器人能够逃离死区。

缺点:

局部与全局的转换过程中,当周围没有未覆盖的区域时,机器人需要扩大邻近区域的面积来寻找未覆盖区域,这将导致覆盖效率的降低,尤其是当未覆盖区域距离机器人较远时

3 神经网络法

原理:利用神经网络的自学习、并行性等特性,增强机器人的“智能”,提高覆盖效率。受神经网络结构与栅格地图单元类似的启发,加拿大学者 S. X.Yang等提出一种基于生物启发神经网络的移动机器人全覆盖路径规划算法,将需要全覆盖的二维栅格地图单元与生物启发神经网络的神经元一一对应起来,机器人实现全覆盖的实时路径规划是由神经元的活性值和机器人的上一位置产生的。该算法完全根据栅格地图单元的性质 (未搜索单元、已搜索单元还是障碍物),决定神经元的输入,直接计算神经元的活性值,不存在神经网络学习过程

优点:算法实时性好,同时可以自动避障与逃离死区。

缺点:但是基于生物启发神经网络的全覆盖算法计算量大,同时此种方法中神经网络模型的衰减率等参数没有最优值,在实现算法时只能通过反复实验确定,参数的设定存在人为不确定因素,从而影响其在线应用

4.路径规划式

规划式导航需要建立起环境地图并进行定位。对路径规划的研究已经持续很多年了,也提出了很多种类的方法。不同的方法有各自的优缺点,适用范围各不相同,没有一种路径规划方法能适用于所有的环境信息。其中的人工势场法、栅格法、模板模型法、人工智能法等是路径规划中很典型的方法,并且受到越来越多的关注。

下面主要来看最常见的两种搜索:

第一种螺旋式搜索:

fb9c75f1d2a8c20bd404176ac33d175f.png

这种方式在无障碍物时看起来效果还不错,可是一旦有障碍物时,往往会陷入局部死区,搜索路径也会大大增加,所以不采用。

85def7c58de74afd5841191f229b9fc6.png

第二种弓字型搜索:

215e1d8a6e458f05d481a082e4f7ed0d.png

这种方式在无任何障碍物时就像耕地一样一趟一趟得进行搜索,当存在障碍物时,通过设计算法效果如下:

b49504915a4dff71de2abdd535bfdcf8.png

可以看到存在障碍物时,也可以合理的安排路径,故采用这种方式,在此基础上进行改进来运行适合slam建图的路径规划。

适用于slam无人车的CCPP方案:

1 思想

首先来看slam无人车与扫地机器人的不同:

扫地机器人一次智能遍历到它当前位置的那个格子,而无人车由于其上的摄像头,因此可以抽象如下:

195e9fea1f88e865bb97411e6e136a5e.png

车一次所能遍历到的其实就是它的视野,我们可以通过可信范围的方式认为其遍历到的格子

是一个三角形的范围,视野前端半径为r个格子,视野远端h个格子,这样一次覆盖范围就为:

由于视野比较宽阔,所以在走一次的路线上视野覆盖面积其实类似与铲雪一样:

5f187b77583d736bc6f7d8083c2e9c9a.png

直行一趟扫过的面积其实是一个宽为2r个格子的矩形,因此我们没有必要一列一列的去搜索,在掉头时不用只是向左或向右只走一个格子就进行下一列的搜索,而是掉头时向左或向右走2r个格子再进行下一列的搜索,并且由于视野可以延申h和格子,因此在距离边界h个格子时就可以进行掉头:

ba8deb886e3215075ca2b4fa896a07e4.png

2 方案

  1. 从起点(1,1)开始,设地图总共大小为(m,n).首先行至(r,0),若行进路线上无障碍物,则下一个目标点设置为这一列的对面,视野覆盖下扫过的单元格记录到搜索过的列表中。
  2. 若碰到障碍物或是搜索过的格子(当前位置距其r个格子),则检测这个障碍物的横向长度占几个格子,手动设置阈值,若绕过的路程少,则直接绕过,把目标点设置为障碍物的背面对应点,利用A*进行导航,继续搜索,若横向长度太长,则直接掉头。
ce6e98ba397608bfb1b822f547a356be.png
08ae50a7e9f07efc83f5ec504ddd23c0.png
  1. 若障碍物紧靠边界,通过阈值判断,若是长的障碍物,则还是直接掉头,若是短的,则直接把接下来的目标点设定为障碍物旁边的一个格子:
8f1098144455650ea0a75d63dd5ce037.png
  1. 检测周围区域,若均是障碍物或是搜索过的区域,则表示无路可走,也就是陷入死区:
c16dd429de1809203d6e601ab746ab96.png

死区示意图:

9092948fac491d2a8bc938c4d23a70e9.png

此时利用A*导航至离当前点最近的未搜索区域继续搜索:

fe6fefafb962a931e0e343eb286f08a1.png

5,重复进行,直到搜索所有格子加入列表。



推荐阅读
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 深入解析国内AEB应用:摄像头和毫米波雷达融合技术的现状与前景
    本文作者程建伟,武汉极目智能技术有限公司CEO,入选武汉市“光谷3551人才计划”。文章详细探讨了国内自动紧急制动(AEB)系统中摄像头与毫米波雷达融合技术的现状及未来前景。通过分析当前技术的应用情况、存在的挑战以及潜在的解决方案,作者指出,随着传感器技术的不断进步和算法优化,AEB系统的性能将大幅提升,为交通安全带来显著改善。 ... [详细]
  • OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战
    OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 理工科男女不容错过的神奇资源网站
    十一长假即将结束,你的假期学习计划进展如何?无论你是在家中、思念家乡,还是身处异国他乡,理工科学生都不容错过一些神奇的资源网站。这些网站提供了丰富的学术资料、实验数据和技术文档,能够帮助你在假期中高效学习和提升专业技能。 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 当前物联网领域十大核心技术解析:涵盖哪些关键技术?
    经过近十年的技术革新,物联网已悄然渗透到日常生活中,对社会产生了深远影响。本文将详细解析当前物联网领域的十大核心关键技术,包括但不限于:1. 军事物联网技术,该技术通过先进的感知设备实现战场环境的实时监测与数据传输,提升作战效能和决策效率。其他关键技术还包括传感器网络、边缘计算、大数据分析等,这些技术共同推动了物联网的快速发展和广泛应用。 ... [详细]
  • TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得
    TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得 ... [详细]
  • 深入浅出解读奇异值分解,助你轻松掌握核心概念 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • 移动搜索格局已定,切勿误解微信搜索的真正实力
    近期,微信新版本的内测界面曝光,新增了朋友圈搜索和附近商户搜索功能。种种迹象显示,微信正不断强化其搜索能力。尽管移动搜索市场格局已基本稳定,但不应低估微信搜索的潜力。微信不仅在聊天工具、移动浏览器和新闻阅读等领域持续发力,还在通过搜索功能进一步巩固其在移动互联网领域的地位。 ... [详细]
  • 射频领域的博士学位在信号处理算法方面具有广阔的职业前景,尤其是在射频技术的应用中。例如,加入华为的射频基站部门,从事数字预失真等关键技术的研发工作。在此过程中,需要注意持续跟踪最新的学术和技术进展,保持对行业动态的敏感性,并不断提升自身的实践能力和创新能力。此外,除了技术层面,还应关注行业的整体发展趋势,以便更好地规划职业生涯。 ... [详细]
  • 从用户转型为开发者:一场思维升级的旅程 | 专访 StarRocks Committer 周威
    从用户转变为开发者,不仅是一次角色的转换,更是一场深刻的思维升级之旅。本次专访中,StarRocks Committer 周威分享了他如何在这一过程中逐步提升技术能力与思维方式,为开源社区贡献自己的力量。 ... [详细]
author-avatar
mobiledu2502861847
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有