timothygorer / ML-Vehicle

Vehicle navigates dynamic obstacle course, powered by Unity3D and ML-Agents.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ML-Vehicle

Primary Resources

Run Instructions

Execute 'Build/Vehicle_Project.exe'.

Design Documentation

Unity Project Scripts

  • VehiclePhysics.cs: MonoBehaviour that determines some physics characteristics of the vehicle game object. This includes wheel colliders; motor, steering, and braking input; proximity sensors; GUI output; and frame updates.
  • VehicleAgent.cs: Extends Agent. Builds vector of observations to send to brain; applies brake, motor torque, and steering on the vehicle based on vector of actions recieved from brain; builds reward signal; resets agent (and goal) on done().
  • VehicleAcademy.cs: Simply extends Academy.
  • SpawnAreaManager.cs. Used to find safe, random points in the world model to spawn the vehicle and goal on AgentReset().

Hyper Parameters for Vehicle NN (Summary)

  • Policy: PPO
  • Total training steps: 100,000,000 (1.0e8)
  • Number of layers: 3
  • Neurons per layer: 512

The actual configuration file laying out all hyper-parameters used during training can be found here.

Training Description

Agent was trained for 7d 14h 40m 43s. Up until around 2d 8h 51m 51s of training, the agent was completely incompetent. It seemed to reach peak performance at 4d 13h 31m 30s -- after that point, additional training yielded no substantial increases in performance (measured by average extrinsic reward). Below is a screen capture of the TensorBoard graphs at the end of training.

Training Graphs

About

Vehicle navigates dynamic obstacle course, powered by Unity3D and ML-Agents.


Languages

Language:C# 77.7%Language:Python 15.4%Language:ASP 3.6%Language:CSS 1.7%Language:HLSL 0.5%Language:ShaderLab 0.4%Language:Jupyter Notebook 0.3%Language:Objective-C 0.2%Language:Dockerfile 0.1%Language:Batchfile 0.1%Language:HTML 0.0%Language:Objective-C++ 0.0%