模拟器介绍、仿真环境、资源格式转换、任务生成、远程遥操方式--来自RoboVerse

1. 模拟器

1.1 模拟器概述

在机器人领域,模拟器扮演着重要角色。它就像机器人的子宫,负责在“出生”到真实世界前对其行为进行训练和测试。因此,模拟器的功能对于机器人应用的成功至关重要。

用户根据具体场景对模拟器有不同需求:有的需要进行照片级真实感渲染的任务,有的则需要为高效强化学习设计的大规模并行场景。上述需求都会影响模拟器的选择。

为减轻用户熟悉新模拟器的痛苦,我们将多款模拟器集成至 ROBOVERSE 平台,并在表 VI 中列出了目前支持的模拟器及其规格。统一接口下切换模拟器,用户无需学习多套 API 或配置。
在这里插入图片描述
2025.6.14 GitHub 上的 isaac-sim/IsaacLab 仓库明确标注并开源。2025.6.17,最新 2.2 版已发布为开源开发者预览,并与 Sim 5.0 完全集成

由于物理仿真和渲染的复杂性,现有模拟器尚无法完美再现真实世界。他们的实验揭示了当今模拟器在基本物理定律方面的一些常见问题。他们在三款模拟器中针对三条基本物理守恒定律进行了实验。从图 14 中的结果可见,这三款模拟器均未能严格保持基本守恒定律。
在这里插入图片描述
然而,不同模拟器在不同实验设置下表现各异,这表明我们需根据具体任务需求选择更合适的模拟器以获得更准确的结果。这凸显了需要一款工具来帮助用户在模拟器间轻松迁移任务的必要性。

1.2 各模拟器后端支持

Isaac sim

Isaac Sim 是 NVIDIA 开发的先进机器人仿真平台。通过高保真物理、GPU 加速和照片级渲染,它可在虚拟环境中快速进行 AI 驱动的机器人解决方案的原型设计、测试和部署。

通过与 NVIDIA Omniverse 框架的无缝集成,Isaac Sim 提供域随机化、传感器仿真和大规模强化学习支持等强大功能,是研究和工业应用的利器。

Isaac gym

Isaac Gym 是为强化学习研究设计的物理仿真环境。虽然仍可下载使用,但官方已停止支持。尽管如此,许多 2024 年前的研究工作(如 hora、humanoid-gym 和 IPC-graspsim)都基于 Isaac Gym 开发。

Isaac Gym 的主要特性包括支持自动凸分解的 URDF 和 MJCF 文件导入、用于管理环境状态和动作的 GPU 加速张量 API,以及多种传感器(如位置、速度、力、扭矩)。此外,还具备运行时物理参数域随机化、雅可比矩阵与逆运动学支持,以及可定制摩擦设置。

MuJoCo

MuJoCo 是一款旨在实时精确模拟复杂机器人系统动态与控制的物理引擎与仿真框架。MuJoCo 名称源自 ‘Multi-Joint dynamics with Contact’,强调其对接触力和多关节动力学高效计算的重视。

该引擎支持摩擦接触模型、自定义执行器和可定制传感器模态等高级功能,使研究人员和开发者能够针对多种机器人形态与任务进行算法原型设计、测试和优化。MuJoCo 的一大优势在于其计算精度,可实现高仿真吞吐量和实时交互式控制。

它支持刚体动力学、关节机构和多种约束,适用于运动、操作和强化学习等任务。此外,MuJoCo 基于 XML 的灵活模型描述简化了仿真环境的创建与修改,为试验新设计提供了简便途径。

MuJoCo 和 Brax 的兼容性提供了一个高速、可微分的流水线,对强化学习至关重要。这种精度、速度和灵活性的强大结合,使 MuJoCo 成为机器人研究和机器学习的首选,尤其适用于高级控制、运动规划和强化学习应用。

Genesis

