大家都知道,机器人智能移动(自主定位导航)包含了定位、建图与路径规划。说到定位导航,必然会联想到SLAM,但SLAM只是完成定位与地图创建这两件事,它并不完全等同于自主定位导航。
定位
不管你有没有地图,在前往目的地前,你肯定要知道自己的定位,机器人也是如此。只不过,我们定位靠眼睛,机器人则靠“激光雷达”。
这就是激光雷达获取的周围环境信息,也就是我们所说的点云,它能反映机器人所在环境中“眼睛”能看到的一个部分。
建图
我们身处陌生的环境时,导航软件和户外地图成为我们找路最有利的工具,服务机器人和人类一样也需要依靠地图来感知外部的环境,通过算法与传感器差异的不同机器人会采取不同的地图描述形式。
SLAM建图主要有三个过程:
(1)预处理:对雷达形成的点云原始数据进行优化,剔除一些有问题的数据,或者进行滤波。
(2)匹配:把当前这一局部环境的点云数据在已经建立的地图上寻找对应的位置,进行匹配。
(3)地图融合:将来自激光雷达的新一轮数据拼接到原始地图当中,最终完成地图的更新。
目前,栅格地图是机器人使用最广泛的地图存储方式。
栅格地图就是把环境划分成一系列栅格,其中每一栅格给定一个可能值,表示该栅格被占据的概率,其中每个“像素”则表示了实际环境中存在障碍物的概率分布。
这个过程听起来其实并不复杂,但是还是会遇到很多未知问题。比如建图闭环,如果匹配的算法不足够优秀,又或者是环境中遇到长直走廊、大场景建图干扰时,机器人绕着环境走一圈后,可能会发现原本应该闭合的一个环形走廊断开了。
19年初,思岚科技就已经推出了SLAM 3.0系统来应对这种问题,当机器人运动到已经探索过的原环境时, SLAM 3.0可依赖内部的拓扑图进行主动式的闭环检测。当发现了新的闭环信息后,SLAM 3.0使用Bundle Adjuestment(BA)等算法对原先的位姿拓扑地图进行修正(即进行图优化),从而能有效的进行闭环后地图的修正,实现更加可靠的环境建图。
路径规划与运动控制
当定位和建图搞定之后,下一个就要解决移动的问题了,即目标点A到B之间的导航规划能力。
路径规划分为:全局规划和局部规划。
全局规划:是最上层的运动规划逻辑,它按照机器人预先记录的环境地图并结合机器人当前位姿以及任务目标点的位置,在地图上找到前往目标点最快捷的路径。
局部规划:当环境出现变化或者上层规划的路径不利于机器人实际行走的时候(比如机器人无法按照规划的路径完成特定转弯半径的转向),局部路径规划将做出微调。
这两个层次的规划模块协同工作,机器人就可以很好的实现从A点到B点的智能移动了。不过实际工作环境下,上述配置还不够。因为运动规划的过程中还包含静态地图和动态地图两种情况。
A*算法
A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。但是,A*算法同样也可用于动态路径规划当中,只是当环境发生变化时,需要重新规划路线。
D*算法
D*算法是目前的一种主流算法,最大优点是不需要预先探明地图,机器人可以和人一样,即使在未知环境中,也可以展开行动,随着机器人不断探索,路径也会时刻调整。
上述的几种算法都是目前绝大部分机器人所需要的路径规划算法,能够让机器人跟人一样智能,快速规划A到B点的最短路径,并在遇到障碍物的时候知道如何处理。但扫地机器人作为最早出现在消费市场的服务机器人之一,它需要的路径规划算法有点不一样。
所以,针对不同场景应用的机器人,自主定位导航技术还需要不断升级更新,足以支撑更多场景应用。只有导航技术做好了,机器人整体才能有一个质的飞跃,机器人从0-1的布局才能越来越快。
责任编辑:haq
-
机器人
+关注
关注
211文章
28389浏览量
206925 -
激光雷达
+关注
关注
968文章
3969浏览量
189830
发布评论请先 登录
相关推荐
评论