Donkeycar is minimalist and modular self driving library for Python. It is developed for hobbyists and students with a focus on allowing fast experimentation and easy community contributions.
- Make an RC car drive its self.
- Compete in self driving races like DIY Robocars
- Experiment with autopilots, mapping computer vision and neural networks.
- Log sensor data. (images, user inputs, sensor readings)
- Drive your car via a web or game controller or RC controller.
- Leverage community contributed driving data.
- Use existing CAD models for design upgrades.
After building a Donkey2 you can turn on your car and go to http://localhost:8887 to drive.
The donkey car is controlled by running a sequence of events
#Define a vehicle to take and record pictures 10 times per second.
import time
from donkeycar import Vehicle
from donkeycar.parts.cv import CvCam
from donkeycar.parts.tub_v2 import TubWriter
V = Vehicle()
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)
V.add(cam, outputs=['image'], threaded=True)
#warmup camera
while cam.run() is None:
time.sleep(1)
#add tub part to record images
tub = TubWriter(path='./dat', inputs=['image'], types=['image_array'])
V.add(tub, inputs=['image'], outputs=['num_records'])
#start the drive loop at 10 Hz
V.start(rate_hz=10)Donkeycar uses uv for environment management. Install uv first:
curl -LsSf https://astral.sh/uv/install.sh | shThen create a persistent virtual environment and activate it on login by
adding the source line to your shell profile.
Camera support (picamera2, libcamera) requires system packages that are
not on PyPI. Install them first:
sudo apt install python3-libcamera python3-picamera2Then create the venv using the system Python (3.13 on Raspberry Pi OS Trixie)
with --system-site-packages so the venv can see the camera libraries:
uv venv ~/env --python 3.13 --system-site-packages
echo 'source ~/env/bin/activate' >> ~/.zshrc
source ~/env/bin/activateUser install (from PyPI):
uv pip install donkeycar[pi]Developer install (from a git clone):
uv pip install -e ".[pi,dev]"uv venv ~/.venvs/donkeycar --python 3.12
echo 'source ~/.venvs/donkeycar/bin/activate' >> ~/.zshrc
source ~/.venvs/donkeycar/bin/activateUser install (from PyPI):
uv pip install donkeycar[macos]Developer install (from a git clone):
uv pip install -e ".[macos,dev]"uv venv ~/.venvs/donkeycar --python 3.12
echo 'source ~/.venvs/donkeycar/bin/activate' >> ~/.zshrc
source ~/.venvs/donkeycar/bin/activateUser install (from PyPI):
uv pip install donkeycar[pc]Developer install (from a git clone):
uv pip install -e ".[pc,dev]"Once the venv is activated in your shell profile the donkey command is
available from any directory without needing uv run.
See home page, docs or join the Discord server to learn more.
