
Holodeck é um simulador de alta fidelidade para aprendizado de reforço, construído sobre o Unreal Engine 4.
pip install holodeck
(requer> = python 3.5)
Consulte a instalação para obter instruções completas (incluindo o Docker).
A interface de Holodeck é semelhante à academia do Openai.
Tentamos fornecer uma abordagem de baterias incluída para permitir que você pule para o uso de holodeck, com o mínimo de febre.
Para demonstrar, aqui está um exemplo rápido usando o pacote 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 : dicto do nome do sensor ao valor do sensor (nparray).reward : a recompensa recebida da ação anteriorterminal : indica se o estado atual é um estado terminal.info : contém informações adicionais específicas do ambiente.Se você deseja acessar os dados de um sensor específico, importe sensores e recuperando o valor correto do dicionário estadual:
print ( state [ "LocationSensor" ])Holodeck suporta ambientes multi-agentes.
As chamadas para step fornecem apenas uma ação para o agente principal e depois marque a simulação.
act fornece uma ação persistente para um agente específico e não marque a simulação. Depois que uma ação foi fornecida, tick avançará a simulação adiante. A ação é persistida até que outra chamada para act forneça uma ação diferente.
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 ()Você pode acessar a recompensa, terminal e localização para um ambiente de vários agentes da seguinte forma:
task = states [ "uav0" ][ "FollowTask" ]
reward = task [ 0 ]
terminal = task [ 1 ]
location = states [ "uav0" ][ "LocationSensor" ] ( uav0 vem do arquivo de configuração do cenário)
Holodeck pode ficar sem cabeça com a renderização acelerada da GPU. Veja usando Holodeck sem cabeça
@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 é um projeto da percepção, cognição e controle da BYU (https://pcc.cs.byu.edu/).