All Projects → CoderOneHQ → ultimate-volleyball

CoderOneHQ / ultimate-volleyball

Licence: Apache-2.0 license
3D RL Volleyball environment built on Unity ML-Agents

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to ultimate-volleyball

pytorch-distributed
Ape-X DQN & DDPG with pytorch & tensorboard
Stars: ✭ 98 (+63.33%)
Mutual labels:  deep-reinforcement-learning
ActiveRagdollControllers
Research into controllers for 2d and 3d Active Ragdolls (using MujocoUnity+ml_agents)
Stars: ✭ 30 (-50%)
Mutual labels:  deep-reinforcement-learning
DI-star
An artificial intelligence platform for the StarCraft II with large-scale distributed training and grand-master agents.
Stars: ✭ 1,335 (+2125%)
Mutual labels:  deep-reinforcement-learning
Deep-Reinforcement-Learning-With-Python
Master classic RL, deep RL, distributional RL, inverse RL, and more using OpenAI Gym and TensorFlow with extensive Math
Stars: ✭ 222 (+270%)
Mutual labels:  deep-reinforcement-learning
Rainy
☔ Deep RL agents with PyTorch☔
Stars: ✭ 39 (-35%)
Mutual labels:  deep-reinforcement-learning
a3c-super-mario-pytorch
Reinforcement Learning for Super Mario Bros using A3C on GPU
Stars: ✭ 35 (-41.67%)
Mutual labels:  deep-reinforcement-learning
omd
JAX code for the paper "Control-Oriented Model-Based Reinforcement Learning with Implicit Differentiation"
Stars: ✭ 43 (-28.33%)
Mutual labels:  deep-reinforcement-learning
deep rl acrobot
TensorFlow A2C to solve Acrobot, with synchronized parallel environments
Stars: ✭ 32 (-46.67%)
Mutual labels:  deep-reinforcement-learning
tpprl
Code and data for "Deep Reinforcement Learning of Marked Temporal Point Processes", NeurIPS 2018
Stars: ✭ 68 (+13.33%)
Mutual labels:  deep-reinforcement-learning
deep-blueberry
If you've always wanted to learn about deep-learning but don't know where to start, then you might have stumbled upon the right place!
Stars: ✭ 17 (-71.67%)
Mutual labels:  deep-reinforcement-learning
awesome-rl
Awesome RL: Papers, Books, Codes, Benchmarks
Stars: ✭ 105 (+75%)
Mutual labels:  deep-reinforcement-learning
dqn-obstacle-avoidance
Deep Reinforcement Learning for Fixed-Wing Flight Control with Deep Q-Network
Stars: ✭ 57 (-5%)
Mutual labels:  deep-reinforcement-learning
Fruit-API
A Universal Deep Reinforcement Learning Framework
Stars: ✭ 61 (+1.67%)
Mutual labels:  deep-reinforcement-learning
RL course
The page of the Ural Federal University course "Reinforcement Learning and Neural Networks"
Stars: ✭ 23 (-61.67%)
Mutual labels:  deep-reinforcement-learning
ml course
"Learning Machine Learning" Course, Bogotá, Colombia 2019 #LML2019
Stars: ✭ 22 (-63.33%)
Mutual labels:  deep-reinforcement-learning
good robot
"Good Robot! Now Watch This!": Repurposing Reinforcement Learning for Task-to-Task Transfer; and “Good Robot!”: Efficient Reinforcement Learning for Multi-Step Visual Tasks with Sim to Real Transfer
Stars: ✭ 84 (+40%)
Mutual labels:  deep-reinforcement-learning
jax-rl
JAX implementations of core Deep RL algorithms
Stars: ✭ 61 (+1.67%)
Mutual labels:  deep-reinforcement-learning
DeepCubeA
Code for DeepCubeA, a Deep Reinforcement Learning algorithm that can learn to solve the Rubik's cube.
Stars: ✭ 92 (+53.33%)
Mutual labels:  deep-reinforcement-learning
revisiting rainbow
Revisiting Rainbow
Stars: ✭ 71 (+18.33%)
Mutual labels:  deep-reinforcement-learning
FlashRL
No description or website provided.
Stars: ✭ 25 (-58.33%)
Mutual labels:  deep-reinforcement-learning

🏐 Ultimate Volleyball

Ultimate Volleyball

About

Ultimate Volleyball is a multi-agent reinforcement learning environment built on Unity ML-Agents.

See 'Ultimate Volleyball Micro-Machine Learning Course' for an updated step-by-step micro-course.

Version: Up-to-date with ML-Agents Release 19

Contents

  1. Getting started
  2. Training
  3. Self-play
  4. Environment description
  5. Baselines

Getting Started

  1. Install the Unity ML-Agents toolkit (Release 19+) by following the installation instructions.
  2. Download or clone this repo containing the ultimate-volleyball Unity project.
  3. Open the ultimate-volleyball project in Unity (Unity Hub → Projects → Add → Select root folder for this repo).
  4. Load the VolleyballMain scene (Project panel → Assets → Scenes → VolleyballMain.unity).
  5. Click the button at the top of the window. This will run the agent in inference mode using the provided baseline model.

Training

  1. If you previously changed Behavior Type to Heuristic Only, ensure that the Behavior Type is set back to Default (see Heuristic Mode).
  2. Activate the virtual environment containing your installation of ml-agents.
  3. Make a copy of the provided training config file in a convenient working directory.
  4. Run from the command line mlagents-learn <path to config file> --run-id=<some_id> --time-scale=1
    • Replace <path to config file> with the actual path to the file in Step 3
  5. When you see the message "Start training by pressing the Play button in the Unity Editor", click within the Unity GUI.
  6. From another terminal window, navigate to the same directory you ran Step 4 from, and run tensorboard --logdir results to observe the training process.

For more detailed instructions, check the ML-Agents getting started guide.

Self-Play

To enable self-play:

  1. Set either Purple or Blue Agent Team ID to 1. Set Team ID
  2. Include the self-play hyperparameter hierarchy in your trainer config file, or use the provided file in config/Volleyball_SelfPlay.yaml (ML-Agents Documentation)
  3. Set your reward function in ResolveEvent() in VolleyballEnvController.cs.

Environment Description

Goal: Get the ball to bounce in the opponent's side of the court while preventing the ball bouncing into your own court.

Action space:

4 discrete action branches:

  • Forward motion (3 possible actions: forward, backward, no action)
  • Rotation (3 possible actions: rotate left, rotate right, no action)
  • Side motion (3 possible actions: left, right, no action)
  • Jump (2 possible actions: jump, no action)

Observation space:

Total size: 11

  • Agent Y-rotation (1)
  • Normalised directional vector from agent to ball (3)
  • Distance from agent to ball (1)
  • Agent X, Y, Z velocity (3)
  • Ball X, Y, Z relative velocity (3)

Reward function:

The project contains some examples of how the reward function can be defined. The base example gives a +1 reward each time the agent hits the ball over the net.

Baselines

The following baselines are included:

  • Volleyball_Random.onnx - Random agent
  • Volleyball_SelfPlay.onnx - Trained using PPO with Self-Play in 60M steps
  • Volleyball.onnx - Trained using PPO in 60M steps (without Self-Play)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].