1
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?

Physical AI Studio - インテル製 CPU で始める模倣学習

1
Last updated at Posted at 2026-10-23

はじめに

2026年5月にインテルからオープンソースの模倣学習フレームワークのPhysical AI Studioがリリースされました。

模倣学習のフレームワークとして Hugging Face の Lerobot が広く使われていますが、Physical AI Studio は LeRobot をベースとした機能を GUI から利用できるため、初めて模倣学習に取り組むユーザーにも扱いやすくなっています。また、インテル製の内蔵 GPU に対応しているため、ある程度のスペックの PC があれば模倣学習を始めることができます。

他に次のような特徴があります。

  • エンドツーエンドのフレームワークで、ロボットの設定、データ収集、モデルの学習 (ファインチューニング)、テスト推論までを実行できる。
  • GUI が用意されているため、エンジニアでなくても直感的に利用できる。
  • また GUI だけでなく CLI、Python API も用意されている。
  • 学習したモデルは OpenVINO™、ONNX、PyTorch の形式で出力して使用できる。

この記事では Physical AI Studio を使って、ロボットアーム(SO-ARM101)で模倣学習をする手順を紹介します。

模倣学習の流れと、その中での Physical AI Studio の役割を図にすると下のようになります。

physical_ai_studio_flow.png

2026年9月と10月に 2 度バージョンアップされており、新たな機能や AI モデルが追加されています。
以前のバージョンをダウンロード済みの方は最新版に移行するのをお勧めします。

内容

Physical AI Studio の起動

Physical AI Studio の GUI は Docker を使って起動するのが簡単なのでお勧めです。

AI モデルのファインチューニングや推論も含めて全ての手順を実行するためには、ネイティブで Linux がインストールされた PC を用意してください。インテル® Core™ Ultra シリーズ 3 プロセッサーなど、高性能な内蔵 GPU を搭載したプロセッサーと最低 32GB (推奨は 64GB) のメモリーが必要です。データの収集だけであれば、WSL を利用して Windows のノートブック PC で実行することも可能です。

ここでは Ubuntu 24.04 LTS を仮定して説明します。

1. Docker をインストールする

  • Docker Engine 24.0以上、Docker compose v2.24.0以上が必要です。
  • Dockerのインストールはインテル製CPUを搭載したプラットフォームであれば、Dockerのドキュメント通りに進めれば多くの場合は問題なく導入できます。
  • Post installation stepも忘れず実行してください。

2. oneAPI Level Zero および OpenCL™ ドライバー向けインテル® グラフィックス・コンピュート・ランタイムをインストールする

  • インテル製の (内蔵) GPU を Physical AI Studio から使うためのドライバーが必要です。
  • Intel compute-runtimeに従ってインストールしてください。

3. Physical AI Studio レポジトリをクローンして、設定スクリプトを実行します

  • READMEの手順通り以下のコマンドを実行します。

    git clone https://github.com/open-edge-platform/physical-ai-studio.git
    cd physical-ai-studio/application/docker
    ./setup-devices.sh --xpu # or use --cuda, --cpu
    
  • 初めて./setup-devices.sh を実行すると下のような警告が表示されます。

  • メッセージの指示通りに usermod コマンドを実行し、ログインしなおします。

    [warn]  -> Run: sudo usermod -aG dialout user_name  (then re-login)
    [warn]  -> Run: sudo usermod -aG video user_name  (then re-login)
    [warn]  -> Run: sudo usermod -aG plugdev user_name  (then re-login)
    [warn]  -> Run: sudo usermod -aG render user_name  (then re-login)
    

4. Physical AI Studio コンテナの起動

  • 同じフォルダに docker-compose.yaml があるので、下のコマンドでコンテナを起動します。
  • 初回はコンテナイメージの作成に数分かかりますが、2 回目以降は数秒で起動するはずです。
  • コンテナを起動する前に、ロボットアームとカメラを PC に接続しておいてください。
docker compose up -d
  • コンテナの停止は次のコマンドを使います。
docker compose down
  • 「-v」オプションを付けて停止するとコンテナがクリーンアップされます。
  • 問題が起きた場合などに有効な場合がありますが、記録したデータセットやトレーニング済みモデルが消去されるので必要なものは予めエクスポートしておいてください。
docker compose down -v

