机器人抓取研究前沿及抓取的研究进展整体分析
扫描二维码
随时随地手机看文章
一年前我们曾探讨过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的基础上去推动算法层面和应用层面的发展。