第1回でVLMとVLAの違いを整理し、第2回ではVLMを自宅のPCで動かして、写真から物体の座標を出させました。今回はいよいよ本丸です。座標を経由しない、本物のVLAを、自宅のPCで動かします。

先に、この回で何が起きたかを書きます。最新のロボット基盤モデル「π0.5」を、研究所でもクラウドのデータセンターでもなく、自宅のPC1台(Windows+RTX 3090)で丸ごと動かし、画像と言葉の指示だけからロボットアームの動作を生成させ、シミュレーション上のタスクを50回すべて成功(成功率100%)させました。2年前なら大学の研究室と高価なGPUクラスタが要った領域です。それが家庭のPCに降りてきた、ということを、実際に手を動かして確かめた回です。
ただ、ここで一番大事なのは「CGのアームが箱をつかんだ」という画ではありません。その裏で何が成立したのかです。最初にそこを説明します。読み終えるころには、動画の意味と、この先に何が開けるのかまで分かるはずです。
使った環境は、Windows、RTX 3090(VRAM 24GB)、そしてWSL2(Windows上のUbuntu)です。
この記事に出てくる道具とモデル(先に用語整理)
今回はカタカナの固有名詞が多いので、先にまとめて意味を押さえます。これだけ分かれば本文で迷いません。
- π0.5(パイ・ゼロ・ファイブ):今回動かす”ロボットの脳”。Physical Intelligence社が公開した、画像と言葉からロボットの動作を直接出す基盤モデル(=VLA)。第1回で説明したVLAの、最新の実物です。
- PaliGemma(パリジェマ):そのπ0.5が内部で使っている、Google製の「画像+言語」モデル(=VLM)。第1回の「VLAはVLMの上に立つ」の、VLMにあたる部分です。
- Hugging Face(ハギングフェイス):世界中のAIモデルやデータが公開・配布されているプラットフォーム。今回のモデルはここから取得します。
- LeRobot(ルロボット):Hugging Faceが提供する、ロボット学習用のオープンソースのソフト一式。シミュレーションも実機も同じ枠組みで動かせます。
- LIBERO(リベロ):ロボットの「物をつかむ」などの操作タスクを試せるシミュレーション環境。VLA評価の事実上の標準です。
- miniforge(ミニフォージ):Pythonの環境や部品を管理するツール「conda」を、軽量に入れる版。作業用の”部屋”を作るために使います。
- Franka(フランカ):研究でよく使われる7軸ロボットアームの機種名。LIBEROの画面に出てくるアームは、これを模したものです。
この回をやる意義:動画の「だから何?」に答える
動かしただけでは「で?」で終わります。今回成立したことの意味は、3つあります。
ひとつ。「VLAを読んで知っている」から「VLAを手元で動かせる」に移りました。 他人のデモ動画ではなく、手元のマシンで動く実物です。指示文を変える、課題を変える、出てくる動作を見る、といじって確かめられる。理解の質がまるで変わります。
ふたつ。シミュレータという「実機の前の練習場」を手に入れました。 ロボット開発で一番高くて遅くて危ないのは物理ロボットです。シミュレーションなら、壊さず・買わず・けがの心配なく、数百回の試行を数十分で回せる。本物のロボット開発で「アイデア」と「現場投入」の間に必ず挟まるリハーサル工程を、自宅で立ち上げたということです。
みっつ。現場の作業をロボットに覚えさせる「土台」が完成しました。 モデルの読み込み、シミュレータ、観測の受け渡し、動作生成、評価、動画出力という一連が、手元の環境で端から端までつながった。これは次の段階(自社のタスクを学習させ、実機に載せる)に進むための前提です。
この先で何ができるかは、記事の最後にあらためて詳しく書きます。まずは動かすところまで進めます。
なぜWindowsのままでは動かないのか(WSL2が要る理由)
第2回のVLM(Ollama)はWindowsでそのまま動きました。今回は事情が違います。VLAのシミュレーション環境はLinux必須で、LeRobotの公式も「LIBERO requires Linux」と明記しています。
そこで使うのが WSL2(Windows Subsystem for Linux) です。Windowsの中にUbuntu(Linux)を同居させる仕組みで、Windowsを消す必要はありません。GPUもWindows側のドライバのまま、WSL2の中から使えます。正直に言うと、ここは第2回より明確に難易度が上がります。ただ、RTX 3090で動く・公式に整備された道がある、というのは確認済みです。「誰でもできる、ただし一手間かかる」回です。
VLAはVLMの上に立っている(π0.5の中身)
セットアップの前に、今回の山場の伏線を1つ。今回動かすVLA「π0.5」は、内部に Googleの「PaliGemma」というVLM を抱えています。第1回で「VLAはVLMを土台に、行動を出力するヘッドを接ぎ木したもの」と説明しましたが、π0.5はまさにその実例です。土台のVLMがPaliGemma、その上に動作生成が乗っている。
これは後で「つまずきポイント」として効いてきます(PaliGemmaの利用に許可が要る)。覚えておいてください。
セットアップ① WSL2を入れて、GPUを通す
管理者権限のPowerShellで、WSL2とUbuntuを入れます。
wsl --install
再起動後、Ubuntuを起動して初期設定(ユーザー名・パスワード)を済ませます。次に、WSL2の中からGPUが見えるか確認します。Ubuntuのターミナルで:
nvidia-smi
ここに RTX 3090 が表示されれば成功です。ポイントは、GPUドライバはWindows側だけでよく、WSLの中にLinux用ドライバを入れてはいけないこと(NVIDIA公式の注意)。これだけで、Windowsの中のLinuxが3090を使える状態になります。

