
Holodeck est un simulateur à haute fidélité pour l'apprentissage par renforcement construit sur un moteur Unreal 4.
pip install holodeck
(nécessite> = Python 3.5)
Voir l'installation pour des instructions complètes (y compris Docker).
L'interface de Holodeck est similaire au gymnase d'Openai.
Nous essayons de fournir une approche incluse des batteries pour vous permettre de sauter directement dans l'utilisation de Holodeck, avec un minimum de violon requis.
Pour démontrer, voici un exemple rapide en utilisant le package 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 du nom du capteur à la valeur du capteur (nparray).reward : la récompense reçue de l'action précédenteterminal : indique si l'état actuel est un état terminal.info : contient des informations spécifiques à l'environnement supplémentaires.Si vous souhaitez accéder aux données d'un capteur spécifique, importez des capteurs et récupérant la valeur correcte du dictionnaire d'état:
print ( state [ "LocationSensor" ])Holodeck prend en charge les environnements multi-agents.
Les appels à step ne fournissent qu'une action pour l'agent principal, puis cochez la simulation.
act fournit une action persistante pour un agent spécifique et ne coche pas la simulation. Une fois qu'une action a été fournie, tick fera progresser la simulation vers l'avant. L'action est persistée jusqu'à ce qu'un autre appel à act fournit une action différente.
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 ()Vous pouvez accéder à la récompense, au terminal et à l'emplacement pour un environnement multi-agents comme suit:
task = states [ "uav0" ][ "FollowTask" ]
reward = task [ 0 ]
terminal = task [ 1 ]
location = states [ "uav0" ][ "LocationSensor" ] ( uav0 provient du fichier de configuration du scénario)
Holodeck peut fonctionner sans tête avec un rendu accéléré GPU. Voir en utilisant Holodeck sans tête
@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 est un projet du laboratoire de perception, de cognition et de contrôle de BYU (https://pccc.cs.byu.edu/).