在这项研究中,斯坦福视觉与学习实验室(SVL)Silvio / 李飞飞组的研究者推出了一个全新的模拟环境 iGibson,从而可以为大型真实场景中的交互任务开发机器人解决方案。iGibson 包含 15 个充分可交互、视觉上逼真、依据真实房屋构建的场景,并且可以支持 CubiCasa5K 和 3D-Front 的 8000 余个场景。真正实现了「可交互性」。

15个可交互的真实房屋场景,李飞飞组开源大型室内场景模拟环境

近来,面向 AI 和机器人的模拟环境得到了大力发展。仅仅几年前,机器人模拟环境还算是相对稀有的产物,但如今,各大学术会议(NeurIPS、CoRL、甚至 ICRA 和 IROS)几乎所有与 AI 机器人相关的论文都会用到模拟环境。那么,模拟环境是如何帮助到 AI 发展的呢?可以归结为以下几点原因:

首先,在机器人领域,机器学习正逐渐发挥越来越大的作用,从而导致了数据需求的迅猛增长 [2] [3] [4] [5]。现实世界中,机器人只能“real-time” 即时地产生数据,但海量的数据需求导致了从现实世界收集数据变得不现实。此外,机器学习需要收集的数据具备多样性,涉及到机器人的随机探索(random exploration)。如果在现实世界中让机器人随机活动,对机器人本身和周遭事物都是有挺大风险的。

其次,在模拟环境变得越来越 robust、逼真(视觉效果和物理引擎)、便捷的同时,算力的增长也导致了大部分机器都可以运行这些模拟环境。因此即便没有足够的资金来购置机器人,也可以通过模拟环境来从事机器人研究。模拟环境降低了机器人研究的准入门槛,让更多的人能推进该领域的发展。

最后,随着关于各种机器人任务(例如导航、抓握、操作等)的论文数量不断增长,一个问题也日渐凸显:机器人领域需要可复现的基准(repeatable benchmark)。一个成熟的学科需要能简洁、可靠地复现实验结果,这样才能让不同的方法理论得到有效地对比。与现实世界相比,在模拟环境中实现可复现的基准要容易许多。

然而,当前结合物理模拟与机器人任务的模拟环境往往局限于一小类任务,并且仅包含 clean 和小型场景。包含家庭和办公室等大型场景的少数模拟环境要么无能力改变场景,仅侧重于导航性能,如 Habitat;要么使用游戏引擎或者简化的交互模式,如 AI2Thor、VirtualHome。所以,在处理那些需要与场景进行丰富交互的任务而言,这些模拟器不支持端到端感觉运动控制回路的开发,也就难以完成此类任务。此外,简化的交互模式也导致很难将可学得的交互策略转换为可执行的真实机器人指令。

基于如上这些想法,来自斯坦福视觉与学习实验室(SVL)的研究者开发了 iGibson 以用来训练和测试 interactive(可交互的)AI 智能体 iGibson。

那么,iGibson 的特殊点在哪里呢?首先我们先来区分一下这两个概念:

Physics simulator (物理引擎): 物理引擎可以计算不同行为对现环境产生的物理影响。比如对一个物体施加一个力的后果,或者对于水流的模拟。随着计算机图形学的发展,现在有许多成熟的物理引擎。其中在机器人领域最为突出的是 Bullet, PyBullet, MuJoCo, Nvidia PhysX and Flex, UnrealEngine, DART, Unity, and ODE 等。

Simulation environment (模拟环境): 模拟环境是一个整体框架,包含多个元件:物理引擎、渲染引擎、模型(包括场景、物体、机器人)等。我们可以用模拟环境模拟一个给定的任务,并用它来研究其解决方案。

那么,对一个研究人员而言,想解决什么任务或想研究什么课题就决定了用什么模拟环境,所谓工欲善其事,必先利其器。对 iGibson 而言,我们想研究的是:基于视觉信号,机器人如何在大型真实场景(如一整间公寓)中解决需要与环境互动的任务。

论文链接:https://arxiv.org/pdf/2012.02924.pdf

项目地址:https://github.com/StanfordVL/iGibson/releases/tag/1.0.0

网站地址:http://svl.stanford.edu/igibson/

pip 地址:https://pypi.org/project/gibson2/

doc 地址:http://svl.stanford.edu/igibson/docs/

英文版 blog 地址:https://ai.stanford.edu/blog/igibson/

与现有模拟引擎的对比

已有的模拟引擎无法支持我们想研究的任务,即可以真实地在大型场景中进行物理互动。基于固定机械臂的模拟环境(如 meta-world, RLBench, RoboSuite, DoorGym)并不包含真实的场景,从而不支持需要在室内导航的任务。为室内导航开发的模拟环境(包括我们之前开发的 Gibson v1 和 Habitat)虽然可以解决视觉导航(visual navigation)和视觉语言导航(visual language navigation),但所包含的场景为三维重建的静止 mesh 模型。这意味着整个场景被封存在了重建时的位置,物品无法移动,机器人也不能与场景进行交互。