5. Physical AI Studio の GUI にアクセス

  • コンテナの起動後、ブラウザで「http://localhost:7860」を開くと、Physical AI Studio の GUI にアクセスできます。

  • 下のような画面が表示されれば OK です。表示されなければ数秒空けてリロードしてください。

    opening_gui.png

模倣学習環境の作成

次いで模倣学習環境を作成します。プロジェクトの作成、ロボットとカメラの設定、環境の設定を行います。

1. プロジェクトの作成

  • GUI が起動したら最初にプロジェクトを作成します。
  • 「Projects」タブを選んで「Create new project」をクリックします。
  • 「Project name」に適当な名前を入力して保存してください。(例: test project)

2. ロボットの設定

  • 次いでロボットアームの設定を行います。Robots - Robot armsタブを選んで「+Configure new robot」ボタンを押します。

  • 表示されるロボットは3種類ですが追加することも可能です。ここではSO101 Follower、SO101 Leaderの順に設定をします。

    • SO101 (FollowerとLeader)
    • Trossen WidowX AI (FollowerとLeader)
    • Trossen Bimanual WidowsX AI (FollowerとLeader)

    configure_new_robot.png

  • SO101 は組み立て後に各モーターに ID を設定する必要がありますが、ここでは設定済みとして進めていきます。

  • 設定する項目は「Robot type」、「Robot name」、「Connection」の 3 つです。

  • 設定例

    Robot type Robot name Connection
    SO101 Follower Bob /dev/ttyACM1
    SO101 Leader Kevin /dev/ttyACM0
  • Connection はどちらかを選択して「Identify」ボタンを押すと、ロボットのグリッパーが動くので見分けがつきます。

  • 「Begin Setup」ボタンを押すとキャリブレーション画面に移ります。

    • キャリブレーションが必要なのは一度だけです。2 回目以降はスキップしてください。
    • ロボットを GUI に表示されているホームポジションまで手で動かし、「Apply Homing Offset」ボタンを押します。
    • 全ての関節を順に可動域全体にわたって動かし、終わったら「Finish Recording」ボタンを押します。
  • 「Save Robot」ボタンを押すとロボットアームの設定は完了です。

    robot_setup_done.png

3. カメラの設定

  • 次はカメラの設定です。ここではロボットの上部に固定した環境全体の記録用と、ロボットの手先の記録用の 2 つのUSBカメラを使っています。
  • Robots - Camerasタブを選んで「+Configure new camera」ボタンを押します。
![configure_new_camera.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490396/fcecd804-dfcf-4b11-9097-561edd540544.png)
  • 設定する項目は「Name」、「Camera」、「Resolution」、「Frames per second (FPS)」の 4 つです。

  • 設定例

    Name Camera Resolution Frames per
    second(FPS)
    Top EMEET SmartCam C960: EMEET Smar 640 x 480 30
    Hand Innomaker-U20CAM-1080p-S1: Inno 640 x 480 30
  • Resolution(解像度)は「640 x 480」程度で十分です。

  • 「Add camera」ボタンを押すとカメラの設定は完了です。

    camera_setup_done.png

4. 環境の作成

  • 次いでロボットとカメラを含んだ学習環境の作成を行います。Robots - Environmentsタブを選んで「+Configure new environment」ボタンを押します。

  • 設定する項目は「Name」、「Robot」、「Add camera」の3つです。

  • 設定例

    Name Robot
    (Follower)
    Robot
    (Leader, optional)
    Camera Camera
    Top Bob Kevin Top Hand

データセットの記録

環境の構築ができたら模倣学習のデータセットの記録を行います。なるべく簡単な処理から始めるのをお勧めします。

1. データセットの作成

  • 「Datasets」タブを選んで「Create new dataset」ボタンを押します。

  • 作成するデータセットの設定画面がでるので、「Environment」、「Dataset name」、「Task」を入力します。

  • 今回はキャンディーをカップに入れる動作を学習します。

  • 設定例

    Environment Dataset name Task
    test env candy pick up candies

2. エピソードの収録

  • 「Start recording」ボタンを押すとエピソード (実演データ) を収録できるようになります。初期化に 10 秒ほどかかります。

  • 初期化が終わると下のように2台のカメラと、Follower アームが GUI に表示されます。

    ready_to_record.png

  • Leader を動かして Follower が追従するのを確認したら、収録前に実演をスムーズにできるように何度か試しておきましょう。

  • スムーズに動かせるようになったら「Start episode」ボタン (または右カーソルキー) を押して収録します。

    • 実演が成功したら「Accept」ボタン(または右カーソルキー)を押してエピソードとして保存します。
    • 失敗した場合は「Discard」ボタン (または左カーソルキー) を押してキャンセルします。
  • キャンディーの位置や向きを変えながら、50 から 100 程度のエピソードを収録するとトレーニングに使えるデータセットとなります。

    record_episode.gif

  • 記録したエピソードは下のように再生して確認できます。「Timeline」を選ぶと各関節の動きがグラフで表示されます。

    check_episode.gif

