Isaac Sim Orbit复现

相关信息

  • 标题 Orbit: A Unified Simulation Framework for Interactive Robot Learning Environments
  • 作者 ETH Zurich, NVIDIA, University of Toronto(Mayank Mittal等人)
  • 主页 https://isaac-orbit.github.io/
  • 链接 https://arxiv.org/pdf/2301.04195
  • 代码 https://github.com/NVIDIA-Omniverse/orbit
  • 文档 https://isaac-orbit.github.io/orbit/

简要介绍

这篇论文介绍了一种名为ORBIT的机器人学习统一模块化框架,使用了NVIDIA Isaac Sim技术。
该框架提供了模块化设计,可轻松高效地创建具有逼真场景和高保真刚性和可变形物体模拟的机器人环境。
作者们还提供了一系列不同难度的基准任务,从单阶段的柜门打开和布料折叠到多阶段任务如房间重组。
为了支持不同的观测和动作空间,他们包括了具有不同物理传感器和运动生成器的固定臂和移动机械臂。
ORBIT利用基于GPU的并行化,允许在几分钟内训练强化学习策略和收集大规模的演示数据集。
作者提供了一个开源框架,包括16种机器人平台、4种传感器模式、10种运动生成器、20多个基准任务和对4种学习库的封装。
他们希望这个框架能够支持各种研究领域,包括表示学习、强化学习、模仿学习以及任务和运动规划。
希望这能有助于建立跨学科的合作,并且其模块化设计使其容易扩展到未来的更多任务和应用。

代码复现

Isaac Sim

  • 安装

Isaac Sim的安装和简单使用可以参考我的Isaac Sim系列博客

  • 路径设置
sudo nano ~/.bashrc

随后添加常用路径到bashrc

# Isaac Orbit
# Isaac Sim root directory
export ISAACSIM_PATH="${HOME}/.local/share/ov/pkg/isaac_sim-2023.1.1"
# Isaac Sim python executable
export ISAACSIM_PYTHON_EXE="${ISAACSIM_PATH}/python.sh"
  • 测试运行

测试看看仿真器是否能正常打开

${ISAACSIM_PATH}/isaac-sim.sh

测试能否正常运行独立demo

${ISAACSIM_PYTHON_EXE} -c "print('Isaac Sim configuration is now complete.')"
# checks that Isaac Sim can be launched from python
${ISAACSIM_PYTHON_EXE} ${ISAACSIM_PATH}/standalone_examples/api/omni.isaac.core/add_cubes.py

在这里插入图片描述

Orbit

  • 下载orbit
git clone https://github.com/NVIDIA-Omniverse/orbit.git
  • 构建符号连接

构建符号连接来方便使用

# enter the cloned repository
cd orbit
# create a symbolic link
ln -s ${ISAACSIM_PATH} _isaac_sim
  • 设置环境

orbit使用orbit.sh脚本来实现插件、环境、启动等的管理

  1. -h, --help: 显示帮助内容。当你运行 ./orbit.sh --help 时,会显示脚本的使用说明,列出所有可用选项及其含义。

  2. -i, --install: 安装 Orbit 内部的扩展。运行这个选项会执行安装 Orbit 内部扩展所需的操作。

  3. -e, --extra [LIB]: 安装学习框架作为额外的依赖项。可选的参数 LIB 可以是 rl_games, rsl_rl, sb3,或者是 all。默认情况下会安装所有的学习框架。

  4. -f, --format: 运行 pre-commit,用于格式化代码并检查 lint 错误。

  5. -p, --python: 运行由 Isaac Sim 提供的 Python 可执行文件,或者是当前活动的虚拟环境中的 Python。

  6. -s, --sim: 运行由 Isaac Sim 提供的模拟器可执行文件 isaac-sim.sh

  7. -t, --test: 运行所有 Python 单元测试。

  8. -o, --docker: 运行 Docker 容器辅助脚本 docker/container.sh

  9. -v, --vscode: 生成用于 VSCode 的设置文件,从模板生成。

  10. -d, --docs: 使用 Sphinx 从源代码构建文档。

  11. -c, --conda [NAME]: 创建 Orbit 的 Conda 环境。可选的参数 NAME 是环境的名称,默认为 orbit

此处我们来创建一个conda环境

  • 配置VSCode

按照Orbit VSCode settings对vsode进行配置

  • 安装拓展
