はじめに
この記事は、「Isaac Sim(※ 以前、Qiita の記事に書いたNVIDIA のロボティクスシミュレーションなどのアプリ)」や、「Isaac Lab」、「Hugging Face LeRobot」を模倣学習などに使いやすくした環境の「LeIsaac(ルアイザック)」に関する内容です。
●Introduction | LeIsaac Document
https://lightwheelai.github.io/leisaac/
最初に出てきた「Isaac Lab」は Isaac Sim上に構築されたロボット学習のフレームワークで、Hugging Face LeRobot(ルロボット)は、ロボット操作データの収集、データセット管理、模倣学習や VLA などのポリシー学習、実機での推論までを一貫して扱う Hugging Face の OSS です。
LeIsaac の提供元
LeIsaac の提供元は、以下の Lightwheel になるようです。
●Lightwheel
https://lightwheel.ai/
以下は、Lightwheel が提供している LeIsaac の GitHub のリポジトリです。
●LightwheelAI/leisaac: LeIsaac provides teleoperation functionality in IsaacLab using the SO101Leader (LeRobot), including data collection, data conversion, and subsequent policy training.
https://github.com/LightwheelAI/leisaac
今回の内容
概要
今回の内容は、標準の公式手順とは異なる手順での環境構築です。
具体的には、Windows上にセットアップしていき、その際に mise・uv を活用して進めます。
公式手順では ./isaaclab.sh を含んだコマンドがあったりするので、Windows用のセットアップ手順ではないです。このあたりは、ChatGPT・Claude を使いつつ、探索的に進めました。
セットアップ前にざっくり調べたところ、以下など Windows での動作実績は既にありそうでした。
●Getting Started with Isaac Sim, Isaac Lab and LeIsaac on Windows (5090-ready) - HackMD
https://hackmd.io/@asierarranz/rkg1tvT93gx
今回のゴール
今回のゴールは、テレオペレーションが可能なシミュレーション環境を起動するところまでです。
シミュレーション環境上に、SO-101(オープンソースのロボットアーム)と、テレオペレーション用のアイテム(今回は 3つのオレンジと皿)が出てくれば OK とします。
※ 別途、テレオペレーションや、バーチャルな環境内で収集したデータを使ったファインチューニングなども試せればとは思っています
セットアップをする PC(GeForce RTX 5090ラップトップ搭載機)
今回、LeIsaac をセットアップするのは、以下の記事に出てきていた/下記でポストしていた Windows のノートPC(GeForce RTX 5090ラップトップ搭載機)です。
●NVIDIA Isaac Sim(NVIDIA のロボティクス シミュレーション アプリやデータ生成ツール)を GeForce RTX 5090 Laptop搭載PC(OS:Windows 11)で動かす - Qiita
https://qiita.com/youtoy/items/a82ab03dd29609f98b50
LeIsaac で使われる Isaac Sim の要求スペックが高いので、この PC でやっています。
実際の手順
以下は、実際の手順です。
公式の情報を見ると、以下のバージョンの制約もありそうなので、それに合わせてセットアップしていきます。
前提条件
この後の手順を進めるにあたり「git、 mise、 uv」の 3つは導入済みという前提です。
公式の導入手順を参照して、インストールしておいてください。なお、WinGet を使った場合の導入コマンドを参考として掲載します。
winget install --id Git.Git -e --source winget
winget install jdx.mise
winget install --id=astral-sh.uv -e
※ 導入後、アップデートする時は WinGet のアップデート用のコマンドを使うなどしてください
インストール先・仮想環境の準備
インストール先フォルダ、そこでの仮想環境を準備します。今回、 C:\leisaac を作りました。
そして、リポジトリの内容をクローンします。以下の「.」をつけるコマンドでフォルダを作成しない形にして、 C:\leisaac 直下にクローンしました。
※ このとき、 C:\leisaac の中を空にしておく必要があります
git clone https://github.com/LightwheelAI/leisaac.git --recursive .
以下が、クローン後の状態の例です。
さらに、このフォルダ内で python@3.11 を指定して、仮想環境(今回は、名称「 .venv-isaac 」)を作成します。コマンドは以下のとおりです。
mise use python@3.11
uv venv --python 3.11 --seed .venv-isaac
そして、ps1実行を、この PowerShell ウィンドウが開いている間のみ有効にするコマンドを使いつつ、仮想環境のアクティベーションをします。
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\.venv-isaac\Scripts\Activate.ps1
※ ps1 の実行を常時、有効化するコマンド・設定もありますが、ひとまず、必要な時だけ有効かする手順にしています
上記の仮想環境作成からの、一連のコマンドを実行した結果、以下のようになりました。
仮想環境内で必要なものをインストール
上で書いていたバージョン依存を考慮しつつ、仮想環境内で、必要なものをインストールしていきます。
以下は、PyTorch のインストールです(※ PyTorch 2.7/cu128)。
uv pip install -U torch==2.7.0 torchvision==0.22.0 `
--index-url https://download.pytorch.org/whl/cu128
インストール後には、実行後の状態を確認します
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0))"
ここで期待される出力例は、自分の環境だと「2.7.0+cu128、 True、 NVIDIA GeForce RTX 5090 Laptop GPU」です。それについて、以下のように確認できました。
さらに、uv + 2026年現在の setuptools の組み合わせで起きる既知の問題への対処をします。
※ flatdict==4.0.1 は 2020年の古いパッケージで、ビルド時に pkg_resources を暗黙に使っているが、一方で、setuptools 82.0.0 で pkg_resources が削除されたため、uv が作る隔離ビルド環境で落ちるという問題があるようで、Isaac Lab 2.3.x でも同じ問題が報告されている状況らしいです
対処用のコマンドは、以下のとおりです。
uv pip install "setuptools==80.9.0" wheel
uv pip install flatdict==4.0.1 --no-build-isolation-package flatdict
これで、一通りの下準備は完了です。
仮想環境に LeIsaac をインストールする
あとは、上記の対応に関連した flatdict のオプション含んだコマンドで、仮想環境に LeIsaac をインストールします。
uv pip install "isaaclab[isaacsim,all]==2.3.0" `
--extra-index-url https://pypi.nvidia.com `
--no-build-isolation-package flatdict
uv pip install -e .\source\leisaac
また、この後の手順を進める中で問題が起きた部分があり、その対処として numpy・h5py のバージョンは以下で固定しておきます。
uv pip install --reinstall "numpy==1.26.0" "h5py==3.15.1"
これで、下準備は完了です。念のため、以下のコマンドが通って、環境が整っていることを確認しておきます。
python .\scripts\environments\list_envs.py
LightwheelAI/leisaac_env の巨大なサイズの assets を追加する
さらに、LightwheelAI/leisaac_env の巨大なサイズの assets を追加します。これは、上記の手順を進めた後に、分けて導入する流れになるようです。
Hugging Face公式の Pythonライブラリを使った、以下の方法を使います。
uv pip install huggingface_hub
python -c "from huggingface_hub import snapshot_download; snapshot_download(repo_id='LightwheelAI/leisaac_env', local_dir='.\leisaac_env_assets')"
Copy-Item .\leisaac_env_assets\assets\* .\assets\ -Recurse -Force
これで、以下のような構成が追加されたはずです。
C:\leisaac
├─ assets
│ ├─ robots
│ └─ scenes
│ └─ kitchen_with_orange
├─ scripts
├─ source
└─ ...
仮想環境で LeIsaac を起動する
仮想環境で LeIsaac を起動してみます。そのためのコマンドは、以下のとおりです。
python .\scripts\environments\teleoperation\teleop_se3_agent.py `
--task=LeIsaac-SO101-PickOrange-v0 `
--teleop_device=keyboard `
--num_envs=1 `
--device=cuda `
--enable_cameras
しばらく待ったら、以下の Isaac Sim 5.1.0 ベースの環境が立ち上がり、上記引数で指定していた「LeIsaac-SO101-PickOrange-v0(オレンジ 3つを皿へ移動させるもの)」が表示されました。
とりあえず、今回のお試しは以上です。
なお、以下の公式ドキュメントにあるとおり、シミュレーション環境上のロボットアームを例えばキーボード操作で動かすこともできたりします。
●Available Devices | LeIsaac Document
https://lightwheelai.github.io/leisaac/resources/available_devices/#keyboard
その他
仮想環境を再度アクティベートする
今回、ps1 の実行を常時許可する設定をしていないので、また仮想環境をアクティベートする時は以下の内容をセットで実行します。
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\.venv-isaac\Scripts\Activate.ps1
バッチファイル化する
上記の件は、以下のようなバッチファイルを作成すると、簡単化できそうです。
@echo off
cd /d C:\leisaac
powershell.exe -NoExit -ExecutionPolicy Bypass -Command "& '.\.venv-isaac\Scripts\Activate.ps1'"
SO-101 の実機との連動について
自宅で SO-101 を保有していないので、個人の環境では現状は試せないですが、この環境は実機の SO-101(リーダーアーム、フォロワーアーム)と連動させることができます。
リーダーアームとの組み合わせ
例えば、SO-101 のリーダーアームを操作デバイスとして、シミュレーション環境上で表示された SO-101 のフォロワーアームを操作することが可能です。
●Available Devices | LeIsaac Document
https://lightwheelai.github.io/leisaac/resources/available_devices/#so101-leader
フォロワーアームとの組み合わせ
また、LeIsaac でデータ収集したものを学習に使い、学習したものを実機のフォロワーアームで使う、ということもできます。












