README.md 1.71 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: Build a vehicle that can navigate safely around any city block without being shown the route.
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.
Will Roscoe's avatar
Will Roscoe committed
***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

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 driving mode. 
```
python manage.py drive --session firstdrive
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

### 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

```
Will Roscoe's avatar
Will Roscoe committed
python manage.py train --session firstdrive --model firstmodel
Will Roscoe's avatar
Will Roscoe committed
```
Will Roscoe's avatar
Will Roscoe committed

Will Roscoe's avatar
Will Roscoe committed
### Test out the self driving. 

1. Start the donkey so data is recorded in a different session and load the predictor you trained. 
Will Roscoe's avatar
Will Roscoe committed
```
Will Roscoe's avatar
Will Roscoe committed
python manage.py drive --session seconddrive --model firstmodel
Will Roscoe's avatar
Will Roscoe committed
```
Will Roscoe's avatar
Will Roscoe committed
2. Go to `<pi_ip_address>:8889` and click **Start Self Driving** button. Your dokney should now drive it's self based on what you taught it. 


##Next Steps
Will Roscoe's avatar
Will Roscoe committed
Try changing or creating your own 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