sudo apt install cmake build-essential
./orbit.sh --install
./orbit.sh --extra
  • 测试安装是否成功

上述命令应启动模拟器并显示一个带有黑色地平面的窗口

./orbit.sh -p source/standalone/tutorials/00_sim/create_empty.py
python source/standalone/tutorials/00_sim/create_empty.py

尝试demo

四足

./orbit.sh -p source/standalone/demos/quadrupeds.py

手臂

./orbit.sh -p source/standalone/demos/arms.py

./orbit.sh -p source/standalone/demos/hands.py

可视化

./orbit.sh -p source/standalone/demos/markers.py

尝试环境

查看Manipulation环境

论文翻译

注意:以下论文翻译可能存在事实性错误,请谨慎甄别。


摘要 (Abstract)
我们提出了 ORBIT,这是一个由 NVIDIA Isaac Sim 提供支持的统一模块化机器人学习框架。它提供模 块化设计,可以轻松高效地创建具有照片级真实场景和 高保真刚性和可变形身体模拟的机器人环境。通过 ORBIT,我们提供了一系列不同难度的基准任务 - 从单 阶段柜子打开和布料折叠到多阶段任务(例如房间重 组)。为了支持不同的观察和动作空间,我们提供了带 有不同物理传感器和运动发生器的固定臂和移动操纵 器。 ORBIT 可以利用基于 GPU 的并行化,在几分钟 内训练强化学习策略并从手工或专家解决方案中收集大 型演示数据集。总之,我们提供了一个开源框架,可轻 松配备 16 个机器人平台、4 种传感器模式、10 个运动 生成器、20 多个基准任务以及 4 个学习库的包装器。 通过这个框架,我们的目标是支持各种研究领域,包括 表征学习、强化学习、模仿学习以及任务和运动规划。 我们希望它有助于在这些社区中建立跨学科合作,并且 它的模块化使其可以轻松扩展以适应未来的更多任务和 应用程序。有关视频、文档和代码:https://isaacorbit.github.io/。


1. 引言 (1. Introduction)
理想的机器人模拟器需要提供快速准确的 物理、高保真传感器模拟、多样化的资产处理以 及用于集成新任务和环境的易于使用的界面。然 而,现有平台往往需要在这些方面进行权衡。例 如,主要为视觉设计的模拟器,如 Habitat [14] 或ManipulaTHOR [12],提供了不错的渲染吞 吐量,但简化低级交互复杂性,例如抓取。另一方面,机 器人物理模拟器,例如 Isaac Gym [13] 或 SAPIEN [11],提供快速且相当准确的刚体接触 动力学,但不包括基于物理的渲染(PBR )、可 变形物体模拟或开箱即用的 ROS 支持 [15]。最 近,NVIDIA 发布了一款新模拟器 Omniverse Isaac Sim [16],旨在通过 GPU 加速的实时 PBR 和最先进的物理引擎来填补这些空白。这项 工作提出了 ORBIT,这是一个用于机器人研究 的开源框架,它利用通过 Isaac Sim 提供最新的 模拟功能,可以通过逼真的场景和最先进的刚性 和可变形身体模拟来直观地设计任务。为了防止 分散精力来构建使用模拟器进行机器人学习所需 的工具,我们设计了一个统一的模块化框架,该 框架支持各种机器人平台、传感器和对象,并允 许不仅以编程方式设计任务,而且还可以通过 GUI 交互地设计任务。我们自下而上地设计系统 - 从合并用户定义的执行器动力学模型到模块化 任务规范以学习不同级别的观察和动作空间。在 ORBIT 中,我们还包含一系列功能,例如不同 的机器人平台、运动生成器和一系列任务,这些 任务不仅可以作为基准,还可以作为设计新任务 的示例。通过这个框架,我们支持各种机器人应 用,例如强化学习(RL)、演示学习(LfD)和 运动规划,从而为这些社区的研究人员提供一个 通用平台,让他们从这项综合努力中受益。
我们的主要贡献如下:1)我们设计了一个统一 的模块化开源框架,用于快速灵活的开发,利用 模拟器的最新进展来实现照片级真实场景和高保 真物理。2)它提供了电池-包括机器人专家的经 验,以及可随时用于不同机器人和传感器的模 型。这有助于降低使用该框架及其功能的入门障 碍。3) 我们包含一套用于基准目的的标准化任 务。其中包括十一个刚性物体操纵、十三个可变 形物体操纵和两个运动环境。在每个任务中,我 们允许轻松切换机器人、物体和传感器。4)通 过实验,我们证明了模拟器对于刚体和软体模拟 的准确性。与现有框架相比,我们表明 ORBITi 能够获得高达 ∼10x 和 ∼分别是刚性体和可变 形体操纵任务吞吐量的 3 倍。此外,我们还演示 了四足机器人 ANYmal 的运动策略从模拟到真 实的转换。在本文的其余部分,我们描述了可用 的模拟器选择(第二节)、框架的设计决策和抽 象(第二节)。 III)及其突出特点(第四 节)。我们展示了该框架在不同机器人工作流程 上的适用性(第 V 节),展示了运动和操纵的 模拟到真实实验,并评估了第 5 节中获得的精度 和模拟吞吐量。 V-E。


