跳到正文
Hugging Face Blog·· 4 小时前AI 评分47

用 SimReady 资产在 Isaac Sim 中构建机器人抓取放置仿真

Build a Robot Pick-and-Place Simulation with SimReady Assets

AI 导读

Hugging Face 发布教程,演示在 Isaac Sim 6.2 中组合 UR17G 机械臂、Robotiq 2F-140 夹爪和饮料罐,用 agent 生成的控制代码运行抓取放置任务。

正文 · AI 翻译

figure-01-pick-and-place-highlight

本操作指南展示了一个饮料罐抓取与放置任务,使用 UR17G 机械臂、Robotiq 2F-140 夹爪 和 饮料罐 在 Isaac Sim 中构建场景、检查其行为,并运行一个由智能体生成控制的抓取与放置示例。

对于机器人工作流,SimReady 意味着一个 OpenUSD 资产已经为特定的仿真用例准备好了所需的属性,例如碰撞、质量、关节和关节驱动。SimReady Central 是 Hugging Face 上的一个开放资产库,让你可以复用带有已编写的仿真属性和配置文件验证证据的机器人与物体资产。欲了解更多关于该库及其发布的信息,请阅读发布公告博客。

是什么让机器人资产达到 SimReady?

SimReady Foundation 定义了 OpenUSD 资产为满足仿真用例所需具备的特性。其规范连接了三个层级:

  • 配置文件(Profile):一组面向某个用例的特性,例如机器人本体。
  • 特性(Features):该用例所需的能力,例如可控的关节。
  • 要求(Requirements):针对每个特性所需设置的检查项,例如关节的驱动设置。

对于本任务,这些属性包括机械臂和夹爪的关节,以及饮料罐资产的碰撞和质量。验证过程会根据配置文件的要求检查这些设置。随后,仿真会测试组装好的机器人能否利用这些设置抓取并移动饮料罐。

资产自带什么,你需要添加什么?

UR17G、Robotiq 2F-140 和 饮料罐 软件包包含模型及其仿真设置。你需要组装场景并添加任务代码,以定义机械臂–夹爪组件、工作台、起始位置,以及用于移动机械臂和开合夹爪的控制。

Figure 2

图 2. SimReady Central 提供资产模型和仿真设置,示例场景和控制代码定义抓取与放置任务。

运行抓取与放置任务前应检查什么?

在 Isaac Sim 中,机器人静止时可能在视觉上看起来正确,但仿真运行时却可能移动或与物体交互不当。在运行抓取与放置之前,请测试其关节、运动和接触行为。你可以让智能体执行这些测试,也可以在 Isaac Sim 中手动进行。

  • 关节设置:检查机械臂和夹爪的关节限制与驱动设置。
  • 运动:测试机械臂的小幅移动,以及夹爪的开合。
  • 接触:确认饮料罐稳稳停在工作台面上而不会穿透掉落。

在抓取与放置过程中,注意观察机械臂移动时饮料罐是否稳固地留在夹爪中。资产结构各异,因此请以你加载场景中的设置作为起点。我们将在下面的步骤中完整介绍下载资产和构建场景的整体过程。

在 Isaac Sim 中构建抓取与放置仿真

本示例将 UR17G 机械臂、Robotiq 2F-140 夹爪和 饮料罐 组合在 Isaac Sim 中。任务是抓住饮料罐、将其抬起、移动到目标位置并释放。你还可以利用 SimReady Central Space 的搜索服务端点来查找 OEM 策展内容。

我们还将使用一个前沿 AI 模型来帮助创建并运行开放 Isaac Sim 场景中的任务代码。在本示例中,我们使用 GPT-6 Sol,但如果其他智能体与模型的组合能够加载所需的技能并对 Isaac Sim 执行 Python,也可能适用(生成的代码和结果可能有所不同)。提示词仅提供一个起点。在调整任务之前,请检查生成的代码并核对最终行为。

所需软件:

  • 安装本示例所用的 Isaac Sim 6.2 版本,并查看其系统要求。
  • 设置一个能够使用 Isaac Sim 技能的智能体。按照智能体技能文档使捆绑的技能可供你的智能体使用。
  • 仅当你选择命令行资源下载方式时,才需要安装 Hugging Face CLI。
  • 使用 USD Search 端点。

第 1 步:下载机械臂、夹爪和饮料罐资源

打开 SimReady Central,找到本示例中使用的 UR17G 机械臂、Robotiq 2F-140 夹爪和饮料罐。在每个资源上选择 Download,然后使用 Save to folder 或提供的 Hugging Face 命令。请保持三个完整的资源文件夹不变,以便 Isaac Sim 能找到其支持文件。

使用本示例中链接的资源版本,并向你的智能体提供机械臂、夹爪和饮料罐的本地 USD 文件路径。下面展示了一个示例夹爪路径;你的下载位置可能有所不同。

~/ASSETS/hf/src/simready-assets-c7fa7615/Robotiq_2F_140/simready_usd/Robotiq_2F_140.usda

figure-05-find-robotiq

图 3. SimReady Central 的搜索和交互式预览有助于识别本示例中使用的 Robotiq 2F-140 夹爪和饮料罐。

figure-04-download-assets

图 4. 饮料罐的下载选项包括将资源包保存到文件夹或使用 Hugging Face CLI。

资源验证能告诉你什么?