学習 (ファインチューニング)

十分なエピソードが収録できたら、モデルのファインチューニングに進みます。

1. モデルの選択

  • 「Model」タブを選んで「Train model」ボタンを押します。

  • データセットとモデルを選択する画面が開くので、作成したデータセット (candy) とモデルを選択します。今回は ACT を使います。

  • ACT と SmolVLA はインテル® Core™ Ultra シリーズ 3 プロセッサーなど、強力な内蔵 GPU を持つ CPU を搭載した PC でファインチューニングできますが、他の大きなモデルは外付け GPU が必要です。

  • SmolVLA や Pi0.5 などのモデルは Hugging Face Hub からダウンロードするため、トークンの作成とレポジトリへのリードアクセス権が必要です。公式のドキュメントを参照してください。

    choose_model.png

2. 学習の設定

  • 次の項目を設定できます。最初は初期値で試すのをお勧めします。

    Parameters Default Values Note
    Batch size 8 1学習ステップで使う入力データ数を指定します。
    増やすと学習時間を短縮できますがメモリ不足に陥る可能性があります。
    Max Epochs 5 学習時にデータセットを何周使うかを設定します。
    増やすと学習時間が長くなりますが、ある程度までは増やすと結果が向上します。
    Data Workers Auto 並列プロセス数を指定します。
    増やすと学習時間を短縮できますが、メモリ不足に陥る可能性があるので Auto にするのが良さそうです。
    Precision 32-bit 学習時のパラメータの精度を指定します。
    他に BF16 Mixed と BF16 True が選択できます。
    32-bit で始めて、BF16 Mixed を比較に使うのが良さそうです。
    Compile model No Torch compileをするかどうかの指定です。
    指定をすると高速で学習できるようにモデルが変換されます。
    Augment Images No 映像データに加工を加えてデータ数を増やす設定です。
    明るさなど周辺環境に左右されないモデルを作成できる可能性があります。

    training_settings.png

3. 出力するモデルのフォーマットの指定

  • モデルの推論を行う際のフォーマットを指定します。デフォルトで全てチェックされているのでそのままで構いません。

    export_settings.png

4. 学習の開始

  • 「Train」ボタンを押すと学習が始まります。

  • ACT モデルを 50 エピソードのデフォルト設定でトレーニングすると、インテル® Core™ Ultra シリーズ 3 プロセッサー搭載のミニ PC で30~40 分程度かかりました。

    training_progress.png

5. 学習結果の確認

  • 学習が終わったら「Model Metrics」を開いてロスを確認しておきます。

  • デフォルトの 5 エポックだと最後までロスが下がり続けており、もう少し続けても良さそうです。

    model_metrics.png

推論を試してみる

本番では Physical AI Studio で学習したモデルを OpenVINO™ Physical AI の推論環境で実行しますが、Physical AI Studio で推論をしてモデルを評価することもできます。

1. 推論を実行

  • 学習済みモデルの右にある「Run model」をクリックすると、推論バックエンドを選択する画面がでるので「OpenVINO」を選択して「Start」を押します。

    run_model.png

    inference_backend.png

  • 初期化に 10 秒ほどかかりますが、下の画面に切り替わったら「Play」を押して推論を実行します。

    play_model.png

2. 実行結果

  • 学習と同じようにキャンディーとカップを置いた状態で、SO101 が動きを再現できれば成功です。

    playing_model.gif

結果の比較

1. 学習時間の比較

  • 学習設定がどのくらい学習時間とロスに影響するかを比較しました。
  • ロス (validation loss) はログから読み取ることができます。

表を横スクロールしてご覧ください。