2. 相关工作 (2. Related Work)

近年来出现了几种模拟框架,每种框架都专门针 对特定的机器人应用。在本节中,我们重点介绍 对于构建统一仿真平台至关重要的设计选择,以 及 ORBIT 与其他框架的比较(也在表 I 中进行 了总结)。a) 物理引擎:增加物理模拟环境的复 杂性和真实性对于推进机器人研究至关重要。这 包括改进接触动力学、对非凸几何形状(例如螺 纹)有更好的碰撞处理、可变形体的稳定解算器 以及高模拟吞吐量。使用 MuJoCo [17] 或 Bul 的 先前框架 [2]、[5] -让[18]主要关注刚性物体操作 任务。由于它们的底层物理引擎是基于CPU的, 所以它们需要CPU集群来实现大规模并行化[13]。另一方 面,可变形体的框架[4]、[8]主要采用Bullet [18] 或FleX [19],它们使用基于粒子的动力学来进行 软体和布料模拟最近,SofaGym [20](一种专门 针对软机器人的强化学习框架)展示了使用有限元 方法 (FEM) 进行变形模型的好处。 。然而,与那 些严格的对象任务相比,这些框架中存在有限的工 具。 ORBIT 旨在通过提供集成机器人框架来弥补 这一差距,该框架通过 PhysX SDK 5 支持刚性和 可变形身体模拟 [21]。与其他引擎相比,PhysX SDK 5 具有基于 GPU 的硬件加速,可实现高吞吐 量、有符号距离场 (SDF) 碰撞检查 [22],以及基 于 FEM 的更稳定的求解器,可用于变形体模拟 [23]、[24]。b) 传感器模拟:各种现有框架 [2]、 [5]、[13] 使用经典的光栅化,限制了生成图像的 照片真实感。最近的技术[25]以物理上正确的方式 模拟光线与物体纹理的相互作用。这些方法有助于 捕获精细的视觉属性,例如透明度和反射,从而有 望弥合模拟与真实视觉域的差距。虽然最近的框架 [11]、[7]、[12] 包括基于物理的渲染器,但它们主 要支持基于相机的传感器(RGB、深度)。这对 于某些需要距离传感器(例如 LiDAR)的移动机 器人应用来说是不够的。利用 NVIDIA Isaac Sim 中的光线追踪技术,ORBIT 支持所有这些模式, 并包括用于获取语义注释等附加信息的 API。c) 场景设计和资产处理:框架按程序支持场景创建 [1]、[2]、[11]、通过网格扫描 [6]、[7] 或通过游 戏引擎风格的接口 [26]、[9]。虽然网格扫描简化 了大量场景的生成,但它们经常遇到几何伪影和照 明问题。另一方面,程序生成允许利用不同场景的 对象数据集。虽然 Isaac Sim 主要专注于基于 GUI 的场景设计,但我们选择不受限制,并基于 其界面来支持所有三种场景设计方法。


3. 方法 (3. Approach)

