Un simulateur 3D compatible haute performance avec prise en charge:
La philosophie de conception de l'habitat est de prioriser la vitesse de simulation sur l'étendue des capacités de simulation. Lors du rendu d'une scène de l'ensemble de données Matterport3d, Habitat-Sim atteint plusieurs milliers de trames par seconde (FPS) exécutant un seul thread et atteint plus de 10 000 ips multi-processus sur un seul GPU. Habitat-SIM simule un robot de récupération interagissant dans des scènes de réplicacade à plus de 8 000 pas par seconde (SPS), où chaque «étape» implique de rendre 1 observation RGBD (128 × 128 pixels) et une dynamique du corps rigide pour 1/30 seconde.
L'habitat-SIM est généralement utilisé avec l'habitat-laboratoire, une bibliothèque de haut niveau modulaire pour des expériences de bout en bout dans une IA incarnée - définissant des tâches IA incarnées (par exemple, la navigation, l'enseignement suivant, la réponse aux questions), les agents de formation (via l'imitation ou le renforcement de l'apprentissage, ou pas d'apprentissage dans le tout comme dans les plans de sens classiques en utilisant des propres étalons) et en benchmarking leurs performances sur les tas de la norme définis.
Si vous utilisez la plate-forme Habitat dans votre recherche, veuillez citer les articles Habitat 1.0, Habitat 2.0 et 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 s'appuie également sur le travail apporté par d'autres. Si vous utilisez des méthodes / modèles contribués, veuillez citer leurs œuvres. Voir la section des contributions externes pour une liste de ce qui a été contribué à l'extérieur et le travail / citation correspondant.
Habitat-SIM peut être installé de 3 manières:
pip install . Pour compiler la dernière construction sans tête avec une balle. Lisez les instructions de construction et les problèmes de construction courants.Habitat est en cours de développement actif et nous conseillons aux utilisateurs de se limiter à des versions stables. En commençant par V0.1.4, nous fournissons des packages conda pour chaque version.
Préparer conda env
En supposant que vous avez installé conda, préparons un 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 installer un habitat-sim
Choisissez l'une des options ci-dessous en fonction de votre système / besoins:
Pour installer sur des machines avec un écran attaché:
conda install habitat-sim -c conda-forge -c aihabitatPour installer sur des machines sans tête (c'est-à-dire sans écran attaché, par exemple dans un cluster) et des machines avec plusieurs GPU (ce paramètre repose sur EGL et ne fonctionne donc pas sur MacOS):
conda install habitat-sim headless -c conda-forge -c aihabitat
[ Scénario le plus courant ] Pour installer l'habitat-sim avec la physique des balles
conda install habitat-sim withbullet -c conda-forge -c aihabitat
Remarque: les paramètres de construction peuvent être enchaînés. Par exemple, pour installer l'habitat-sim avec la physique sur les machines sans tête:
conda install habitat-sim withbullet headless -c conda-forge -c aihabitat
Les packages conda pour les versions plus anciennes peuvent être installés en spécifiant explicitement la version, par exemple conda install habitat-sim=0.1.6 -c conda-forge -c aihabitat .
Nous fournissons également une construction de conda nocturne pour la branche principale. Cependant, cela ne devrait être utilisé que si vous avez besoin d'une fonctionnalité spécifique qui n'est pas encore dans la dernière version de version. Pour obtenir la construction nocturne des derniers principaux principaux, échangez simplement -c aihabitat pour -c aihabitat-nightly .
Téléchargeons des actifs 3D à l'aide de notre utilitaire de téléchargement de données Python:
Télécharger (test) scènes 3D
python -m habitat_sim.utils.datasets_download --uids habitat_test_scenes --data-path /path/to/data/ Notez que ces scènes de test ne fournissent pas d'annotations sémantiques. Si vous souhaitez tester les capteurs sémantiques via example.py , veuillez utiliser les données de l'ensemble de données Matterport3D (voir ensembles de données).
Télécharger l'exemple d'objets
python -m habitat_sim.utils.datasets_download --uids habitat_example_objects --data-path /path/to/data/Test interactif : utilisez le spectateur interactif inclus avec Habitat-SIM dans C ++ ou 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.glbVous devriez pouvoir contrôler un agent dans cette scène de test. Utilisez les touches W / A / S / D pour avancer / gauche / vers l'arrière / droite et les touches de flèche ou souris (clic gauche) pour contrôler la direction du regard (consultez / vers le bas / gauche / droite). Essayez de trouver la photo d'une femme entourée d'une couronne. Amusez-vous!
Interactions physiques : Habitat-SIM fournit une simulation dynamique rigide et articulée par intégration avec la physique des balles. Essayez-le maintenant avec notre fonctionnalité de visionneuse interactive dans C ++ ou Python.
Tout d'abord, téléchargez notre ensemble de données d'appartements ReplicAcad entièrement interactif (140 Mo):
# 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 Mo).Chargez ensuite une scène de réplicacade dans l'application de la visionneuse avec la physique activée. Si vous avez modifié le chemin de données ci-dessus, modifiez-le également dans les appels de la visionneuse ci-dessous.
# 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_00L'application de la visionneuse sortira la liste complète des options d'interface du clavier et de la souris à la console lors de l'exécution.
Exemple QuickStart:
WASD pour bougerLEFT et faites glisser la souris pour regarder autourSPACE pour activer la simulation / ON (par défaut)'m' pour passer en mode de souris "saisir"LEFT un clic RIGHT et faites glisser pour déplacer des objets ou ouvrir des portes / tiroirs et relâchez pour déposer l'objetALT ): Cadre de contrainte fixe de l'objet tourné (lacet)CTRL ): Trame de contrainte fixe de l'objet tourné (pas)ALT + CTRL ): Cadre de contrainte fixe de l'objet tourné (rouleau)Test non interactif (par exemple pour les systèmes sans tête): exécutez l'exemple de script:
python /path/to/habitat-sim/examples/example.py --scene /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb L'agent traversera un chemin particulier et vous devriez voir les statistiques de performance à la toute fin, quelque chose comme ceci: 640 x 480, total time: 3.208 sec. FPS: 311.7 .
Pour reproduire la table de référence de l'habitat iccv'19 examples/benchmark.py --scene /path/to/mp3d_example/17DRP5sb8fy/17DRP5sb8fy.glb .
Des arguments supplémentaires à example.py sont fournis pour modifier la configuration du capteur, les statistiques d'impression des annotations sémantiques dans une scène, calculer les trajectoires de chemin les plus courtes d'action et définir d'autres fonctionnalités utiles. Reportez-vous aux fichiers source example.py et demo_runner.py pour un aperçu.
Chargez une maison MP3D ou Gibson spécifique: examples/example.py --scene path/to/mp3d/house_id.glb .
Nous avons également fourni un exemple de démo de référence.
Pour exécuter un exemple de physique à Python (après la construction avec "Simulation physique via Bullet"):
python examples/example.py --scene /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb --enable_physics Notez que dans ce mode, l'agent sera gelé et orienté vers les objets physiques à la génération. De plus, --save_png peut être utilisé pour produire des trames d'observation visuelle de l'agent de la scène physique vers le répertoire actuel.
Si vous utilisez une machine distante et que vous expérimentez des erreurs d'affichage lors de l'initialisation du simulateur, par exemple
X11: The DISPLAY environment variable is missing
Could not initialize GLFW Assurez-vous que vous n'avez pas DISPLAY défini dans votre environnement (exécutez unset DISPLAY pour indéfinir la variable)
Si vous voyez des erreurs libgl comme:
X11: The DISPLAY environment variable is missing
Could not initialize GLFWIl y a de fortes chances que votre libgl soit situé dans un emplacement non standard. Voir par exemple ce problème.
Parcourez la documentation en ligne Habitat-SIM.
Consultez notre série de tutoriels ECCV pour une expérience pratique QuickStart.
Vous ne trouvez pas la réponse à votre question? Essayez de demander aux développeurs et à la communauté sur notre forum de discussions.
Comment utiliser des ensembles de données pris en charge communs avec Habitat-Sim.
Si vous utilisez le modèle de bruit de Pyrobot, veuillez citer leur rapport technique.
Plus précisément, le modèle de bruit utilisé pour les fonctions de contrôle bruyantes nommées pyrobot_* et définies dans src_python/habitat_sim/agent/controls/pyrobot_noisy_controls.py
Si vous utilisez le modèle de bruit de profondeur de séquoia, veuillez citer leur papier
Plus précisément, le modèle de bruit défini dans src_python/habitat_sim/sensors/noise_models/redwood_depth_noise_model.py et src/esp/sensor/RedwoodNoiseModel.*
Habitat-Sim est sous licence MIT. Voir la licence pour plus de détails.
Les scripts de démonstration utilisent: