疫情中的服务智能机器人芯片技术——自主定位导航
新发地来势汹汹的疫情,再次牵动着全国人民的心,我们要保持信心,保持警惕,打赢这场防疫战!而机器人的加入,必然是锦上添花。在隔离区,机器人实现了无接触配送,保障了隔离区内人员的生活。在医院感染区,移动机器人可以代替医护人员进入感染区执行,看护,体温测量,清洁等工作,减少了医护人员的感染风险。在居民社区,机器人实现了防疫宣传、外来人口登记,保障了疫情期间人们的正常生活……
这些功能的实现,都离不开机器人的智能移动能力。在之前的文章中,我们提到过底盘对移动机器人的意义,能够帮助厂家快速集成,实现落地应用。今天,我们不聊底盘,我们来说说导航技术,因为导航搞不好,移动也白搭,底盘就失去了价值,没有任何实用性。大家都知道,自主定位导航包含了定位、建图与路径规划。说到定位导航,必然会联想到SLAM,但SLAM只是完成定位与地图创建这两件事,它并不完全等同于自主定位导航。
不管你有没有地图,在前往目的地前,你肯定要知道自己的定位,机器人也是如此。只不过,我们定位靠眼睛,机器人则靠“激光雷达”。这就是激光雷达获取的周围环境信息,也就是我们所说的点云,它能反映机器人所在环境中“眼睛”能看到的一个部分。
我们身处陌生的环境时,导航软件和户外地图成为我们找路有利的工具,服务机器人和人类一样也需要依靠地图来感知外部的环境,通过算法与传感器差异的不同机器人会采取不同的地图描述形式。
SLAM建图主要有三个过程:
(1)预处理:对雷达形成的点云原始数据进行优化,剔除一些有问题的数据,或者进行滤波。
(2)匹配:把当前这一局部环境的点云数据在已经建立的地图上寻找对应的位置,进行匹配。
(3)地图:将来自激光雷达的新一轮数据拼接到原始地图当中,终完成地图的更新。
目前,栅格地图是机器人使用广泛的地图存储方式。栅格地图就是把环境划分成一系列栅格,其中每一栅格给定一个可能值,表示该栅格被占据的概率,其中每个“像素”则表示了实际环境中存在障碍物的概率分布。
这个过程听起来其实并不复杂,但是还是会遇到很多未知问题。比如建图闭环,如果匹配的算法不足够,又或者是环境中遇到长直走廊、大场景建图干扰时,机器人绕着环境走一圈后,可能会发现原本应该闭合的一个环形走廊断开了。
早在19年初,思岚科技就已经推出了SLAM 3.0系统来应对这种问题,当机器人运动到已经探索过的原环境时, SLAM 3.0可依赖内部的拓扑图进行主动式的闭环检测。当发现了新的闭环信息后,SLAM 3.0使用Bundle Adjuestment(BA)等算法对原先的位姿拓扑地图进行修正(即进行图优化),从而能有效的进行闭环后地图的修正,实现更加可靠的环境建图。
当定位和建图搞定之后,下一个就要解决移动的问题了,即目标点A到B之间的导航规划能力。
路径规划分为:全局规划和局部规划。
全局规划:是上层的运动规划逻辑,它按照机器人预先记录的环境地图并结合机器人当前位姿以及任务目标点的位置,在地图上找到前往目标点快捷的路径。
局部规划:当环境出现变化或者上层规划的路径不利于机器人实际行走的时候(比如机器人无法按照规划的路径完成特定转弯半径的转向),局部路径规划将做出微调。
这两个层次的规划模块协同工作,机器人就可以很好的实现从A点到B点的智能移动了。不过实际工作环境下,上述配置还不够。因为运动规划的过程中还包含静态地图和动态地图两种情况。