Genesis 是一款面向机器人与物理仿真研究的综合平台,将多项核心能力统一于单一环境中。其基础是从零构建的通用物理引擎,用于模拟多种材料和物理现象,并无缝集成多种求解器。

在该引擎之上,Genesis 提供快速、友好的 Python 机器人仿真工具包、高效的照片级渲染系统,以及将自然语言提示转换为多模态数据集的数据生成模块。我们利用 Genesis 后端支持 ROBOVERSE 工作流中的加载、仿真和渲染。

SAPIEN

SAPIEN 是一款能够高效模拟和渲染机器人任务的仿真框架。其底层物理引擎采用了 PhysX 。我们在 METASIM 框架中支持了发布版 SAPIEN 2.2。我们在 SAPIEN 的 Handler 类中使用 multiprocessing 库来支持并行环境。

从配置实例化环境时,会派生出指定数量的进程来运行不同环境的仿真。为支持 get_states 和 set_states API,不同环境的数据分发到各个进程,然后收集返回值。

PyBullet

PyBullet 是一款快速且易用的机器人仿真器。在教育与原型验证中广受欢迎,门槛低。它使用自有的物理求解器以实现准确且高效的仿真。

作者在 METASIM 框架中支持了发布版 PyBullet 3.2。采用与 SAPIEN 相同的技术来实现并行环境仿真。

2. 仿真资源的转换

2.1 资源类型

机器人资源来源多样,既有早期研究项目,也有多种软件平台,这就需要一套强健的策略来管理各种文件格式

为了实现跨模拟器的可靠训练,并在整个开发周期内保证数据完整,建立高效、可靠的资源转换流程至关重要。该流程对实现无缝互操作至关重要,可最大限度减少数据丢失或不准确性,并确保元数据与配置在不同仿真环境中的统一应用。

常见资源格式包括(但不限于)MuJoCo 的 XML 控制文件、URDF 文件和 USD 文件。

MJCF:包含物理属性;URDF:ROS 生态广泛支持;USD:高保真场景描述。

机器人仿真中三大主流文件格式:MJCF、URDF 和 USD。它们各自针对不同需求,具备独特功能。这三者在其实时仿真、机器人描述和场景渲染方面各有侧重。

  1. MJCF
    MJCF(MuJoCo 配置格式)在物理仿真中表现极具表现力,可模拟肌腱、执行器和高级关节配置等复杂动力学系统,并内置编译器处理复杂的编译时计算。
  2. URDF
    URDF(统一机器人描述格式)功能相对简单,但因其卓越的跨平台兼容性和对 Isaac Sim、Isaac Gym、MuJoCo、Gazebo 和 PyBullet 等环境的通用适配,已成为行业事实标准,便于机器人模型交换,虽然在并联结构或复杂传感器配置方面有所局限。
  3. USD
    USD(通用场景描述),由皮克斯动画工作室开发,凭借精细的分层系统和变体集在高保真渲染和场景组合方面表现出色,特别适合需要高级视觉效果和协同工作流程的应用,但其物理仿真能力不及专用的机器人格式如 MJCF。

2.2 转换流程

由于仿真流程主要使用 Isaac Sim 渲染,而多数资源原生为 MJCF 格式,因此需要且有利于采用两阶段转换流程(MJCF → URDF → USD)。

此方法将 URDF 作为中间格式,原因有多方面。

  1. 首先,尽管理论上可直接将 MJCF 转换为 USD,但由于 MJCF 在肌腱和执行器等物理属性上功能丰富、USD 缺乏等效表达,直接转换既复杂又易错。
  2. 先转换为 URDF 可以标准化机器人的基础运动学和动力学属性,该格式拥有成熟的转换工具和广泛支持。
  3. 随后将 URDF 转换为 USD 可借助 Isaac Sim 强大的 URDF 导入功能,该功能已过大量机器人应用测试与优化。

这一两阶段流程既能更可靠地转换资源,又能在不同仿真环境中保持必要物理属性和兼容性。

2.2.1 MJCF to URDF

