用 SimReady 资产构建机器人抓取放置仿真
本文目录
本演练展示一个饮料罐抓取放置任务:它使用 UR17G 机械臂、Robotiq 2F-140 夹爪和饮料罐,在 Isaac Sim 中搭建场景、检查其行为,并通过智能体(agent)生成的控制来运行一个抓取放置示例。
对于机器人工作流,SimReady 意味着某个 OpenUSD 资产已经准备好定义仿真用例所需的属性,例如碰撞、质量、关节和关节驱动。SimReady Central 是 Hugging Face 上的一个开放资产库,让你能够复用带有已编写仿真属性和配置验证证据的机器人及物体资产。有关该库及其发布的更多信息,请阅读公告博客。
什么让机器人资产成为 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 的空间搜索服务端点,查找 OEM 精选内容。
我们还会使用一个前沿 AI 模型,帮助在开放的 Isaac Sim 场景中创建并运行任务代码。本示例使用 GPT-6 Sol,但其他智能体与模型组合也可能可行,只要它能加载所需技能并对 Isaac Sim 执行 Python(生成的代码和结果可能有所不同)。提示词只是起点。在调整任务之前,请检查生成的代码并确认最终行为。
所需软件:
- 安装本示例所用的 Isaac Sim 6.2 版本,并检查其系统要求。
- 设置一个你能使用 Isaac Sim 技能的智能体。按照 Agent Skills 文档,让智能体可以使用打包好的技能。
- 仅当你选择命令行资产下载方式时,才需要安装 Hugging Face CLI。
- 使用 USD Search 端点。
步骤 1:下载机械臂、夹爪和饮料罐资产#
打开 SimReady Central,找到此处使用的 UR17G 机械臂、Robotiq 2F-140 夹爪和饮料罐。在每个资产上选择“下载”,然后使用“保存到文件夹”或提供的 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 配置验证为复用这些资产提供了共享基线。随后的抓取放置运行则测试机械臂、夹爪、罐子和控制器在组装场景中如何协同工作。
步骤 2:组装机器人并为抓取放置搭建场景#
资产下载完成后,使用带 Isaac Sim 技能的智能体来帮助组装机器人、运行验证工具并创建抓取放置控制逻辑。你也可以按照链接文档手动完成这些步骤。
从安装目录启动 Isaac Sim,并启用远程 Python 服务器,以便智能体可以通过 Python 与仿真交互:
./isaac-sim.sh --enable isaacsim.code_editor.python_server
如果使用智能体,请确保从 Isaac Sim 目录启动它,以便在接下来的步骤中访问所需技能。
确认三个资产均出现且没有文件缺失错误。让智能体检查机械臂和夹爪的关节限位与驱动设置,或者你在 Isaac Sim 中自行查看。机器人和夹爪包含物理关节,也可以在 Isaac Sim 图形界面中测试和验证。接下来,我们将组装机械臂和夹爪,以便将整个组件作为单一关节结构(articulation)来控制。
你可以按照机器人组装器(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” 技能完成组装并验证机器人物理。现在我们已经具备运行抓取放置所需的全部资产:组装好的机器人和汽水罐。接下来进入工作流最后一部分。
图 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 Agent Skills 文档,让智能体可以使用打包技能。
- 组装机器人:如果你更愿意手动连接机械臂和夹爪,请遵循机器人组装器教程。
准备并贡献内容
- 从 CAD 开始:按照《为机器人创建 SimReady 资产的 5 个步骤》准备你自己的机器人资产。
- 验证并提交资产:按照 SimReady Central 提交指南,让你的资产可供其他开发者使用。
如需灵感,可探索 Michael Wagner 的语音控制 VR 演示或 Maziyar Panahi 的 Microduck 仿真。两者都展示了开发者如何在自己的项目中使用 SimReady 资产。
你会构建什么?在 Hugging Face 评论区分享你的场景和结果,包括所用资产和 Isaac Sim 版本。
祝构建愉快!
本文提及的数据集 3 个
本文提及的 Spaces 1 个