Isaac SimとROSの連携環境構築(OmniverseにIsaac Simをインストールする)
前回からの続きです。
Isaac Simとは
ここに書いてあることのまとめです。
"Isaac Sim"とはOmniverse上で動作するロボットシミュレーションツールキットであり、"Isaac SDK"と"ROS/ROS2"を使用したナビゲーション&マニュピレータアプリケーションを提供する。RGB-D、Lidar、IMUなどのセンサやセグメンテーションなどの画像認識機能も含んでいる。
出典:https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/overview.html
Omniverse Kit
要約すると"Isaac Sim"にアクセスするためのインタフェースみたいなものです。C言語やPythonなどでシミュレーション環境に直接干渉できるということらしい(例えば、オブジェクトを自動生成したり移動させたりできる)。
Omniverse Nucleus
Omniverseの核となるデータサーバみたいなもの。ネットワーク上にも置けるのでみんなで共通のデータを参照できるとのこと。
USD
"Isaac Sim"はUSD(Universal Scene Description)ファイルフォーマットを使用します。USDはPixar社によって開発されたフォーマットで3D環境記述が可能なフォーマットとなっています。
必要スペック
"Isaac Sim"の必要スペックは以下の通りです。メモリが32GB以上、Nvidiaのドライババージョンは"470.57.02"以降が必要みたいです。
出典:https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/requirements.html
Nvidia公式Isaac Simインストールガイド
以下の手順を参考に進めていきます。
Isaac Simのインストール
EXCHANGEタブから"Isaac Sim"を選択します。
Isaac Simを選択
INSTALLボタンを押すとダウンロード&インストールが開始されます。
INSTALLボタンを押す
3.7GBダウンロード中
チュートリアルによると"Isaac Sim"起動後に"Isaac Sim Assets"(サンプルデータなど)をダウンロードするボタンが出るはずなんですが、変なWarningが出てダウンロードできませんでした。調べてみるとこれはバグらしく、このアセットは手動で導入します。
本来は中央のウィンドウの下部にDownloadボタンが表示されるはず…
上記エラーに関して、同様の現象が発生している以下のforumの投稿に解決策が記載されています。
具体的な解決方法はメインウィンドウのNUCLEUSタブからnavigatorの"localhost"で右クリック→"new mount"から以下のパラメータでフォルダを作成します。
項目 | 内容 |
---|---|
Name | Isaac |
Type | Amazon S3 |
Host | d28dzv1nop4bat.cloudfront.net |
Service | s3 |
Redirection | https://d28dzv1nop4bat.cloudfront.net |
サーバ上にリンクを貼るイメージ
これで"Submit"するとデータセットが追加されます。Warningが出るウィンドウは起動するたびに出てきますが、無視して構いません。ただ、これはあくまでネットワークのディレクトリにパスを貼っているだけのようで、容量の大きいサンプルのUSDなどを開こうとするとめちゃくちゃ時間がかかります。このような場合は、NUCLEUS上でローカルにコピー(ダウンロード)して開いたほうが良いです。
VSCodeのインストール
"Isaac Sim"で使用するエディタはデフォルトではVSCodeとなっていますので、インストールします。VSCodeは以下のページからdebファイルをダウンロードしてインストールします。
以下のコマンドでインストールします。
$ cd ~/Downloads
$ sudo apt install ./code_1.51.1-1605051630_amd64.deb
$ sudo apt install -y apt-transport-https
$ sudo apt update
なお、"Isaac Sim"からVSCodeを開いた場合の設定ファイル(settings.jsonなど)は"Isaac Sim"のルートディレクトリ(~/.local/share/ov/pkg/isaac_sim-2021.2.1など)にある".vscode"が使用されます。
ROSとROS2のインストール
連携先となるROSやROS2をUbuntuにインストールします。以下の手順を参考に進めていきますが、ROSのインストールガイドに従ってインストールしているだけです。今回の環境ではROSは"noetic"、ROS2は"foxy"となります。
次に"Isaac Sim"側で"ROS Bridge Extension"を有効にします。"Window"メニュー→"Extensions"から"ROS"を検索します。
"Window"→"Extensions"
"ROS BRIDGE"と"ROS UI"を有効化します。
ROSを検索すると、すでに有効になっていた
これで"Isaac Sim"と外部のroscoreの通信が可能となります。ROS2を使用する場合は"ROS BRIDGE"の代わりに"ROS2 BRIDGE"を有効にします。
Discussion