
Holodeck ist ein High-Fidelity-Simulator für das Verstärkungslernen, das auf Unreal Engine 4 basiert.
pip install holodeck
(erfordert> = Python 3.5)
In der Installation finden Sie vollständige Anweisungen (einschließlich Docker).
Die Schnittstelle von Holodeck ähnelt dem Openai -Fitnessstudio.
Wir versuchen, einen Ansatz für die Batterien anzubieten, um Sie direkt in Holodeck zu verwenden, wobei minimales Fummeln erforderlich ist.
Um zu demonstrieren, finden Sie hier ein kurzes Beispiel mit dem DefaultWorlds -Paket:
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 des Sensornamens zum Wert des Sensors (NPARRAY).reward : Die Belohnung der vorherigen Aktion erhaltenterminal : Gibt an, ob der aktuelle Zustand ein Terminalzustand ist.info : Enthält zusätzliche umgebungsspezifische Informationen.Wenn Sie auf die Daten eines bestimmten Sensors zugreifen möchten, importieren Sie Sensoren und rufen den richtigen Wert aus dem Zustandswörterbuch ab:
print ( state [ "LocationSensor" ])Holodeck unterstützt Umgebungen mit mehreren Agenten.
Aufrufe zum step geben nur eine Aktion für den Hauptagenten an und ticken Sie dann die Simulation an.
act liefert eine anhaltende Maßnahme für einen bestimmten Agenten und kreuzt die Simulation nicht. Nachdem eine Aktion vorgelegt wurde, wird tick die Simulation vorantreiben. Die Aktion wird fortgesetzt, bis ein anderer Aufruf zur act eine andere Aktion liefert.
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 ()Sie können auf die Belohnung, das Terminal und den Standort für eine Multi -Agent -Umgebung zugreifen wie folgt:
task = states [ "uav0" ][ "FollowTask" ]
reward = task [ 0 ]
terminal = task [ 1 ]
location = states [ "uav0" ][ "LocationSensor" ] ( uav0 stammt aus der Szenario -Konfigurationsdatei)
Holodeck kann mit GPU -beschleunigtem Rendering kopflos laufen. Siehe mit Holodeck kopflos
@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 ist ein Projekt der Wahrnehmungs-, Wahrnehmungs- und Kontrolllabor von BYU (https://pcc.cs.byu.edu/).