雷锋网按:本文作者 qqfly,上海交通大学机器人所博士生,本科毕业于清华大学机械工程系,主要研究方向机器视觉与运动规划,会写一些好玩的内容在微信公众号:Nao(ID:qRobotics)。本文由雷锋网独家首发。
相信前两天大家的朋友圈都被 Boston Dynamics 的 Handle 机器人刷屏了:
估计这一幕会让不少读者回忆起被『终结者』所支配的恐惧:
↑ 图片出自科幻电影《终结者》
然而,作为一个正奋斗在机器人研究第一线的博士生,我可以负责任地告诉你:完全不用担心!
与一般的技术不同,机器人涵盖的技术领域更广,波士顿动力只是在控制方面做出了逆天成绩。现在的机器人领域还有很多技术问题没有解决,所以我们暂时不可能造出科幻电影中的那种通用机器人。
下面,我就从机器人研究的几个方面来说明为什么我们不需要担心机器人取代人类的事情发生。
(以下非本人熟悉领域的内容均为道听途说,如有误,欢迎在评论区指出)
一、硬件、机构:
感谢机械前辈们几百年的积累,目前在硬件设计方面,实际机器人已经很不错了。下面是几个比较著名的真实机器人:
↑ (左)波士顿动力的 Atlas,(中)日本产综研的 HPR-4C,(右)日本东京大学的 Kenshiro
不论是外貌、自由度配置、驱动方式,实际的机器人均有了很不错的成绩。
但是,在能源方面,我们离实用化还有一段很大距离。现在的移动机器人基本上都需要携带一个巨大的电池,续航能力也不行。以这次的 Handle 为例,它的电池约为 3.7KW/h,充满电能行驶约 24km,所以这方面只能寄希望于新一代
电池技术
的发明了。
↑ 这次 Boston Dynamics 的 Handle 就背着巨大的电池
二、感知:
这个包括两个部分:
传感器
:机器人需要能够感知周围环境和自身状态,因此需要安装不同的传感器。为了对比,我们看看人体的几个主要传感器:听觉传感器(耳朵);视觉传感器(眼睛);力矩传感器;皮肤触觉传感器(可以感受到别人触碰到自己)等。
首先是听觉传感器,这个似乎没有什么特殊的,现在的机器人都可以配备,普通麦克风即可。
其次,是视觉传感器,现在机器人的视觉传感器应该比人眼更高级:高精度相机、红外相机、深度相机、激光雷达等等。没办法,算法不够,传感器来凑嘛。
之后,是力矩传感器,主要用于检测关节力矩。有了精确的关节力矩才有可能部署一些控制算法、估计环境状态。当然,现在这样的传感器也已经有了,但就是贵。
最后,也是唯一与人类有较大差距的地方,是皮肤触觉传感器:这个基本上还有很多路要走,不信的话看看下图吧。这是去年 RA-Letter 上发表的一篇论文的工作:
A Conformable Force/Tactile Skin for Physical Human-Robot Interaction
。
信号处理算法:当然,这里的信号处理是广义的信号处理,包括普通的滤波、傅里叶变换等,也包括物体识别、语音识别等
人工智能
算
法。这个话题就太大了,而且实际机器人在这方面的研究距离实用的也还比较远,我简单列几个:
物体识别 / 语音识别:当然,随着近几年深度学习的发展,我们在物体识别和语音处理方面的造诣已经非常厉害了,但是在实际机器人上部署的算法也还比较简单(实际机器人不仅要识别物体、还要定位物体)。
↑ 这是 Boston Dynamics 之前发布的 atlas,依旧是采用二维码进行识别
语义理解:前面的语音识别是指根据声音识别出文字,这里则是理解识别的文字内容。我们现在研究的最高水平,可以参
考
微软小冰
聊天机器人,基本还是比较笨的。PS:不要跟我说什么机器人『娇娇』,那是后面有个人在遥控。
环境理解 / 地图创建:这个简单地说,就是机器人对环境建模的能力,包括地图创建等。现在的机器人在这一块还是比较弱的,即使配备了激光传感器等额外的设备(人仅靠两只眼睛),也只能在一些特定条件下完成地图创建,而基于地图的环境理解也只能算刚起步不久,如下面这个语义地图。
↑ 真正的通用机器人不仅需要能『看到』环境,还应该能『理解』环境
当然,我觉得之后随着深度学习技术在地图创建等领域的应用,(考虑到深度学习对环境理解的能力),这个领域估计有可能在十年内出现可实用的技术。
三、规划:
规划是指根据任务和机器人当前状态,计算出完成这个任务的方法。包括且不限于:
Boston Dynamics 的研究重点一直都是放在控制上,在规划等领域并无成果(至少从他们放出的视频中看不出有这方面研究)。
任务规划
:举个例子,我们想让机器人送瓶雪碧,那么机器人会将这个大任务分解成几个子任务(运动到冰箱前 --> 打开冰箱 --> 找到雪碧 --> 拿出雪碧 --> 关上冰箱 --> 送到人面前),当然,可以有更复杂的任务。目前,一般是采用 MDP 或 POMDP 模型来描述问题,然后用各种规划算法求解。总体上说,现在的任务规划强烈依赖于任务描述方式(人工指定),而且在应对大规模、不完全可观等复杂问题时,还没有可靠的方法。
运动规划
:举个例子,机器人面前有一杯水,让机器人将手运动到杯子面前,同时不能碰到桌子等障碍物。这就是运动规划,根据目标状态点,生成一系列关节运动状态。是的,现在就连让机器人拿起面前的杯子这样的问题也还没有完全解决。简而言之,我们一般是采用基于随机采样的算法进行运动规划的。
随机采样的意思就是:每次规划的结果可能不同,更无法保证规划出的路径是最优的。因为自己就做这一块,所以深知其中的坑。就我个人感觉,要解决运动规划问题,需要一个方法论上的创新,抛弃现在这套方法(因为人肯定不是这样规划的啊)。