轨道:抽象和界面设计在高层次上,框架设计包括 一个世界和一个代理,类似于现实世界和机器人上运行 的软件堆栈。代理接收来自世界的原始观察并计算应用 于实施例(机器人)的动作。通常在学习中,假设
所有感知和运动产生都以相同的频率发生。然而,在 现实世界中,这种情况很少发生:(1)传感器以不同 的频率更新,(2)根据控制架构,在不同的时间尺度 应用动作[27],以及(3)未建模的延迟和噪声源存在 于系统中。在 ORBIT 中,我们精心设计了其接口和 抽象来支持这些功能,并允许包含执行器和噪声模型 来弥合模拟与真实的差距。a) 世界:与现实世界类 似,我们定义一个机器人、传感器、物体(静态或动 态),并且可视化标记存在于同一舞台上。世界可以 通过扫描网格 [28] 程序化(基于脚本)设计,或者通 过 Isaac Sim 基于游戏的 GUI 交互设计,或者它们的 组合。这种灵活性受益于 3D 重建网格的优势,该网 格通过基于游戏的设计捕获各种建筑布局,从而简化 了通过玩模拟来创建和验证场景物理属性的体验。

机器人是世界的重要组成部分,因为它们是交互的体 现。它们由关节、执行器模型和低级关节控制器组 成。我们设计这些接口,使得单个接口(例如 LeggedRobot)支持属于同一类别的多种机器人(例 如 ANYmal C 或 Unitree AΚ)。这简化了使用模拟 器设置新机器人并在现有世界中使用它的过程。机器 人类从 USD 文件 1 加载机器人模型。它创建并管理 必要的物理句柄来设置和读取模拟状态。执行器模型 在将现实世界执行器特性注入仿真中发挥着重要作 用,例如延迟或扭矩饱和。这有助于促进硬件上控制策略的模 拟到真实的传输(第 V-D 节)。为了对机器人应用动 作,关节级控制器通过执行器模型处理输入命令,然 后将所需的关节位置、速度或扭矩命令应用到模拟器 (如图 4 所示)。目前,我们包括直接控制(DC)电 机和串联弹性执行器(SEA)的执行器模型[29]。然 而,用户在识别机器人的动力学特性后,可以轻松地 将机器人的执行器模型集成到 ORBIT 中。

传感器(本体感受或外感受)可能存在于机器人或外部 (例如第三人称相机)。虽然 ORBIT 依赖 Isaac Sim 来实现不同的基于物理的(范围、力和接触传感器)和 基于渲染的(RGB、深度、法线)传感器,但它将它 们统一在一个通用接口下,以简化在运行时创建和配置 它们到场景中的过程。 。我们与 Isaac Sim 中推荐的 USD 实践不同,其中传感器预计在 USD 文件中指定, 并且所有传感器都会在每个模拟步骤中更新。虽然这种 做法不会对传统机器人范式造成大问题,但在具有并行 场景时会导致巨大的开销,因为场景中可能存在不需要 的传感器更新。通过通用传感器管理系统在世界范围内,ORBIT 仅配置特定任务所需的传 感器。为了模拟不同频率下的传感,每个传感器实 例都有自己的内部计时器,用于控制读取模拟器缓 冲区的操作频率。在时间步之间,传感器返回先前 获得的值。对象是世界中的被动实体。虽然场景中 可能存在多个对象,但用户可以为指定任务定义感 兴趣的对象,并仅为它们设置和检索属性/状态。 对于任何给定的对象,我们支持其纹理和物理属性 的随机化,例如摩擦材料和关节参数。与 robots 类类似,我们还提供了一些接口,用于通过对象中 主动运动组件的模型来增强模拟器。例如,在冰箱 中,由于磁性密封,铰链接头最初是僵硬的,但一 旦密封被破坏,铰链接头就会变得自由。在模拟中 考虑这些混合模型可以开发和验证处理现实世界中 变化的对象动态的方法。

