Package: dmhouse
DMHouseDMHouseis a fork ofDeepMind Lab 3D simulator, modified for indoor visual navigation.Getting startedBefore getting started, please ensure you have all required packages installed (SDL2, python3.8, OSMesa, gettext).
On ubuntu you can issue the following command:$sudoaptinstall-ylibsdl2-devpython3.8-devpython3.8-numpylibosmesa6-devgettextAlternatively, you can use the provided docker image with pre-installed environment.You can install this package from the PyPI repository.$pipinstalldmhouseThe package provides agyminterface. Here is an example, which shows how to create a new environment instance.importdmhouse# Required to register environments to gymimportgymenv=gym.make('DMHouse-v1',screen_size=(84,84),renderer='hardware')NOTE: for better performance, you should userenderer='hardware', other option isrenderer='software'AboutThe primary purpose of 3DHouse is to act as a testbed for research in artificial intelligence,
especially deep reinforcement learning visual navigation.
This fork modifies DeepMind Lab to be suitable for visual navigation in indoor environments.
It adds new scenes and office-like 3D objects and also removes game-like animations and on-screen artifacts.If you useDMHousein your research and would like to cite us, you can use the following citation:@article{kulhanek2020visual,title={Visual Navigation in Real-World Indoor Environments Using End-to-End Deep Reinforcement Learning},author={Kulh{\'a}nek, Jon{\'a}{\v{s}} and Derner, Erik and Babu{\v{s}}ka, Robert},journal={arXiv preprint arXiv:2010.10903},year={2020}}You can also cite theDeepMind Labenvironment by citing theDeepMind Lab paper.If you have any questions, you can reach me atjonas.kulhanek@live.comor the authors of DeepMind Lab atlab@deepmind.com.Extending DMHouse simulatorGetting startedFirst, clone this repository by running:$gitclonehttps://github.com/jkulhanek/dmlab-vn
$cdlabGet started by installing the required packages. On ubuntu, you can do it using the following command:$sudoaptinstall-ylibsdl2-devpython3.8-devpython3.8-numpylibosmesa6-dev
$sudoaptinstall-ycurlgnupg
$curl-fsSLhttps://bazel.build/bazel-release.pub.gpg|gpg--dearmor>bazel.gpg
$sudomvbazel.gpg/etc/apt/trusted.gpg.d/
$echo"deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8"|sudotee/etc/apt/sources.list.d/bazel.list
$sudoaptupdate-y
$sudoaptinstall-ybazelAlternatively, you can used the pre-installed docker image.Building pip packageTo build the pip package, run the following commands:$bazelbuild-copt--definegraphics=osmesa_or_egl//python/pip_package:build_pip_package
$./bazel-bin/python/pip_package/build_pip_package/tmp/dmlab_pkgThe package can be installed using the following command:$ pip install /tmp/dmlab_pkg/dmhouse-*-py3-none-any.whlUpstream sourcesDMHouseis built on top of DeepMind's Lab 3D simulator, which is in turn
built from theioquake3game engine, and it uses the toolsq3map2andbspcfor map creation.DeepMind Labis taken fromgithub.com/deepmind/lab.bspcis taken fromgithub.com/TTimo/bspc,
revision d9a372db3fb6163bc49ead41c76c801a3d14cf80. There are virtually no
local modifications, although we integrate this code with the main ioq3 code
and do not use their copy in thedepsdirectory. We expect this code to be
stable.q3map2is taken fromgithub.com/TTimo/GtkRadiant,
revision d3d00345c542c8d7cc74e2e8a577bdf76f79c701. A few minor local
modifications add synchronization. We also expect this code to be stable.ioquake3is taken fromgithub.com/ioquake/ioq3,
revision 29db64070aa0bae49953bddbedbed5e317af48ba. The code contains extensive
modifications and additions.EGL headers are included in this package by DeepMind's Lab (in//third_party/GL/{EGL,KHR}),
taken from the Khronos OpenGL/OpenGL ES XML API Registry atwww.khronos.org/registry/EGL. The
headers have been modified slightly to remove the dependency of EGL on X.We are very grateful to the maintainers of these repositories for all their hard
work on maintaining high-quality code bases.