除此之外,例如 Sapien, AI2Thor, ThreeDWorld (TDW)的一些模拟环境开始逐渐支持场景级的交互任务。Sapien 侧重的问题是与铰接(articulated)物体的互动(如门、柜等)。TDW 提供高质量的声音、形变、液体模拟(基于英伟达的 Flex 物理引擎)。但 Sapien 和 TDW 均不提供大型场景模型,从而不支持有关大型场景的任务研究。AI2Thor 虽包含了可互动的场景,但互动为脚本化的符号交互,把现实中连续的互动和变化离散化了—当物体满足一个先觉条件,agent 可以发出一个指令,从而这个物体进入其下个状态。例如,一个冰箱的敞开程度本应是连续值,但现在只有 “开” 和“关”两个状态。AI2Thor 之后出现了 RoboThor,但其只提供简单的传感器与一种机器人 LoCoBot 的模拟。受限于 LoCoBot 的技术限制与环境的离散化,机器人无法在模拟环境内学习并解决复杂的交互任务。

我们想要研究的任务是复杂的、long-horizon(长线)、 mobile manipulation(移动操作)任务,例如:收拾房间、找寻物品等。为了研究可以落地到现实世界的解决方案,模拟可真实交互的大型场景变得尤为重要。

15个可交互的真实房屋场景,李飞飞组开源大型室内场景模拟环境

iGibson 的一些功能

iGibson 最重要的功能是 interactivity(可交互性),即构建可以真实交互的大型场景。为此,我们实现了如下关键功能:

15 个充分可交互、视觉上逼真、依据真实房屋构建的场景。其中所有物体可真实交互,包含了材料与动力学信息;

可支持 CubiCasa5K[6]的 8000 余个场景。

15个可交互的真实房屋场景,李飞飞组开源大型室内场景模拟环境

真实的传感器信号模拟,包括:RGB (基于物理渲染引擎(Physics-based renderer)),深度图,1 束或 16 束的激光雷达,语义 / 实例 / 材料分割图,光流,场景流等;

内置运动规划算法,用于规划机器人底座的移动(在环境中导航)与机械臂的移动(抓取操纵物体)。

15个可交互的真实房屋场景,李飞飞组开源大型室内场景模拟环境

内置域随机化功能,可随机替换 visual textures (视觉图像)、材料与动力学信息、物体实例。由此,我们可以产生出无穷无尽的随机环境用于训练与测试。

人机交互系统,可为机器人提供人工示范。

iGibson 功能的一些应用

我们在论文中展示了这些功能的用处,例如:iGibson 的光学雷达模拟可以帮助 agent 迁移到真实场景。

iGibson 场景的充分可交互性可以帮助预训练机器人视觉,从而加速机器人学习并完成复杂的交互任务。

用 iGibson 解决更复杂的机器人任务

上述的 iGibson 功能能帮助人们更好的开发大型场景交互任务的解决方案。我们认为,其中一个很重要的问题是 Interactive Navigation (交互导航)。在这个任务中,agents 不仅需要导航,也需要改变其环境(如开门、移开障碍物)。这种需要改变环境的导航是在现实场景中最常见的。

为了在 iGibson 模拟环境中解决这个任务,我们开发了一套分层强化学习(hierarchical reinforcement learning)算法来决定 agent 的具体动作(当需要交互时用机械臂,当需要移动时用底座,也可同时利用机械臂和底座 [8]。

此外我们也提出了一个结合了运动规划算法的解决方案:算法来指定下个交互应该在何处发生,运动规划会基于此计算一条符合运动学且避障的轨迹 [9] 。

但我们认为这只是 iGibson 潜力的冰山一角。目前我们实验室 SVL(Stanford Vision and Learning Lab)有许多的项目在使用 iGibson,来提出、攻克各种各样的交互任务。

总结

我们认为模拟环境有极大的潜力来帮助研究人员解决机器人与 AI 的各种问题。iGibson 是一个完全开源的、面向大型场景交互任务的模拟环境。我们真心希望 iGibson 能为机器人与 AI 的研究做出贡献。

注:关于 Gibson: iGibson 的名字来源于心理学、认知科学泰斗 James J. Gibson [1904-1979]。Gibson 生前提出了许多开创性的想法,包括关于知觉的新概念:

知觉是一个生态(ecological)的过程,即本体不应从其所处的生态环境中剥离出去;

知觉是一个动态(active)的过程,即知觉需要交互和主观能动性。

在当时,主流学说认为知觉是一个被动接受并处理的过程。Gibson 的观点则相反,认为 agents 是在与环境的交互中主动寻求、而不是被动接受信息。Gibson 也提出了 “affordance”(承担特质)的概念:环境给予 agent 的行动可能,例如门提供“打开” 的功能,椅子提供 “支撑” 的功能。我们同事是这样概括 Gibson 先生的 research 的:“ask not what’s inside your head, but what your head is inside of” (不要光注重于你脑中的世界,请着眼于你所处的世界)。