除上述之外,世界还构成可视化标记。我们允许以编程方式向模拟器的 GUI 添加各种原始形状,例如轴、球体和网格。这些通 常可用于开发目的,例如显示目标状态或可视化不 同的坐标系。我们将这些标记集成到不同的机器人 和控制器界面中,以便轻松实现有用框架(例如脚 或末端执行器姿势)的可视化。b)代理:代理是 指指导具体系统的决策过程(“智能”)。虽然机 器人学家已经接受了 ROS [15] 的模块化,但大多 数机器人学习框架通常只关注环境(或 MDP)定 义。这种做法会导致代码重复,并增加不同实现之 间切换的摩擦。ORBIT 中的代理保持模块化为核 心,由各种节点组成,这些节点形成计算图,在它 们之间交换信息。广义上,我们认为节点有两种类 型:1)基于感知,即它们将输入处理为另一种表 示形式(例如 RGB-D 图像到点云/TSDF),或 2)基于动作,即它们将输入处理为动作命令(例 如作为任务级命令到联合命令)。与传感器类似, 节点也包含自己的内部定时器来控制其更新频率。 目前,节点之间的信息流通过Python同步发生, 这避免了数据交换服务-客户端协议的开销。c) 学习任务和代理:RL 等范式需要指定一个任务、一个世界,并且可能包 括代理的一些计算节点。任务逻辑有助于指定代理 的目标、计算指标(奖励)以评估代理的性能并管 理重置。将此组件作为单独的模块,可以对不同的 任务使用相同的世界定义,类似于现实世界中的学 习,其中任务是通过外部奖励信号指定的。任务定 义还可以包含代理的不同节点。形式化这一点的直 观方法是考虑特定节点的学习是通过代理计算图上 的图切割进行的。为了进一步具体化设计动机,请 考虑在任务空间上学习的示例,而不是举起立方体 的低级联合动作[27] 。在这种情况下,任务空间控 制器(例如逆运动学 (IK))通常以 50 Hz 运行,而 联合控制器则需要 1000 Hz 的命令。尽管任务空间 控制器是代理计算的一部分,而不是世界计算的一 部分,但可以将其封装到任务设计中。此功能可以 轻松地在运动生成器(例如 IK、操作空间控制 (OSC) 或反应规划器)之间进行切换。

轨道:特征虽然已经提出了各种机器人基准 [4]、[1]、[5],但正确选择必要且充分的任务来展 示"智能"行为仍然是一个悬而未决的问题。我们 没有对任务进行规定,而是提供 ORBIT 作为轻松 设计新任务的平台。为了实现这一目标,我们提供 了一系列不同的支持机器人、外围设备和运动发生 器,以及大量用于刚性和柔软物体操作的任务,以 实现折叠布、打开洗碗机以及将螺母拧入螺栓等基 本技能。每项任务都展示了物理学和渲染器的各个 方面,我们相信这些方面将有助于回答关键的研究 问题,例如构建可变形对象操纵的表示以及泛化到 不同对象和机器人的学习技能。a) 机器人:我们支 持 4 个移动平台(一个全向驱动底座和三个四足动 物)、7 个机械臂(两个 6 自由度和五个 7 自由 度)和 6 个末端执行器(四平行爪夹具和两个机械 手)。我们提供工具将这些关节的不同组合组合成 复杂的机器人系统,例如有腿的移动机器人

b) I/O 设备:设备定义了实时远程操作机器人的外 围控制器的接口。该接口从 I/O 设备读取输入命 令,并将其解析为后续节点的控制命令。这不仅有 助于收集演示,还有助于调试任务设计。目前,我 们支持键盘、游戏手柄(Xbox 控制器)和太空鼠 标。
c) 运动发生器:运动发生器通过将输入动作视为 参考跟踪信号,将高级动作转换为低级命令。例 如,逆运动学 (IK) [30] 将命令解释为所需的末端 执行器姿势并计算所需的关节位置。使用这些控 制器,特别是在任务空间中,已被证明有助于机 器人操作策略的模拟到真实的可转移性[2]、 [27]。通过 ORBIT,我们包括基于 GPU 的差分 IK 实现[30]、操作空间控制[ 31],以及联合级控 制,可以有效地计算多个机器人的命令。此外, 我们还提供最先进的基于模型的规划器的 CPU 实现,例如用于固定臂机械臂的 RMP-Flow [32] 和用于移动机械臂全身控制的 OCSΛ [33]。为了 促进腿式机器人导航的研究,例如可遍历性估计 和路径规划,我们还包括跟踪基本速度命令的腿 式运动 [34] 的预训练策略。

d) 刚体和变形体任务:ORBIT 包括一系列用于变 形和刚体操纵的任务,以及腿式机器人控制和手动 操纵。这些任务不仅可以作为机器人研究的基准, 还可以作为用户进行操作的示例。轻松设计新任 务。虽然其中一些任务已经存在于之前的工作中 [1]、[5]、[22]、[34],但我们使用框架的接口来增 强它们,以简化不同机器人、物体、运动生成器、 观察和域随机化之间的切换。我们还将固定臂机器 人的操纵任务扩展到移动操纵器。目前,任务主要 集中在抓取、拧紧、堆叠、推/拉、倾倒、折叠和 行走等多种技能上(如图6所示)。我们的网站上 提供了完整且不断增长的环境列表。

