高性能物理啟用的3D模擬器,並支持:
棲息地的設計理念是將模擬速度優先於模擬功能的廣度。從MatterPort3D數據集呈現場景時,Habot-SIM每秒達到數千幀(FPS)單線讀取,並在單個GPU上達到10,000 fps多進程。棲息地-SIM模擬以每秒8,000個步驟(SPS)超過8,000個步驟在復製品場景中相互作用的提取機器人,其中每個“步驟”涉及1 RGBD觀察(128×128像素)和1/30sec的剛體動力學。
棲息地-SIM通常與棲息地-LAB(用於體現AI的端到端實驗的模塊化高級庫)一起使用 - 定義體現的AI任務(例如導航,下面的指導,問答答錄),培訓代理(通過模仿或強化學習,或在經典的Senseplanact PligePlanact PipeLanact pipeline nestart pipeline中,都不是在標準衡量標準任務的經典senseplanact學習中,並且在整體上進行了學習。
如果您在研究中使用棲息地平台,請引用棲息地1.0,棲息地2.0和棲息地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}
}
棲息地-SIM也建立在其他人貢獻的基礎上。如果您使用貢獻的方法/模型,請引用他們的作品。有關外部貢獻和相應的工作/引用的列表,請參見“外部貢獻”部分。
棲息地可以以三種方式安裝:
pip install .用子彈編譯最新的無頭版本。閱讀構建說明和常見的構建問題。棲息地正在積極發展,我們建議用戶限制自己進行穩定的版本。從v0.1.4開始,我們為每個版本提供Conda軟件包。
準備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安裝棲息地-SIM
根據您的系統/需求選擇以下選項之一:
在帶有附件顯示的機器上安裝:
conda install habitat-sim -c conda-forge -c aihabitat要安裝在無頭機器上(即沒有附件顯示器,例如在集群中)和具有多個GPU的機器(此參數依賴於EGL,因此在MacOS上不起作用):
conda install habitat-sim headless -c conda-forge -c aihabitat
[最常見的情況]用子彈物理安裝棲息地-SIM
conda install habitat-sim withbullet -c conda-forge -c aihabitat
注意:構建參數可以鏈接在一起。例如,在無頭機器上安裝帶有物理的棲息地-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 。
我們還為主分支提供了每晚的Conda構建。但是,僅當您需要最新版本版本中尚未使用特定功能時,才應使用此功能。為了每晚構建最新的主體,只需將-c aihabitat換成-c aihabitat-nightly 。
讓我們使用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中的棲息地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鍵向前/左/向後/向後/右和箭頭鍵或鼠標(左鍵單擊)以控制凝視方向(查找/向上/向下/左/右)。嘗試找到一個被花圈包圍的女人的照片。玩得開心!
物理相互作用:棲息地-SIM通過與子彈物理學的整合提供了剛性且明顯的動力學模擬。立即使用C ++或Python中的交互式查看器功能嘗試一下。
首先,下載我們的完全互動複製品公寓數據集(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)獲得105個帶有預烘焙照明的場景變化。然後在Viewer應用程序中加載複製品場景,並啟用了物理。如果修改了上面的數據路徑,也會在下面的查看器調用中對其進行修改。
# 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查看器應用程序在運行時將鍵盤和鼠標接口選項的完整列表輸出到控制台。
QuickStart示例:
WASDLEFT單擊並拖動鼠標環顧四周SPACE切換模擬/ON(默認打開)'m'切換到“獲取”鼠標模式LEFT或RIGHT單擊並拖動以移動對像或打開門/抽屜並釋放以丟棄對象ALT ):旋轉對象固定約束框架(YAW)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 。
從棲息地ICCV'19運行examples/benchmark.py --scene /path/to/mp3d_example/17DRP5sb8fy/17DRP5sb8fy.glb基準表。
提供了example.py的其他參數。請demo_runner.py example.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 GLFW您的libgl可能位於非標準位置。參見這個問題。
瀏覽在線棲息地SIM文檔。
查看我們的ECCV教程系列,以獲取動手快速啟動體驗。
找不到您問題的答案?嘗試在我們的討論論壇上詢問開發人員和社區。
如何使用棲息地-SIM使用常見的支持數據集。
如果您使用Pyrobot的噪聲模型,請引用其技術報告。
具體而言,用於噪聲控制功能的噪聲模型名為pyrobot_* ,並在src_python/habitat_sim/agent/controls/pyrobot_noisy_controls.py中定義
如果您使用紅木深度噪聲模型,請引用他們的紙張
具體而言,在src_python/habitat_sim/sensors/noise_models/redwood_depth_noise_model.py和src/esp/sensor/RedwoodNoiseModel.*
棲息地-SIM已獲得麻省理工學院的許可。有關詳細信息,請參見許可證。
演示腳本使用: