【趣科研】机器人为什么不路痴?
2018/12/14 17:52:00紫冬君 中国科学院自动化研究所

CASIA点击蓝字关注我们↑↑↑↑

本期聚焦
1、视觉SLAM定义
2、视觉SLAM使用的相机
3、视觉SLAM框架
1
什么是视觉SLAM

说起机器人,大家的印象可能是这样的:

或是这样的:

甚至是这样的:

现如今,机器人技术已经广泛应用在教育娱乐、家庭服务、自动驾驶等方面。与人类相似,机器人以处理器为大脑,以机械臂为四肢,除此之外,还需要感知环境的"眼睛"。这双眼睛可以是激光雷达、GPS、IMU等,这里我们主要介绍以摄像机为眼睛的方法。把一个机器人放到完全陌生的环境,如果它不具备空间定位与环境感知能力,就无法知道所处空间的构造,也不知道自己在空间中的相对位置,进而难以完成路径规划,目标定位等任务了。

要怎么解决"我在哪","这是什么地方"的问题呢,这时,SLAM技术了就要大显身手了!SLAM全称Simultaneous Localization and Mapping,翻译成中文是同时定位与建图。在SLAM体系中,"我在哪"的问题称为定位,"这是什么地方"的问题则称为建图。
定位和建图,是环境感知的两个基本内容。"定位"是知晓自身位置,估计一步步行进的轨迹。"建图"是了解外部环境,把每个视角获取的图像重建成完整的三维地图。同时掌握这两个技能,机器人才能感知环境,依靠SLAM行动自如。
SLAM的实现方法主要分为两种。第一种是在环境中安装传感设备,比如在房间地板上铺设导线,在墙壁上贴二维码,安装无线电定位设备等。这些设备如同魔法阵一般,能直接测量到机器人的位置,但由于传感设备的位置固定,机器人的活动范围也被会限制,只能在铺设"魔法阵"的固定"结界"中活动了。
第二种方法则是直接把传感器安装在机器人身上,比如相机、激光雷达、轮式编码器、惯性测量单元(IMU)等。这些装置像是魔法道具,通过测定一些与位置信息相关的物理量,间接定位,给予机器人在任意场景自如行动的可能。
这里,我们重点说一说使用相机的SLAM方法。相机如同机器人的眼睛,因此这种方式也被称作视觉SLAM。
2相机都有什么
SLAM中相机多种多样,可以使用一个或多个RGB相机,通过算法计算位置,也可以使用深度相机,直接测距。还有全景相机、event相机,在特定场景中有所应用。
1单目相机
单目相机仅使用一只相机进行SLAM,这种方法成本很低,结构简单,很受研究者的关注。但是,单目相机却存在一个问题:无法通过一张照片得到深度信息。深度信息可以反映场景中物体表面点与传感器之间的距离,缺少了它,就无法感知空间的三维结构。
在生活经验中可以知道,如果相机右移,图像会向左移动;相机移动过程中,近处的物体移动快,远处物体移动慢。在移动相机时,物体在图像上的运动形成了视差。通过视差,可以判断哪些物体离得近,哪些离得远。这个距离是相对的,无法确定真实距离,被称作尺度不确定性。
单目相机平移后才能计算深度,并且只能计算相对深度,这个问题无法避免。为了更方便而准确的得到深度信息,人们开始使用双目相机和深度相机。
1
2双目相机
双目相机模仿了人眼的原理,人眼就像是两个平行放置、同时运作的相机,人们若只用左眼和只用右眼,看到的场景会存在差异,依靠这个差异可以判断远近,双目相机也是如此。不过双目相机计算量很大,现有条件下,想要实时获取高分辨率和高精度的深度信息,往往需要额外的硬件加速。
2
3深度相机深度相机又称做RGB-D相机,比传统相机,多出一个维度,代表像素点的深度。它可以使用红外结构光或者ToF原理,向物体发射一道光,并接受反射的光,通过反射光的变化或者接收反射的时间,计算出物体离相机的距离。

这种方法仅需要一个相机,计算量小,通过物理方法直接测量。但现有深度相机往往会受到环境、光照、距离等限制,在室内应用比较多。
3
3视觉SLAM框架1传感器数据读取感知世界的第一步,当然是睁开"眼睛",观察世界啦。视觉SLAM中,相机随着机器人不断运动,以一定速率拍摄环境,得到一系列连续变化的图像。此外,还可以读取码盘、惯性传感器的信息,这些信息经预处理和同步,共同用于机器人的运动估计。

