EETOP 创芯网论坛 (原名:电子顶级开发网)

便捷登录,只需一步

找回密码

  登录   注册  

搜帖子
查看: 1317|回复: 1

[原创] 深度解析|机器人自主定位导航的秘密(三)

[复制链接]
发表于 2018-1-17 14:52:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
恩,时隔N久,我胡汉三又回来啦……
在之前的系列文章中,为大家接续了机器人自主定位导航所利用的建图原理及

下面,继续为大家揭秘,前面的(一)(二)系列可以戳我查看哦~

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




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


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


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




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


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



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


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


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



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



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


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


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



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




前面介绍的从A点到B点移动路径规划也是实现这类更高级路径规划的基础。实际上,要从SLAM实现到扫地机器人所需要的这些功能,还是有非常多的工作要做的。


针对扫地机器人,现在市面上也有将其特有的路径规划功能预先内置在SLAMWARE中,方便厂家进行整合,不需要进行二次开发。


发表于 2018-1-31 18:17:53 | 显示全部楼层
给您赞一个
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询 |  EETOP 创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2020-7-9 16:29 , Processed in 0.064264 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表