操作示例应用程序
ISAAC教程合集地址
与 Jupyter Notebook 的简单联合控制
此示例使用 Jupyter Notebook 提供交互式联合控制。 这是处理用于操作组件(包括 LQR 规划器)的 CompositeProto 消息的一个很好的起点。
在 Isaac SDK 存储库中,运行 simple_joint_control Jupyter notebook
应用程序:
bob@desktop:~/isaac/sdk$ bazel run apps/samples/manipulation:simple_joint_control
您的 Web 浏览器应打开 Jupyter notebook 文档。 如果没有,请在控制台上搜索链接:它看起来像 http://localhost:8888/notebooks/simple_joint_control.ipynb。 在浏览器中打开该链接。
这个样本有两个部分。 第一部分,Omniverse 中的 UR10,在 NVIDIA Omniverse™ 的 Isaac Sim 中控制模拟的 UR10 手臂。 第二部分 Kinova Jaco Hardware 控制 Kinova 第 2 代机械臂硬件。
-
Omniverse 中的 UR10:按照基于 NVIDIA Omniverse™ 构建的文档 Isaac Sim 启动模拟器并在
omni:/Isaac/Samples/Isaac_SDK/Scenario/ur10_basic.usd
打开舞台。 启动仿真和 Robot Engine Bridge。在 Jupyter notebook 中,按照单元格使用 LQR 规划器或 RMP 规划器启动 SDK 应用程序。 连接到模拟器后,您可以使用滑块在模拟中移动 UR10 手臂的各个关节。 达到目标关节角度的关节命令分别由
multi_joint_lqr_control
或multi_joint_rmp_control
子图计算。
注意
ur10 模型在模拟中默认禁用自碰撞。 要启用此功能,请在舞台中选择 ur10,然后在 Articulation Root 下的 Property 选项卡中,选中 Enabled Self Collision 框。 请注意,LQR 规划器不会避免自碰撞。
- Kinova Jaco 硬件:按照笔记本中的说明安装 Kinova API 并将手臂连接到工作站。 按照单元格启动 SDK 应用程序,并使用滑块移动 Kinova 手臂上的各个关节。
Shuffle Box with Simulator
此示例展示了如何使机械臂移动通过一组关节角度的预定义路点并控制末端执行器(在本例中为夹具)。 CompositeMetric 和 CompositeAtlas 文档详细解释了如何使手臂遵循预定义的路径。
按照基于 Omniverse 构建的 Isaac Sim 的文档启动模拟器并在 omni:/Isaac/Samples/Isaac_SDK/Scenario/sortbot_sim.usd 打开舞台。 启动仿真和 Robot Engine Bridge。
在 Isaac SDK 存储库中,运行以下命令:
bob@desktop:~/isaac/sdk$ bazel run apps/samples/manipulation:shuffle_box
UR10 机械臂应反复拿起一个小车上的粉红色盒子,然后将其从另一侧放下。 由于拾取和放下路径点是硬编码的关节角度,而盒子的位置会随着时间的推移略有偏移,经过多次迭代后,由于未对准,手臂将无法拾起盒子。
示例应用程序还包括用于粉红色框的预训练 3D 姿势估计模型。 感知输出可以在 Sight 中可视化:
-
将设置图标旁边的模拟相机从透视切换到相机/相机。
-
在 http://localhost:3000 打开 Sight。 您应该会看到盒子的 CAD 模型,检测到的 3D 姿势覆盖在 RGB 相机图像上。
更多精彩内容:
https://www.nvidia.cn/gtc-global/?ncid=ref-dev-876561