添加您自己的学习库

添加您自己的学习库#

Isaac Lab预先集成了许多库(如RSL-RL,RL-Games,SKRL,Stable Baselines等)。然而,您可能希望将您自己的库与Isaac Lab集成,或者使用与Isaac Lab安装的库不同版本的库。只要该库是Python软件包,并且支持底层模拟器使用的Python版本,就可以实现这一点。例如,如果您正在使用Isaac Sim 4.0.0及以上版本,则需要确保该库适用于Python 3.10。

使用库的不同版本#

如果要使用与Isaac Lab安装的库不同的版本,可以通过从源代码构建或使用PyPI上可用的库的不同版本来安装该库。

例如,如果要使用您自己修改过的 rsl-rl 库的版本,可以按照以下步骤操作:

  1. 按照安装Isaac Lab的说明。这将安装默认版本的 rsl-rl 库。

  2. 从GitHub存储库中克隆 rsl-rl 库:

    git clone git@github.com:leggedrobotics/rsl_rl.git
    
  3. 在您的Python环境中安装该库:

    # Assuming you are in the root directory of the Isaac Lab repository
    cd IsaacLab
    
    # Note: If you are using a virtual environment, make sure to activate it before running the following command
    ./isaaclab.sh -p -m pip install -e /path/to/rsl_rl
    

在这种情况下, rsl-rl 库将安装在Isaac Lab使用的Python环境中。您现在可以在您的实验中使用 rsl-rl 库。要检查库的版本和其他详细信息,可以使用以下命令:

./isaaclab.sh -p -m pip show rsl-rl

现在应该显示 rsl-rl 库的位置作为您克隆库的目录。例如,如果您将库克隆到 /home/user/git/rsl_rl ,上述命令的输出应为:

Name: rsl_rl
Version: 2.0.2
Summary: Fast and simple RL algorithms implemented in pytorch
Home-page: https://github.com/leggedrobotics/rsl_rl
Author: ETH Zurich, NVIDIA CORPORATION
Author-email:
License: BSD-3
Location: /home/user/git/rsl_rl
Requires: torch, torchvision, numpy, GitPython, onnx
Required-by:

集成新库#

将新库添加到Isaac Lab类似于使用不同版本库。您可以在您的Python环境中安装该库并在您的实验中使用它。但是,如果要将库集成到Isaac Lab中,您首先需要为该库制作一个包装器,如在 包装环境 中所解释的那样。

可以按以下步骤将新库与Isaac Lab集成:

  1. 在扩展 omni.isaac.lab_taskssetup.py 中将您的库作为额外依赖项添加。这将确保在安装Isaac Lab时安装该库,或者如果未安装或不可用,将会报错。

  2. 在Isaac Lab使用的Python环境中安装您的库。您可以按照前一节中提到的步骤操作。

  3. 为该库创建包装器。您可以查看 omni.isaac.lab_tasks.utils.wrappers 模块,查看不同库的包装器示例。您可以为您的库创建一个新的包装器,并将其添加到该模块。如果愿意,还可以为包装器创建一个新的模块。

  4. 为您的库创建工作流脚本以训练和评估代理程序。您可以在 source/standalone/workflows 目录中查看现有的工作流脚本示例。您可以为您的库创建新的工作流脚本,并将其添加到该目录。

可选地,您还可以为包装器添加一些测试和文档。这将有助于确保包装器按预期工作,并可指导用户如何使用包装器。

  • 添加一些测试以确保包装器按预期工作,并且与库保持兼容。这些测试可以添加到 source/extensions/omni.isaac.lab_tasks/test/wrappers 目录中。

  • 为包装器添加一些文档。您可以将API文档添加到 docs/source/api/lab_tasks/omni.isaac.lab_tasks.utils.wrappers.rst 文件中。