
Holodeck은 Unreal Engine 위에 구축 된 강화 학습을위한 고 충실도 시뮬레이터입니다.
pip install holodeck
(필요> = Python 3.5)
전체 지침 (Docker 포함)은 설치를 참조하십시오.
Holodeck의 인터페이스는 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 : 센서 이름의 센서 값 (NPARRAY).reward : 이전 행동으로부터받은 보상terminal : 현재 상태가 터미널 상태인지 여부를 나타냅니다.info : 추가 환경 특정 정보가 포함되어 있습니다.특정 센서의 데이터에 액세스하려면 센서를 가져 와서 State Dictionary에서 올바른 값을 검색합니다.
print ( state [ "LocationSensor" ])Holodeck은 다중 에이전트 환경을 지원합니다.
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 Headless 사용을 참조하십시오
@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/)의 프로젝트입니다.