1. Parsing Link, Joint, and Body Information from the MJCF file
他们自行实现了 MJCF→URDF 转换器:先用 MuJoCo 的 MJCF 导入器解析所有内容,再将纹理、碰撞网格和关节信息导出为规范的 URDF 格式。

灵感源自 Genesis,其为每个资源对象搭建自定义类,编码所有关节、纹理和网格信息。然后递归地生成 URDF 中的 body 信息,并对齐所有纹理。为解析 MJCF 文件中的链接、关节与 body 信息,他们利用 MuJoCo 的解析能力将 MJCF XML 加载至 MuJoCo 模型结构。

在解析后的模型上,我们从根 body 开始递归,遍历每个子 body,系统地处理层级结构。针对每个 body,我们提取详细的 link 属性,如名称、位置、姿态、惯性特性及关联几何体。同时,我们解析与该 body 关联的 joint 信息,包括关节类型、运动范围和运动轴向。所有提取的 link 和 joint 数据都以字典结构有序存储。这些字典作为中间表示,以结构化形式保存 MJCF 模型的所有必要信息,方便后续 URDF 转换阶段调用。

2. Aligning Meshes and textures
现有资源库中碰撞网格管理面临挑战,这些资源通常以 .msh、.obj 和 .stl 等多种格式存储。

虽然 URDF 本身支持 .obj 和 .stl 格式,但将 .msh 转为 URDF 兼容格式需要谨慎处理。尽管 MuJoCo 仓库提供了 .msh→.obj 转换工具(通过 MuJoCo 接口解析 .msh 并导出顶点与面信息),但该方法可能导致纹理映射对齐问题。

复杂性源自纹理文件通常以 albedo PNG 存储,它们依赖 .obj 文件中的精确 UV 坐标才能保证贴图对齐。MuJoCo 仓库现有的 .msh→.obj 转换工具对纹理支持不足,可能导致转换后模型的贴图错位问题。

此局限在诸如 LIBERO 等大型机器人框架中尤为明显,静态和关节物体在 .msh→.obj 转换后常出现贴图对齐不一致。幸运地,作者发现许多资源集同时保留了正确 UV 映射的 .obj 网格,通常与 .msh 文件同名或命名为 ‘textured.obj’。

基于此,实现了一套稳健的网格对齐流程,其决策步骤如下:

  1. 首先,系统在 .msh 所在目录查找同名 .obj 文件
  2. 若找到,则直接使用该现有 .obj,确保贴图正确对齐
  3. 若无现有 .obj,系统则执行 .msh→.obj 转换
  4. 在后一种情况下,系统会向用户发出警告,提示可能存在贴图对齐问题

在确定网格格式后,流程将处理好的网格文件映射回 URDF 中相应的 link,既保持机器人体几何表示的完整性,又尽可能保留贴图信息。

3. Building URDF
在完成所有转换后,组装 URDF 的过程十分清晰:我们先处理 link 和 joint,将它们的属性与关系写入 URDF 格式。这种自动化方法为生成 URDF 提供了稳健且灵活的方案,能够兼容多种机器人配置和前述转换步骤中提取的属性。

尽管该流程对大多数 MJCF 有效,但对于某些特殊 MJCF 文件或目录,我们仍需逐案调整转换方案。

2.2.2 URDF to USD

Isaac Sim 提供了一个稳健的 URDF→USD 转换解决方案。该转换流程全面保留了机器人的结构和运动学信息,包括关节层级、几何属性和物理特性。

该实现对复杂机器人描述的转换具有极高保真度,确保关节配置、碰撞几何和视觉表示等所有关键组件都准确编码到最终 USD 文件中。

鉴于 Isaac Sim 转换实现的专有性质,我们在流程中将其作为外部工具使用(通过命令行或 API 调用 Isaac Sim,避免重复造轮子)。该方法既利用了 Isaac Sim 转换工具的可靠性和性能,又确保与我们整体系统架构兼容。

