机器人自主移动的秘密:SLAM与路径规划有什么关系?(三)

博客转载自:https://www.leiphone.com/news/201612/lvDXqY82OGNqEiyl.html

雷锋网(公众号:雷锋网)按:本文作者SLAMTEC(思岚科技公号slamtec-sh)技术顾问,专注SLAM及相关传感器研发应用。

我们先来看看SLAM与路径规划的关系

实际上,SLAM算法本身只是完成了机器人的定位地图构建两件事情,与我们说的导航定位并不是完全等价的。这里的导航,其实是SLAM算法做不了的。它在业内叫做运动规划(Motion Planning)。

运动规划是一个很大的概念,从机械臂的运动、到飞行器的飞行,再到这里我们说的扫地机的清扫路径规划,都是运动规划的范畴。

我们先谈谈针对扫地机这类轮式机器人的运动规划。这里所需的基础能力就是路径规划,也就是一般在完成SLAM后,要进行一个叫做目标点导航的能力。通俗的说,就是规划一条从A点到B点的路径出来,然后让机器人移动过去。

要实现这个过程,运动规划要实现至少两个层次的模块,一个叫做全局规划,这个和我们车载导航仪有一点像,它需要在地图上预先规划一条线路,也要有当前机器人的位置。这是由我们的SLAM系统提供出来的。行业内一般会用叫做A*的算法来实现这个过程,它是一种启发式的搜索算法,非常优秀。它最多的应用是在游戏中,比如像星际争霸、魔兽争霸之类的即时战略游戏,都是使用这个算法来计算单位的运动轨迹的。

当然,仅仅规划了路径还是不够的,现实中会有很多突发情况,比如正巧有个小孩子挡道了,就需要调整原先的路径。当然,有时候这种调整并不需要重新计算一遍全局路径,机器人可能稍微绕一个弯就可以。此时,我们就需要另一个层次的规划模块,叫做局部规划。它可能并不知道机器人最终要去哪,但是对于机器人怎么绕开眼前的障碍物特别在行。

视频请查看源博客

这两个层次的规划模块协同工作,机器人就可以很好的实现从A点到B点的行动了,不过实际工作环境下,上述配置还不够。比如A*算法规划的路径是根据已知地图,预先规划好的,一旦机器人前往目的地的过程中遇到了新的障碍物,就只好完全停下来,等待障碍物离开或者重新规划路径了。如果扫地机器人买回家,必须先把屋子都走一遍以后才肯扫地,那用户体验就会很差。

为此,也会有针对这类算法的改进,比如SLAMWARE内我们采用改良的D*算法进行路径规划,这也是美国火星探测器采用的核心寻路算法。这是一种动态启发式路径搜索算法,它让机器人在陌生环境中行动自如,在瞬息万变的环境中游刃有余。

D*算法的最大优点是不需要预先探明地图,机器人可以和人一样,即使在未知环境中,也可以展开行动,随着机器人不断探索,路径也会时刻调整。

视频请查看源博客

以上是目前大部分移动机器人都需要的路径规划算法,而扫地机器人作为最早出现在消费市场的服务机器人之一,它需要的路径规划算法更为复杂。

一般来说,扫地机需要这么几个规划能力:贴边打扫、折返的工字形清扫以及没电时候自主充电。单单依靠前面介绍的D*这类算法,无法满足这些基础需要。

扫地机器人还需要有额外的规划算法,比如针对折返的工字形清扫,有很多问题要处理。扫地机如何最有效进行清扫而不重复清扫?如何让扫地机和人一样,理解房间、门、走廊这种概念?

针对这些问题,学术界长久以来有一个专门的研究课题,叫做空间覆盖(space coverage),同时也提出了非常多的算法和理论。其中,比较有名的是Morse Decompositions,扫地机通过它实现对空间进行划分,随后进行清扫。

20世纪70年代,卡内基梅隆大学(CMU)完全依靠超声波做到了现在我们扫地机的行为,当然造价也十分昂贵。

前面介绍的从A点到B点移动路径规划也是实现这类更高级路径规划的基础。实际上,要从SLAM实现到扫地机器人所需要的这些功能,还是有非常多的工作要做的。针对扫地机器人,我们将其特有的路径规划功能预先内置在SLAMWARE中,方便厂家进行整合,不需要进行二次开发。

本文转自雷锋网,如需转载请至雷锋网官网申请授权。

原文地址:https://www.cnblogs.com/flyinggod/p/8490408.html

时间: 2024-10-01 21:51:05

机器人自主移动的秘密:SLAM与路径规划有什么关系?(三)的相关文章

SLAM+语音机器人DIY系列:(六)SLAM建图与自主避障导航——3.ros-navigation机器人自主避障导航

