Simulator 3D yang diaktifkan fisika berkinerja tinggi dengan dukungan untuk:
Filosofi desain habitat adalah memprioritaskan kecepatan simulasi daripada luasnya kemampuan simulasi. Saat memberikan adegan dari dataset Matterport3D, Habitat-SIM mencapai beberapa ribu frame per detik (FPS) yang menjalankan satu utas dan mencapai lebih dari 10.000 fps multi-proses pada satu GPU tunggal. Habitat-SIM mensimulasikan robot pengambilan yang berinteraksi dalam adegan replikacad pada lebih dari 8.000 langkah per detik (SPS), di mana setiap 'langkah' melibatkan rendering 1 pengamatan RGBD (128 × 128 piksel) dan dinamika tubuh-kaku untuk 1/30 detik.
Habitat-SIM biasanya digunakan dengan habitat-lab, perpustakaan tingkat tinggi modular untuk percobaan end-to-end dalam AI yang diwujudkan-mendefinisikan tugas AI yang diwujudkan (misalnya navigasi, pengajaran berikut, menjawab pertanyaan), agen pelatihan (melalui peniru atau pembelajaran penguat, atau tidak ada pembelajaran sama sekali sebagai pipa-tunjing standar, dan tidak ada dalam pipi-tunjing yang jelas, dan tidak ada dalam pipa-sensepe, dan tidak ada dalam pipi-sendi klasik), dan tidak ada pembelajaran dalam pipi-sensepe, dan tidak ada dalam pipi-tunjing, dan tidak ada dalam pipa-tunjangan.
Jika Anda menggunakan platform habitat dalam penelitian Anda, silakan kutip makalah Habitat 1.0, Habitat 2.0, dan 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 juga dibangun berdasarkan pekerjaan yang disumbangkan oleh orang lain. Jika Anda menggunakan metode/model yang berkontribusi, silakan kutip karya mereka. Lihat bagian Kontribusi Eksternal untuk daftar apa yang disumbangkan secara eksternal dan pekerjaan/kutipan yang sesuai.
Habitat-SIM dapat dipasang dalam 3 cara:
pip install . Untuk mengkompilasi bangunan tanpa kepala terbaru dengan peluru. Baca instruksi build dan masalah pembangunan umum.Habitat sedang dalam pengembangan aktif, dan kami menyarankan pengguna untuk membatasi diri pada rilis yang stabil. Dimulai dengan V0.1.4, kami menyediakan paket Conda untuk setiap rilis.
Mempersiapkan conda env
Dengan asumsi Anda telah menginstal conda, mari kita siapkan 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 Pasang Habitat-SIM
Pilih salah satu opsi di bawah ini tergantung pada sistem/kebutuhan Anda:
Untuk menginstal pada mesin dengan layar terlampir:
conda install habitat-sim -c conda-forge -c aihabitatUntuk menginstal pada mesin tanpa kepala (yaitu tanpa layar yang terpasang, misalnya dalam cluster) dan mesin dengan beberapa GPU (parameter ini bergantung pada EGL dan dengan demikian tidak berfungsi pada macOS):
conda install habitat-sim headless -c conda-forge -c aihabitat
[ Skenario paling umum ] untuk memasang habitat-sim dengan fisika peluru
conda install habitat-sim withbullet -c conda-forge -c aihabitat
Catatan: Bangun parameter dapat dirantai bersama. Misalnya, untuk memasang habitat-sim dengan fisika di mesin tanpa kepala:
conda install habitat-sim withbullet headless -c conda-forge -c aihabitat
Paket Conda untuk versi yang lebih lama dapat diinstal dengan secara eksplisit menentukan versi, misalnya conda install habitat-sim=0.1.6 -c conda-forge -c aihabitat .
Kami juga menyediakan build conda malam untuk cabang utama. Namun, ini hanya boleh digunakan jika Anda memerlukan fitur tertentu belum dalam versi rilis terbaru. Untuk mendapatkan build malam dari utama terbaru, cukup swap -c aihabitat untuk -c aihabitat-nightly .
Mari kita unduh beberapa aset 3D menggunakan utilitas unduhan data python kami:
Unduh (Pengujian) Adegan 3D
python -m habitat_sim.utils.datasets_download --uids habitat_test_scenes --data-path /path/to/data/ Perhatikan bahwa adegan pengujian ini tidak memberikan anotasi semantik. Jika Anda ingin menguji sensor semantik melalui example.py , silakan gunakan data dari dataset Matterport3D (lihat dataset).
Unduh contoh objek
python -m habitat_sim.utils.datasets_download --uids habitat_example_objects --data-path /path/to/data/Pengujian Interaktif : Gunakan penampil interaktif yang disertakan dengan habitat-SIM di C ++ atau Python:
# 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.glbAnda harus dapat mengontrol agen dalam adegan tes ini. Gunakan tombol W/A/S/D untuk bergerak maju/kiri/mundur/kanan dan tombol panah atau mouse (klik kiri) untuk mengontrol arah tatapan (lihat ke atas/bawah/kiri/kanan). Cobalah untuk menemukan gambar seorang wanita yang dikelilingi oleh karangan bunga. Selamat bersenang-senang!
Interaksi fisik : Habitat-SIM menyediakan simulasi dinamika yang kaku dan artikulasi melalui integrasi dengan fisika peluru. Cobalah sekarang dengan fungsionalitas penampil interaktif kami di C ++ atau Python.
Pertama, unduh Dataset Apartemen Replicacad kami yang sepenuhnya interaktif (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).Kemudian muat adegan Replicacad di aplikasi penampil dengan fisika diaktifkan. Jika Anda memodifikasi jalur data di atas, juga memodifikasinya dalam panggilan penampil di bawah ini.
# 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_00Aplikasi penampil mengeluarkan daftar lengkap opsi antarmuka keyboard dan mouse ke konsol saat runtime.
Contoh QuickStart:
WASD untuk bergerakLEFT dan seret mouse untuk melihat -lihatSPACE untuk Mematikan Simulasi Mati/Hidup (Default on)'m' untuk beralih ke mode mouse "ambil"LEFT atau RIGHT dan seret untuk memindahkan objek atau membuka pintu/laci dan melepaskan untuk menjatuhkan objekALT ): Rotate Object Fixed Constraint Frame (YAW)CTRL ): Rotate Object Fixed Constraint Frame (Pitch)ALT + CTRL ): Rotate Object Fixed Batasan Bingkai (Roll)Pengujian non-interaktif (misalnya untuk sistem tanpa kepala): Jalankan skrip contoh:
python /path/to/habitat-sim/examples/example.py --scene /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb Agen akan melintasi jalur tertentu dan Anda akan melihat statistik kinerja di akhir, sesuatu seperti ini: 640 x 480, total time: 3.208 sec. FPS: 311.7 .
Untuk mereproduksi tabel benchmark dari habitat iccv'19 menjalankan examples/benchmark.py --scene /path/to/mp3d_example/17DRP5sb8fy/17DRP5sb8fy.glb .
Argumen tambahan untuk example.py disediakan untuk mengubah konfigurasi sensor, cetak statistik anotasi semantik dalam suatu adegan, menghitung lintasan jalur terpendek-space terpendek, dan mengatur fungsionalitas lain yang berguna. Lihat file sumber example.py dan demo_runner.py untuk ikhtisar.
Muat rumah mp3d atau gibson spesifik: examples/example.py --scene path/to/mp3d/house_id.glb .
Kami juga telah memberikan contoh demo untuk referensi.
Untuk menjalankan contoh fisika di Python (setelah membangun dengan "simulasi fisika melalui peluru"):
python examples/example.py --scene /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb --enable_physics Perhatikan bahwa dalam mode ini agen akan dibekukan dan berorientasi pada benda -benda fisik yang dimuncang. Selain itu, --save_png dapat digunakan untuk mengeluarkan kerangka pengamatan visual agen dari adegan fisik ke direktori saat ini.
Jika Anda menjalankan mesin jarak jauh dan mengalami kesalahan tampilan saat menginisialisasi simulator, misalnya
X11: The DISPLAY environment variable is missing
Could not initialize GLFW Pastikan Anda tidak memiliki DISPLAY yang ditentukan di lingkungan Anda (jalankan unset DISPLAY untuk tidak mendefinisikan variabel)
Jika Anda melihat kesalahan libgl seperti:
X11: The DISPLAY environment variable is missing
Could not initialize GLFWKemungkinan LibGL Anda terletak di lokasi yang tidak standar. Lihat misalnya masalah ini.
Jelajahi dokumentasi habitat-sim online.
Lihatlah seri tutorial ECCV kami untuk pengalaman QuickStart langsung.
Tidak dapat menemukan jawaban atas pertanyaan Anda? Cobalah bertanya kepada pengembang dan komunitas di forum diskusi kami.
How untuk menggunakan kumpulan data yang didukung umum dengan habitat-sim.
Jika Anda menggunakan model kebisingan dari Pyrobot, silakan kutip laporan teknis mereka.
Secara khusus, model noise yang digunakan untuk fungsi kontrol bising bernama pyrobot_* dan didefinisikan dalam src_python/habitat_sim/agent/controls/pyrobot_noisy_controls.py
Jika Anda menggunakan model kebisingan kedalaman redwood, silakan mengutip kertas mereka
Secara khusus, model noise yang didefinisikan dalam src_python/habitat_sim/sensors/noise_models/redwood_depth_noise_model.py dan src/esp/sensor/RedwoodNoiseModel.*
Habitat-SIM dilisensikan MIT. Lihat lisensi untuk detailnya.
Skrip demo menggunakan: