はじめに
NVIDIAのシミュレーションソフトであるIsaac SimではすべてのシーンをUSD形式で扱います。3DGSなどの空間データもUSD形式で取り込む必要があります。
この記事では、無料でUSD形式の空間スキャンデータを用意する方法を、メッシュと3DGSの両方について説明します。
メッシュの作成(Scaniverse)
シミュレーションに使用するため、現実と同じ大きさのメッシュを作成することが重要です。
LiDARセンサー搭載のiPhoneでScaniverseアプリを使うと、無料で実寸大のメッシュを作成できます。
スキャンの手順
1. モードの選択
Scaniverseアプリでメッシュを選択します。
ScaniverseのSplatモード(3DGS)は広範囲のスキャンには向いていません。
2. 撮影モードの選択
大きなオブジェクト/エリアモードで撮影します。
3. 撮影のコツ
- 3DGSとは異なり、同じ場所をいろいろな角度から撮影する必要はありませんが、LiDARレーザーが届く距離を意識してくまなく撮影する必要があります。足りない部分は穴になってしまいます。
- 一周回って戻ってきたときにずれてしまうことがあるため、ゆっくり移動し、できるだけ同じ場所を2度撮影しないようにします。
(といっても、私もまだうまくきれいなメッシュスキャンはできていないですが・・・)
参考記事
4. 生成
撮影が終わったら、Areaモードで生成します(スマホ内で処理されます)
5. エクスポート
共有 > モデルのエクスポート を選択します。
形式は usdz を選択します。
別途3DGSを作成する予定があれば、plyでも書き出しておくと便利です。plyは点群形式なので、LichtFeld Studioで通常の3DGSと大きさを合わせる際に使用できます。
Isaac Simへの取り込み
usdzファイルは、USD形式に変換せずとも、そのままテクスチャ付きでIsaac Simに取り込めます。
USD変換(参考情報)
usdzのままで取り込めるため不要ですが、参考までにUSD変換の手順を記載します。
PCでBlenderを開き、usdzファイルを読み込みます
テクスチャが正しく表示されていることを確認します
エクスポート > USD を選択します
拡張子が .usdc になっている場合は、.usd に変更します
USDファイル自体にはテクスチャが含まれず、別途textureフォルダが生成されます。
フォルダを作成してその中にエクスポートし、textureフォルダごとIsaac Simに読み込んでください。
3DGSの作成
現時点では、正確な大きさの3DGSを作成できていません。以下の記事で紹介している手法で作成します。
LichtFeld StudioでのUSD出力
LichtFeld Studio(ver 0.5.3)はUSD形式での書き出しに対応しています。
大きさの調整
Scaniverseでメッシュ撮影したものを大きさの参考にする場合、ply形式で書き出しておけば点群形式でLichtFeld Studioに読み込めます。
向きがおかしくなる場合があります。また、USD形式のメッシュはLichtFeld Studioで読み込めませんでした。
今後
手動での位置合わせは大変なので、AprilTagを使った撮影&変換やスキャナー付きのカメラ(XGRID製品など)を使いたいですね
Isaac Simでの読み込み
Edit > Preferencesでウィンドウを出し
Rendering にある RTX Geometry Streaming (experimental) > Enablegeometry streaming (requires app restart) を有効化
そしてIssacSimを再起動
これで無事描画されました。ただあまりきれいではありません。RTX Geometry Streamingとあるので徐々に読み込んでいるようです。
Isaac Simでの3DGS読み込みに関する制約:
- ver 6.0以降でのみ対応
- 点群数は1,677万点以下である必要があります
参考記事:
おまけ:Niantic
Scaniverse ビジネス版
Scaniverseのビジネス版を使えば、メッシュと3DGS両方生成されるようです。ただしクラウド生成でお金もかかります。
この記事にプロモーションコードがありました。
この動画でNianticの生成する空間をロボットシミュレーションに使う話が語られています
サンプル
3DGS+衝突判定用メッシュの空間データのサンプルを、NianticがHuggingFaceでCC-BY-4.0で配布していました!
Nurecというのを選ぶとメッシュもついています。
tokyo streetは新大阪駅周辺でした。まあまあ広い
メッシュ含まれていますね。デフォルトでは非表示になっていました。
一番データの軽いpondicherry_nurecはそこまできれいではないですが、こんな感じ
まとめ
Isaac SimでUSD形式の空間データを用意する方法を紹介しました。メッシュはScaniverseで比較的簡単に作成できますがクオリティを上げるのは難しいですね。また3DGSは正確な大きさにする点が課題となっています。





















