← 论文海报合集← Paper Notes|
CVPR 2020 · 机器人仿真CVPR 2020 · Robotic Simulation

SAPIEN: A SimulAted Part-based Interactive ENvironment

首个支持大规模关节体的物理仿真环境,为机器人感知与交互研究提供基础设施The first physics simulation environment supporting large-scale articulated objects, providing infrastructure for research on robotic perception and interaction
Fanbo Xiang, Yuzhe Qin, Kaichun Mo, Yikuan Xia, Hao Zhu, Fangchen Liu, Minghua Liu, Hanxiao Jiang, Yifu Yuan, He Wang, Li Yi, Angel X. Chang, Leonidas J. Guibas, Hao Su  ·  UC San Diego / Stanford / Simon Fraser / Google Research / UC Los Angeles

SAPIEN 是一个真实物理感知的仿真平台,集成了 46 个物体大类、14,068 个关节体模型(PartNet-Mobility 数据集),提供完整的 PhysX 物理仿真、ROS 接口以及 Python API,支持机器人感知(部件检测、运动属性估计)和交互(启发式控制、强化学习)研究。SAPIEN is a realistic and physics-rich simulation platform that integrates 46 object categories and 14,068 articulated object models (the PartNet-Mobility dataset), and provides full PhysX physics simulation, a ROS interface and a Python API, supporting research on robotic perception (part detection, motion attribute estimation) and interaction (heuristic control, reinforcement learning).

CVPR 2020 Physics Simulation Articulated Objects arXiv:2003.08515 Project Page
机器人仿真Robotic Simulation 关节体Articulated Objects PartNet-Mobility 部件感知Part Perception articulated objects robotic simulation part segmentation PhysX 强化学习Reinforcement Learning 物体操作Object Manipulation

01 动机Motivation

构建家庭辅助机器人一直是视觉与机器人领域的核心追求。机器人要完成开冰箱、拿取物品等日常任务,就必须能够感知并操作具有可动部件的关节体(如门、抽屉、水龙头)。然而现有仿真环境在物理真实性、关节体规模和向真实机器人的迁移能力上均存在明显不足。Building household assistive robots has long been a central pursuit of the vision and robotics communities. To accomplish everyday tasks such as opening a refrigerator or fetching an object, a robot must be able to perceive and manipulate articulated objects that have movable parts (e.g., doors, drawers and faucets). Existing simulation environments, however, fall clearly short in physical realism, in the scale of articulated objects, and in transferability to real robots.

"We take one step further in constructing an environment that supports household tasks for training robot learning algorithm. Our work, SAPIEN, is a realistic and physics-rich simulated environment that hosts a large-scale set for articulated objects."
SAPIEN robot-object interaction
图 1. SAPIEN 中的机器人-物体交互示例。上方为整体场景的光线追踪渲染,下方展示机器人摄像头视角输出:RGB 图像、表面法线、深度图以及运动部件语义分割图——机器人正在学习操作一台洗碗机。Figure 1. Examples of robot-object interaction in SAPIEN. Top: ray-traced rendering of the whole scene. Bottom: outputs from the robot camera viewpoint — RGB image, surface normals, depth map and semantic segmentation of the movable parts — the robot is learning to operate a dishwasher.
46关节体物体大类Articulated object categories
14,068PartNet-Mobility 模型数PartNet-Mobility models
2,346带运动属性标注的模型Models with motion attribute annotations
~5000Hz仿真器最高运行频率Peak simulator frequency

为什么需要 SAPIEN?Why is SAPIEN needed?

现有仿真环境(OpenAI Gym、RLBench、DeepMind Control Suite 等)普遍存在以下问题:Existing simulation environments (OpenAI Gym, RLBench, DeepMind Control Suite, etc.) commonly suffer from the following problems:

如表 1 所示,与 Shape2Motion、RPM-Net、Hu et al. 等已有部件数据集相比,SAPIEN 以 46 类、2,346 个模型(14,068 个可动部件)显著领先,且提供丰富的纹理和真实渲染效果。As shown in Table 1, compared with existing part datasets such as Shape2Motion, RPM-Net and Hu et al., SAPIEN leads by a clear margin with 46 categories and 2,346 models (14,068 movable parts), and it also offers rich textures and realistic rendering.

02 方法Method

