为什么做Simulately这样一个开源项目?
目前机器人模拟器的生态是一个什么现状?
做一个好的simulator最大的挑战是什么?
强化学习和模仿学习在模拟器选择上有什么不同?
如何解决Sim2Real Gap的问题?
Sim+RL和Real data+IL哪条路径更可能最终解决通用机器人问题?
目前Sim+RL和Real data+IL两条路径结合有什么挑战?
为什么Anyteleop这类遥操作会把手部动作映射到模拟器中?
模仿学习不经过模拟训练直接部署到机器人上如何解决安全性的问题?
模仿学习会涉及到在模拟器先跑一下算法然后再部署到真机的流程吗?
传统工业控制模拟器和具身智能模拟器如何PK?
可否介绍一下现在常见的这些物理引擎的特点?
3D生成和模拟器
SAPIEN特点介绍
Manipulation和locomotion模拟器选择上有什么不同?
一些想法
聊一聊“Sim”(下)——Simulately作者访谈
在查阅机器人模拟器资料的过程中,我看到了一个叫Simulately的开源项目,一个由AI机器人领域的青年学者发起的机器人模拟器开源项目。我也非常有幸邀请到参与Simulately开源项目的两位青年学者秦誉哲和耿浩然做了访谈,解答了我的很多关于机器人模拟器生态、开发难度、Sim2Real Gap、强化学习和模仿学习对比和融合等问题,我也将访谈过程中的一些话题整理出来,希望可以让大家对机器人simulation有更直观的理解。在进入正式的访谈话题之前,我们先简单介绍一下两位受访者。
秦誉哲是加利福尼亚大学圣地亚哥分校(UCSD)的博士生,现为四年级,由王小龙教授和苏昊教授共同指导,本科毕业于上海交通大学机械工程学院。他的研究领域涉及使用五指手进行灵巧操纵、3D感知以及强化学习(RL)和模仿学习(IL)两方面。此外,他对创建逼真的机器人仿真环境以及在这些仿真环境中训练的机器人策略如何转移到真实硬件上也很感兴趣。
他的代表工作包括基于触觉的灵巧操作Robot Synesthesia和Rotating without seeing,遥操作和模仿学习相关的工作AnyTeleop、DexMV、From one hand to Multiple hands等,基于RL的灵巧操作DexPoint。他也是机器人模拟器SAPIEN的主要作者之一。我之前的一个关于机器人灵巧操作的文章引用了Yuzhe几个工作将机器人的手牵向人类的手:灵巧操作华人论文综述
耿浩然是北京大学图灵班20级本科生,2023年北京大学年度人物,他于大一结束开始了解科研,随后加入前沿计算研究中心王鹤老师的具身智能与交互实验室进行本科生科研实习,他科研成果突出,在 CVPR、ICCV、ICRA 等国际顶级会议和期刊上共发表8篇论文,其中两篇代表作更是以一致满分的评审成绩分别入选了 ICCV 最佳论文入围奖和 CVPR 亮点论文。他同时是斯坦福大学的研究访问学生和北京智能通用人工智能研究院(BIGAI)的研究实习生。
他的代表工作包括获得了ICCV 2023 Best Paper Finalist的UniDexGrasp++,以及GAPartNet (CVPR 2023 Highlight)等工作。他也是Simulately这个机器人模拟器开源项目的发起人之一。看了浩然的履历,我不禁感慨,这个年轻小伙子真是太厉害了,作为本科生科研成果如此丰硕,实在佩服。
这次访谈总共的时间是两个小时,Haoran因为其他会议只参与了前半程的访谈。我作为一个外行问了很多很基础的问题,两位学者也不厌其烦的给于解释。原计划把访谈做成播客,奈何业务不熟加上准备仓促,最初的30分钟访谈竟然没有录上,网络情况也有些卡顿。尽管如此,这次访谈对理解机器人模拟器行业也是非常好的资料,希望大家可以从中获得有用的信息。
如果想直接收听访谈,可以点击一下链接,或者小宇宙搜索SOTA!
1. 为什么做Simulately这样一个开源项目?
Haoran:在机器人研究和开发过程中不同的模拟器有着各自不同的生态系统、API、用户和支持功能,底层架构和深层次的性能以及在不同任务上的表现都有差异。我们自己在开发的时候会遇到很多问题,这些问题对其他人也是共通的,因此希望通过一个开源项目,将大家共同关心的问题呈现出来,提供一个信息共享和经验互相分享的平台,帮助开发者更快地解决问题,特别是在初学阶段可能遇到的困难。
Yuzhe:在学术会议上他经常与大家讨论,发现问题并不在于如何使用一个模拟器,而更多地涉及到当面临问题时应该选择哪个模拟器。尽管每个模拟器都有详细的说明,但目前缺乏一个跨模拟平台的文档,可以告诉大家各个模拟器的优劣,并提供不同模拟器之间一些通用的知识。
2. 目前机器人模拟器的生态是一个什么现状?
Haoran:目前有很多不同类型的模拟器,不同的团队可能有不同的偏好,每个团队也有一些自己开发的新模拟器。整体来说,这是一个繁荣的生态,但也面临着选择复杂、多元的现状。我们可以大致将其分类,例如像Isaac Sim和Isaac Gym等广泛使用的通用模拟器,它们具有较强的通用性和繁荣的生态,基于PhysX物理引擎,提供了丰富的接口,可以实现各种任务,如强化学习或基于模型的学习。另一个大类别是一些针对特殊材质物体的模拟器,如支持流体、软体布料等的模拟器。所以整体上来说,我们可以把模拟器分成通用模拟器和一些特定领域的模拟器。
Yuzhe:我们讨论的模拟器,具体来说是为具身智能应用提供服务的模拟器。在人工智能时代的早期,已经存在一些模拟器,例如早期用于有限元仿真的Ansys和多物理场耦合的Comsol。由于这些模拟器的速度和应用场景的限制,它们并没有直接应用到具身智能这个community里,核心原因是他们对精度要求过高,但速度又太慢。
目前的机器人模拟器主要也分为两种类型,一种是为强化学习算法服务的,比如Isaac Sim和Isaac Gym等,另一种是为基于模型控制服务的,例如MIT Russ Tedrake组开发的Drake模拟器,它更适合用于最优控制和基于模型的控制(MPC)方法。
从起源来看,服务于具身智能提供服务的模拟器最早来自游戏产业,如Isaac Sim和Isaac Gym和SAPIEN都是基于PhysX这个物理引擎。Unity游戏设计框架也使用了PhysX这个物理引擎。游戏产业对机器人模拟的贡献较大,因为最初速度较快的模拟器主要集中在游戏产业,而传统的机械工业和电子行业的模拟器在速度上较慢,更注重精度,不太适合当前具身智能研究的需求。
3. 做一个好的simulator最大的挑战是什么?
Haoran:模拟器在追求更准确和更真实的渲染时,通常需要牺牲速度和采样效率。对于强化学习等任务,采样效率可能是关键,而对于一些需要真实渲染的领域,如视觉和模仿学习,渲染质量可能更重要。因此,在不同的研究中,关注的特性可能不同。从研究角度来看,使用复杂度和友好程度也是考虑的因素。对于简单的任务,可能更倾向于使用轻量级、易用的模拟器,而对于需要更深度功能的任务,则可能需要更底层的接口和更复杂的框架。
机器人模拟器当前处于初期阶段,不同的组关注的任务也不同。如果在相同的任务上有一个良好的代码基础,可能更容易进行开发,因此在选择模拟器时可能会偏好具有较好生态和代码基础的模拟器,这可能导致一些选择上的偏见。
Yuzhe:模拟器领域目前百花齐放、没有一个大一统的标准,原因之一模拟器领域是一个兵家必争之地,许多主流模拟器背后都有科技巨头的支持。例如,Isaac系列背后是英伟达,MuJoCo背后站的是Google。这些科技巨头的目标是让模拟器与他们的硬件或编译器紧密耦合,以在自家计算平台上更好地部署(比如Nvidia的GPU,Google的TPU)。不同的模拟器底层的差别没有那么大,但不同科技大厂为避免被其他公司垄断,都在模拟器领域做了不同的工作。
此外,刚体模拟现在算比较成熟,但软体模拟相比刚体模拟仍然是一个蓝海,对于软体模拟的底层方法还没有明确的共识。图形学领域内的仿真专业人士可能更倾向于开发自己的模拟器,因为他们认为其他人写的模拟器算法并不符合他们的需求。这也是模拟器领域缺乏一个大一统标准的原因之一。
4. 强化学习和模仿学习在模拟器选择上有什么不同?
Haoran:在强化学习(RL)和模仿学习(Imitation Learning)中,大家在选择上有很多相似的倾向,因此通常会有一致的选择,在同样的task会选择同样的模拟器。尤其是我个人在RL和IL方面的经验,选择往往是一致的,这样做起来更方便,算法上也更容易。
但从算法本质上来说,RL尤其是Online RL,需要在环境中不断进行交互,通过大量数据学到经验,需要更高的采样效率支持在线策略的快速学习,因此对RL需要运行速度搞的模拟器。对Imitation Learning,关注数据集采集的速度和对数据质量本身的要求,包括渲染的精度,如果需要大规模的数据集也需要运行速度快的模拟器。
Yuzhe:首先要澄清,模拟器本身与模仿学习或强化学习算法没有直接关联。这两个算法最早在一个具体应用中,比如在真实机器人上进行部署,而不需要模拟器。然而,强化学习对数据的数量要求很大,即其采样复杂度很高,真实世界中采集大量数据非常困难。因此,为了解决这个问题,人们转向使用模拟器。
如果我们想在模拟器中训练强化学习算法,就需要解决模拟器和真实机器人之间的鸿沟(Sim2Real Gap)问题。这个鸿沟不容易填补,因此在学术界有一些人对模拟器持谨慎态度,更倾向于直接使用真实机器人数据。然而,由于强化学习的数据复杂度问题,一些研究者更愿意采用模仿学习等策略。
个人研究中,对于相对简单的任务,我更倾向于使用模仿学习,因为人类可以轻松使用遥控器采集数据。对于一些复杂、高动态的任务,真实世界中采集数据可能很困难,因此最好的做法是在模拟器中开始,并尝试将其迁移到真实环境中,这时就需要强化学习的方法。
5. 如何解决Sim2Real Gap的问题?
Haoran:Sim2Real Gap的问题是学术界非常关注的问题。总的来说,Sim2Real Gap的问题大致分为两类:一类是关于视觉的,即外观方面的问题,另一类是物理方面的问题。在这两个方向上,我们都面临一些较大的挑战。
首先,谈到外观,我认为这取决于我们视觉感知的可靠性。由于机器人通常无法直接接触世界,因此它们需要基于视觉或其他传感器来获取信息。以视觉为例,存在一些差距,例如在我从事渲染仿真时,模拟的渲染和真实世界之间可能存在较大差异,尤其是在复杂场景或特殊材料上。这涉及到2D和3D方面的问题,如采样点或深度图的设备问题。在模拟器中,我们可以获得非常真实的深度信息,但在真实世界中,使用的深度传感器可能存在噪声和不准确性,特别是在处理透明、反光等复杂材料时,可能会出现畸变等问题。
要解决这些问题,一方面可以通过优化硬件,将硬件优化到最佳状态。另一方面,在算法设计上,我们可以通过一些技术,如随机化(randomization)来应对这些差距。此外,可以避免一些可能导致差距的点,选择一些好的特征,提前解决问题,并在算法阶段进行一些改进,以提高性能。
对于控制或物理方面,由于模拟器中的物理不同于真实物理,可能也存在问题。在这种情况下,我们可能需要在控制上尽可能避开可能出现问题的复杂物理点。另外,对于控制策略可能有一些特殊要求,比如能否实现自适应性,能否通过某些传感器实现更稳定的控制等。
Yuzhe:Sim2Real Gap的问题是所有从事模拟器工作的人都必须面对一个共同的问题,因为如果不能解决这个问题,模拟器本身的价值就会受到限制。这个问题引起了广泛关注,而解决这个问题的方法主要可以分为三类:构建更好的模拟器、数据增强和寻找切入点。
第一类方法是从源头上解决问题,构建更好的物理仿真器。例如,在深度相机仿真方面,传统方法简单地将渲染得到的物体深度直接用作深度传感器的数据,但也有一些工作采用更贴近真实深度相机原理的仿真,尽管质量有所下降,但差距小。这是一类方法,即源头上做更好的模拟器。
第二类方法是数据增强,即通过增加更丰富的数据,来拉进模拟和真实环境的差距。法是。其核心思想是,如果在模拟器中训练一个深度学习模型,使其能够抓取各种不同属性的杯子(如红杯、绿杯、重杯、轻杯、高摩擦力杯、低摩擦力杯),那么在迁移到真实世界时,该模型更有可能成功地抓取真实世界中的杯子。可以通过物理或光学上的数据增强来减小差距,其中主要的代表性工作是领域随机化(domain randomization)。
第三类方法是寻找一个在模拟器和真实世界之间差距较小的切入点,比如将问题简化,在简化的问题上使模拟器和真实世界趋于一致。比如之前的一个工作"rotating without saying",这种方法通过简化触觉传感器的输出,将其转化为二维信号,即接触与否,来减小模拟器和真实世界之间的差距。另一种方法是寻找在模拟器和真实世界之间差距较小的切入点,例如通过利用导数信息,使差异减小到相对较小的范围。
6. Sim+RL和Real data+IL哪条路径更可能最终解决通用机器人问题?
Yuzhe:目前我最主要的思路是结合使用仿真和真实数据。对于一些简单的仿真任务,例如抓取,在仿真中学到的策略在迁移到真实世界时表现较为成熟。然而,对于一些复杂的接触任务,特别是涉及接触点不断变化的情况,仿真效果并不理想,可能需要一些真实数据。因此,我更倾向于使用模拟器对机器人大模型进行初始化,最终通过在真实世界中微调来学习出最终的策略。我认为未来可能会将这两种方法结合起来,因为基于模拟器的方法有其缺陷,而基于真实数据的方法又受到数据收集成本较高的制约。这两种方法在不同维度上有各自的优缺点,因此有很大可能性将它们结合起来,以解决更大范围的机器人问题。
7. 目前Sim+RL和Real data+IL两条路径结合有什么挑战?
Yuzhe:目前,结合模拟器和真实数据的方法主要是在模拟器中选择一个深度学习模型,然后通过真实数据微调该模型的权重,即参数。这种微调的前提是将模拟器视为真实世界的替代品,我们称之为“zero shot”。然而,我认为这个假设存在一些问题,特别是在考虑模拟器在模仿学习中的作用时。我们希望实现零迁移的情况,即模拟器对于模仿学习可能还有其他作用。我们最近的一篇论文讨论了在真实世界和模拟器中采集数据,利用模拟器的优势进行大规模数据增强,以获得更具泛化性和鲁棒性的深度学习策略。目前,考虑模拟器在模仿学习中的切入点仍然是一个主要难题,这个领域的工作相对较少。大多数从业人员倾向于在真实机器上进行模仿学习,而模拟器的探索仍然相对有限。我相信在未来几年,包括我自己周围的研究人员将会更加探索这个方向。
8. 为什么Anyteleop这类遥操作会把手部动作映射到模拟器中?
Yuzhe:通常在模拟器中进行数据收集的工作相对较少。AnyTeleop为什么会做在模拟器里收集数据的动作,我之所以这样做,是因为我在英伟达实习,这是一家强调模拟器的公司。从科研角度来看,我计划将模拟器和真实数据结合起来进行模仿学习。因此,我希望我的系统能够在模拟器和真实世界中都得到应用。这样我就可以同时收集模拟和真实的数据,并对比协调这两种不同来源的数据,以制定更强大的策略。需要指出的是,大多数从事遥操作的人通常不考虑使用模拟器,而是直接在真实环境中采集数据。
9. 模仿学习不经过模拟训练直接部署到机器人上如何解决安全性的问题?
Yuzhe:这个问题是普遍存在的。直接在没有经过模拟器验证的情况下进行机器人部署可能存在一些潜在危险。为了规避这些危险,通常在硬件层面采取一些预防措施。例如,如果机械臂电流过大,会设置过电流保护或者配备保险。目前,这些安全措施大多数是由硬件厂商实现的,而不是由算法来确保。
10. 模仿学习会涉及到在模拟器先跑一下算法然后再部署到真机的流程吗?
Yuzhe:模仿学习的数据如果来自真实数据,通常不会用到任何模拟器。但在过去的一年里,一些公司和实验室,包括我们自己的实验室,开始研究在真实机器人数据上训练的模型是否能够反过来在模拟器中实现功能,这被称为real2sim。现在越来越多的人也关注这个问题,主要是因为这样可以更快速地在模拟器中验证模型,特别是当实验室没有真实机器人可用时。例如,谷歌开源了其RT1机器人的所有数据,但如果我没有谷歌的机器人和硬件设备,我无法验证这些数据在真实机器人上的效果。因此,人们尝试找到方法,使在真实机器人数据上训练的模型能够在模拟器中部署,以便进行测试和理解其性能。
11. 传统工业控制模拟器和具身智能模拟器如何PK?
Yuzhe:传统控制模拟器和具身智能模拟器各自有各自的优势,适用于不同的场景。例如,像我们提到的具身智能模拟器更注重速度,虽然在接触点建模方面可能不够精细,但非常适合个人用户或实验室用户,只需一块显卡就能进行训练。另一方面,像MIT Russ Tedrake教授开发的Drake模拟器,速度较慢,但在接触点建模方面更为精细,适用于最优控制等场景。
进一步延伸,机器人模拟器和一些基础力学的模拟器,如分析材料在一定力下是否变形的模拟器,都有各自的价值。它们在不同维度上强调速度和精度的权衡,各自有不同的定位。它们之间不是完全竞争的关系。我相信在未来,随着算力的不断发展,这些模拟器可能会更加融合或趋向一统,但仍然需要依赖硬件,尤其是计算硬件和云技术的发展。
12. 可否介绍一下现在常见的这些物理引擎的特点?
Yuzhe:Gazebo这个模拟系统与ROS强耦合,通常来说它的目标客户主要是熟悉ROS并且喜欢使用ROS的用户。这也解释了为什么有许多不同的模拟器,因为它们的目标客户不同。计算机视觉方面的研究人员,可能更倾向于使用Isaac Sim这类模拟器,因为它天然为Torch用户设计。另外,刚才提到的Drake模拟器最初是为最优控制而设计的,因此控制领域的人可能更喜欢这种程序设计,使用这个模拟器时会更得心应手。
13. 3D生成和模拟器
Yuzhe:3D生成本身并不依赖于模拟器,3D生成可以为模拟器提供服务,模拟器是3D生成的下游。在模拟器中需要模拟很多3D模型和物体,而最早这些模型通常由艺术家手工建模,成本较高且培养艺术家的成本也昂贵。因此,人们开始考虑如何利用由AI生成的模型来丰富模拟器的内容,使其更强大。这就是为模拟器提供环境和素材的方法。
目前有研究者致力于生成3D物体和场景,将这些生成的素材与机器人模拟器结合起来,构建完整的模拟器。大多数生成的3D素材以通用格式(如Mesh)储存,并且目前主流模拟器都能够导入这类外部文件,因此没有出现点对点适配的问题,大家都能够使用和生成这些Mesh格式的素材。
14. SAPIEN特点介绍
Yuzhe:SAPIEN作为一个开源模拟器有两个主要优势,首先,它是一个完全开源的生态系统,与Isaac Sim等其他商业模拟器不同,用户可以访问和查看源代码。这使得用户能够理解实现细节,解决问题时能够查看源码。用户也可以根据需要对开源代码进行修改,添加一些模拟器原本不提供的功能,使其更符合个人需求。这是与封闭源代码的模拟器相比的独特优势。其次,这个模拟器相对轻量且易于部署,安装过程简便。与其他模拟器相比,它不限制必须在装有NVIDIA显卡的计算机上部署,甚至适用于AMD等其他计算硬件,这使得用户更加灵活地选择使用硬件,提高了使用便利性。
15. Manipulation和locomotion模拟器选择上有什么不同?
Yuzhe:在足式机器人或手部操作方面,目前主流的模拟器主要分为刚体模拟器和软体模拟器两类。对于四足、双足或手部操作,并没有特别大的区别。这些模拟器可以同时模拟不同类型的操作,因为它们主要集中在刚体模拟上。目前,大多数模拟器的选择并不会因为特定的机器人类型而有很强的偏好。许多人在选择模拟器时可能是基于前辈的源代码使用经验,而非出于独立选择。比如,最早的一些工作在双足领域更倾向于使用Isaac Gym模拟器,因此社区中很多人也会选择使用Isaac Gym。比如,我们组的很多工作是操作,如果大家要follow我们组的工作,就可能要在SAPIEN的模拟器上进行。对于新手来说,从头搭建一个模拟环境可能会很困难,因此更倾向于使用已有的环境。这也是因为模拟器的门槛较高,而提供更多教程可能有助于降低这个门槛。
除了上述内容,我和作者还请教了关于Isaac Sim和Isaac Gym的区别,以及作者对触觉对灵巧操作必要性的看法。如果对访谈的详细内容感兴趣可以去我的小宇宙播客SOTA!收听。
References:
https://yzqin.github.io/#research
https://touchdexterity.github.io/
https://geng-haoran.github.io/
https://simulately.wiki/docs/
https://pku-epic.github.io/UniDexGrasp++/
原创不易
快来戳一下”关注“给些鼓励吧!
欢迎“点赞”“打赏”“在看”三连!
微信扫码关注该文公众号作者