基于 SimReady 资产与 Agent 在 Isaac Sim 中构建机械臂抓取仿真教程
Build a Robot Pick-and-Place Simulation with SimReady Assets
NVIDIA 在 Hugging Face 博客介绍了利用 SimReady Central 资产库在 Isaac Sim 6.2 中构建抓取放置任务的完整流程。
教程给出了结合标准化仿真资产与智能体技能构建机械臂任务的实操流程,读者可直接参考其资产校验和场景组装方法。
本教程将演示一个易拉罐抓取与放置任务。我们将使用 UR17G 机械臂、Robotiq 2F-140 夹爪以及一个易拉罐在 Isaac Sim 中搭建场景,检查它们的物理行为,并运行由智能体生成控制指令的抓取放置示例。
在机器人工作流中,“SimReady”意味着 OpenUSD 资产已预先配置好特定仿真场景所需的属性,例如碰撞体、质量、关节以及关节驱动等。Hugging Face 上的开源资产库 SimReady Central 提供了经过规范验证、带有预设仿真属性的机器人及物体资产,方便开发者直接复用。如需了解该资产库及其发布的详细信息,请参阅官方发布博客。
什么样的机器人资产才算得上 SimReady?
SimReady Foundation 规范定义了 OpenUSD 资产在特定仿真场景下必须具备的特性。该规范涵盖三个层级:
- 配置文件(Profile):针对特定用例的一组特性组合,例如机器人本体。
- 特性(Features):用例所需的功能与能力,例如可控的关节。
- 需求(Requirements):对各项特性所需配置的具体校验标准,例如关节驱动设置。
在本次任务中,涉及的属性包括机械臂与夹爪的关节配置,以及易拉罐资产的碰撞体和质量。验证流程会对照配置文件中的需求检查这些设置,随后仿真环节将测试组装后的机器人能否正常抓取并移动易拉罐。
资产自带哪些内容?还需要补充什么?
UR17G、Robotiq 2F-140 和易拉罐资产包内均已包含模型及相应的仿真设置。你需要做的是组装场景并编写任务代码,定义机械臂与夹爪的装配关系、工作台面、初始位置,以及控制机械臂移动和夹爪开合的控制逻辑。
图 2. SimReady Central 负责提供资产模型与仿真配置,示例场景与控制脚本则负责定义具体的抓取与放置任务。
在运行抓取放置任务前,应该检查什么?
机器人静止在 Isaac Sim 中时外观可能完全正常,但一旦仿真开始运行,其运动或与物体的交互就可能出现异常。因此,在正式执行抓取放置之前,务必测试其关节、运动状态以及接触响应。你可以让智能体自动执行这些测试,也可以在 Isaac Sim 中手动测试。
- 关节设置:检查机械臂与夹爪的关节限位及驱动配置。
- 运动测试:让机械臂小幅度移动,并测试夹爪的开合动作。
- 接触检测:确认易拉罐能平稳放置在工作台面上,不会发生穿模下坠。
在抓取和移动过程中,注意观察易拉罐能否在机械臂运动时稳定保持在夹爪中。不同资产的结构各有差异,建议以加载场景中的默认设置为基础进行调整。下面我们将详细介绍下载资产与构建场景的完整流程。
在 Isaac Sim 中搭建抓取放置仿真
本示例在 Isaac Sim 中组合了 UR17G 机械臂、Robotiq 2F-140 夹爪与易拉罐。具体任务为:抓取易拉罐、将其抬起、移动至目标位置并松开。你还可以通过 SimReady Central Space 搜索服务接口,查找由 OEM 厂商精选提供的内容。
我们还将借助前沿 AI 模型,在一个打开的 Isaac Sim 场景中生成并运行任务代码。本示例使用的是 GPT-6 Sol,不过只要能加载所需技能并针对 Isaac Sim 执行 Python 代码,其他智能体与模型的组合同样可行(生成的代码和效果可能会有所不同)。给出的提示词只是一个起点,在调整任务前,请先检查生成的代码并核对实际运行效果。
所需软件:
- 安装本示例所用的 Isaac Sim 6.2,并确认系统配置是否满足要求。
- 配置任意一款可调用 Isaac Sim 技能的智能体。按照智能体技能文档,将自带的各项技能开放给智能体使用。
- 只有在打算通过命令行下载资产时,才需要安装 Hugging Face CLI。
- 使用 USD 搜索端点。
第一步:下载机械臂、夹爪与易拉罐资产
打开 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
图 3:借助 SimReady Central 的搜索功能与交互式预览,可以快速定位本示例所用的 Robotiq 2F-140 夹爪和易拉罐。
图 4:易拉罐的下载方式包括直接将资产包保存至文件夹,或使用 Hugging Face CLI。
资产校验报告说明了什么?
机械臂校验报告基于 Robot-Body 4.0.0 规范,夹爪校验报告则基于 Robot-Gripper 3.0.0。两者均通过了针对关节驱动设置的 PhysX 驱动关节检查。
SimReady 规范校验为这些资产的复用确立了统一基准,而后续的抓取与放置测试,则能进一步检验机械臂、夹爪、易拉罐和控制器在组装场景中的协同表现。
第二步:组装机器人并搭建抓取放置场景
资产下载完成后,即可配合具备 Isaac Sim 技能的智能体来组装机器人、运行校验工具,并编写抓取与放置控制逻辑。你也可以参考链接中的文档手动完成这些步骤。
在 Isaac Sim 的安装目录下启动该软件,并启用远程 Python 服务器,以便智能体通过 Python 与仿真环境交互:
./isaac-sim.sh --enable isaacsim.code_editor.python_server
如果你使用的是智能体,请确保从 Isaac Sim 目录下启动它,以便在执行下列步骤时能够顺利调用所需技能。
确认这三项资产均已正确加载,没有出现文件缺失报错。可以让智能体检查机械臂与夹爪的关节限位与驱动设置,也可以在 Isaac Sim 中自行查看。机器人和夹爪中均包含物理关节,同样可以在 Isaac Sim GUI 中进行测试与验证。接下来,我们把机械臂和夹爪组装在一起,以便将其作为一个整体关节机构进行控制。
如需手动组装,可以参考机器人组装教程。这里我们将让智能体代为完成组装并进行验证:
本例使用的提示词示例:
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”技能完成了装配,并验证了机器人的物理属性。至此,运行抓取与放置任务所需的资产已全部就绪:组装好的机器人和易拉罐。接下来,我们将进入工作流的最后一步。
图 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’
整个任务主要测试夹爪能否在移动过程中握稳易拉罐,并在目标位置松开。重置场景后,依次运行接近、抓取、提起、保持、移送和释放动作序列。你可以将运行效果与开头的视频以及下方的成功判定标准进行对比。
图 6. 在 Isaac Sim 中,UR17G 机械臂与 Robotiq 2F-140 夹爪将易拉罐从黄色拾取标记移动到绿色目标位置。按 4 倍速播放。
如果你的运行结果有所出入,请记下动作序列在哪个环节失败,并让智能体检查场景、重新生成控制指令。在重试之前,先将易拉罐和机器人重置到相同的初始状态,以便对比测试结果。
仿真假设:
- 固定设置:易拉罐起始于已知位置,机器人已固定,工作空间平整无阻碍。测试未引入视觉传感器,碰撞检测也较为有限。
- 简化罐体:未对形变和液体流动建模,因此本示例不测试易拉罐是否会被压瘪。
- 预设抓取与运动:水平抓取采用了 2 N·m 的驱动力上限,该数值通过仿真测试选定,未针对指尖接触力进行校准,也非厂商推荐值。机械臂沿着固定路径点移动且不重新规划路径,依靠接触与摩擦力握住易拉罐。如需查看硬件抓取力规格,请参阅 Robotiq 产品规格表。
这些测试结果仅适用于当前预设的配置场景,并不代表系统在面对物体位置不确定、负载不同或实际硬件部署时也具备同样的鲁棒性。
使用 SimReady 资产构建你的下一个仿真
借助 SimReady Central 提供的资产构建你自己的抓取与放置任务,随后使用心仪的智能体来协助组装场景,并在 Isaac Sim 中运行。
探索资产
- 查找机器人与物体:浏览 Hugging Face 上的 SimReady Central。
- 查看资产支持的功能:参阅 SimReady Foundation 中的配置文件与规范要求,并结合资产的验证报告一并查看。
构建抓取与放置场景
- 配置仿真器:参考 Isaac Sim 安装指南安装本例所用版本。
- 连接智能体:参考Isaac Sim 智能体技能文档,让智能体能够调用这些预置技能。
- 组装机器人:如果你想手动连接机械臂和夹爪,可以参考机器人装配教程。
制作与贡献内容
- 从 CAD 开始:参考制作机器人 SimReady 资产的 5 个步骤,准备属于你自己的机器人资产。
- 验证并提交资产:参考SimReady Central 提交指南,将你的资产分享给其他开发者。
想获取灵感的话,不妨看看Michael Wagner 打造的语音控制 VR 演示。这两个案例都展现了开发者如何在自己的项目中运用 SimReady 资产。
你打算构建什么项目?欢迎在 Hugging Face 评论区分享你的场景和成果,并注明所使用的资产及 Isaac Sim 版本。
祝构建顺利!
来源:Hugging Face Blog · huggingface.co