SAPIEN 围绕三个核心模块构建:SAPIEN Engine(基于 PhysX 的物理仿真)、SAPIEN Renderer(支持 OpenGL、光线追踪的渲染器)和 SAPIEN Asset(PartNet-Mobility 数据集及机器人模型库)。三者通过统一框架集成,提供 Python API 和 ROS 接口。SAPIEN is built around three core modules: SAPIEN Engine (PhysX-based physics simulation), SAPIEN Renderer (a renderer supporting OpenGL and ray tracing) and SAPIEN Asset (the PartNet-Mobility dataset together with a robot model library). The three are integrated in a unified framework that exposes a Python API and a ROS interface.

SAPIEN Simulator Overview
图 2. SAPIEN 仿真器总览。左侧为 SAPIEN Renderer,接受场景信息,输出自定义着色和场景信息(RGB-D 及语义分割)。中间的 SAPIEN Engine 集成了 PhysX 物理仿真和 ROS 控制接口,支持多种机器人动作与功能。右侧的 SAPIEN Asset 包含大规模的 PartNet-Mobility 数据集,提供部件级可仿真模型。Figure 2. Overview of the SAPIEN simulator. Left: SAPIEN Renderer takes scene information and outputs customized shading and scene information (RGB-D and semantic segmentation). Middle: SAPIEN Engine integrates PhysX physics simulation and a ROS control interface, supporting a variety of robot actions and functionalities. Right: SAPIEN Asset contains the large-scale PartNet-Mobility dataset and provides part-level simulatable models.

SAPIEN Engine — 物理仿真核心SAPIEN Engine — Physics Simulation Core

SAPIEN 使用开源的 Nvidia PhysX 4.1 提供精确的关节体物理仿真,支持机器人操作系统(ROS)。提供三种关节体类型:kinematic joint system(运动学关节,提供运动对象约束)、dynamic joint system(动态关节,模拟受力变化)以及 PhysX articulation(关节铰链)。仿真器可在单核上以约 5000Hz 运行,使用 OpenGL 渲染约 700Hz,支持同步与异步两种运行模式,后者允许仿真与客户端算法独立运行。SAPIEN uses the open-source Nvidia PhysX 4.1 to provide accurate physics simulation of articulated objects and supports the Robot Operating System (ROS). Three joint types are offered: kinematic joint system (kinematic joints, which impose constraints on moving objects), dynamic joint system (dynamic joints, which model force-driven changes) and PhysX articulation (articulated hinges). The simulator runs at about 5000Hz on a single core, and at about 700Hz when rendering with OpenGL; it supports both synchronous and asynchronous modes, the latter allowing the simulation and the client algorithm to run independently.

SAPIEN Renderer — 多模态渲染SAPIEN Renderer — Multi-modal Rendering

SAPIEN Renderer 支持 OpenGL 4.5 和 GLSL,提供 RGB 图像、深度图、法线图以及语义分割图的同步输出。还集成了基于 OmniNavi diffuse model 的 GGX specular model,并通过将 OpenGL 替换为 Nvidia OptiX 光线追踪引擎,以较低渲染速率(约 1 帧/步)生成高质量照片真实感图像(见图 1 上方)。SAPIEN Renderer supports OpenGL 4.5 and GLSL, providing synchronized output of RGB images, depth maps, normal maps and semantic segmentation maps. It also integrates a GGX specular model built on the OmniNavi diffuse model, and by replacing OpenGL with the Nvidia OptiX ray-tracing engine it produces high-quality photorealistic images at a lower rendering rate (about 1 frame per step; see the top of Figure 1).

PartNet-Mobility 数据集 — 大规模关节体资产PartNet-Mobility Dataset — Large-scale Articulated Object Assets

SAPIEN Asset 提供 PartNet-Mobility 数据集:涵盖 46 个物体大类的 2,346 个三维交互模型,每个模型均标注了部件级关节(运动类型:平移、转动)和关节极限。模型使用 URDF 格式描述,支持 PhysX 物理模拟;接触采用网格分解方案,确保在仿真中精确处理碰撞。针对每个可动部件,还提供了运动限制的相对位置标注(作为 part states),以及针对螺钉等特殊运动的处理(combined hinge+slider = screw)。SAPIEN Asset provides the PartNet-Mobility dataset: 2,346 3D interactive models covering 46 object categories, where every model is annotated with part-level joints (motion types: translation and rotation) and joint limits. The models are described in URDF format and support PhysX physics simulation; contacts adopt a mesh decomposition scheme that ensures collisions are handled precisely in simulation. For each movable part, relative-position annotations of the motion limits are also provided (as part states), together with handling of special motions such as screws (combined hinge+slider = screw).