ORBIT 是一个统一的模拟基础设施,提供预构建 的环境和易于使用的界面,从而实现可扩展性和 定制。由于高质量的物理、传感器模拟和渲染, ORBIT 对于解决感知和决策方面的多种机器人挑 战非常有用。我们通过示例工作流程概述了此类 用例的子集。A.强化学习由于框架主要将数据存储为张量,因 此需要对数据进行格式化并转换为不同学习框架 的数据类型。我们为 rl-games [35]、RSL-rl [34] 和 stable-baselines-Μ [36] 提供包装器。这些包 装器使底层环境 RL 框架变得不可知,并为用户 提供了访问更大的一组算法进行研究的机会。在 图 7 中,我们展示了 Franka-Reach 的训练和Franka-Cabinet-Opening with PPO [37],使用不 同的 RL 框架和动作空间。尽管我们确保框架中 PPO 的参数设置相同,但我们注意到由于实现差异,它们 的性能和训练时间存在差异。由于 RSL-rl 和 rlgames 针对 GPU 进行了优化,因此我们在 2048 个环 境中观察到训练速度为每秒 50,000-75,000 帧 (FPS), 而在稳定基线3 下,我们获得了 6,000-18,000 FPS。

B. 远程操作和模仿学习许多操作任务的计算成本 很高,或者超出了当前强化学习算法的能力范 围。在这些场景中,从用户演示中引导提供了可 行的技能学习途径。 ORBIT 提供了一个数据收 集接口,可用于使用 I/O 设备与环境进行交互并 收集类似于 Roboturk [38] 的数据。我们还支持 以 robomimic [39] 所需的格式存储数据,这提 供了训练各种模仿学习(IL )通过它进行建模。

C. 运动规划运动规划是机器人技术中经过充分研究 的领域之一。传统的感知-模型-计划-行动 (SMPA)方法将复杂的推理和控制问题分解为可 能的子组件。 ORBIT 支持通过 GUI 以程序方式和 交互方式执行此操作。a) 手工制定策略:我们为给 定任务创建一个状态机,以作为代理中的单独节点 执行顺序规划。它提供了到达目标物体、关闭夹 具、与物体交互以及操纵到下一个目标位置的目标 状态。我们在图 6 中演示了几个任务的范例。这些 手工制定的策略还可以用于收集具有挑战性的任务 (例如布料操纵)的专家演示。b)交互式运动规 划:我们定义了一个节点系统,用于抓取生成、远 程操作、任务空间控制和运动预览(如图8所 示)。通过 GUI,用户可以选择一个对象来抓取并 查看可能的抓取姿势以及使用 RMP 控制器生成的 机器人运动序列。确认抓取姿势后,机器人执行动 作并举起物体。此后,用户获得对机器人的远程操 作控制。

D. 在真实机器人上的部署在真实机器人上部署代理 面临着各种挑战,例如处理实时控制和安全约束。 存在不同的数据传输层,例如 ROSTCP [15] 或 ZeroMQ (ZMQ) [40],用于将机器人堆栈连接到真 实平台。我们展示了如何将这些机制与 ORBIT 结 合使用,在真实的机器人上运行策略。

a)使用ZMQ:为了保持轻量级和高效的通信,我 们使用ZMQ将来自ORBIT的联合命令发送到运行 FrankaEmika机器人实时内核的计算机。为了遵 守实时安全约束,我们使用五次插值器将模拟器中 的 60 Hz 关节命令上采样到 1000 Hz,以便在机器 人上执行(如图 9 所示)。我们对 Frankarobot 的两种配置进行了实验:一种一只手是 Franka Emika,另一只手是 Allegro 手。对于每种配置, 我们展示了三项任务:1)使用 Spacemouse 设备 进行远程操作,2)状态机的部署以及 3)具有避障 功能的航路点跟踪。代理的模块化特性使得可以轻 松地在每个任务的不同控制架构之间切换,同时为 真实机器人使用相同的接口。

