
Holodeck es un simulador de alta fidelidad para el aprendizaje de refuerzo construido sobre Unreal Engine 4.
pip install holodeck
(Requiere> = Python 3.5)
Consulte la instalación para obtener instrucciones completas (incluido Docker).
La interfaz de Holodeck es similar al gimnasio de Openi.
Intentamos proporcionar un enfoque de baterías incluido para permitirle saltar directamente al uso de Holodeck, con un mínimo violento requerido.
Para demostrar, aquí hay un ejemplo rápido usando el paquete 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 de nombre del sensor al valor del sensor (nparray).reward : la recompensa recibida de la acción anteriorterminal : indica si el estado actual es un estado terminal.info : contiene información específica del entorno adicional.Si desea acceder a los datos de un sensor específico, importe sensores y recupere el valor correcto del diccionario estatal:
print ( state [ "LocationSensor" ])Holodeck admite entornos de múltiples agentes.
Las llamadas para step solo proporcionan una acción para el agente principal y luego marcan la simulación.
act proporciona una acción persistente para un agente específico, y no marca la simulación. Después de que se haya proporcionado una acción, tick avanzará a la simulación. La acción se persiste hasta que otro llamado a act proporciona una acción 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 ()Puede acceder a la recompensa, terminal y ubicación para un entorno de agente múltiple de la siguiente manera:
task = states [ "uav0" ][ "FollowTask" ]
reward = task [ 0 ]
terminal = task [ 1 ]
location = states [ "uav0" ][ "LocationSensor" ] ( uav0 proviene del archivo de configuración del escenario)
Holodeck puede correr sin cabeza con la representación acelerada de GPU. Ver usando Holodeck sin cabeza
@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 es un proyecto del laboratorio de percepción, cognición y control de BYU (https://pcc.cs.byu.edu/).