セットアップ② Python環境を作る(conda)
LeRobot公式はconda(miniforge)での環境管理を推奨しています。Ubuntu側でminiforgeを入れます。
wget "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
bash Miniforge3-$(uname)-$(uname -m).sh
bash の方はインストーラです。途中の質問(ライセンス同意、インストール先、初期化)は、基本すべて yes/Enterで進めます。インストール先を聞かれたら何も打たずにEnterだけ(ここでコマンドを打つと失敗します)。終わったらターミナルを開き直すと、プロンプト先頭に (base) が付きます。
専用の仮想環境を作って、入ります。
conda create -y -n lerobot python=3.12
conda activate lerobot
conda create は「lerobot という名前の、Python 3.12 の作業部屋を作る」コマンド。conda activate でその部屋に入ります。プロンプトが (lerobot) に変わればOKです。
WSLで動かすときに必要な evdev と、動画処理に使う ffmpeg を入れます。
conda install -y evdev -c conda-forge
conda install -y ffmpeg -c conda-forge
セットアップ③ LeRobotとLIBEROを入れる
LeRobot本体をGitHubから取得します。
cd ~
git clone https://github.com/huggingface/lerobot.git
cd lerobot
LIBEROのインストールでは一部がソースからビルドされるため、先にビルド用ツールを入れておくと失敗を防げます(公式トラブルシュート記載)。
sudo apt-get update && sudo apt-get install -y cmake build-essential python3-dev pkg-config libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libswresample-dev libavfilter-dev
そしてLIBERO込みでLeRobotをインストールします。これが一番時間のかかる工程で、PyTorchなど数GBのダウンロードが走ります。
pip install -e ".[libero]"
-e ".[libero]" は「今いるフォルダのLeRobotを、LIBERO機能つきで入れる」という意味です。最後に Successfully installed ... と大量のパッケージ名が並べば成功です。
つまずきポイント:π0.5が使うPaliGemmaは「許可制」だった
ここが今回最大の関門です。準備を終えて実行すると、最初は次のエラーで止まりました。
GatedRepoError: 401 ... Access to model google/paligemma-3b-pt-224 is restricted.
意味はこうです。π0.5は内部のVLMにGoogleのPaliGemmaを使っていて、そのPaliGemmaがHugging Faceのゲート付き(利用にライセンス同意が必要な)モデルでした。未認証なので弾かれたわけです。第1回で説明した「VLAはVLMの上に立つ」が、こんな形で実地に出てきます。
解決は3手順です。まずHugging Faceで「Read」権限のアクセストークンを作成(https://huggingface.co/settings/tokens)。次にWSLでログインし、聞かれたらそのトークンを貼り付けます。
hf auth login
そして最重要が、PaliGemmaのページでライセンスに同意することです。https://huggingface.co/google/paligemma-3b-pt-224 を開き、表示される同意ボタンを押します。
ここで私は一度つまずきました。トークンを入れて再実行したら、今度はエラーが 401 から 403 Forbidden に変わったのです。これは前進の証拠でした。401は「そもそも認証されていない」、403は「認証は通ったが、このアカウントが許可リストに入っていない」。つまりトークンは効いていて、あとはPaliGemmaの同意が済んでいなかっただけ。同意を済ませたら通りました。同じところで詰まる人は多いはずなので、覚えておくと一発で抜けられます。
本番:学習済みπ0.5をLIBEROシミュレーションで動かす
まず、画面のない環境で描画するための設定をします。
export MUJOCO_GL=egl
これは「シミュレータの絵を画面に出さず、GPUで裏で描いて動画ファイルに書き出す」設定です。WSLのように画面がない環境で必要になります。
そして本番のコマンドです。各オプションの意味を添えます。
lerobot-eval \
--policy.path=lerobot/pi05_libero_finetuned \
--env.type=libero \
--env.task=libero_object \
--eval.batch_size=1 \
--eval.n_episodes=5 \
--policy.n_action_steps=10 \
--output_dir=./eval_logs/ \
--env.max_parallel_tasks=1
lerobot-eval… 学習済みの方策(ポリシー)をシミュレーションで動かして評価する、LeRobot付属のコマンド。--policy.path=lerobot/pi05_libero_finetuned… 動かすVLAモデル。Hugging Face上の学習済みπ0.5(LIBERO用に微調整済み)。--env.type=libero… 動かす舞台=LIBEROシミュレータ。--env.task=libero_object… LIBEROの課題セット。objectは「物の名前」で対象を指定する課題群。--eval.batch_size=1… 同時に並列で動かす環境の数。1=ひとつずつ(VRAM節約・確実)。--eval.n_episodes=5… 各課題を何回試すか。--policy.n_action_steps=10… モデルが一度に先読みして出す動作の手数。10は元実装に合わせた値。--output_dir=./eval_logs/… 結果と動画の保存先。--env.max_parallel_tasks=1… 同時に走らせる課題数の上限。1=順番に。
呪文をコピペするのではなく、「どのモデルを・どの舞台で・どう動かすか」を指定しているだけ、と分かれば怖くありません。
結果:成功率100%、そして動画
実行すると、π0.5がLIBERO内のロボットを動かし始めます。libero_object には10個の課題があり、各5回ずつ=50エピソードが走りました。結果はこうです。
pc_success: 100.0, n_episodes: 50, eval_ep_s: 約55秒
50回すべて成功(成功率100%)。1エピソードあたり約55秒でした。./eval_logs/videos/ 以下にエピソードごとの動画が保存されます。Windowsからは、WSLのターミナルで explorer.exe . を実行するとエクスプローラで開けます。
動画には、シミュレーション上のFranka系7軸アームが、テーブルの上の物体(箱・ボトル・缶など)へ近づき、つかんで持ち上げる様子が写っています。画面の左上には手首カメラの映像も。画像と言葉の指示から、座標を一切経由せず、アームの動作が直接生成されて物をつかめている——第1回で説明したVLAそのものが、自宅のPCで動いた瞬間です。
指示を変えると、つかむ物が変わる
VLAの本質は「画像+言葉の指示→動作」です。だから同じ仕組みでも、言葉を変えれば狙う対象が変わります。これを確かめるため、課題セットを libero_spatial(物を「位置関係」で指定する課題群)に変えて実行しました。コマンドはほぼ同じで、--env.task を変えるだけです。
lerobot-eval \
--policy.path=lerobot/pi05_libero_finetuned \
--env.type=libero \
--env.task=libero_spatial \
--env.task_ids="[0,1,2]" \
--eval.batch_size=1 \
--eval.n_episodes=1 \
--policy.n_action_steps=10 \
--output_dir=./eval_logs_spatial/ \
--env.max_parallel_tasks=1
--env.task_ids="[0,1,2]" は「そのセットの0・1・2番の課題だけ動かす」指定です(省略すると全部)。結果は3課題とも成功(100%)、1エピソードあたり約77秒。物体スイートより少し長いのは、位置を見極めるぶん動作が増えるためです。
動画を見ると、場面も狙う対象も変わっていました。物体スイート(机に箱やボトル)に対し、位置スイートは棚と複数の器が並ぶ場面で、指示された位置の物へアームが向かう。同じモデル・同じ枠組みでも、与える言葉の種類が変われば行動が変わる。これが「言語で動くロボット」の正体です。
ターミナルを閉じた後、また動かすには
一度PowerShellやUbuntuのターミナルを閉じると、作業環境はリセットされた状態に戻ります。後日また動かすときは、次の順で”環境に入り直す”だけでOKです(インストールはやり直し不要)。
まず、WindowsでUbuntu(WSL)のターミナルを開きます。スタートメニューの「Ubuntu」を起動するか、PowerShellやWindows Terminalで次を打てば入れます。
wsl
次に、作った作業部屋(conda環境)に入り、LeRobotのフォルダへ移動します。
conda activate lerobot
cd ~/lerobot
最後に、描画設定だけは毎回入れ直す必要があります(この設定はターミナルを閉じると消えるため)。
export MUJOCO_GL=egl
ここまでやれば、あとは lerobot-eval ... のコマンドをそのまま実行するだけです。なお、Hugging Faceのログイン(トークン)とPaliGemmaのライセンス同意は保存されるので、再ログインや再同意は不要です。毎回 export を打つのが面倒なら、その一行を設定ファイル ~/.bashrc の末尾に書いておくと、次回から自動で効きます。
100%の正しい読み方(誇張しないために)
成功率100%と聞くと万能に見えますが、正直に書きます。**この100%は「LIBEROという既知のベンチマークで、それ用に微調整済みのモデルを評価した、得意領域での数字」**です。2026年の研究(LIBERO-PRO)でも、標準のLIBEROは設定を変えると性能が落ちる=モデルが手順を覚え込んでいる側面がある、と指摘されています。
つまり「どんな新しい環境・初見の物でも100%」ではありません。速度も自宅環境で1エピソード55〜77秒と速くはなく、リアルタイム制御には工夫が要ります。PaliGemmaの許可制でつまずいたように、最新ゆえの手間もあります。
ただ、ここを実体験で確かめられたことにこそ価値があります。「VLAは今ここまでできる・ここはまだ」を実体験として語れる。できることだけ並べるより、限界も握っているほうが、現場では何倍も信頼されます。
これができたことで、今後何が実現できるか
最後に、この回の本当の意味です。今日の100%は「最初から入っていた課題」での成功でした。本当の狙いはその先にあります。
現場の作業を、このVLAに覚えさせられます。 「特定の部品をつかむ」「ある収穫動作をする」といった、解きたい作業を、人がロボットを操縦して見せたお手本データ(次回以降のテレオペ)で微調整すれば、ロボットがその作業をやるようになる。今日のシミュレーション実行は、その学習と評価の仕組みが全部動くことを、ハードやデータに投資する前に無料で確認した、という位置づけです。
そして同じLeRobotの枠組みのまま、実機(低価格アームSO-101など)へ載せ替えられます。 今日シミュレーションで通したことが、そのまま物理ロボットへの橋になる。今日は本番前の通し稽古でした。
技術顧問の仕事としても効きます。客先が「うちの作業をロボットにやらせたい」と言ったとき、いきなり高価なハードを買わせる前に、まずシミュレーションで「今のVLAでどこまでいけるか」を見極められる。投資判断のリスクを下げる。これはデモ動画を見せるより、ずっと実務的な価値です。
まとめ
- 最新のロボット基盤モデルπ0.5を、WindowsのWSL2+RTX 3090という自宅環境で動かし、画像+言葉の指示だけでロボットアームのタスクを成功率100%(50/50)で遂行させた。座標を経由しない、本物のVLAが自宅で動いた。
- 仕組みの肝は3つ。Linux必須なのでWSL2を使う/π0.5の中身はVLM(PaliGemma)で利用に許可が要る/コマンドは「どのモデルを・どの舞台で・どう動かすか」を指定しているだけ。
--env.taskをobject(物の名前)からspatial(位置)に変えると、狙う対象と動きが変わった。言葉を変えると行動が変わる=言語で動くVLAを実演できた。- 100%は得意領域の数字(LIBERO-PROが指摘する暗記の側面)で万能ではない。だが、この仕組みに現場のタスクを覚えさせ、実機に載せる土台が整った。客先の投資判断を、買う前にシミュレーションで見極める価値につながる。
第4回からは、いよいよ実機です。低価格のロボットアームを用意し、人が操縦してデータを集め、解きたいタスクを覚えさせるところへ進みます。今回と同じく、私も手を動かしながら、詰まった所も含めて正直に書きます。
「自社のロボットやAIで、どこまでが自前のPCやシミュレーションで現実的に試せるのか、一緒に切り分けたい」という方は、無料の30分オンライン診断で交通整理できます。実務でフィジカルAIを現場実装した経験から、率直にお話しします。
この記事の技術を、現場で実装したい方へ
AI×IoTの技術顧問として、月額契約で継続伴走しています。PoC設計・技術判断・組織設計・ベンダー管理・実装支援まで、現場で動くまで一緒に進めます。受託開発(請負)ではありません。
→ AI技術顧問サービスの詳細 / 無料30分オンライン診断 / 料金一覧






LEAVE A REPLY