SAPIEN Enables Many Robotic Interaction Tasks
图 3. SAPIEN 支持的多样机器人交互任务示例(从左至右):水龙头操作(faucet manipulation)、物体抓取(object fetching)、椅子折叠(chair folding)、物品放置(object placing)。每列展示任务的初始状态、中间过程与目标状态。Figure 3. Examples of the diverse robotic interaction tasks supported by SAPIEN (from left to right): faucet manipulation, object fetching, chair folding and object placing. Each column shows the initial state, the intermediate process and the goal state of the task.

机器人接口与控制Robot Interface and Control

SAPIEN 通过 ROS 接口提供传感器数据、控制指令和运动规划能力。在最低层,力和力矩可直接作用于关节,类似 OpenAI Gym;ROS 控制器提供关节空间和笛卡尔坐标空间控制;高层提供基于 MoveIt! 的轨迹规划和逆运动学求解。客户端 API 统一了接口,使仿真机器人与真实机器人使用完全相同的 ROS API,无需额外适配即可部署。SAPIEN exposes sensor data, control commands and motion planning capabilities through a ROS interface. At the lowest level, forces and torques can be applied directly to joints, similar to OpenAI Gym; ROS controllers provide joint-space and Cartesian-space control; at the high level, MoveIt!-based trajectory planning and inverse kinematics solving are available. The client API unifies these interfaces, so that a simulated robot and a real robot use exactly the same ROS API and deployment requires no extra adaptation.

03 实验Experiments

论文在两类核心视觉任务上评估 SAPIEN:Movable Part Detection(可动部件检测)和 Motion Attributes Estimation(运动属性估计),并展示两类机器人交互任务(door/drawer 开合)的启发式方法与强化学习结果。The paper evaluates SAPIEN on two core vision tasks, Movable Part Detection and Motion Attributes Estimation, and presents heuristic and reinforcement-learning results on two robotic interaction tasks (opening and closing doors/drawers).

任务一:可动部件检测Task 1: Movable Part Detection

使用 Mask R-CNN(以 2D RGB 图像为输入)和 PartNet-InsSeg(以 3D RGB-D partial scans 为输入)两种算法在 PartNet-Mobility 数据集上评估。数据集:46 个类别共 2,346 个物体,使用 75%(1,772 个形状)训练、25%(574 个形状)测试;从随机视角采样 20 张 512×512 图像,在仿真中用简单照明渲染(RGB、深度、法线、语义分割图)。评估指标为 per-part-category Average Precision(AP)及全类平均 mAP。Two algorithms are evaluated on the PartNet-Mobility dataset: Mask R-CNN (taking 2D RGB images as input) and PartNet-InsSeg (taking 3D RGB-D partial scans as input). Dataset: 2,346 objects across 46 categories, with 75% (1,772 shapes) for training and 25% (574 shapes) for testing; 20 images of 512×512 are sampled from random viewpoints and rendered in simulation with simple lighting (RGB, depth, normal and semantic segmentation maps). The evaluation metrics are per-part-category Average Precision (AP) and the mean mAP over all categories.

算法Algorithm输入InputCabinetTableFaucetAll mAP
Mask R-CNN2D RGB 62.0 / 94.2 / 66.4 / 27.7 54.3 / 88.0 / 3.4 / 6.3 / 0.0 52.5 / 47.9 / 99.7 / 54.4 / 67.5 53.0
PartNet-InsSegPC (XYZ) 20.6 / 65.9 / 33.1 / 9.8 15.7 / 71.3 / 1.7 / 1.0 60.2 / 58.8 / 99.4 / 42.7 43.8
PartNet-InsSegPC (XYZRGB) 17.6 / 64.3 / 23.6 / 5.0 16.4 / 8.1 / 8.1 / 1.3 / 2.1 / 1.0 29.0 / 64.1 / 78.0 / 42.0 / 63.5 37.1

结果表明:两种方法在检测小型可动部件(如桌脚轮 table wheel 和桌子脚轮 table caster)上表现较差;对具有相对均衡尺寸分布的物体类别(如风扇 fan 和水龙头 faucet)效果更好。The results show that both methods perform poorly on detecting small movable parts (such as the table wheel and the table caster), and work better on object categories with a relatively balanced size distribution (such as the fan and the faucet).

Movable Part Detection Results
图 4. 可动部件检测定性结果。左列:Mask R-CNN 检测结果(每个边界框代表检测到的可动部件);中间与右列:PartNet-InsSeg 的结果(含点云实例分割)及 ground truth(不同颜色代表不同部件)。Figure 4. Qualitative results of movable part detection. Left column: Mask R-CNN detections (each bounding box denotes a detected movable part); middle and right columns: PartNet-InsSeg results (with point-cloud instance segmentation) and the ground truth (different colors denote different parts).

