サポートを備えた高性能物理対応の3Dシミュレーター:
生息地の設計哲学は、シミュレーション機能の幅よりもシミュレーション速度を優先することです。 MatterPort3Dデータセットからシーンをレンダリングすると、Habitat-SIMはシングルスレッドを実行する1秒あたり数千フレーム(FPS)を達成し、単一のGPUで10,000 FPSマルチプロセスに到達します。 Habitat-SIMは、Replicacadシーンで8,000段階を超えるステップ(SPS)で相互作用するフェッチロボットをシミュレートします。各「ステップ」では、1/30秒の1つのRGBD観測(128×128ピクセル)と剛体ダイナミクスをレンダリングします。
Habitat-SIMは、通常、具体化されたAIタスク(ナビゲーション、命令フォロー、質問への回答、質問の回答など)、トレーニングエージェント(模倣または強化学習を介して、またはクラシックなセンスプラナクトマッキングを使用したパフォーマンスを使用したパフォーマンスでのベンチマークでは、模倣学習を介して、具体的なタスクを使用しない学習を介して、具体化されたAIタスクを定義するためのエンドツーエンドの実験のモジュラーハイレベルライブラリであるHabitat-Labで使用されます。
研究でハビタットプラットフォームを使用する場合は、Habitat 1.0、Habitat 2.0、およびHabitat 3.0の論文を引用してください。
@misc{puig2023habitat3,
title = {Habitat 3.0: A Co-Habitat for Humans, Avatars and Robots},
author = {Xavi Puig and Eric Undersander and Andrew Szot and Mikael Dallaire Cote and Ruslan Partsey and Jimmy Yang and Ruta Desai and Alexander William Clegg and Michal Hlavac and Tiffany Min and Theo Gervet and Vladimír Vondruš and Vincent-Pierre Berges and John Turner and Oleksandr Maksymets and Zsolt Kira and Mrinal Kalakrishnan and Jitendra Malik and Devendra Singh Chaplot and Unnat Jain and Dhruv Batra and Akshara Rai and Roozbeh Mottaghi},
year={2023},
archivePrefix={arXiv},
}
@inproceedings{szot2021habitat,
title = {Habitat 2.0: Training Home Assistants to Rearrange their Habitat},
author = {Andrew Szot and Alex Clegg and Eric Undersander and Erik Wijmans and Yili Zhao and John Turner and Noah Maestre and Mustafa Mukadam and Devendra Chaplot and Oleksandr Maksymets and Aaron Gokaslan and Vladimir Vondrus and Sameer Dharur and Franziska Meier and Wojciech Galuba and Angel Chang and Zsolt Kira and Vladlen Koltun and Jitendra Malik and Manolis Savva and Dhruv Batra},
booktitle = {Advances in Neural Information Processing Systems (NeurIPS)},
year = {2021}
}
@inproceedings{habitat19iccv,
title = {Habitat: {A} {P}latform for {E}mbodied {AI} {R}esearch},
author = {Manolis Savva and Abhishek Kadian and Oleksandr Maksymets and Yili Zhao and Erik Wijmans and Bhavana Jain and Julian Straub and Jia Liu and Vladlen Koltun and Jitendra Malik and Devi Parikh and Dhruv Batra},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
year = {2019}
}
Habitat-Simは、他の人から貢献した仕事にも基づいています。貢献した方法/モデルを使用する場合は、作品を引用してください。外部的に貢献したものと対応する作業/引用のリストについては、外部貢献セクションを参照してください。
Habitat-SIMは3つの方法でインストールできます。
pip install .弾丸で最新のヘッドレスビルドをコンパイルします。ビルドの命令と一般的なビルドの問題を読んでください。Habitatは積極的な開発中であり、ユーザーに安定したリリースに制限することをお勧めします。 v0.1.4から始めて、リリースごとにコンドラパッケージを提供します。
conda envを準備します
Condaがインストールされていると仮定して、Conda envを準備しましょう。
# We require python>=3.9 and cmake>=3.10
conda create -n habitat python=3.9 cmake=3.14.0
conda activate habitatCondaはHabitat-SIMをインストールします
システム/ニーズに応じて、以下のオプションの1つを選択します。
ディスプレイが添付されたマシンにインストールするには:
conda install habitat-sim -c conda-forge -c aihabitatヘッドレスマシン(つまり、添付のディスプレイなし、たとえばクラスターに)にインストールし、複数のGPUを持つマシン(このパラメーターはEGLに依存するため、macOSには機能しません):
conda install habitat-sim headless -c conda-forge -c aihabitat
[最も一般的なシナリオ]弾丸物理学で生息地をインストールする
conda install habitat-sim withbullet -c conda-forge -c aihabitat
注:ビルドパラメーターは一緒にチェーンできます。たとえば、ヘッドレスマシンに物理学を備えたHabitat-SIMをインストールするには:
conda install habitat-sim withbullet headless -c conda-forge -c aihabitat
古いバージョン用のCondaパッケージは、バージョンを明示的に指定することでインストールできます。たとえば、 conda install habitat-sim=0.1.6 -c conda-forge -c aihabitat 。
また、メインブランチ向けの毎晩のコンドラビルドも提供しています。ただし、これは、最新リリースバージョンにまだない特定の機能が必要な場合にのみ使用する必要があります。最新のメインの毎晩のビルドを取得するには、 -c aihabitat-nightlyの-c aihabitatを単純に交換してください。
Pythonデータのダウンロードユーティリティを使用して、いくつかの3Dアセットをダウンロードしましょう。
ダウンロード(テスト)3Dシーン
python -m habitat_sim.utils.datasets_download --uids habitat_test_scenes --data-path /path/to/data/これらのテストシーンはセマンティックな注釈を提供しないことに注意してください。 example.pyでセマンティックセンサーをテストしたい場合は、MatterPort3Dデータセットのデータを使用してください(データセットを参照)。
オブジェクトのサンプルをダウンロードします
python -m habitat_sim.utils.datasets_download --uids habitat_example_objects --data-path /path/to/data/インタラクティブテスト:C ++またはPythonのいずれかでHabitat-SIMに含まれるインタラクティブな視聴者を使用してください。
# C++
# ./build/viewer if compiling locally
habitat-viewer /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb
# Python
# NOTE: depending on your choice of installation, you may need to add '/path/to/habitat-sim' to your PYTHONPATH.
# e.g. from 'habitat-sim/' directory run 'export PYTHONPATH=$(pwd)'
python examples/viewer.py --scene /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glbこのテストシーンでエージェントを制御できるはずです。 w/a/s/dキーを使用して、前方/左/後方/右、矢印キーまたはマウス(左クリック)(左クリック)を制御して、視線の方向を制御します(見上げ/左/右)。花輪に囲まれた女性の写真を見つけてみてください。楽しむ!
物理的な相互作用:Habitat-SIMは、弾丸物理学との統合を介して、厳格で明確なダイナミクスシミュレーションを提供します。 C ++またはPythonのインタラクティブな視聴者機能で今すぐ試してみてください。
まず、完全にインタラクティブなReplicacadアパートメントデータセット(140 MB)をダウンロードしてください。
# NOTE: by default, data will be downloaded into habitat-sim/data/. Optionally modify the data path by adding: `--data-path /path/to/data/`
# with conda install
python -m habitat_sim.utils.datasets_download --uids replica_cad_dataset
# with source (from inside habitat_sim/)
python src_python/habitat_sim/utils/datasets_download.py --uids replica_cad_dataset--uids replica_cad_baked_lighting (480 MB)を介して利用できます。次に、物理学を有効にして、視聴者アプリケーションにレプリカカドシーンをロードします。上記のデータパスを変更した場合は、以下の視聴者呼び出しで変更します。
# C++
# ./build/viewer if compiling locally
habitat-viewer --enable-physics --dataset data/replica_cad/replicaCAD.scene_dataset_config.json -- apt_1
# python
# NOTE: habitat-sim/ directory must be on your `PYTHONPATH`
python examples/viewer.py --dataset data/replica_cad/replicaCAD.scene_dataset_config.json --scene apt_1--dataset data/replica_cad_baked_lighting/replicaCAD_baked.scene_dataset_config.json --scene Baked_sc1_staging_00使用しますViewerアプリケーションは、実行時にキーボードインターフェイスオプションの完全なリストをコンソールに出力します。
クイックスタートの例:
WASDLEFTクリックしてマウスをドラッグして見回しますSPACEを押してシミュレーションをオフ/オン(デフォルトオン)切り替える'm'を押して、「グラブ」マウスモードに切り替えますLEFTまたはRIGHTクリックしてドラッグしてオブジェクトを移動するか、ドア/引き出しを開き、オブジェクトをドロップするためにリリースしますALT ):オブジェクトを回転させて固定制約フレーム(ヨー)CTRL ):オブジェクトを回転させた制約フレーム(ピッチ)を回転させるALT + CTRL ):オブジェクトを回転させて固定制約フレーム(ロール)非対話テスト(ヘッドレスシステムの場合など):サンプルスクリプトを実行します。
python /path/to/habitat-sim/examples/example.py --scene /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glbエージェントは特定のパスを横断し、このようなパフォーマンス統計を最後に見る必要があります: 640 x 480, total time: 3.208 sec. FPS: 311.7 。
Habitatからベンチマークテーブルを再現するには、Habitat ICCV'19 Run examples/benchmark.py --scene /path/to/mp3d_example/17DRP5sb8fy/17DRP5sb8fy.glb実行します。
example.pyへの追加の引数が提供され、センサー構成、シーン内のセマンティックアノテーションの統計を印刷し、アクションスペースの最短パス軌跡を計算し、その他の有用な機能を設定します。概要については、 example.pyおよびdemo_runner.pyソースファイルを参照してください。
特定のmp3dまたはgibson houseをロード: examples/example.py --scene path/to/mp3d/house_id.glb 。
また、参照用のデモの例を提供しました。
Pythonで物理学の例を実行するには(「弾丸による物理シミュレーション」を構築した後):
python examples/example.py --scene /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb --enable_physicsこのモードでは、エージェントが凍結され、産卵された物理オブジェクトに向けられていることに注意してください。さらに、 --save_png使用して、現在のディレクトリに物理シーンのエージェント視覚観測フレームを出力できます。
リモートマシンで実行して経験している場合、シミュレーターを初期化するときにエラーを表示します。
X11: The DISPLAY environment variable is missing
Could not initialize GLFW環境で定義されているDISPLAYがないことを確認してください(変数を定義するためにunset DISPLAYを実行してください)
次のようなlibglエラーが表示された場合:
X11: The DISPLAY environment variable is missing
Could not initialize GLFWlibglは標準以外の場所にある可能性があります。この問題を参照してください。
オンラインのハビタットSIMドキュメントを閲覧します。
実践的なクイックスタートエクスペリエンスについては、ECCVチュートリアルシリーズをご覧ください。
あなたの質問に対する答えが見つかりませんか?ディスカッションフォーラムで開発者とコミュニティに尋ねてみてください。
HowTo Hawto Support Datasetを使用して、Habitat-SIMを使用します。
Pyrobotのノイズモデルを使用する場合は、技術レポートを引用してください。
具体的には、 src_python/habitat_sim/agent/controls/pyrobot_noisy_controls.pyで定義されているpyrobot_*という名前の騒々しい制御機能に使用されるノイズモデル
レッドウッド深度ノイズモデルを使用する場合は、彼らの論文を引用してください
具体的には、 src_python/habitat_sim/sensors/noise_models/redwood_depth_noise_model.pyおよびsrc/esp/sensor/RedwoodNoiseModel.*で定義されているノイズモデル。
Habitat-SIMはMITライセンスを取得しています。詳細については、ライセンスを参照してください。
デモスクリプトの使用: