-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
33 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# Selfdriving Car AI and Simulator | ||
This project contains a neural network for driving a car in a simulator. The simulator is also part of the project. The goal with not using a existing game/simulator is to allow more control over the data being fed to the AI, which made some experimentation possible. | ||
|
||
## Simulator | ||
The simulator is made with unity. It generates random terrains in order to create varied learning situations. The simulator communicates with the AI through a local socket, this means that often both the simulator and the AI have to be started. | ||
|
||
## AI | ||
The AI receives the following input: | ||
1. A color image. | ||
2. A grayscale image created from the depth and normal buffers (a LADAR scanner would be the real life equivalent). | ||
3. The current speed of the car. | ||
|
||
The output is acceleration and turning values. | ||
|
||
## Download | ||
A windows version of the simulator can be downloaded [here](https://github.com/Aggrathon/CarAiSimulator/releases). | ||
The trained network is unfortunately too big to distribute here (maybe the fully connected layers coud be smaller). | ||
|
||
## Usage | ||
Here is the normal flow for using the AI: | ||
1. Use the simulator and the `record.py` script to to create examples of how humans drive. | ||
2. Train the AI on the recorded examples using the `learn.py` script. | ||
3. Improve the AI with reinforcement learning, using the simulator and the `train.py` script. | ||
4. Let the AI drive in the simulator with the `drive.py` script. | ||
|
||
## Dependencies | ||
- Python 3 | ||
- Tensorflow | ||
- Unity (2017.2) |