SLAM技术作为机器人自主移动的关键技术,让很多人都误解为:SLAM=机器人自主定位导航。
其实,
SLAM≠机器人自主定位导航 ,不解决行动问题。
SLAM如其名一样,主要解决的是机器人的
地图构建和即时定位问题,而自主导航需要解决的是智能移动机器人与环境进行自主交互,尤其是点到点自主移动的问题,这需要更多的技术支持。
要想解决机器人智能移动这个问题,除了要有SLAM技术之外,还需要加入
路径规划和运动控制。在SLAM技术帮助机器人确定自身定位和构建地图之后,进行一个叫做目标点导航的能力。通俗的说,就是规划一条从A点到B点的路径出来,然后让机器人移动过去。
机器人自主定位导航= SLAM+路径规划和运动控制
运动规划是一个很大的概念,从机械臂的运动、飞行器的飞行,到扫地机的清扫,机器人的移动,其实这些都是属于运动规划的范畴。
运动规划主要分为:
全局规划、
局部规划。
全局规划
全局规划,顾名思义,是最上层的运动规划逻辑,它按照机器人预先记录的环境地图并结合机器人当前位姿以及任务目标点的位置,在地图上找到前往目标点最快捷的路径。
局部规划
当环境出现变化或者上层规划的路径不利于机器人实际行走的时候(比如机器人在行走的过程中遇到障碍物),局部路径规划将做出微调。
与全局规划有所区别的是,局部规划可能并不知道机器人最终要去哪,但是对于机器人怎么绕开眼前的障碍物特别在行。
这两个层次的规划模块协同工作,机器人就可以很好的实现从A点到B点的智能移动了。不过实际工作环境下,上述配置还不够。因为运动规划的过程中还包含静态地图和动态地图两种情况。
A*算法
A*(A-Star)算法是一种
静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。但是,A*算法同样也可用于动态路径规划当中,只是当环境发生变化时,需要重新规划路线。
D*算法
D*算法则是一种
动态启发式路径搜索算法,它事先对环境位置,让机器人在陌生环境中行动自如,在瞬息万变的环境中游刃有余。D*算法的最大优点是不需要预先探明地图,机器人可以和人一样,即使在未知环境中,也可以展开行动,随着机器人不断探索,路径也会时刻调整。
上述的几种算法都是目前绝大部分机器人所需要的路径规划算法,能够让机器人跟人一样智能,快速规划A到B点的最短路径,并在遇到障碍物的时候知道如何处理。但
扫地机器人作为最早出现在消费市场的服务机器人之一,它需要的路径规划算法更为复杂。
空间覆盖(space coverage)
扫地机器人所需要的功能跟市面上的机器人有所不同,比如针对折返的工字形清扫,如何有效进行清扫而不重复清扫?如何让扫地机和人一样,理解房间、门、走廊这种概念?
针对这些问题,学术界长久以来有一个专门的研究课题,叫做空间覆盖(space coverage),同时也提出了非常多的算法和理论。其中,比较有名的是Morse Decomposi
tions,扫地机通过它实现对空间进行划分,随后进行清扫。
所以,他要实现的不是尽快实现从A到B的算法,为了家里能尽量扫得干净,要尽量覆盖从A到B点的所有区域,实现扫地机器人“扫地”的这个功能。
所以,机器人自主定位导航技术的发展还需要越来越多的技术加以支撑,适用于更多的场景。虽然技术和需求在变,但不变的是,在行业中取长补短,结合不同新的技术进行融合,这是不会改变的事实。