Metadata-Version: 2.4
Name: donkeydrifter
Version: 0.1.0
Summary: DonkeyDrifter autonomous driving and drifting robotics platform derived from Donkeycar.
Home-page: https://github.com/DonkeyDrift/DonkeyDrifter
Author: Haobot
Author-email: haobot2018@gmail.com
License: Apache-2.0
Keywords: autonomous driving robotics drifting donkeydrifter donkeycar diyrobocars
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Programming Language :: Python :: 3.11
Classifier: License :: OSI Approved :: Apache Software License
Requires-Python: <3.12,>=3.11.0
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: numpy
Requires-Dist: pillow
Requires-Dist: docopt
Requires-Dist: tornado
Requires-Dist: requests
Requires-Dist: PrettyTable
Requires-Dist: paho-mqtt
Requires-Dist: simple_pid
Requires-Dist: progress
Requires-Dist: pyfiglet
Requires-Dist: psutil
Requires-Dist: pynmea2
Requires-Dist: pyserial
Requires-Dist: utm
Requires-Dist: pandas
Requires-Dist: pyyaml
Requires-Dist: rich
Requires-Dist: paramiko
Provides-Extra: pc
Requires-Dist: tensorflow==2.15.*; extra == "pc"
Requires-Dist: matplotlib; extra == "pc"
Requires-Dist: kivy; extra == "pc"
Requires-Dist: kivy-garden.matplotlib; extra == "pc"
Requires-Dist: pandas; extra == "pc"
Requires-Dist: plotly; extra == "pc"
Requires-Dist: albumentations; extra == "pc"
Requires-Dist: fastapi; extra == "pc"
Requires-Dist: uvicorn; extra == "pc"
Requires-Dist: python-multipart; extra == "pc"
Provides-Extra: macos
Requires-Dist: tensorflow==2.15.*; extra == "macos"
Requires-Dist: tensorflow-metal; extra == "macos"
Requires-Dist: matplotlib; extra == "macos"
Requires-Dist: kivy; extra == "macos"
Requires-Dist: kivy-garden.matplotlib; extra == "macos"
Requires-Dist: pandas; extra == "macos"
Requires-Dist: plotly; extra == "macos"
Requires-Dist: albumentations; extra == "macos"
Requires-Dist: fastapi; extra == "macos"
Requires-Dist: uvicorn; extra == "macos"
Requires-Dist: python-multipart; extra == "macos"
Provides-Extra: pi
Requires-Dist: picamera2; extra == "pi"
Requires-Dist: Adafruit_PCA9685; extra == "pi"
Requires-Dist: adafruit-circuitpython-ssd1306; extra == "pi"
Requires-Dist: adafruit-circuitpython-rplidar; extra == "pi"
Requires-Dist: RPi.GPIO; extra == "pi"
Requires-Dist: flatbuffers==24.3.*; extra == "pi"
Requires-Dist: tensorflow-aarch64==2.15.*; extra == "pi"
Requires-Dist: opencv-contrib-python; extra == "pi"
Requires-Dist: matplotlib; extra == "pi"
Requires-Dist: kivy; extra == "pi"
Requires-Dist: kivy-garden.matplotlib; extra == "pi"
Requires-Dist: pandas; extra == "pi"
Requires-Dist: plotly; extra == "pi"
Requires-Dist: albumentations; extra == "pi"
Provides-Extra: nano
Requires-Dist: Adafruit_PCA9685; extra == "nano"
Requires-Dist: adafruit-circuitpython-ssd1306; extra == "nano"
Requires-Dist: adafruit-circuitpython-rplidar; extra == "nano"
Requires-Dist: Jetson.GPIO; extra == "nano"
Requires-Dist: numpy==1.23.*; extra == "nano"
Requires-Dist: matplotlib==3.7.*; extra == "nano"
Requires-Dist: kivy; extra == "nano"
Requires-Dist: kivy-garden.matplotlib; extra == "nano"
Requires-Dist: plotly; extra == "nano"
Requires-Dist: pandas==2.0.*; extra == "nano"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: responses; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Provides-Extra: torch
Requires-Dist: torch==2.1.*; extra == "torch"
Requires-Dist: pytorch-lightning; extra == "torch"
Requires-Dist: torchvision; extra == "torch"
Requires-Dist: torchaudio; extra == "torch"
Requires-Dist: fastai<2.8; extra == "torch"
Provides-Extra: fastapi-backend
Requires-Dist: fastapi; extra == "fastapi-backend"
Requires-Dist: uvicorn; extra == "fastapi-backend"
Requires-Dist: python-multipart; extra == "fastapi-backend"
Dynamic: license-file

# DonkeyDrifter

DonkeyDrifter is a Python autonomous driving and drifting robotics platform derived from Donkeycar. It keeps the modular Vehicle + Part architecture, Tub data workflow, training tools, simulator support, and Web UI workflows while establishing an independent DonkeyDrifter identity.

> Independent fork notice: DonkeyDrifter is derived from Donkeycar and is not affiliated with, sponsored by, or endorsed by the Donkeycar maintainers.

## Quick Start

```bash
pip install donkeydrifter
donkey createcar --path ~/mycar --template complete
cd ~/mycar
python manage.py drive
```

The CLI command remains `donkey` for compatibility with the Donkeycar ecosystem and existing vehicle projects.

For local development:

```bash
pip install -e ".[pc,dev]"
pytest
```

## Python Imports

Recommended for new DonkeyDrifter code:

```python
import donkeydrifter as dk
```

Legacy Donkeycar imports continue to work:

```python
import donkeycar as dk
```

Submodule imports are also compatible. New templates prefer `donkeydrifter`, while existing vehicle directories using `donkeycar` do not need to be changed immediately.

## Compatibility with Donkeycar

DonkeyDrifter is intentionally compatible with existing Donkeycar-based projects during the migration period:

- `pip install donkeydrifter` is the new package target.
- `import donkeydrifter as dk` is the recommended import path for new code.
- `import donkeycar as dk` remains supported as a compatibility path.
- CLI command remains `donkey`.
- Existing vehicle projects can migrate gradually.
- Existing `/api/*` Web UI paths and drive WebSocket protocols are not renamed in the first migration stage.

See [Donkeycar compatibility guide](docs/guide/donkeycar-compatibility.md) for details.

## Web UI

DonkeyDrifter includes a unified Web UI under `web_ui/`:

- Backend: FastAPI, default port `8000`.
- Frontend: React/Vite, default port `5188`.
- Integrated startup remains available through:

```bash
donkey installweb --path ./web_ui
donkey web
```

## Development

Common commands:

```bash
pytest
pytest donkeycar/tests/test_vehicle.py -q
python -m build --sdist --wheel
```

Web UI backend:

```bash
cd web_ui/backend
python -m pytest tests -q
```

Web UI frontend:

```bash
cd web_ui/frontend
npm run check
npm run lint
npm run build
```

## License

DonkeyDrifter uses the Apache License 2.0 as its primary project license.

DonkeyDrifter is derived from Donkeycar. Portions originating from Donkeycar remain licensed under the MIT License. See:

- [LICENSE](LICENSE)
- [LICENSES/MIT-donkeycar.txt](LICENSES/MIT-donkeycar.txt)
- [NOTICE](NOTICE)
- [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)

## Acknowledgements

DonkeyDrifter is derived from the Donkeycar project:

https://github.com/autorope/donkeycar

We thank the Donkeycar maintainers and contributors for their work.

Some historical documentation links may still point to upstream Donkeycar resources. Such links are retained as attribution or compatibility references and may differ from DonkeyDrifter behavior.
