• Stars
    star
    572
  • Rank 77,464 (Top 2 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 8 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

High Fidelity Simulator for Reinforcement Learning and Robotics Research.

Holodeck

Holodeck Video

Read the docs badge Build Status

Holodeck is a high-fidelity simulator for reinforcement learning built on top of Unreal Engine 4.

Features

  • 7+ rich worlds for training agents in, and many scenarios for those worlds
  • Linux and Windows support
  • Easily extend and modify training scenarios
  • Train and control more than one agent at once
  • Simple, OpenAI Gym-like Python interface
  • High performance - simulation speeds of up to 2x real time are possible. Performance penalty only for what you need
  • Run headless or watch your agents learn

Questions? Join our Discord!

Installation

pip install holodeck

(requires >= Python 3.5)

See Installation for complete instructions (including Docker).

Documentation

Usage Overview

Holodeck's interface is similar to OpenAI's Gym.

We try and provide a batteries included approach to let you jump right into using Holodeck, with minimal fiddling required.

To demonstrate, here is a quick example using the DefaultWorlds package:

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 of sensor name to the sensor's value (nparray).
  • reward: the reward received from the previous action
  • terminal: indicates whether the current state is a terminal state.
  • info: contains additional environment specific information.

If you want to access the data of a specific sensor, import sensors and retrieving the correct value from the state dictionary:

print(state["LocationSensor"])

Multi Agent-Environments

Holodeck supports multi-agent environments.

Calls to step only provide an action for the main agent, and then tick the simulation.

act provides a persistent action for a specific agent, and does not tick the simulation. After an action has been provided, tick will advance the simulation forward. The action is persisted until another call to act provides a different action.

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()

You can access the reward, terminal and location for a multi agent environment as follows:

task = states["uav0"]["FollowTask"]

reward = task[0]
terminal = task[1]
location = states["uav0"]["LocationSensor"]

(uav0 comes from the scenario configuration file)

Running Holodeck Headless

Holodeck can run headless with GPU accelerated rendering. See Using Holodeck Headless

Citation:

@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 is a project of BYU's Perception, Cognition and Control Lab (https://pcc.cs.byu.edu/).

More Repositories

1

holodeck-engine

High Fidelity Simulator for Reinforcement Learning and Robotics Research.
C++
61
star
2

leveraging-llms-for-mcqa

This is the code for the ICLR 2023 paper "Leveraging Large Language Models for Multiple Choice Question Answering."
Python
34
star
3

chitchat-dataset

Conversational dataset from the Chit-Chat Challenge
Python
23
star
4

information-theoretic-prompts

Python
18
star
5

prompt-compression-contrastive-coding

Companion repository to "Prompt Compression and Contrastive Conditioning for Controllability and Toxicity Reduction in Language Models"
Python
10
star
6

regexv

Regex using word embeddings for text matching
Python
7
star
7

z-machine-games

5
star
8

conversational-ai

Python
4
star
9

holodeck-docker

Contains Dockerfiles for holodeck environments.
Dockerfile
3
star
10

mindreader

An autonomous decision-making infrastructure using probabilistic programing to do goal-inference on autonomous agents
OpenEdge ABL
2
star
11

DL-MPC

This is a companion repository to the paper "Using First Principles for Deep Learning andModel-Based Control of Soft Robots."
Python
2
star
12

Grue

Text-based adventure game navigation using word vector embeddings
Python
2
star
13

partisanbrain

Repo for everything in the partisan brain project.
Python
1
star
14

Jedi

A Deep RL Framework
Python
1
star
15

set-up-ssh-tutorial

A tutorial for new lab members on how to set up ssh access to github on sivri without messing up any other lab members ssh connections.
1
star
16

HolodeckCppBinding

C++
1
star
17

scriptdog

Python
1
star
18

footron-the-network

A BYU networking visualization
Python
1
star
19

footron-capture-shell

C
1
star
20

provisioning

Ansible playbooks for provisioning BYU PCCL machines
1
star
21

reversible-flow-koopman

Python
1
star
22

lm-survey

Python
1
star