借助微软 Kinect 和开源机器人 PR2 ,麻省理工学院计算机与人工智能实验室(CSAIL)最近开发出利用深度摄像头识路的机器人。
让机器人认路,一直是人工智能研究的课题之一。这个问题的难点在于,机器人很难在不确定的环境下灵活行动,往往依赖人工遥控,首先,由人控制机器人游历一遍工作环境,传感器记录下所有的数据,然后等游历完成之后再进行离线处理来获得地图。而 CSAIL 的研究成果开始让机器人在不确定的环境下摆脱对人的依赖。
Maurice Fallon 教授是该项目的主持者之一,他认为实时绘制地图是机器人认路的前提,至少得让机器人知道自己和墙壁之间距离。但是现在的研究都给机器人一张绘制好的地图,这种做法难以让机器人在不确定的环境下自行判断自己前进的方向,如果在场景中出现了一个之前没有出现过的物体,那么机器人就很难通过地图来判断应当如何行为。
于是,Maurice 和 John J Leonard,连同一名学生 Hordur Johannsson 开始研究。最终,他们让 Kinect 变成 PR2 的眼睛,利用Kinect的深度摄像头侦测 PR2 周围的环境,让周围的场景实时转化为三维地图数据库,让机器人拥有灵活判断的能力。这个技术称为 Simultaneous Localization and Mapping(SLAM)。
SLAM (simultaneous localization and mapping),也称为CML (Concurrent Mapping and Localization), 即时定位与地图构建,或并发建图与定位。 SLAM最早由Smith、Self和Cheeseman于1988年提出。 由于其重要的理论与应用价值,被很多学者认为是实现真正全自主移动机器人的关键。SLAM问题可以描述为: 机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置估计和地图进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的自主定位和导航。 此机器人的技术核心是 Kinect、传感器以及与之配套的导航软件。当机器人经过一场景时,比如说房间里面的拐角,深度摄像头会侦测这个拐角里面的墙壁、道路、障碍,软件将深度摄像头所看到的东西统统绘制成三维图像,同时通过传感器,软件还会计算机器人目前的位置,然后计算出路径,并储存起来。当机器人再次经过这个场景时,通过深度摄像头收集到的数据再次绘制三维图像,软件就把这次的得到的三维图像和之前得到的三维图像对比,看是否相同,如果相同就按照之前的路径去走,如果不同就重新计算新的路径,也就是说如果下次机器人经过这个拐角,它就能够轻松绕过不知从那里冒出来的箱子。 以下为机器人演示: |