エピソード数 モデル
(Policy)
Batch
size
Max
Epochs
Data
Workers
Precision Compile
model
Augment
images
学習時間 Validation
loss
コメント
50 ACT 8 5 Auto 32-bit - - 35m58s 0.345 初期設定
50 ACT 8 10 Auto 32-bit - - 1h11m02s 0.292 エポック数に応じて時間も倍になる。ロスは下がる。
50 ACT 8 5 16 32-bit - - 36m04s 0.358 ワーカーの数は時間にもロスにも影響なさそう。
50 ACT 8 5 Auto BF16 Mixed - - 35m55s 0.368 BF16 Mixed の精度は時間にもロスにも影響なさそう。
50 ACT 8 5 Auto BF16 True - - 20m43s 3.309 BF16 True の精度は短縮できるがロスが大きく悪化する。
50 ACT 8 5 Auto 32-bit X - 30m14s 0.362 コンパイルすると 20% くらい短縮でき、ロスが少し悪化する。
50 ACT 8 5 Auto 32-bit - X 37m12s 0.330 Augment images を使うと時間が若干長くなり、ロスが少し悪化する。
50 ACT 16 5 Auto 32-bit - - 32m15s 0.557 バッチサイズを増やすと短縮できるがロスが悪化する。
50 ACT 4 5 Auto 32-bit - - 43m30s 0.336 バッチサイズを減らすと時間がかかるがロスは改善する。
$\hspace{5em}$ $\hspace{4em}$ $\hspace{3em}$ $\hspace{3em}$ $\hspace{4em}$ $\hspace{5em}$ $\hspace{5em}$ $\hspace{5em}$ $\hspace{5em}$ $\hspace{5em}$ $\hspace{15em}$

2. 成功率の比較

  • 机の上にテープで付けた 5 つの目印の上にキャンディーの向きを縦と横に変えて置き、モデルごとに 10 回ずつ試行しました。

mark_on_desk.png

  • エピソード数は 50 回に加えて 100 回と 150 回も追加しています。
  • 10 回の試行なのでばらつきが大きいですが、エピソードとエポック数を増やす方が成功率が高くなる傾向にあります。

表を横スクロールしてご覧ください。

エピソード数 モデル
(Policy)
Batch
size
Max
Epochs
Data
Workers
Precision Compile
model
Augment
images
学習時間 Validation
loss
成功率
50 ACT 8 5 Auto 32-bit - - 35m58s 0.345 2/10
50 ACT 8 10 Auto 32-bit - - 1h11m02s 0.292 3/10
50 ACT 8 20 Auto 32-bit - - 2h21m56s 0.219 1/10
100 ACT 8 5 Auto 32-bit - - 1h17m47s 0.247 3/10
100 ACT 8 10 Auto 32-bit - - 2h19m51s 0.213 4/10
100 ACT 8 20 Auto 32-bit - - 4h39m26s 0.186 6/10
150 ACT 8 5 Auto 32-bit - - 1h44m51s 0.221 4/10
150 ACT 8 10 Auto 32-bit - - 3h28m06s 0.206 6/10
150 ACT 8 15 Auto 32-bit - - 5h11m58s 0.180 4/10
150 ACT 8 20 Auto 32-bit - - 6h54m02s 0.196 4/10
$\hspace{5em}$ $\hspace{4em}$ $\hspace{4em}$ $\hspace{4em}$ $\hspace{5em}$ $\hspace{5em}$ $\hspace{4em}$ $\hspace{4em}$ $\hspace{5em}$ $\hspace{5em}$ $\hspace{3em}$

それぞれのモデルの実行時の映像です。

50エピソード
Epochs=5 Epochs=10 Epochs=20
50x5.gif 50x10.gif 50x20.gif
100エピソード
Epochs=5 Epochs=10 Epochs=20
100x5.gif 100x10.gif 100x20.gif
150エピソード
Epochs=5 Epochs=10 Epochs=15 Epochs=20
150x5.gif 150x10.gif 150x15.gif 150x20.gif

まとめ

Physical AI Studio を使って、PC で ARM SO101 の模倣学習の一連の流れを試すことができました。
GUI の指示に従って進めるだけで初心者でも簡単に Physical AI を体験することができることが、お分かりいただけたかと思います。

推論までを Physical AI Studio 上で行いましたが、独自のアプリケーションに組み込む場合などは、OpenVINO™ Physical AI ランタイムを使う必要があります。

次回は今回学習したモデルを出力して、OpenVINO™ Physical AI で推論する方法を紹介したいと思います。

今回使用したハードウェアの構成

この解説記事で使用したハードウェアとソフトウェアは次の構成です。

SO-ARM101 やカメラの USB ケーブルは短いので延長ケーブルなどがあると便利でした。

1
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
1
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?