
Holodeck является симулятором с высокой точки зрения для обучения подкрепления, построенного на вершине Unreal Engine 4.
pip install holodeck
(Требуется> = Python 3.5)
См. Установку для полных инструкций (включая Docker).
Интерфейс Холодека похож на спортзал Openai.
Мы стараемся предоставить подход, включенный батареи, чтобы позволить вам прыгать прямо в использование Holodeck, с необходимым минимальным возобновлением.
Чтобы продемонстрировать, вот быстрый пример, используя пакет DefaultWorlds :
import holodeck
# Load the environment. This environment contains a UAV in a city.
env = holodeck . make ( "UrbanCity-MaxDistance" )
# You must call `.reset()` on a newly created environment before ticking/stepping it
env . reset ()
# The UAV takes 3 torques and a thrust as a command.
command = [ 0 , 0 , 0 , 100 ]
for i in range ( 30 ):
state , reward , terminal , info = env . step ( command ) state : DICT названия датчика к значению датчика (NPARRAY).reward : награда, полученная от предыдущего действияterminal : указывает, является ли текущее состояние терминальным состоянием.info : содержит дополнительную информацию о конкретной среде.Если вы хотите получить доступ к данным конкретного датчика, импортируйте датчики и извлеките правильное значение из словаря штата:
print ( state [ "LocationSensor" ])Голодек поддерживает многоагентные среды.
Вызовы на step предоставляют только действие для основного агента, а затем отметите симуляцию.
act обеспечивает постоянное действие для конкретного агента и не тикает симуляции. После того, как действие было предоставлено, tick выдвинет вперед симуляцию вперед. Действие сохраняется до тех пор, пока другой призыв к act не предпримет другое действие.
import holodeck
import numpy as np
env = holodeck . make ( "CyberPunkCity-Follow" )
env . reset ()
# Provide an action for each agent
env . act ( 'uav0' , np . array ([ 0 , 0 , 0 , 100 ]))
env . act ( 'nav0' , np . array ([ 0 , 0 , 0 ]))
# Advance the simulation
for i in range ( 300 ):
# The action provided above is repeated
states = env . tick ()Вы можете получить доступ к вознаграждению, терминалу и местоположению для многогранной среды следующим образом:
task = states [ "uav0" ][ "FollowTask" ]
reward = task [ 0 ]
terminal = task [ 1 ]
location = states [ "uav0" ][ "LocationSensor" ] ( uav0 происходит из файла конфигурации сценария)
Holodeck может работать без головы с ускоренным рендерингом GPU. Смотрите, используя Holodeck без головы
@misc{HolodeckPCCL,
Author = {Joshua Greaves and Max Robinson and Nick Walton and Mitchell Mortensen and Robert Pottorff and Connor Christopherson and Derek Hancock and Jayden Milne and David Wingate},
Title = {Holodeck: A High Fidelity Simulator},
Year = {2018},
}
Holodeck - это проект восприятия, познания и контроля лаборатории BYU (https://pcc.cs.byu.edu/).