此转换流程是标准机器人格式与我们仿真环境所需高性能 USD 表示之间的关键桥梁。

3. 任务生成

任务生成流程(见图 16)从用户提示开始,提示中描述所需任务的主题或约束条件(例如‘将黄油放入抽屉并关闭’)。
在这里插入图片描述
接下来,系统分两个主要阶段运行,通过调用大型生成模型来完成:

  1. 第一步由语言模型输出任务概要。call_gpt_to_generate_task(): 生成具有抽象概念的任务,该函数向模型请求高层次的任务概述,主要生成:
    • 唯一任务名称(例如‘ButterDrawerTask’)。
    • 简短易读的指令(例如‘将黄油放入抽屉,然后关闭抽屉’)。
    • 场景中出现的机器人和物体候选列表,引用内部资产库(如下所述)。

大型生成模型利用其创作能力,在遵循用户提示的前提下,提出富有创意或语境相关的任务建议。如图 16 所示,模型可能从某一基准中取出‘抽屉’资产,从另一个数据集中取出‘黄油’资产,将二者合并成一个场景构想

  1. 第二步由模型生成具体坐标。call_gpt_to_get_init_state(): 物理布局优化
    在收到概念性描述后,我们再次调用模型,为每个列出的物体指定 x,y 坐标。在第二阶段,用户可在提示中加入最小边界约束(例如桌面边缘范围、物体高度限制),通过少量示例帮助模型生成多样初始状态。

那么资源从哪来呢?资产库:为让生成模型输出与真实数据对齐,我们维护一个资产库(JSON 文件),描述每个机器人或物体的核心属性(例如资源文件路径、默认旋转、尺寸)。上述两大函数会根据需要有选择地从该库中提取资产信息

输入和输出格式:

  • 输入:用户提示(例如‘创建带随机容器和零食的桌面场景’)。流程会加载相关资产定义,并将它们连同提示一起传递给生成模型调用。
  • 输出:合并后的 init_state 或“初始状态”字典,其中包含仿真所需的初始配置:选定的机器人/物体列表、每个项的 x,y,z 坐标,以及文本指令,如图 16 右侧所示。

最终结果可直接加载至 METASIM 环境进行仿真。

4. 远程遥操方式

在机器人遥操作系统中,确保操作灵活且直观至关重要,尤其是在采集大量高质量数据时。在本工作中,我们设计了一套输入方式,以在 METASIM 框架下支持机器人遥操作

通过支持键盘、DualSense 手柄、智能手机和 VR 控制,我们的系统能够满足不同用户偏好和实验需求。本节详细介绍了各控制接口的设计原理、实现步骤和实际使用注意事项。

4.1 Keyboard(键盘)

键盘输入是一种易于使用的仿真机器人控制方式。我们的实现支持多键组合进行斜向移动,并可实现末端执行器的完整六自由度操作。

平移操作遵循世界坐标系(上:+X,下:-X,左:+Y,右:-Y,‘e’:+Z,‘d’:-Z),而末端执行器的局部旋转由 ‘q’/‘w’(滚转)、‘a’/‘s’(俯仰)和 ‘z’/‘x’(偏航)控制。空格键用于开闭夹爪。

为帮助用户并避免与仿真视图热键冲突,我们使用 pygame 提供了一个操作窗口展示使用说明。虽然该方法高效且与硬件无关,但缺乏 3D 空间可视化,降低了用户的直观感受。

此外,基于欧拉角的旋转控制存在万向锁风险,可能导致旋转自由度丢失并在某些姿态下失效。

4.2 Smartphone(智能手机)

现代智能手机配备了先进传感器和无线通信,提供了一种低成本且随处可用的直观遥操作方案。然而,现有基于手机的 6 自由度方法(如依赖加速度计或视觉惯性里程计系统(如 ARKit))因传感器噪声、更新率低或视觉特征不足而存在不稳定性。