任务二:运动属性估计Task 2: Motion Attributes Estimation

针对关节体的运动属性估计任务,论文考虑两类刚性运动:3D rotation(3D 旋转)和 3D translation(3D 平移)。对平移运动用 3 维向量表示方向;对旋转运动用两个 3 维向量分别表示旋转轴方向和轴上一点的相对位置。评估指标包括:方向差(direction diff)、旋转轴起点差(origin diff)、以及旋转角误差与平移距离误差。For motion attribute estimation on articulated objects, the paper considers two kinds of rigid motion: 3D rotation and 3D translation. Translational motion is represented by a 3-dimensional vector giving its direction; rotational motion is represented by two 3-dimensional vectors giving the direction of the rotation axis and the relative position of a point on the axis. The evaluation metrics include direction diff, origin diff, and the errors of rotation angle and translation distance.

SettingDir (°)↓Orig (cm)↓Rot (°)↓Trans (cm)↓
2D acc, 2D acc7.9476.6243.538.24
2D acc, 5 acc5.4859.3534.057.48
5 acc, 5 acc3.1336.8519.996.41
5 acc, 5 acc + depth2.8435.0918.236.42

实验表明加入深度信息对方向估计和旋转轴定位有明显帮助;增加视角数量(从 2 到 5)显著提升各项指标。The experiments show that adding depth information clearly helps direction estimation and rotation-axis localization, and that increasing the number of views (from 2 to 5) significantly improves every metric.

机器人交互任务Robotic Interaction Tasks

论文在 SAPIEN 中演示了两类机器人操作任务的执行:The paper demonstrates the execution of two kinds of robotic manipulation task in SAPIEN:

04 局限性Limitations

Note: 论文未设立独立的 Limitations 章节。以下局限性部分为作者在论文中明确提及(stated),部分为从设计中推断(inferred)。The paper has no dedicated Limitations section. Some of the limitations below are explicitly stated by the authors, while others are inferred from the design.
关节体物理仿真的精度权衡(stated)Accuracy trade-offs in articulated-object physics simulation (stated)

论文指出,"it is still infeasible to simulate real-world physics exactly, any physical simulator needs to decide the level-of-details and accuracy it operates on." 现有物理仿真无法完全复现真实世界的物理特性,特别是软体和流体(SAPIEN 仅支持刚体关节体)。The paper notes that "it is still infeasible to simulate real-world physics exactly, any physical simulator needs to decide the level-of-details and accuracy it operates on." Existing physics simulation cannot fully reproduce the physical properties of the real world, especially soft bodies and fluids (SAPIEN supports rigid articulated objects only).

小型部件检测性能较差(stated)Poor detection performance on small parts (stated)

论文在实验结果中明确指出:"both methods perform poorly on detecting small movable parts (e.g., table wheel and table caster)",这一现象在真实机器人操作中尤为关键,需要更好的算法设计。The paper explicitly states in its experimental results that "both methods perform poorly on detecting small movable parts (e.g., table wheel and table caster)"; this phenomenon is especially critical for real robotic manipulation and calls for better algorithm design.

仅支持刚体关节体(inferred from design)Rigid articulated objects only (inferred from design)

SAPIEN 的 PartNet-Mobility 数据集仅覆盖家用场景中的刚性可动部件(门、抽屉、水龙头等),不支持软体变形物体(如布料、果蔬)的仿真。这限制了其在更广泛操作任务(如食品处理、衣物整理)中的应用。SAPIEN's PartNet-Mobility dataset covers only rigid movable parts in household scenarios (doors, drawers, faucets and so on), and does not support simulating soft deformable objects such as cloth, fruit or vegetables. This limits its application to broader manipulation tasks such as food handling and laundry tidying.

Sim-to-Real 迁移差距(inferred from design)Sim-to-Real transfer gap (inferred from design)

尽管 SAPIEN 提供光线追踪渲染和 ROS 接口,但仿真图像与真实摄像头图像之间仍存在外观差距(domain gap),可能影响模型在真实机器人上的迁移效果,需要额外的 domain adaptation 方法。Although SAPIEN provides ray-traced rendering and a ROS interface, an appearance domain gap remains between simulated images and real camera images, which may affect how well models transfer to real robots and calls for additional domain adaptation methods.