若步智能                 

移动这一简单动作,对于人类来说相当容易,但对机器人而言就变得极为复杂,说到机器人移动就不得不提到路径规划,路径规划是移动机器人导航最基本的环节,指的是机器人在有障碍物的工作环境中,如何找到一条从起点到终点适当的运动路径,使机器人在运动过程中能安全、无碰撞地绕过所有障碍物。这不同于用动态规划等方法求得的最短路径,而是指移动机器人能对静态及动态环境作出综合性判断,进行智能决策。

总的来说,路径规划主要涉及这3大问题:①明确起点位置及终点;②规避障碍物;③尽可能的做到路径上的优化。

机器人路径规划有全局与局部规划之分

根据对环境信息的掌握程度不同,机器人路径规划可分为全局路径规划和局部路径规划。

全局路径规划是在已知的环境中,给机器人规划一条路径,路径规划的精度取决于环境获取的准确度,全局路径规划可以找到最优解,但是需要预先知道环境的准确信息,当环境发生变化,如出现未知障碍物时,该方法就无能为力了。它是一种事前规划,因此对机器人系统的实时计算能力要求不高,虽然规划结果是全局的、较优的,但是对环境模型的错误及噪声鲁棒性差。

而局部路径规划则环境信息完全未知或有部分可知,侧重于考虑机器人当前的局部环境信息,让机器人具有良好的避障能力,通过传感器对机器人的工作环境进行探测,以获取障碍物的位置和几何性质等信息,这种规划需要搜集环境数据,并且对该环境模型的动态更新能够随时进行校正,局部规划方法将对环境的建模与搜索融为一体,要求机器人系统具有高速的信息处理能力和计算能力,对环境误差和噪声有较高的鲁棒性,能对规划结果进行实时反馈和校正,但是由于缺乏全局环境信息,所以规划结果有可能不是最优的,甚至可能找不到正确路径或完整路径。

全局路径规划和局部路径规划并没有本质上的区别,很多适用于全局路径规划的方法经过改进也可以用于局部路径规划,而适用于局部路径规划的方法同样经过改进后也可适用于全局路径规划。两者协同工作,机器人可更好的规划从起始点到终点的行走路径。

A*与D*机器人路径规划算法介绍

在实际情况中,机器人路径规划除了考虑已知环境和未知环境地图,还要考虑到动态和静态环境下的路径规划。

A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。但是,A*算法同样也可用于动态路径规划当中,只是当环境发生变化时,需要重新规划路线。

而D*算法则是一种动态启发式路径搜索算法,它事先对环境位置,让机器人在陌生环境中行动自如,在瞬息万变的环境中游刃有余。D*算法的最大优点是不需要预先探明地图,机器人可以和人一样,即使在未知环境中,也可以展开行动,随着机器人不断探索,路径也会时刻调整。

综上所述,移动机器人路径规划技术已经取得了可观的成绩,但是,在其全局与局部路径规划方法中仍然存在诸多不足之处,为此,国内已有针对这类算法的改进,例如思岚科技的SLAMWARE模块化自主定位导航,SLAMWARE内采用改良的D*算法进行路径规划,这也是美国火星探测器采用的核心寻路算法。是一种动态启发式路径搜索算法,它可以让机器人在未知环境中行走自如,在环境多变的情况下游刃有余。