此外,目前尚无开源的 Android 应用可用于此类实现。为克服这些限制,我们采用混合方案:利用手机朝向控制运动,用屏幕按钮实现精确平移。不同于键盘界面通过离散按键增量调整滚转、俯仰和偏航,手机直接以四元数形式输出绝对朝向数据。

四元数因紧凑且不会万向锁,可更稳定、准确地表示手机在世界坐标系中的朝向。如图 18 所示,我们融合手机倾斜、旋转和磁场传感器的实时数据,以 50 Hz 频率计算空间朝向,精度达 ±5°。这些数据通过 WebSocket 传输,保证低延迟通信。
在这里插入图片描述
应用界面提供六个按钮用于局部坐标系的平移控制,以及两个开关用于切换朝向更新和夹爪控制。支持多点触控,使用户可发送组合控制信号,如同时沿多轴移动,提高控制灵活性和效率。

如图 19 和图 17 所示,倾斜手机可控制夹爪朝向,多点触控按钮组合可实现 3D 空间中精确且复杂的操控。但为减少磁干扰,用户应与笔记本电脑及其他强磁源保持至少 10 cm 的距离。
在这里插入图片描述
该设计优化了资源利用,以最低成本提供高精度 6 自由度远程操作体验,可媲美专业级遥操作系统。

除了键盘和手机控制,我们的系统还支持 DualSense 手柄和 VR 控制器DualSense 手柄具有人体工程学优势和高保真模拟输入,可对细微速度进行控制,将触发器和摇杆无缝映射到机器人运动。

5. 用于资源与任务生成的 Real2Sim 工具集

Real2Sim 工具集中的 Video2URDF 模块,提供了一套系统化流程,用于从单目视频输入重建环境几何和机器人资源。该流程利用先进的重建技术,生成可用于仿真实验的网格模型和统一的机器人描述文件。

通过此法,它有助于填补真实数据与仿真环境之间的鸿沟,从而支持更精准、更全面的基准测试。

流程的第一步是 Gaussian splatting,将单目视频帧转换为一组高斯核以供渲染,这种表示紧凑高效,能捕捉场景深度、颜色和碰撞边界等关键信息。因此它可生成真实感预览,并作为网格重建前的中间环节。

在高斯表示得到高层结构后,我们利用 TSDF 提取技术进行网格重建,以获取更精细的几何模型。该步骤重建以下部分的网格:

  • 环境,包括刚体且不可移动的结构(例如桌子)。
  • 可操作物体,即任务中的目标对象。
  • 机器人臂及末端执行器,假设在真到虚及虚到真的转移过程中其配置是确定的。

结合视觉-语言模型(VLM)和现有 CAD 设计信息,为这些组件生成统一的 URDF(或 MJCF)描述。该工作区划分遵循 cuRobo 中的 worldconfig 概念,确保场景中各元素(机器人、对象、环境)清晰分离,便于按需替换或调整。

生成 URDF(或 MJCF)文件后,最后一步是将其导入模拟器,例如 ROBOVERSE 中的 MuJoCo 。这使研究者能够配置准确反映真实场景的任务,构建用于训练和评估机器人操作算法的基准。生成的模拟环境具备高保真几何和一致的物理工作空间表示。

他们在 real2sim 模块上训练模型,并与 DexGraspNet 对比,展现出 80% 的成功率,相较 DexGraspNet 的 50% 基线有显著提升。在基于物理的仿真中使用 real2sim 生成的资源,以高度还原真实抓取条件,从而实现稳健的抓取执行。可参见图 20 进行可视化展示。
在这里插入图片描述
虽然 Real2Sim 流程能有效重建大部分相关几何,但对于全新网格和复杂材质属性存在挑战。此外,仅凭视觉数据难以准确估算摩擦系数和质量等参数,会引入不确定性,影响仿真精度。

尽管存在这些挑战,Real2Sim 仍是一种强大方法,可快速生成仿真资源,用于机器人操作任务的基准测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值