Skip to content

Latest commit

 

History

History
157 lines (111 loc) · 6.67 KB

File metadata and controls

157 lines (111 loc) · 6.67 KB

Platform Python OpenCV PySide6 Version License

DriveCore

A reproducible testbed for monocular depth-based perception and autonomous navigation on low-cost RC hardware.

DriveCore is an open R&D platform designed to lower the barrier to entry for perception and autonomy research. It pairs a Raspberry Pi vehicle OS with a desktop client running real-time depth estimation and a voxel-based mapping engine — letting researchers iterate on manual driving, perception, mapping, and autonomy without rebuilding the software stack each time.

Current focus: Drive Assist — Mapping Engine (depth → voxel occupancy map → hazard detection → path and steering output)


Ver 1.3.0 Demo


Research motivation

Low-cost RC platforms offer a practical middle ground between pure simulation and full-scale autonomous vehicles, but most existing frameworks either lock you into specific hardware or treat the vehicle as a black box. DriveCore is designed around three open research problems:

  • Monocular depth in real-time on edge hardware — how well can transformer-based depth models (via Depth Anything V2) drive practical obstacle avoidance without dedicated depth sensors?
  • Voxel-based occupancy mapping from a single moving camera — building and stabilizing a spatial map using only monocular depth and (eventually) IMU ego-motion.
  • Lightweight autonomy on constrained hardware — rule-based and Kalman-filter path following that runs reliably on a Raspberry Pi 4.

Architecture

DriveCore splits computation deliberately: perception and mapping run on the desktop client where GPU acceleration is available, while the Pi stays focused on real-time motor control and telemetry.

┌─────────────────────────────────┐        ┌──────────────────────────────┐
│       DriveCore Client          │        │      DriveCore OS (Pi)       │
│         (Desktop)               │        │        (On-vehicle)          │
│                                 │        │                              │
│  PySide6 UI                     │◄──────►│  PWM motor / servo (pigpio)  │
│  UDP video receive              │  UDP   │  UDP video stream            │
│  Depth estimation               │        │  Telemetry & IMU (planned)   │
│    └─ Depth Anything V2 (repo)  │        │  OLED status display         │
│  Mapping Engine                 │        │  Wi-Fi captive portal        │
│    └─ Voxel grid + hazard cells │        │  Auto-start host services    │
│    └─ Path / steering output    │        │                              │
│  Vehicle tuning & logs          │        │                              │
└─────────────────────────────────┘        └──────────────────────────────┘

Depth estimation uses the Depth Anything V2 repository by Lihe Yang et al. DriveCore integrates it as an external dependency — it is not developed here.


Current status

Active vehicle: D-14 — running v1.3.x "Control System & Communication Layer"

See the full changelog, hardware notes, and per-version demos in D-14/README.md.


Research roadmap

Mapping Engine (Drive Assist)

  • Depth pipeline integration (Depth Anything V2)
  • Perspective grid + alert cell extraction
  • PySide6 mapping widget prototype
  • IMU fusion for ego-motion and map stabilization
  • Persistent object tracking and landmark anchoring
  • Path following and autonomy hooks

DriveCore OS

  • Auto-start host services
  • Wi-Fi captive portal for headless setup
  • OLED status display
  • TUI control surface (debug / config)
  • Packaged vehicle plug-in layout for new platforms
  • IMU streaming service

Milestones

  • v1.4.x — Intelligent perception + Mapping Engine beta
  • v1.5 — Autonomy foundations (rule-based + Kalman path following)

Getting started

Full installation details are in INSTALL.md. The steps below are a quick summary.

Prerequisites

Component Requirement
Vehicle (Pi) Raspberry Pi 4+, 2 GB RAM min, Pi camera, pigpio
Client Linux or Windows, Python 3.9+, ROCm/CUDA optional

Quick install

# 1. Clone
git clone https://github.com/HalfasleepDev/DriveCore.git
cd DriveCore

# 2. Client dependencies
python -m venv env
source env/bin/activate
pip install -r requirements.txt

# 3. Launch client
python3 D-14/Client-Side/client-app/main.py

For Pi setup (OS files, pigpio configuration, and the host boot script), see INSTALL.md.


Repository structure

DriveCore/
├── D-14/                          # Primary development vehicle
│   ├── Client-Side/
│   │   ├── client-app/            # Main PySide6 application
│   │   ├── openCV-testing/        # OpenCV & depth experiments
│   │   └── ui-prototypes/         # UI prototypes
│   ├── DriveCore-OS/              # Pi host files
│   └── pytest-tests/              # Tests (TBD)
├── Probe-33/                      # New vehicle (in progress)
└── requirements.txt

Full navigation: D-14 docs · Probe-33 docs · CV experiments · UI prototypes


Citation / reference

If you use DriveCore in your research, please cite it as:

@misc{drivecore,
  author       = {Gregory Eloi (HalfasleepDev)},
  title        = {DriveCore: Modular RC Vehicle Control, Depth-Based Perception, and Autonomy Research Framework},
  year         = {2025},
  url          = {https://github.com/HalfasleepDev/DriveCore}
}

Depth estimation is provided by Depth Anything V2 — please cite that work separately if you use the depth pipeline.


License

MIT License — see LICENSE.