摘要 通过前面的基础学习,本章进入最为激动的机器人自主导航的学习.在前面的学习铺垫后,终于迎来了最大乐趣的时刻,就是赋予我们的miiboo机器人能自由行走的生命.本章将围绕机器人SLAM建图.导航避障.巡航.监控等内容展开.本章内容: 1.在机器人上使用传感器 2.google-cartographer机器人SLAM建图 3.ros-navigation机器人自主避障导航 4.多目标点导航及任务调度 5.机器人巡航与现场监控 3.ros-navigation机器人自主避障导航 前面的学习教程打好

机器人自主定位导航面临的3大问题及应对方案

未来,智能机器人很有可能成为继PC和智能手机之后的新一代杀手锏级别产品,极大的为我们的生活提供便利,但机器人产品的理想落地,需要行业各个技术环节的一起努力,自主定位导航作为机器人自主行走最为核心的技术之一,在落地实践过程中,也面临过多项挑战,最终实现完美应用. 环境多变情况下机器人的可靠定位 在实际的应用中,这些情况是比较常见的,例如:在人流量巨大的商场中机器人被一群人围着,不能出现"晕头转向"."歇菜"."定位偏"这种问题,它必须要应对不同的环

机器人路径规划01学习计划

内容简介 本文主要是汇总一下现有的学习资源,并作出初步的学习计划. 视频课程 Coursera上的-机器人专项课程,链接https://www.coursera.org/specializations/robotics Coursera上课程Modern Robotics: Mechanics, Planning, and Control 专项课程,https://www.coursera.org/specializations/modernrobotics 深蓝学院新开的-motion pla

路径规划

机器人路径规划研究综述 1.什么是路径规划 路径规划技术是机器人研究领域中的一个重要分支.所谓机器人的最优路径规划问题,就是依据某个或某些优化准则(如工作代价最小,行走路线最短,行走时间最短等),在其工作空间中找到一条从起始状态到目标状态的能避开障碍物的最优路径. 依据某种最优准则,在工作空间中寻找一条从起始状态到目标状态的避开障碍物的最优路径. 需要解决的问题: 1.始于初始点止于目标点. 2.避障. 3.尽可能优化的路径. 2.路径规划技术分类 a.静态结构化环境下的路径规划,比如说slam

RRT路径规划算法概述

本文主要记录本人之前调研过在三维复杂环境下的路径规划算法. RRT快速随机搜索树 快速扩展随机树(Rapidly-exploring Random Trees,RRT)算法,是近十几年得到广泛发展与应用的基于采样的运动规划算法,它由美国爱荷华州立大学的Steven M. LaValle教授在1998 年提出.RRT 算法是一种在多维空间中有效率的规划方法.原始的RRT 算法是通过一个初始点作为根节点,通过随机采样,增加叶子节点的方式,生成一个随机扩展树,当随机树中的叶子节点包含了目标点或进入了目

PRM路径规划算法

路径规划作为机器人完成各种任务的基础,一直是研究的热点.研究人员提出了许多规划方法:如人工势场法.单元分解法.随机路标图(PRM)法.快速搜索树(RRT)法等.传统的人工势场.单元分解法需要对空间中的障碍物进行精确建模,当环境中的障碍物较为复杂时,将导致规划算法计算量较大.基于随机采样技术的PRM法可以有效解决高维空间和复杂约束中的路径规划问题. PRM是一种基于图搜索的方法,它将连续空间转换成离散空间,再利用A*等搜索算法在路线图上寻找路径,以提高搜索效率.这种方法能用相对少的随机采样点来找到

路径规划算法综述

本文主要记录在调研移动机器的路径规划时找到的相关的算法. A*算法的详解 https://blog.csdn.net/hitwhylz/article/details/23089415 扫地机器人中用到的路径规划算法 https://www.leiphone.com/news/201606/p4rtD88yiYVQT6F9.html 导航和路径规划综述 https://blog.csdn.net/david_han008/article/details/68926189 Dijkstra算法与A

【BZOJ-3627】路径规划 分层图 + Dijkstra + spfa

3627: [JLOI2014]路径规划 Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 186  Solved: 70[Submit][Status][Discuss] Description 相信大家都用过地图上的路径规划功能,只要输入起点终点就能找出一条最优路线.现在告诉你一张地图的信息,请你找出最优路径(即最短路径).考虑到实际情况,一辆车加满油能开的时间有限,所以在地图上增加了几个加油站. 地图由点和双向边构成,每个点代表一个路口,也有可

Unity路径规划

Unity路径规划 背景 酷跑游戏中涉及到弯道.不规则道路. 找来一些酷跑游戏的案例来看,很多都是只有直线道路,也就不存在所谓的路径问题,设置一个方向即可,本文主要给出几种我自己用过.看过的Unity中可以用做路径规划的一些资料. 方案一 Unity自带解决方案Navigation,可以参考小赵的文章: unity自带寻路Navmesh入门教程(一) unity自带寻路Navmesh入门教程(二) unity自带寻路Navmesh入门教程(三) 这几篇文章还是不错的,配合官方文档,对其功能就能就