a算法和a*算法的区别_机器人路径规划算法,全局路径规划与局部路径规划究竟有哪些区别?...相关推荐

  1. 蚁群算法java实现_简单蚁群算法 + JAVA实现蚁群算法

    一 引言 蚁群算法(ant colony optimization,ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型技术.它由Marco Dorigo于1992年在他的博士论文中引入,其灵 ...

  2. labuladong的算法小抄_学会了回溯算法,我终于会做数独了

    经常拿回溯算法来说事儿的,无非就是八皇后问题和数独问题了.那我们今天就通过实际且有趣的例子来讲一下如何用回溯算法来解决数独问题. 一.直观感受 说实话我小的时候也尝试过玩数独游戏,但从来都没有完成过一 ...

  3. 最短路dijkstra算法详解_最短路径问题---Dijkstra算法详解

    1.Dijkstra算法介绍 · 算法起源: · Djkstra 算法是一种用于计算带权有向图中单源最短路径(SSSP:Single-Source Shortest Path)的算法,由计算机科学家E ...

  4. 社区发现算法python视频_社区发现FN算法Python实现

    社区发现FN算法Python实现 算法原理 评价指标 结果对比 源码 ​2004年,Newman在GN(Girvan and Newman, 2002)算法的基础上,提出了另外一种快速检测社区的算法, ...

  5. python web和java web区别_成都汇智动力-谈谈个人认为的JavaWeb开发与PythonWeb开发的区别...

    原标题:成都汇智动力-谈谈个人认为的JavaWeb开发与PythonWeb开发的区别 今天这篇文章谈一谈Java Web开发和Python Web开发的区别.在这里我并不是鼓励大家从Java Web转 ...

  6. 银行家算法是什么_什么是银行家算法?

    银行家算法是什么 Banker's algorithm is a deadlock avoidance algorithm. It is named so because this algorithm ...

  7. python贝叶斯算法的论文_朴素贝叶斯算法从入门到Python实践

    1,前言 很久不发文章,整理些干货,希望相互学习吧.进入主题,本文主要时说的为朴素贝叶斯分类算法.与逻辑回归,决策树一样,是较为广泛使用的有监督分类算法,简单且易于理解(号称十大数据挖掘算法中最简单的 ...

  8. 算法 msrcr_一种快速简便优秀的全局曲线调整与局部信息想结合的非线性彩色增强算法(多图深度分析和探索)...

    点击上方↑↑↑"OpenCV学堂"关注我 作者网名:laviewpbt 排版编辑: gloomyfish 作者是图像处理,算法实现与加速优化方面的大神!其开发的imageshop软 ...

  9. fastica和pca区别_浅谈ICA算法的概念、本质和流程

    ICA独立成分分析是近年来出现的一种强有力的数据分析工具(Hyvarinen A, Karhunen J, Oja E, 2001; Roberts S J, Everson R, 2001).199 ...

最新文章

  1. Generic Data Access Layer泛型的数据访问层
  2. python语言编写一个生成九宫格图片的代码_Python切割图片成九宫格的示例代码
  3. linux 链接 文件,聊聊 Linux 里的文件链接
  4. 基于mcp940反编译Minecraft源代码
  5. php 错误提示开启,php开启与关闭错误提示,php开启错误提示_PHP教程
  6. ALGO-123_蓝桥杯_算法训练_A+B problem
  7. sscanf取固定长度的int_sscanf函数用法详解-阿里云开发者社区
  8. Postman的一个使用技巧----设置环境变量
  9. 备份redis服务并ftp上传(shell)
  10. 开源中文bi_odoo:免费开源ERP入门与实践
  11. WPF 框架开发 加入 InternalsVisibleToAttribute 特性让其他程序集可以访问 internal 权限成员
  12. MFC中窗口类、句柄的获取
  13. TCP/IP四层协议模型与ISO七层模型(TCP/IP系统学习(2))
  14. 谷歌搜索引擎总是被修改
  15. 1|homework
  16. 适用于Win和Mac的专业电脑数据恢复软件EasyRecovery易恢复14
  17. Intel 12代处理器主机 安装Ubuntu
  18. 超具性价比的学生神器,讯飞智能录音笔给足惊喜
  19. 专业技术职务代码-GBT8561-2001
  20. ECCV2022 | 生成对抗网络GAN论文汇总(图像转换-图像编辑-图像修复-少样本生成-3D等)...

热门文章

  1. Sourcegraph 代码搜索
  2. Docker实现隔离
  3. msql查询姓名不带r的员工姓名_《MySQL数据库》关联查询
  4. Javascript第四章定义函数的形式、回调函数第五课
  5. Linux2个文件一起打包,Linux文件压缩和打包(二)
  6. php自动提交百度收录,wordpress站点如何自动提交百度收录
  7. 禅道类似软件_软件测试工程师都在用哪些测试工具
  8. zen of python什么意思_Zen of Python
  9. 关于html中利用jQuery选择子节点方法总结——待续
  10. 【动态规划】XMU 1028 Game Boy Advance