机械臂取放物体示例应用程序
ISAAC教程合集地址
文章目录
- 机械臂取放物体示例应用程序
- 使用 Omniverse 套件模拟驱动的机器人手臂
- 启动取放示例应用程序
该包为拾取和放置场景提供了一个应用程序脚手架。 它具有执行拾取和放置任务所需的高级步骤,并与两种类型的机器人操纵器接口:UR10 手臂和 Franka Emika 手臂。 此示例应用程序中使用的功能包括致动器控制、物体检测和抓取。
此示例应用程序中包含两个不同的场景:
-
UR10 机械臂使用吸盘抓取机构将箱子从一个托盘拾取和放置到另一个托盘。
-
一只 Franka Emika 的手臂捡起彩色立方体并将它们堆叠在一起,然后使用双指抓取器再次拆开它们。
为了控制这两项任务,使用了一个由行为树驱动的中央 Isaac SDK 应用程序。 行为树定义了两个协同工作的任务:一个检测和抓取物体的拾取任务,以及一个将它们定位在目标姿势的放置任务。
在任务的选择部分执行的高级步骤如下:
-
转到可以看到物体的姿势。
-
检测视野中的物体。
-
转到预抓姿势以抓住物体(例如,略高于它)。
-
打开手臂的抓手。
-
靠近物体以抓住它。
-
关闭手臂的抓手。
-
从表面提起物体。
执行这些步骤后,物体应该在机器人手臂的抓取机构中,为后续的放置任务做好准备。
对于放置部分,需要的步骤如下:
-
转到下车前姿势(例如,略高于下车点)。
-
转到下降姿势以放置抓取的物体。
-
打开手臂的抓手。
-
将手臂抬离物体。
独立于所使用的机器人操纵器(并且除了加载的实际控制器模块之外),应用程序的脚手架保持不变,目的是展示如何使用 Isaac SDK 构建此类应用程序。
使用 Omniverse 套件模拟驱动的机器人手臂
取放示例使用 NVIDIA Omniverse Kit™,它模拟 UR10 和 Franka Emika 手臂。 要设置和启动 Omniverse,请参阅相应的文档:
-
https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/overview.html
-
https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/ext_omni_isaac_robot_engine_bridge.html
Omniverse 运行后,从 Omniverse Kit 窗口下方的内容面板中,选择地址字段并输入此 URL 以从 Omniverse 服务器加载 UR10 机器人资产:
omni:/Isaac/Samples/Isaac_SDK/Scenario/sortbot_sim.usd
要加载 Franka Emika 手臂的资产,请使用此 URL:
omni:/Isaac/Samples/Isaac_SDK/Scenario/franka_table.usd
用回车确认。 然后,在 Robot Engine Bridge 面板上,单击 Create Application。 这将启动 Isaac SDK 后端。
后端运行后,单击 Omniverse 窗口中的“播放”按钮开始模拟。
启动取放示例应用程序
要运行连接到 Omniverse 的应用程序,请执行以下命令之一:
- UR10 box pick-and-place场景,使用Pose CNN和RGB图像进行物体姿态估计:
bazel run //apps/samples/pick_and_place -- --arm ur10
Franka 立方体堆叠/拆堆叠场景,使用基于超像素的块姿态估计和 RGB-D 图像:
bazel run //apps/samples/pick_and_place -- --arm franka
这将启动相应的示例应用程序,并根据所选场景在 Omniverse 中移动模拟机器人手臂。
您可以使用额外的命令行参数 --groundtruth
启动这两个场景,以使用模拟中的 groundtruth 3d 姿势而不是基于相机的姿势估计来检测和拾取目标对象。 在这种情况下,您可以将 Omniverse 视口切换为 Perspective,以从第三人称视角查看整个过程。
有关命令行选项的完整列表,请运行:
bazel run //apps/samples/pick_and_place -- --help
更多精彩内容:
https://www.nvidia.cn/gtc-global/?ncid=ref-dev-876561