本文转载自知乎专栏智能单元,作者Flood Sung
前 言
一年前我们曾探讨过Robot Learning的发展>>
梳理 | 机器人学习(Robot Learning)的发展
,
那么经过近一年的发展,Robot Learning也有了很多新的进展,特别在Meta Learning上。不过今天我们先来专门探讨
Robot Learning中的一个具体应用,也就是机器人抓取Robotic Manipulation/Grasping
。为什么专门考虑这个问题?因为
这个是体现机器人智能目前最亟待解决的问题之一。
我们可以考虑一下家用机器人需要具备什么样的智能?可以说最主要就是要具备两方面的能力,一个是移动导航能力,另一个就是机械臂的抓取能力。所以像下图这个Fetch机器人其实就满足了家用机器人所需的硬件了。我们今天不谈移动导航的问题,只来谈谈机器人抓取这个问题的研究前沿。
对于机器人抓取,其实本身有很多研究的具体问题和方式,比如目前抓取No.1的系统是伯克利的Dex-Net 4.0,有兴趣的朋友可以看看这篇报道:
Exclusive: This is the most dexterous robot ever created,
但是Dex-Net 并不是一个端到端的深度学习系统,它只是用神经网络来对抓取的位置进行估计, 然后通过planning的方式来抓取,本质上是一个开环控制系统。这样的系统对于完全静态简单的物体是没问题,但是如果物体有阻挡,有改变,那这个系统就比较难处理了。所以,鉴于本专栏的偏好是通用人工智能AGI,我们在这里只想关注一种解决机器人抓取的方式,那就是:
End-to-End Vision-Based Robotic Manipulation 端到端基于视觉的机器人抓取
我们希望整个机器人抓取过程都是机器人自己学到的!这就非常近似于人类的行为!
那么有了这个主题,我们就来看看这方面的研究都有谁,基本上可以说就集中在两个团队:
1)Google Brain Robotics团队
2) 伯克利Sergey Levine团队
除此之外,Deepmind,OpenAI,Stanford的Li Fei-Fei团队还有CMU的Abhinav Gupta团队有一些亮眼的研究,但并没有特别专注在Robotic Manipulation这个问题上。然后实际上Google Brain团队Sergey Levine也在其中,所以接下来我们看到的paper基本上都出自Sergey Levine之手!
Paper List
[1] Sadeghi, Fereshteh, et al.
"Sim2real view invariant visual servoing by recurrent control."
arXiv preprint arXiv:1712.07642(2017).
[2] Riedmiller, Martin, et al.
"Learning by Playing-Solving Sparse Reward Tasks from Scratch."
arXiv preprint arXiv:1802.10567(2018).
[3] Quillen, Deirdre, et al.
"Deep Reinforcement Learning for Vision-Based Robotic Grasping: A Simulated Comparative Evaluation of Off-Policy Methods."
arXiv preprint arXiv:1802.10264(2018).
[4] Haarnoja, Tuomas, et al.
"Composable Deep Reinforcement Learning for Robotic Manipulation."
arXiv preprint arXiv:1803.06773(2018).
[5] Fang, Kuan, et al.
"Learning Task-Oriented Grasping for Tool Manipulation from Simulated Self-Supervision."
arXiv preprint arXiv:1806.09266(2018).
[6] Kalashnikov, Dmitry, et al.
"QT-Opt: Scalable Deep Reinforcement Learning for Vision-Based Robotic Manipulation."
arXiv preprint arXiv:1806.10293(2018).
[7] Matas, Jan, Stephen James, and Andrew J. Davison.
"Sim-to-Real Reinforcement Learning for Deformable Object Manipulation."
arXiv preprint arXiv:1806.07851(2018).
[8] OpenAI
"Learning Dexterous In-Hand Manipulation"
(2018).
上面这些paper大致是近一年来比较重要的和robotic manipulation直接相关的paper了,由于本人主要关注Sergey Levine团队的成果,可能会疏忽掉其他工作,如果有知友有好的相关paper推荐,欢迎在本文下留言,谢谢!
本文不打算具体的分析每一篇paper,而是从整体上对于目前机器人抓取的研究进展做一个整体的分析。
机器人抓取的研究进展整体分析
目前机器人抓取或者整个机器人学习的研究其实核心在于三个方面:
1)算法层面
2)sim-to-real 从仿真到真实环境的迁移
3)应用层面
首先是算法层面,我们希望DRL算法在机器人抓取上能够有更高的效率,更快的学习速度,以及处理更困难的学习任务。因此在上面的paper list中,[3] 对多种DRL off-policy的算法进行评估,[6] 则使用其中一个算法在真实场景中做大规模的实验 [4] 则基于soft q-learning使得机器人具备更强的exploration能力 [2] 则研究通过auxiliary rewards 来处理复杂机器人学习任务中reward过于稀疏的问题。
接下来是仿真环境到真实环境的迁移问题。由于真实机器人实验不方便并且实验成本很高,使得从仿真迁移到真实成为一种几乎必然的选择 (Google那种机器人农场的方法毕竟不是每个人都能干的),因此很多研究的重点都在于仿真到真实的迁移,比如[1] 通过多视角来研究sim2real [7] 则在仿真环境中研究非刚体的物体操作 [3] 提出来一个面向机器人抓取的仿真benchmark,对于机器人抓取的研究能够起到很大的促进作用。
最后是应用层面,大家不仅仅关注简单的普通的机器人抓取问题,也考虑更复杂的manipulation问题,也因此,有了[8] OpenAI 刚刚出炉的机器手玩方块的成果, [5][7]研究更复杂机器人抓取问题。
那么对于这三方面,到底有什么重要的研究进展呢?我们先来单独分析一下OpenAI这个最新成果.
3 Learning Dexterous In-Hand Manipulation
这两天OpenAI刚出来的成果,使用DRL实现机械手灵巧操作方块,虽然这个工作面向的不是抓取,但是方法论上是完全相同的,这篇文章对于机器人抓取问题具有很强的借鉴意义。
1)这篇文章的成果:通过DRL算法PPO完全在仿真环境中训练机械手玩方块,将训练好的模型直接迁移到真实场景中取得成功,并且整个训练不带人类的演示demo,完全根据reward自学完成,而最后的实现效果竟然和人类的行为非常接近,很像人的操作。
2)取得如此成功的原因:(1)高度仿真的系统,和真实环境非常接近,reality gap比较小 (2)使用仿真环境随机化这个技巧来大幅度拓展仿真环境的范围,使得神经网络学习后能够适应各种场景,当然就包括真实场景了。这种随机化包含比如不同的摩擦力,不同的演示,不同的摄像头角度等等 (3)大规模分布式并行训练,使用了几百台机器6144个cpu来运行分布式仿真环境收集数据,然后用一台8GPU的V100来训练模型,就像标题说的,等价于训练了100年.
3)启发:(1)DRL能够通过学习学到传统非学习算法根本做不到的效果,端到端神经网络化必须是机器人的未来!(2)仿真环境超级重要,随着技术的发展,仿真肯定可以做的越来越好,这就意味的未来的机器人必然会是在仿真中进行训练的,成本低,速度快,何乐而不为。(3)大规模的计算能够直接弥补DRL sample inefficiency的问题,反正只要有足够的设备,一天训他原来要1年的东西,数据堆上去,就能做出来。
进一步分析
上一小节我们简单的分析了一下OpenAI这个很酷的工作,但是我们能得到的结论就是:这更多的是工程上的胜利,而非算法上的胜利。算法依然是PPO,并没有实质性的变化。
同样的,之前Google在机器人抓取的重要进展[6]QT-Opt 将端到端机器人抓取的效果提升了一大截,但是我们具体分析它里面的算法就会发现算法上只是Q-Learning的一个变种,相比于DDPG,不使用Actor Network,而通过进化算法CEM来获取actor,能够使训练更稳定,并且方便于做大规模分布式训练。
对于[6]和[8],其实我们都发现大规模分布式学习对于性能提升的重要性,这当然也完全符合深度学习的情况,只要有数据和高性能计算,就能把性能堆出来。由于深度增强学习存在比监督学习大的多的sample inefficiency问题,所以实际上深度增强学习要能work,需要的数据量会比监督学习如imagenet还要大的多。也因此,我们看到AlphaGo,OpenAI的机器手,OpenAI的Dota,都动用了巨量的计算资源。一个小小的机器手,却使用了6144个CPU和8个V100 GPU来训练,这也是非常空前的事情。
下一步呢?
有两点是非常容易预测的:
1)未来必然会出来更多更好的仿真环境。这一年来的研究可以说就是比较明确的肯定仿真直接迁移到真实环境的可行性,那么就没有理由更进一步的去开发更真实的仿真环境。
2)更快更强的分布式学习系统。这个就更不必说了,这是推动机器人学习进展的燃料。
有了上面这两点,即使保持现有的算法不变,我相信都可以训练出比现在更强或者更复杂的机器人学习成果,端到端基于视觉的机器人抓取直接推到99%以上的准确率是完全可能的,这就趋于商用了。
那么算法层面又该如何发展呢?
我们需要更复杂任务Task的牵引。比如我们需要双机械臂的协作抓取,这就涉及到multi-agent robot learning。比如我们需要机器人能够完成一个更长的任务系列,这需要Hierarchical Reinforcement Learning的研究。比如我们需要机器人能够同时完成多个任务,那这就需要multi task learning。比如我们希望机器人的generalization能够更强,能够处理没看过的物体,那么这就需要Meta Learning的研究,那么这块现在特别火了。比如我们需要机器人能够快速的学习新任务,这就需要Continual Learning,Meta Learning,如果是要求通过模仿学习来实现,那就需要imitation learning。
这里我推荐大家可以阅读第一届CoRL整理出来的问题,从这里我们反而会觉得现在的Robot Learning真的是刚刚开始,现在研究的问题也太过于简单了。
https://docs.google.com/document/d/1biE0Jmh_5nq-6Giyf2sWZAAQz23uyxhTob2Uz4BjR_w/edit
现在到了2018年才有了一个机器人抓取的benchmark,未来相信会有更多的benchmark出现来推动这个领域的发展。
https://docs.google.com/document/d/1biE0Jmh_5nq-6Giyf2sWZAAQz23uyxhTob2Uz4BjR_w/edit
最后小结
本文没有详细的分析每一篇paper的具体idea,而是比较宽泛的分析机器人抓取及机器人学习的整体研究进展。
总的来说,对于机器人抓取这个具体问题,从工业应用上看将可以很快看到落地,要在仿真系统研发上推,在大规模分布式学习上推,核心确实在于
工程实现
上。
而对于学术研究,最关键的是去定义新的task,新的benchmark,从而在新task的基础上去推动算法层面和应用层面的发展。
将门创投
来源:The New York Times 编译:T.R
随着技术的发展,机械手臂已经不再像我们过去印象中只能在工厂中进行重复单一劳动的装置了,如今它们已经进化得越来越像人灵巧的手。虽然离科幻小说有血有肉的精密机械手还有很大的差距,但
今天世界各地的AI实验室已经开发出了各种各样的“手”,推进着我们对于机器人的想象。加上算法的强大威力,他们可以推、拉、拾、放各种物体,还能在手中旋转把玩。
旋转翻腾
近来最出名的机器手要数OpenAI的Dectyl了,通过深度学习的算法训练,它掌握了如何在手掌中翻转立方体这一复杂的人类动作。
通过复杂的模型,Dectyl可以利用大量的训练来学习如何实现复杂的操作。通过模拟学习在计算机硬件上进行了大量的训练,随后将训练结果迁移到现实世界中实现了灵活的翻转。研究人员相信通过这样的方法可以为它训练更多的复杂操作。
这一研究代表了目前机器手研究的巨大飞跃。但除了如此复杂的高度仿生的机械手外,研究人员们还在研究如何用更为简单的“手”来完成一些简单的任务。
夹爪
伯克利大学AutoLab的研究人员创造出了利用两个手指的夹爪来抓取螺丝刀、老虎钳等细小的工具,并把他们放到指定的箱子里。
由于夹爪的控制比五指机械手容易,同时软件也比仿生的机械手容易的多。所以在很多简单场合是一种不错的抓取工具。它同时也可以处理一些稍微变化的物体。例如沙拉酱的瓶子,在它看来就十分类似于螺丝刀的长条圆柱形,可以寻找到合适的点来抓取。但当它遇到一些外形十分不同的形状(与已知的形状相去甚远),例如一只镯子,它就难以抓取了。
传送门>>
机器人操作的“圣杯问题” -- Bin Picking
捡拾
如果你想要机器人抓取更多的物体,甚至是从未见过物体那要怎么办呢?AutoLab的科学家们在过去几年一直致力于这方面的研究,并开发出了一款称为Dex-Net的框架,来帮助机器人识别并抓取不同形状的物体。
系统的硬件十分简单,综合了两种抓取系统:分别是夹爪和吸盘。但简单的组合带来的是它可以抓取十分丰富的物体类别,从剪刀到玩具恐龙都可以轻松处理。
这主要得益于这套系统集成了目前先进的机器学习算法。研究人员们为超过10000中物体建模,识别出最好的抓取策略。随后利用神经网络学习、分析、处理这些数据,学会通过图像识别出抓取物体的最好方式。这使得机器人的抓取方式有了质的提升,与过去需要为每一种任务方式编程不同,现在机器人可以通过自己来学习物体的抓取。
利用这套系统,机器人可以在完全随机排布的情况下实现抓取。
虽然这套系统并不完美,但它可以不断学习,以远超过去的速度不断改进自身的表现。
铺床
机器人可能还不是一个完美的管家,但是在某些方面已经显示出了很棒的结果。研究人员们最近研发出了一套可以自动整理床铺的机器人。这套系统可以通过分析目前的床铺状况来规划出一系列动作,从而实现床铺的整理。
推一推
机器人还可以利用夹爪推动在平面上的物体,并预测它最终的位置。这意味着机器人可以像你我一样在桌面上移动物体到任意的位置。
这一系统通过大量的视频学习了如何推动物体,通过这样的方式它可以学会处理不确定和意外的运动。