跳过正文
  1. Notes/

IsaacSim 代码运行与 cuRobo 库的安装

loading · loading · ·
Robot Motion_plan
目录
Isaac Sim 命令行运行和代码编写,以及 cuRobo 库的安装

如果你还没有安装 Isaac Sim,请先看一下这篇文章:

Omniverse 与 IsaacSim 安装教程
loading · loading
Robot Software

在正式开始之前,我们首先要明确一下 Isaac Sim 究竟是什么。

事实上,Isaac Sim 只是一个仿真软件,可以进行机器人、各类形状的物体、甚至人为设定具有各项属性的物品之间的互动,模拟质量、速度、加速度等物理关系。

然而,Isaac Sim 本质上还是代码驱动的,由代码进行计算,前端进行渲染,从而得到视觉上的呈现。如果去掉视觉上呈现,其实依然可以依靠代码运行模拟整个仿真过程。

而本文就是讲解如何使用代码来运行 Isaac Sim,以及将 VsCode 与 Isaac Sim 关联,最后介绍一下 cuRobo 库的安装。

0.环境配置(cuRobo要求)
#

  1. Ubuntu 20.04 或 22.04(Windows 和 其他 Linux 版本也可以,但不保证稳定性)
  2. python 3.8 - 3.10(这里不需要额外安装,因为 Isaac Sim 的安装已经包括)
  3. pytorch 1.15 及以上版本
  4. 安装 git-lfs
  5. 安装 CUDA 11.8 并添加到环境变量

这里我们是 Ubuntu 22.04,Isaac Sim 4.0.0 版本。

1.安装 cuRobo 库
#

cuRobo 是一个用 Python 构建的库,其核心计算组件以 CUDA 内核的形式实现,并通过 pyTorch 封装在 Python 中。更详细的介绍可以查阅 官网论文

我们这里的目的是,安装 cuRobo 库,并且在 Isaac Sim 中使用。其他方式安装也可以参照官网的 安装教程

1.安装 CUDA 11.8 并添加环境变量
#

CUDA下载地址 中选择自己的系统版本下载(这里以 Ubuntu 22.04 版本为例),点击 deb(local) ,即可出现安装指令,在命令行中输入安装即可。

安装完成后,将 CUDA 11.8 添加到环境变量中。在命令行中输入:

export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}}

2.找到 Isaac Sim 中的 python.sh,添加到环境变量
#

我们在环境配置中提到,无需额外安装 python 环境,就是因为 Isaac Sim 在安装时已经自带了一个环境,在这个环境中,Isaac Sim 自己的扩展库路径都被收录,因此直接使用 Isaac Sim 自带的环境是十分方便的。

默认情况下,我们的 Isaac Sim 会被安装在 ~/.local/share/ov/pkg,这个路径可以在 Omniverse Launcher 的设置中查看。

我们找到该路径下的 isaac-sim-4.0.0 中的 python.sh 文件,在命令行中输入:

echo "alias omni_python='~/.local/share/ov/pkg/isaac-sim-4.0.0/python.sh'" >> ~/.bashrc
source ~/.bashrc

这样,就将这个文件定义成了 omni_python 命令,这个命令与我们正常的 python 文件基本没有区别,只是它所处于 Isaac Sim 的环境中。

我们可以理解成,conda创建了一个新环境名为 isaacsim,这个环境中的 python 指令为 omni_python,环境中的扩展都在 isaac-sim-4.0.0 文件夹内。

可以通过 omni_python -m pip xxx 来使用 pip 指令。

3.安装 git-lfs
#

命令行中输入:

sudo apt install git-lfs

4.在 isaacsim 环境中添加扩展 module
#

命令行中输入:

omni_python -m pip install tomli wheel ninja

5.将 cuRobo 库克隆到本地,并安装到 isaacsim 环境中
#

命令行中输入:

git clone https://github.com/NVlabs/curobo.git
cd curobo
omni_python -m pip install -e .[isaacsim] --no-build-isolation

注意,这个 curobo 文件夹比较重要,建议放在不会误删的位置,默认在主目录下。

输入:

omni_python -m pip list

可以看到,nvidia-curobo 已被安装。如果没有安装 pytorch,需要手动安装 1.15 以上版本(官方推荐 2.0+)

输入:

omni_python

可以发现进入了 python 命令行,并且 python 版本为 3.10

6. 验证
#

至此,我们的 cuRobo 库就安装完毕了,输入:

omni_python examples/isaac_sim/motion_gen_reacher.py

如果发现代码正常运行,并且启动了 Isaac Sim 界面。点击界面左侧的运行按钮,拖动小方块,机械臂会移动到小方块上。说明安装成功。

2.安装并配置 VsCode
#

在 VsCode 官网 下载 .deb 安装包,找到文件,输入以下命令安装。

sudo dpkg -i xxx.deb

1.将 python 解释器配置为 python.sh
#

点击 Ctrl+Shift+P 输入 select interpreter,选择解释器。

点击 输入解释器路径,打开文件选择界面。此时找到我们的 ~/.local/share/ov/pkg/isaac-sim-4.0.0/python.sh 并确认。

这样,我们就将解释器配置完毕,可以自由地调试和运行了。

在 VsCode 中运行 curobo/examples/isaac_sim 中的示例文件,如 motion_gen_reacher.py,点击右上角运行按钮旁边的下三角,找到 python调试程序:调试 python 文件 ,点击即可进行调试。

2.(另一种方法)利用扩展插件进行调试
#

这种方法需要修改 launch.json 文件,在 VsCode 中下载 Isaac Sim 插件,在Isaac Sim 中下载 VsCode Debug 插件,通过本地局域网的方式连接。

优点是可以进行只运行选中部分代码,缺点是每次调试都需要开启插件,比较麻烦。

这里不详细介绍,感兴趣可以看 参考文献 2

后记
#

本文后续可能会将 VsCode 的第二种方法补全,或添加一些 Windows 系统下的方法,用到再说。

参考文献
#

1.NVIDIA cuRobo Installation

2.Issac Sim 2. 使用VScode调试代码