Ein leistungsstarker physikalischer 3D-Simulator mit Unterstützung für:
Die Entwurfsphilosophie des Lebensraums besteht darin, die Simulationsgeschwindigkeit gegenüber der Breite der Simulationsfähigkeiten zu priorisieren. Beim Rendern einer Szene aus dem Dataset von Matterport3D erreicht Habitat-SIM mehrere tausend Frames pro Sekunde (FPS), die einstätig sind und über 10.000 fps Multi-Process auf einer einzelnen GPU erreicht werden. Habitat-SIM simuliert einen Abrufroboter, der in Replicacad-Szenen mit über 8.000 Schritten pro Sekunde (SPS) interagiert, wobei jeder Schritt "1 RGBD-Beobachtung (128 × 128 Pixel) und die Dynamik der Starrkörper für 1/30sec.
Habitat-SIM wird typischerweise mit Habitat-Lab, einer modularen Bibliothek auf hoher Ebene für End-to-End-Experimente in verkörperter KI verwendet-Definieren verkörperter KI-Aufgaben (z. B. Navigation, Anweisungen folgt, Fragen zu Fragen, Trainingsagenturen (durch Nachahmung oder Verstärkungslernen oder Verstärkungslernen, oder kein Lernen in klassischen Sinneclanact-Pipinines) und Benchmarken, die ihre Leistung auf die auf die definierten Stoffleitungen unter Verwendung der definierten Methinsen unter Verwendung der definierten Task-Tasks-Task-Tasks-Tasks-Task-Tasks-Tätigkeiten.
Wenn Sie die Habitat -Plattform in Ihrer Forschung einsetzen, zitieren Sie bitte den Lebensraum 1.0-, Habitat 2.0- und Habitat 3.0 -Artikel:
@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 baut auch auf Arbeiten auf, die von anderen beigetragen haben. Wenn Sie mitgesteuerte Methoden/Modelle verwenden, zitieren Sie bitte ihre Arbeiten. Im Abschnitt externer Beiträge finden Sie eine Liste der extern beigestellten und entsprechenden Arbeiten/Zitate.
Habitat-SIM kann auf 3 Arten installiert werden:
pip install . Um den neuesten kopflosen Build mit einer Kugel zu kompilieren. Lesen Sie Build -Anweisungen und allgemeine Build -Probleme.Habitat wird aktiv entwickelt, und wir raten den Benutzern, sich auf stabile Veröffentlichungen zu beschränken. Ab V0.1.4 bieten wir Conda -Pakete für jede Version an.
Vorbereitung von Conda Env
Angenommen, Sie haben Conda installiert, lassen Sie uns eine Conda Env vorbereiten:
# We require python>=3.9 and cmake>=3.10
conda create -n habitat python=3.9 cmake=3.14.0
conda activate habitatConda Installation Habitat-SIM
Wählen Sie je nach System/Bedürfnissen eine der folgenden Optionen aus:
So installieren Sie auf Maschinen mit einem angeschlossenen Display:
conda install habitat-sim -c conda-forge -c aihabitatSo installieren Sie auf kopflosen Maschinen (dh ohne angeschlossenes Display, z. B. in einem Cluster) und Maschinen mit mehreren GPUs (dieser Parameter basiert auf EGL und funktioniert daher nicht auf macOS):
conda install habitat-sim headless -c conda-forge -c aihabitat
[ Häufiges Szenario ] Um Habitat-SIM mit Kugelphysik zu installieren
conda install habitat-sim withbullet -c conda-forge -c aihabitat
HINWEIS: Build -Parameter können miteinander gekettet werden. Zum Beispiel, um Habitat-SIM mit Physik auf kopflosen Maschinen zu installieren:
conda install habitat-sim withbullet headless -c conda-forge -c aihabitat
Conda -Pakete für ältere Versionen können installiert werden, indem die Version explizit angegeben wird, z. B. conda install habitat-sim=0.1.6 -c conda-forge -c aihabitat .
Wir bieten auch einen nächtlichen Conda -Build für die Hauptzweig. Dies sollte jedoch nur verwendet werden, wenn Sie eine bestimmte Funktion benötigen, die noch in der neuesten Versionsversion noch nicht ist. Um den nächtlichen Aufbau des neuesten Haupts zu erhalten, tauschen Sie einfach -c aihabitat für -c aihabitat-nightly aus.
Laden wir einige 3D -Assets mit unserem Python Data Download -Dienstprogramm herunter:
3D -Szenen herunterladen (testen)
python -m habitat_sim.utils.datasets_download --uids habitat_test_scenes --data-path /path/to/data/ Beachten Sie, dass diese Testszenen keine semantischen Anmerkungen liefern. Wenn Sie die semantischen Sensoren über example.py testen möchten, verwenden Sie die Daten aus dem Dataset von MatterPort3D (siehe Datensätze).
Laden Sie Beispielobjekte herunter
python -m habitat_sim.utils.datasets_download --uids habitat_example_objects --data-path /path/to/data/Interaktive Tests : Verwenden Sie den interaktiven Betrachter, der in C ++ oder Python in Habitat-SIM enthalten ist:
# 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.glbSie sollten in der Lage sein, einen Agenten in dieser Testszene zu steuern. Verwenden Sie W/A/S/D -Tasten, um vorwärts/links/rückwärts/rechts/rechts und Pfeiltasten oder Maus (link zu klicken) zu steuern, um die Blickrichtung zu steuern (nach oben/nach unten/links/rechts). Versuchen Sie, das Bild einer Frau zu finden, die von einem Kranz umgeben ist. Viel Spaß!
Physikalische Interaktionen : Habitat-SIM bietet eine starre und artikulierte Dynamiksimulation durch Integration mit der Kugelphysik. Probieren Sie es jetzt mit unserer interaktiven Viewer -Funktionalität in C ++ oder Python aus.
Laden Sie zunächst unseren vollständig interaktiven Replicacad Apartment -Datensatz (140 MB) herunter:
# 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) erhältlich.Laden Sie dann eine Replicacad -Szene in der Viewer -Anwendung mit aktivierter Physik. Wenn Sie den obigen Datenpfad geändert haben, ändern Sie ihn auch in den unten stehenden Viewer -Aufrufen.
# 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_00Die Viewer -Anwendung gibt die vollständige Liste der Optionen für Tastatur- und Mausschnittstellen zur Konsole zur Laufzeit aus.
QuickStart -Beispiel:
WASD zu bewegenLEFT Maustaste und ziehen Sie die Maus, um sich umzusehenSPACE , um die Simulation aus/ein (Standardeinstellung) umzuschalten.'m' , um in den Mausmodus "Grab" zu wechselnLEFT oder RIGHT klicken und ziehen Sie, um Objekte zu verschieben oder Türen/Schubladen zu öffnen und das Objekt abzugebenALT ): Objekt Fixed Beschränkungsrahmen drehen (Gier)CTRL ): Objekt Fixed Constraint Frame rotieren (Tonhöhe)ALT + CTRL ): Objekt Fixed Constraint Frame (Rollen) drehenNicht interaktive Tests (z. B. für kopflose Systeme): Führen Sie das Beispielskript aus:
python /path/to/habitat-sim/examples/example.py --scene /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb Der Agent durchquert einen bestimmten Pfad und Sie sollten die Leistungsstatistiken am Ende sehen, so etwas wie folgt: 640 x 480, total time: 3.208 sec. FPS: 311.7 .
Um die Benchmark -Tabelle aus dem Habitat ICCV'19 zu reproduzieren, werden examples/benchmark.py --scene /path/to/mp3d_example/17DRP5sb8fy/17DRP5sb8fy.glb .
Zusätzliche Argumente zu example.py Py werden bereitgestellt, um die Sensorkonfiguration zu ändern, Statistiken der semantischen Annotationen in einer Szene zu drucken, den Aktionsraumkürzest-Pfad-Trajektorien zu berechnen und andere nützliche Funktionen festzulegen. In den Quelldateien von example.py und demo_runner.py finden Sie eine Übersicht.
Laden Sie ein bestimmtes MP3D- oder Gibson House: examples/example.py --scene path/to/mp3d/house_id.glb .
Wir haben auch eine Beispiel -Demo als Referenz bereitgestellt.
Um ein physikalisches Beispiel in Python zu leiten (nach dem Bau mit "Physiksimulation über Bullet"):
python examples/example.py --scene /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb --enable_physics Beachten Sie, dass in diesem Modus der Agent eingefroren und auf die hervorgebrachten physikalischen Objekte ausgerichtet wird. Zusätzlich kann --save_png verwendet werden, um die visuellen Beobachtungsrahmen der physischen Szene in das aktuelle Verzeichnis auszugeben.
Wenn Sie auf einem Remote -Computer ausgeführt werden und beim Initialisieren des Simulators z.
X11: The DISPLAY environment variable is missing
Could not initialize GLFW Stellen Sie sicher, dass Sie in Ihrer Umgebung keine DISPLAY definiert haben (führen Sie unset DISPLAY aus, um die Variable zu definieren).
Wenn Sie Libgl -Fehler sehen wie:
X11: The DISPLAY environment variable is missing
Could not initialize GLFWWahrscheinlich befindet sich Ihr Libgl an einem nicht standardmäßigen Ort. Siehe zB dieser Ausgabe.
Durchsuchen Sie die Online-Dokumentation von Habitat-SIM-Dokumentation.
In unserer ECCV-Tutorial-Serie finden Sie ein praktisches QuickStart-Erlebnis.
Sie können die Antwort auf Ihre Frage nicht finden? Fragen Sie die Entwickler und die Community in unserem Diskussionsforum.
Howa to verwendet gemeinsam unterstützte Datensätze mit Habitat-SIM.
Wenn Sie das Rauschmodell von Pyrobot verwenden, geben Sie bitte den technischen Bericht an.
Insbesondere das für die laute Steuerfunktionen benannte Rauschmodell mit dem Namen pyrobot_* und definiert in src_python/habitat_sim/agent/controls/pyrobot_noisy_controls.py
Wenn Sie das Redwood -Tiefenrauschenmodell verwenden, zitieren Sie bitte ihr Papier
Insbesondere das in src_python/habitat_sim/sensors/noise_models/redwood_depth_noise_model.py und src/esp/sensor/RedwoodNoiseModel.*
Habitat-SIM ist MIT lizenziert. Weitere Informationen finden Sie in der Lizenz.
Die Demo -Skripte verwenden: