Um simulador 3D habilitado para física de alto desempenho com suporte para:
A filosofia de design do habitat é priorizar a velocidade de simulação em relação à amplitude dos recursos de simulação. Ao renderizar uma cena do conjunto de dados Matterport3D, o Habitat-SIM atinge vários milhares de quadros por segundo (FPS), executando um thread único e atinge mais de 10.000 fps multiprocess em uma única GPU. O Habitat-SIM simula um robô de busca interagindo em cenas REPLICACAD a mais de 8.000 etapas por segundo (SPS), onde cada 'passo' envolve renderizar 1 observação RGBD (128 × 128 pixels) e dinâmica do corpo rígido para 1/30 de 12000.
O Habitat-SIM é normalmente usado com o habitat-laboratório, uma biblioteca de alto nível modular para experimentos de ponta a ponta na IA incorporada-definindo tarefas de IA incorporadas (por exemplo, navegação, instrução a seguir, respostas de perguntas), os agentes de treinamento de imitação ou retenção de aprendizagem ou nenhum aprendizado em todos os sentidos de popa de popa) e que o desempenho de todos os sentidos de realização de pessoas que se referem a um dos sentimentos.
Se você usar a plataforma Habitat em sua pesquisa, cite os trabalhos Habitat 1.0, Habitat 2.0 e 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}
}
O Habitat-sim também se baseia no trabalho contribuído por outros. Se você usa métodos/modelos contribuídos, cite seus trabalhos. Consulte a seção de contribuições externas para obter uma lista do que foi contribuído externamente e o trabalho/citação correspondente.
O habitat-sim pode ser instalado de três maneiras:
pip install . Para compilar a última construção sem cabeça com a bala. Leia instruções de construção e problemas comuns de construção.O Habitat está sob desenvolvimento ativo e aconselhamos os usuários a se restringir a lançamentos estáveis. Começando com a v0.1.4, fornecemos pacotes CONDA para cada liberação.
Preparando o conda Env
Supondo que você tenha instalado o CoNA, vamos preparar um 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 Instale o habitat-sim
Escolha uma das opções abaixo, dependendo do seu sistema/necessidades:
Para instalar em máquinas com uma tela anexada:
conda install habitat-sim -c conda-forge -c aihabitatPara instalar em máquinas sem cabeça (ou seja, sem uma tela anexada, por exemplo, em um cluster) e máquinas com várias GPUs (este parâmetro depende de EGL e, portanto, não funciona no macOS):
conda install habitat-sim headless -c conda-forge -c aihabitat
[ Cenário mais comum ] para instalar o habitat-sim com a física da bala
conda install habitat-sim withbullet -c conda-forge -c aihabitat
Nota: Os parâmetros de construção podem ser acorrentados. Por exemplo, para instalar o habitat-sim com a física em máquinas sem cabeça:
conda install habitat-sim withbullet headless -c conda-forge -c aihabitat
Os pacotes do CONDA para versões mais antigas podem ser instalados especificando explicitamente a versão, por exemplo, conda install habitat-sim=0.1.6 -c conda-forge -c aihabitat .
Também fornecemos uma compilação noturna do CoNA para o ramo principal. No entanto, isso só deve ser usado se você precisar de um recurso específico ainda não na versão mais recente de lançamento. Para obter a construção noturna do último principal, basta trocar -c aihabitat para -c aihabitat-nightly .
Vamos baixar alguns ativos 3D usando nosso utilitário Python Data Download:
Download (teste) cenas 3D
python -m habitat_sim.utils.datasets_download --uids habitat_test_scenes --data-path /path/to/data/ Observe que essas cenas de teste não fornecem anotações semânticas. Se você deseja testar os sensores semânticos por example.py , use os dados do conjunto de dados Matterport3D (consulte os conjuntos de dados).
Baixe objetos de exemplo
python -m habitat_sim.utils.datasets_download --uids habitat_example_objects --data-path /path/to/data/Teste interativo : use o visualizador interativo incluído no Habitat-SIM em 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.glbVocê deve poder controlar um agente nessa cena de teste. Use as teclas W/A/S/D para avançar/esquerda/para trás/para a direita e teclas de seta ou mouse (clique esquerdo) para controlar a direção do olhar (procure/para baixo/para a esquerda/direita). Tente encontrar a foto de uma mulher cercada por uma coroa de flores. Divirta-se!
Interações físicas : o Habitat-SIM fornece simulação de dinâmica rígida e articulada via integração com a física da bala. Experimente agora com a funcionalidade interativa do visualizador em C ++ ou Python.
Primeiro, faça o download do nosso conjunto de dados de apartamentos replicacad totalmente interativo (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).Em seguida, carregue uma cena replicacad no aplicativo espectador com a física ativada. Se você modificou o caminho dos dados acima, modifique também nas chamadas do visualizador abaixo.
# 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_00O aplicativo visualizador produz a lista completa das opções de interface do teclado e do mouse para o console em tempo de execução.
Exemplo de início rápido:
WASD para se moverLEFT e arraste o mouse para olhar em voltaSPACE para interromper a simulação desativada/ativada (padrão)'m' para mudar para o modo de mouse "Grab"LEFT ou RIGHT , clique e arraste para mover objetos ou abrir portas/gavetas e soltar para soltar o objetoALT ): gire o quadro de restrição fixo do objeto (guinada)CTRL ): gire o quadro de restrição fixo do objeto (afinação)ALT + CTRL ): gire o quadro de restrição fixo do objeto (rolo)Teste não interativo (por exemplo, para sistemas sem cabeça): execute o script de exemplo:
python /path/to/habitat-sim/examples/example.py --scene /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb O agente atravessará um caminho específico e você verá as estatísticas de desempenho no final, algo assim: 640 x 480, total time: 3.208 sec. FPS: 311.7 .
Para reproduzir a tabela de referência do Habitat ICCV'19 examples/benchmark.py --scene /path/to/mp3d_example/17DRP5sb8fy/17DRP5sb8fy.glb .
Argumentos adicionais ao example.py são fornecidos para alterar a configuração do sensor, imprimir estatísticas das anotações semânticas em uma cena, calcular as trajetórias de caminho mais curtas do espaço de ação e definir outras funcionalidades úteis. Consulte os arquivos de origem example.py e demo_runner.py para obter uma visão geral.
Carregue um MP3D ou Gibson House específico: examples/example.py --scene path/to/mp3d/house_id.glb .
Também fornecemos uma demonstração de exemplo para referência.
Para executar um exemplo de física no Python (depois de construir com "simulação de física via bala"):
python examples/example.py --scene /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb --enable_physics Observe que, nesse modo, o agente será congelado e orientado para os objetos físicos gerados. Além disso, --save_png pode ser usado para produzir quadros de observação visual do agente da cena física para o diretório atual.
Se você estiver executando em uma máquina remota e a experiência exibir erros ao inicializar o simulador, por exemplo
X11: The DISPLAY environment variable is missing
Could not initialize GLFW Certifique -se de que você não possui DISPLAY definida em seu ambiente (execute unset DISPLAY para descrever a variável)
Se você vê erros de libgl como:
X11: The DISPLAY environment variable is missing
Could not initialize GLFWAs chances são de que seu libgl esteja localizado em um local fora do padrão. Veja por exemplo, este problema.
Navegue pela documentação online Habitat-SIM.
Confira nossa série de tutoriais do ECCV para obter uma experiência prática do QuickStart.
Não consegue encontrar a resposta para sua pergunta? Tente perguntar aos desenvolvedores e comunidade em nosso fórum de discussões.
Como usar conjuntos de dados suportados comuns com habitat-sim.
Se você usar o modelo de ruído da Pyrobot, cite o relatório técnico deles.
Especificamente, o modelo de ruído usado para as funções de controle barulhento denominado pyrobot_* e definido em src_python/habitat_sim/agent/controls/pyrobot_noisy_controls.py
Se você usar o modelo de ruído de profundidade de sequóia, cite o papel deles
Especificamente, o modelo de ruído definido em src_python/habitat_sim/sensors/noise_models/redwood_depth_noise_model.py e src/esp/sensor/RedwoodNoiseModel.*
O habitat-sim é licenciado pelo MIT. Veja a licença para obter detalhes.
Os scripts de demonstração usam: