README.md 1.58 KB
Newer Older
Will Roscoe's avatar
Will Roscoe committed
# The Donkey 
A small DIY self driving vehicle made from an RC Car and Raspbery Pi. 
Will Roscoe's avatar
Will Roscoe committed

Will Roscoe's avatar
Will Roscoe committed
* Project goal: The the sidewalk self driving vehicle (auto). 
Will Roscoe's avatar
Will Roscoe committed

Will Roscoe's avatar
Will Roscoe committed
### Build your own.
Here are [instructions](docs/get_started.md) and part lists to build your own car. 
Will Roscoe's avatar
Will Roscoe committed

Will Roscoe's avatar
Will Roscoe committed

Will Roscoe's avatar
Will Roscoe committed
## How to use.
All of these examples assume you're connected to your donkey via SSH and you've activated the virtual environment. 
Will Roscoe's avatar
Will Roscoe committed

### Activate the virtual environment
```
cd code/donkey
source env/bin/activate 
```
Will Roscoe's avatar
Will Roscoe committed
### Train a route
Will Roscoe's avatar
Will Roscoe committed

Will Roscoe's avatar
Will Roscoe committed
1. Start recording steering and images 
Will Roscoe's avatar
Will Roscoe committed
```bash
python manage.py record --filerecorder --webcontrol
Will Roscoe's avatar
Will Roscoe committed
```
Will Roscoe's avatar
Will Roscoe committed

Will Roscoe's avatar
Will Roscoe committed
2. Go to '<pi_ip_address>:8889' in your browser to control the car.
Will Roscoe's avatar
Will Roscoe committed

Will Roscoe's avatar
Will Roscoe committed
3. End training by typing `Ctrl-c` in your ssh sesion.

### Create a predictor for the route. 
Will Roscoe's avatar
Will Roscoe committed

Train predictors from recorded data
Will Roscoe's avatar
Will Roscoe committed

```
python manage.py train --indir  <indir path>
```
Will Roscoe's avatar
Will Roscoe committed

Will Roscoe's avatar
Will Roscoe committed
### Let the predictor drive the trained rout. 
Will Roscoe's avatar
Will Roscoe committed
```
python manage.py auto --indir  <indir path>
```
Where indir is the directory of the images used to train the predictor. 
Will Roscoe's avatar
Will Roscoe committed
##TODO: 
Will Roscoe's avatar
Will Roscoe committed

- [x] Threadsafe image capture (for webserver + recorder) 
- [ ] Create togle on LocalWebControler to togle autonomous mode. (Will)
- [ ] Create `manage.py serve` command to run local server to act as a remote Recorder and Predictor. (Will)
- [ ] Separate Keras Predictors so they don't need to be run on the Pi.

Vehicle Control 
- [ ] Update vehicle to drive given manual input. (Adam)
- [ ] Try loading tensor flow on Raspberry Pi (Will)
- [ ] Train Convolution network from numpy arrays (Will)
Refactor Worthy
- [ ] Figure out a better