A drone created for Unity with realistic drone physics, intended for Reinforcement Learning Simulation.
Project AutoQuad, Spring 2018, UAVs @ Berkeley & Machine Learning @ Berkeley
- Download Blender: https://www.blender.org/download/
- Download Unity 2017: https://unity3d.com/get-unity/download/
- Clone this repo, master
- master: Currently velocity_control, stable (supports ML-Agents)
- velocity_control: for development of realistic velocity control for drone, supports ML-Agents interface
- ML-Agents v0.3.1b as of right now (0.3 necessary)
- custom_physics: Roll, Pitch, Yaw, Throttle PID control [1]
- cubedrone: precursor to velocity control branch
- Open Up Unity, and select Open and navigate to the root directory of this repository.
- Press Play to run the simulation
- velocity control branch
- I: FORWARD + STRAIGHT (default action in player mode)
- J: FORWARD + LEFT
- L: FORWARD + RIGHT
- custom_physics branch (behind on environment and ml-agents code)
- I: PITCH FORWARD
- K: PITCH BACKWARD
- J: ROLL LEFT
- L: ROLL RIGHT
- W: THROTTLE UP
- S: THROTTLE DOWN
- A: YAW LEFT
- D: YAW RIGHT
- velocity control branch
- To Build: File -> Build Settings, Build, and then select the
- Make sure the build settings are all correct for your environment
- See the AutoQuad repository for ML-Agents code to interface with the environment.
- Includes sample Imitation Learning and RL approaches
Choose between the following two states by toggling the use_new_state boolean in the DroneAgent.cs script (or in inspector under DroneParent -> DroneAgent).
- New state space (5 elements in this order)
- Heading (direction, normalized -1 to 1)
- Distance from target
- forward velocity (normalized)
- yaw rate (normalized)
- collision (1 or 0)
- Old state (13 elements in this order)
- (X,Y,Z) velocity
- (X,Y,Z) position
- (X,Y,Z) Euler angles
- (X,Y,Z) Target Position
- collision (1 or 0)
Observations are 128x128 grayscale images.
Project Managers: Suneel Belkhale, Alex Li
Project Members: Gefen Kohavi, Murtaza Dalal, Daniel Ho, Franklin Rice, Allan Levy
Project Managers: Suneel Belkhale
Project Members: Alex Chan, Kevin Yang, Valmik Prabhu, Isabella Maceda, Erin Song, Dilan Bhalla, Asad Abbasi, Jason Kim
[1] For RPY PID Controller code: https://github.com/WebdiverShaka/DroneControl