0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Isaac Labを仮想環境(uv)で動かすまで

Posted at

初めに

今回は、Isaac Labを試してみました。しかしながら、Isaac Labの公式チュートリアルではcondaを使った手法でインストールが行われていたのでよりモダンなPythonのパッケージマネージャであるuvを使用して環境構築してみました。

uvとは

uvとはみんな大好きRust製のPythonパッケージマネージャです。

  • ライブラリを並列でインストールするため爆速
  • pyproject.tomlで簡単にライブラリを管理可能
  • モダンでありながらpipとの互換性もある

などなど非常に使いやすいライブラリです。ちなみにuvとはultra velocityの略で、一つ目のメリットを端的に表しています。

uvの初期環境

uv init
uv venv --system-site-packages #後でROS2を使う時に必要かもと思ってこうした isaacsimのみなら不要
uv python pin 3.10 #pythonのバージョンは公式のインストールガイドだと3.10を使っているらしい

これで一旦uvの初期環境が整います。

uv pip install 'isaacsim[all,extscache]==4.5.0' --extra-index-url https://pypi.nvidia.com

公式通りにisaacsimを入れてみます。uvはこのようにpipで書かれている部分をそのまま置き換えることができるのが非常に良いところです。

git clone git@github.com:isaac-sim/IsaacLab.git
uv pip install -e ../IsaacLab/source/isaaclab

でisaaclabのコードを取得してきます。
この後の公式のインストール手順ではシェルスクリプトを起動してセットアップを完了させるのですが、uvには対応していません。そこで、このようなshell scriptを作成して実行します。

#!/usr/bin/env bash

install_isaaclab_extension() {
    if [ -f "$1/setup.py" ]; then
        echo -e "\t module: $1"
        uv pip install --editable $1
    fi
}

export ISAACLAB_PATH="../IsaacLab" # これはスクリプトがある場所からIsaacLabのリポジトリへの相対パス
export -f install_isaaclab_extension


find -L "${ISAACLAB_PATH}/source" -mindepth 1 -maxdepth 1 -type d -exec bash -c 'install_isaaclab_extension "{}"' \;

なお、このシェルスクリプトは仮想環境に入るたびに実行しておく必要があります。
ここで、この手法でインストールしたisaacライブラリはpyproject.tomlに反映されないので手動で追加する必要があります。
具体的には以下のようにライブラリを追加してください。

uv add gitdb==4.0.12 gym==0.23.1 gym-notices==0.1.0 markdown-it-py==3.0.0 mdurl==0.1.2 onnx==1.17.0 pandas==2.3.1 pathtools==0.1.2 promise==2.3

uv add protobuf==3.20.3  psutil==5.9.8 pygame==2.1.0 pytz==2025.2 rich==14.1.0 rl-games==1.6.1 rsl-rl-lib==2.3.3 sentry-sdk==2.33.2  setproctitle==1.3.6 shortuuid==1.0.13 skrl==1.4.3 smmap==5.0.2 stable-baselines3==2.7.0 tzdata==2025.2  wandb==0.12.21 click==8.2.1

uv add anyio==4.9.0 anytree==2.13.0 cmeel==0.57.3 cmeel-assimp==5.4.3.1 cmeel-boost==1.83.0 cmeel-console-bridge==1.0.2.3 cmeel-octomap==1.10.0 cmeel-qhull==8.0.2.1 cmeel-tinyxml==2.6.2.3 cmeel-urdfdom==3.1.1.1 cmeel-zlib==1.3.1 dex-retargeting==0.4.6 eigenpy==3.5.1 einops==0.8.1 flatdict==4.0.1 hidapi==0.14.0.post2 hpp-fcl==2.4.4 iniconfig==2.1.0 junitparser==4.0.2 loop-rate-limiters==1.1.2 lxml==6.0.0 nlopt==2.7.1 onnx==1.16.1 pin==2.7.0 pin-pink==3.1.0 pluggy==1.6.0 prettytable==3.3.0 pyglet==1.5.31 pytest==8.4.1 pytest-mock==3.14.1 pytransform3d==3.14.2 qpsolvers==4.8.0 quadprog==0.1.13 regex==2024.11.6 safetensors==0.5.3 sniffio==1.3.1 starlette==0.45.3 tokenizers==0.21.4 toml==0.10.2 transformers==4.54.0 trimesh==4.7.1 warp-lang==1.8.0

uv add isaaclab==0.41.1 isaaclab-mimic==1.0.7 isaaclab-rl==0.8.1

pyproject.tomlのdependenciesに以下を記載します。

"isaaclab @ file:///home/ubuntu/env_isaaclab/IsaacLab/source/isaaclab",
"isaaclab-mimic @ file:///home/ubuntu/env_isaaclab/IsaacLab/source/isaaclab_mimic["all"]",
"isaaclab-rl @ file:///home/ubuntu/env_isaaclab/IsaacLab/source/isaaclab_rl["all"]"

動作確認

uv run ../IsaacLab/scripts/tutorials/00_sim/create_empty.py

参考

先ほどのシェルスクリプトはここを参考にしました。ありがとうございます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?