1
2视觉里程计视觉里程计根据相邻图像之间的差异,估测相机的运动。叫它里程计是因为它仅计算相邻时刻的运动,像只有七秒记忆的金鱼,和更久远的信息没有关联。当然,最简单的情况是,仅记录连续两帧的信息,估计这两个时刻间相机的运动。只要把许多相邻时刻间的运动估计串成一串,就构成了机器人的运动轨迹,从而解决了运动问题。
可是要如何解决相邻时刻间的运动估计呢?在机器人的大脑里,只能进行数值计算。机器人通过"眼镜"看到的图像,会存储为一个数值矩阵。机器人需要通过特征匹配等方法,估算一个三维空间的变换矩阵,得到自己在三维空间中的位置信息。
视觉里程计被称为前端,是SLAM的关键问题,但是仅通过视觉里程计估计轨迹,会不可避免的出现累积漂移。可以想象,仅通过相邻几帧估计的运动会存在误差,下一次估计建立在带有误差的估计结果上,连续的误差累积使得轨迹估计越来越偏。这时,就需要SLAM的后端优化和回环检测来救场了~

2
3后端优化
SLAM系统估计的轨迹和地图不可避免的带有噪声,机器人应该多信任当前的估计结果?这些估计结果带有多大的噪声?后端就是处理了这个问题。它通过滤波和非线性优化算法,尽可能优化当前的估计结果,减少噪声影响。前端像是机器人的眼睛,观察环境的特征,估测运动轨迹。后端则更像大脑中的判断区域,估计运动轨迹和空间环境的不确定性。
3
4回环检测
回环检测又称闭环检测,是解决累积偏移问题,一种简单粗暴的方法。想象一下,如果机器人绕了一圈,回到了曾经去过的地方,但由于累积偏移,它的位置估计却存在偏差。这时,如果机器人识别出这个地方曾经来过,就可以修正地图和轨迹估计。在回环检测准确而充分的条件下,不断修正估计值,就可以消除累积误差~

赋予机器人"记忆"能力的方法有很多。可以在环境中设置标志物,当然,这存在数量和范围的限制。更通用的方法是通过机器人的"眼睛",直接判断图像间的相似性,可以使用基于图像特征的词袋模型,或现今火热的模式识别方法实现。若检测到回环,机器人认为这个地方似曾相识,后端优化模块就会调整轨迹估计和建图结果,减少系统误差。
4
5建图
根据机器人任务的不同,建图方式也多种多样。地图可以是三维空间点云,对整个空间环境进行重建,也可以更漂亮一些,用三角面片和纹理构成网格地图。如果对地图要求不高,也可以建立二维地图,标记哪里可以通过,哪里是障碍物就足够了。

5
以上就是SLAM的核心功能和基础模块。当然,SLAM的研究方向远不止于此,多样的数据传感器、丰富的地图信息表示及不断迭代更新的优化方法,为SLAM的发展提供了多种可能。自动化所吴毅红研究员率领模式识别国家重点实验室机器人视觉团队,利用多年的技术积累和知识产权,推出了面向智能移动终端的视觉定位解决方案(CASIA-VSLAM)。相信在未来,SLAM在无人机、自动驾驶、机器人、增强现实等领域会有更加广泛的应用。
相关阅读:
【紫冬报告】吴毅红研究员:2017以来的2D到3D
【科研结晶】CASIA-VSLAM视觉定位解决方案
注: 本文为作者独立观点,不代表自动化所立场

Independent Component Analysis – 独立成分分析:独立成分分析是最古老的表示学习算法之一。它是一种建模线性因子的方法,旨在将观察到的信号分离成许多潜在信号,这些潜在信号通过缩放和叠加可以恢复成观察数据。这些信号是完全独立的,不是仅彼此不相关。
AI爱新词
更多精彩内容,欢迎关注
中科院自动化所官方网站:
http://www.ia.ac.cn
欢迎后台留言、推荐您感兴趣的话题、内容或资讯,小编恭候您的意见和建议!如需转载或投稿,请后台私信。
作者:张琪
排版:康扬名
编辑:鲁宁、欧梨成

长按关注解锁更多智能之美

中科院自动化研究所
微信:casia1956
欢迎搭乘自动化所AI旗舰号!
http://weixin.100md.com
返回 中国科学院自动化研究所 返回首页 返回百拇医药