README.md 2.38 KB
Newer Older
# donkeycar: a python self driving library
Will Roscoe's avatar
Will Roscoe committed

[![Build Status](https://travis-ci.org/autorope/donkeycar.svg?branch=dev)](https://travis-ci.org/autorope/donkeycar)
[![CodeCov](https://codecov.io/gh/autoropoe/donkeycar/branch/dev/graph/badge.svg)](https://codecov.io/gh/autorope/donkeycar/branch/dev)
joekickass's avatar
joekickass committed
[![PyPI version](https://badge.fury.io/py/donkeycar.svg)](https://badge.fury.io/py/donkeycar)
[![Py versions](https://img.shields.io/pypi/pyversions/donkeycar.svg)](https://img.shields.io/pypi/pyversions/donkeycar.svg)
Will Roscoe's avatar
Will Roscoe committed

Donkeycar is minimalist and modular self driving library for Python. It is
mancoast's avatar
mancoast committed
developed for hobbyists and students with a focus on allowing fast experimentation and easy
community contributions.
Will Roscoe's avatar
Will Roscoe committed

#### Quick Links
Will Roscoe's avatar
Will Roscoe committed
* [Donkeycar Updates & Examples](http://donkeycar.com)
Will Roscoe's avatar
Will Roscoe committed
* [Build instructions and Software documentation](http://docs.donkeycar.com)
Will Roscoe's avatar
Will Roscoe committed
* [Slack / Chat](https://donkey-slackin.herokuapp.com/)
Will Roscoe's avatar
Will Roscoe committed

Will Roscoe's avatar
Will Roscoe committed
![donkeycar](./docs/assets/build_hardware/donkey2.PNG)

#### Use Donkey if you want to:
Will Roscoe's avatar
Will Roscoe committed
* Make an RC car drive its self.
* Compete in self driving races like [DIY Robocars](http://diyrobocars.com)
Will Roscoe's avatar
Will Roscoe committed
* Experiment with autopilots, mapping computer vision and neural networks.
* Log sensor data. (images, user inputs, sensor readings)
mancoast's avatar
mancoast committed
* Drive your car via a web or game controller.
* Leverage community contributed driving data.
mancoast's avatar
mancoast committed
* Use existing CAD models for design upgrades.
mancoast's avatar
mancoast committed
### Get driving.
Will Roscoe's avatar
Will Roscoe committed
After building a Donkey2 you can turn on your car and go to http://localhost:8887 to drive.
### Modify your cars behavior.
Will Roscoe's avatar
Will Roscoe committed
The donkey car is controlled by running a sequence of events
Will Roscoe's avatar
Will Roscoe committed
```python
#Define a vehicle to take and record pictures 10 times per second.
Tawn Kramer's avatar
Tawn Kramer committed
import time
Will Roscoe's avatar
Will Roscoe committed
from donkeycar import Vehicle
Tawn Kramer's avatar
Tawn Kramer committed
from donkeycar.parts.cv import CvCam
from donkeycar.parts.datastore import TubWriter
Will Roscoe's avatar
Will Roscoe committed
V = Vehicle()

Tawn Kramer's avatar
Tawn Kramer committed
IMAGE_W = 160
IMAGE_H = 120
IMAGE_DEPTH = 3

#Add a camera part
cam = CvCam(image_w=IMAGE_W, image_h=IMAGE_H, image_d=IMAGE_DEPTH)
Will Roscoe's avatar
Will Roscoe committed
V.add(cam, outputs=['image'], threaded=True)

Tawn Kramer's avatar
Tawn Kramer committed
#warmup camera
while cam.run() is None:
    time.sleep(1)

Will Roscoe's avatar
Will Roscoe committed
#add tub part to record images
Tawn Kramer's avatar
Tawn Kramer committed
tub = TubWriter(path='./dat',
          inputs=['image'],
Will Roscoe's avatar
Will Roscoe committed
          types=['image_array'])
Tawn Kramer's avatar
Tawn Kramer committed
V.add(tub, inputs=['image'], outputs=['num_records'])
Will Roscoe's avatar
Will Roscoe committed

#start the drive loop at 10 Hz
V.start(rate_hz=10)
See [home page](http://donkeycar.com), [docs](http://docs.donkeycar.com)
Will Roscoe's avatar
Will Roscoe committed
or join the [Slack channel](http://www.donkeycar.com/community.html) to learn more.