机械臂验证报告使用 Robot-Body 4.0.0 配置文件,而夹爪验证报告使用 Robot-Gripper 3.0.0。两者均记录了通过PhysX 驱动关节检查的结果,该检查会审查关节驱动设置。

SimReady 配置文件验证为复用这些资源提供了共同的基线。随后的抓取放置运行则会测试机械臂、夹爪、罐子和控制器在组装好的场景中如何协同工作。

第 2 步:组装机器人并构建抓取放置场景

资源下载完成后,使用带有 Isaac Sim 技能的智能体来帮助组装机器人、运行验证工具,并创建抓取放置控制。你也可以使用链接的文档手动执行这些步骤。

在启用远程 Python 服务器的状态下,从 Isaac Sim 的安装目录启动 Isaac Sim,以便智能体能够通过 Python 与仿真进行交互:

./isaac-sim.sh --enable isaacsim.code_editor.python_server

如果你使用的是智能体,请确保从 Isaac Sim 目录启动它,以便在执行以下步骤时能够访问所需的技能。

确认三个资源都正常显示且没有缺失文件错误。让智能体检查机械臂和夹爪的关节限位与驱动设置,或者你在 Isaac Sim 中自行查看。机器人和夹爪包含物理关节,也可以在 Isaac Sim GUI 中进行测试和验证。接下来我们将组装机械臂和夹爪,以便将整个组件作为一个单独的关节链来控制。

你可以按照Robot Assembler 教程进行手动组装。在这里,我们将让智能体为我们完成组装并进行验证:

本示例中使用的示例提示:

Assemble the robot arm <local path to Simready ur17g robot usd>
with the gripper <local path to downloded simready Robotiq_2F_140 gripper usd>
using the Robot Assembly tutorial in Isaac Sim
https://docs.isaacsim.omniverse.nvidia.com/6.2.0/robot_setup/assemble_robots.html.

Validate the assembly on completion.

智能体最终使用 Isaac Sim 附带的 ‘isaac-sim-remote’ 和 ‘usd-articulation’ 技能来完成装配并验证机器人的物理效果。现在我们已拥有运行拾取与放置所需的全部资产:装配好的机器人和汽水罐。接下来我们将进行工作流的最后部分。

figure-05-joint-settings

图 5. Isaac Sim 中 UR17G 机械臂和 Robotiq 2F-140 夹爪的关节设置。

在场景中放置装配好的机器人和汽水罐后,让智能体运行该任务。使用下一步中的检查项评估仿真行为。

步骤 3:测试控制并运行拾取与放置

现在资产已包含仿真属性和配置验证,我们可以在装配好的场景和控制器中进行测试。控制器协调 UR17G 机械臂的移动与 Robotiq 2F-140 夹爪的开合。使用下方行为检查来评估智能体生成的任务。若要自己理解或调整控制器,请参阅添加操作机器人教程。

本示例中使用的示例提示:

Run pick and place with the assembled robot and soda can
<path to soda can USD from SimReady library> in Isaac Sim.

Ensure you do a contact based grasp for picking up the can and validate
the accuracy/placement error for the pick and place as well.

使用的技能:‘isaac-sim-remote’、‘manipulaiton-ik’ 和 ‘physics-simulation’

完整的任务测试夹爪在移动过程中是否握住汽水罐并在目标位置释放它。重置场景,然后运行接近、抓取、抬升、保持、转移和释放序列。将你的运行结果与开头视频及下方的成功标准进行比较。

figure-06-pick-and-place-landscape

图 6. Isaac Sim 中 UR17G 机械臂和 Robotiq 2F-140 夹爪将饮料罐从黄色拾取标记移动到绿色目标。以 4 倍速展示。

如果你的运行结果有所不同,请记录序列在何处失败,并让智能体检查场景并生成控制。在重试之前,将汽水罐和机器人重置到相同的初始状态,以便比较结果。

仿真假设:

  • 固定设置:汽水罐从已知位置开始,机器人固定且工作空间清晰平坦。未使用视觉,碰撞检测也有限。
  • 简化的汽水罐:未对变形和液体运动建模,因此本示例不测试压瘪。
  • 脚本化的抓取与运动:水平抓取使用通过仿真测试选定的 2 N·m 驱动力上限,未针对指尖力进行校准,也非制造商推荐值。当机械臂按固定路径点移动且不重新规划时,接触与摩擦力保持住饮料罐。有关硬件夹持力规格,请参阅 Robotiq 产品说明表。

这些结果仅适用于此脚本化设置。它们不能证明对不确定的物体位置、不同负载或真实硬件的鲁棒性。

使用 SimReady 资产构建你的下一个仿真

使用来自 SimReady Central 的资产构建你自己的拾取与放置任务,然后使用你选择的智能体来帮助装配场景并在 Isaac Sim 中运行。

发现资产

  • 查找机器人和物体:浏览 Hugging Face 上的 SimReady Central。
  • 检查资产支持的功能:结合资产的验证报告,查看 SimReady Foundation 中的配置与要求。

构建拾取与放置场景

准备并贡献内容

如需灵感,可以浏览 Michael Wagner 的语音控制 VR 演示。两个示例都展示了开发者如何在自己的项目中使用 SimReady 资产。

你会构建什么?欢迎在 Hugging Face 评论区分享你的场景和成果,包括你所使用的资产和 Isaac Sim 版本。

祝构建愉快!

来源: Hugging Face Blog · huggingface.co