初めに
今回は、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
参考
先ほどのシェルスクリプトはここを参考にしました。ありがとうございます。