b) 使用 ROS:各种现有机器人都附带了 ROS 软件堆 栈。在本次演示中,我们重点关注如何在机器人平台 上导出和部署使用 ORBIT 训练的策略,特别是对于 来自 ANYbotics、ANYmal-D 的四足机器人。我们 使用执行器网络 [29] 完全在模拟中训练运动策略有 腿底座。为了使策略稳健,我们随机化基础质量(22 ± 5 kg)并添加模拟随机推送。我们使用联系记者来获取接触力并将其用于奖励设计。使用 ANYmalROS 堆栈将学习到的策略部署在机器人上(图 10)。这 种从模拟到真实的转换表明了模拟接触动力学的可行 性及其对 ORBIT 中接触丰富的任务的适用性。
E.仿真评估和比较a)仿真精度评估:由于现实世 界的巨大变化和未知的力学,定量测量物理解算器 的精度是一项艰巨的任务。因此,先前的框架通过 推出相同的动作序列来对模拟与物理世界进行定性 比较[8]、[10]。虽然秒。 V-D遵循类似的做法来展 示刚体模拟的真实性,我们通过受控实验讨论了变 形体模拟的准确性。我们考虑由高变形硅弹性体制 成的夹紧梁。按照[41]中使用的设置,将运动捕捉 标记附加到梁上以收集重力作用下的变形数据。在 模拟中,我们通过将软梁连接到刚性墙并设置与物 理梁相同的材料属性(杨氏模量、密度和不可压缩 性)来创建类似的场景。如图 11 所示,我们观察 到模拟数据中的阻尼振荡与收集的真实数据非常接 近。这展示了求解器的准确性 [23] 并表明其模拟真 实变形体操作的潜力。b) 模拟吞吐量比较:我们将 ORBIT 中任务的吞吐量与其他刚性框架 (robosuite、ManiskillΛ、IsaacGymEnvs)和 可变形体相互作用(DEDO)。为了确保公平比 较,我们对环境进行了调整,使其具有相同的动作 空间、模拟频率和控制抽取。评估是在配备 16 核 AMD Ryzen Ξ΢ΞΙX、64 GB RAM 和 NVIDIA ΜΙ΢ΙRTX 的工作站上进行的。

依赖 CPU 向量化的框架([2]、[4]、[10])显示吞 吐量随着环境数量的增加而增加。然而,在大约 200-300个环境中,他们的程序由于内存不足而崩 溃。相比之下,基于 GPU 的并行化可以更好地扩 展到更多数量的环境,并且对于刚体环境(图 12) 实现了约 10 倍的吞吐量,对于可变形体环境(图 13)实现了约 3 倍的吞吐量。对于布料任务,我们 还研究了使用不同分辨率的网格对吞吐量的影响。 我们观察到,较高的网格分辨率可以产生更准确的 模拟,但需要更多的计算时间。为了应对这一挑 战,我们打算提供调整模拟和各种模拟就绪资产的 最佳实践。


5. 讨论
在本文中,我们提出了 ORBIT:一个交互式且直观 的框架,用于简化环境设计、实现简单的任务规范并 降低机器人技术和机器人学习的进入门槛。 ORBIT 通过 Isaac Simand 利用最新的最先进的仿真功能, 进一步扩展它们,将不同的执行器和传感器噪声模型 纳入仿真中,并在不同的工作频率下改进传感器、执 行器和运动发生器。它配备了不同的机器人平台、传 感器、基于 CPU 和 GPU 的运动发生器以及基准测试 任务,旨在为机器人专家提供包含电池的体验。正如 第 2 节中所演示的,环境和机器人范式的广度是可能 的。 IV 和 Sec。 V,使 ORBIT 对更广泛的群体有用 REFERENCES3 NVIDIA Isaac Sim is free with an individual license. ORBIT is opensourced on GitHub and available at https://isaac-orbit.github.io. space for reinforcement learning in contact rich tasks," in IEEE/RSJ机器人技术的研究问题。通过实验,我们展示了 ORBIT 中设计的任务相对于其他框架中设计的任务 的吞吐量显着提高,以及其促进模拟到真实传输的 潜力。通过开源该框架 3 ,我们的目标是减少开发 新应用程序的开销,并提供机器人学习研究的统一 平台。随着我们不断增强框架并将更多功能纳入框 架中,我们鼓励研究人员为将其转变为机器人研究 的综合解决方案做出贡献。

文章作者: Herman Ye @Auromix
测试环境: Ubuntu20.04 AnaConda
更新日期: 2024/04/30
1 @Auromix 是一个机器人方向爱好者组织。
2 由于笔者水平有限,本篇内容可能存在事实性错误。
3 本篇直接引用的其他来源图片/文字素材,版权为原作者所有。

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值