見出し画像

Docker 版 Isaac Sim の表示方法 - X11 と Streaming Client の違い

Docker版Isaac Simの表示方法の違いをまとめました。


1. Docker 版 Isaac Sim の表示方法

Docker 版 Isaac Sim の表示方法は大きく2つあります。

・X11 経由でホストに GUI を出す方法
・Streaming Client で表示する方法

X11 でホストに表示する構成なら Streaming Client は不要で、headless で起動する構成なら Streaming Client を使います。

2. X11 と Streaming Client の違い

まず整理しておきたいのは、Docker は Isaac Sim を動かす場所 であって、表示方法そのものではないことです。

つまり Docker で Isaac Sim を動かした上で、

・X11 でローカル GUI を出す
・headless + Streaming Client で見る

という 2 通りがあります。

2-1. X11 経由でホストに GUI を出す方法

X11」は、Linux/UNIX でアプリのGUIを画面に表示し、入力を受け取るための仕組みです。この方式では、Isaac Sim は Docker コンテナ内で動きますが、GUI はホスト側の X サーバに表示されます。

たとえば次のような設定が入っていると、X11 でホストに出す構成です。

-e DISPLAY=$DISPLAY
-v /tmp/.X11-unix:/tmp/.X11-unix:rw
-v $HOME/.Xauthority:/root/.Xauthority:rw
xhost +local:

・利点

・ホスト上にそのまま GUI が出るので分かりやすい
・Streaming Client を別で起動しなくてよい
・ローカル Linux マシンでの開発や検証がしやすい

・欠点

・Linux + X11 前提で、環境依存が強い
・DISPLAY` や `.Xauthority` の設定で詰まりやすい
・Wayland やリモート環境では扱いにくい

・向いているケース

・ローカルの Ubuntu マシンで開発する
・ROS 2 とつないで GUI を直接触りたい
・同じマシン上で完結させたい

2-2. Streaming Client で表示する方法

こちらは Isaac Sim を headless で起動し、「Isaac Sim WebRTC Streaming Client」から接続して画面を見る方式です。

この場合、実行側に直接 GUI は出ません。表示は Streaming Client 側で行います。

・利点

・リモート GPU サーバやクラウドで使いやすい
・サーバ側にデスクトップ GUI が不要
・実行環境と表示環境を分離できる

・欠点

・Streaming Client が別途必要になる
・ポート設定やネットワーク条件を気にする必要がある
・通信品質によって操作感が左右される

・向いているケース

・リモートサーバ上で Isaac Sim を動かす
・手元 PC から GPU サーバに接続したい
・サーバ側の表示環境に依存したくない

3. まとめ

実務では、次のように考えると分かりやすいです。

・ローカル Linux ワークステーションで使うなら X11
・リモート GPU サーバやクラウドで使うなら Streaming Client

X11 は手元開発に向いていて、Streaming Client はリモート運用に向いています。



いいなと思ったら応援しよう!