Files
gps-denied-onboard/README.md
T

2.4 KiB

GPS-Denied Onboard

Сервіс геолокалізації знімків БПЛА в умовах відсутності GPS-сигналу.

Система використовує візуальну одометрію (VO), співставлення з супутниковими картами (cross-view matching) та оптимізацію траєкторії через фактор-графи для визначення координат дрона в реальному часі.

Стек та можливості системи

Підсистема Технології та реалізація
API FastAPI + Pydantic v2
Стрім подій (SSE) sse-starlette, asyncio.Queue, pub/sub для real-time трансляції поза
Репозиторій (БД) SQLite + SQLAlchemy 2 + AsyncIO + Alembic. Підтримка Cascade Deletes
Супутникові тайли httpx, diskcache, інтеграція з Google Maps (Web Mercator)
Трансформація координат ENU Origin, конвертація WGS84 ↔ Local ENU ↔ Pixels
Граф поз (VO/GPR) GTSAM (Python) - очікується

Швидкий старт

# Клонувати та перейти в гілку stage1
git clone https://github.com/azaion/gps-denied-onboard.git
cd gps-denied-onboard
git checkout stage1

# Створити віртуальне середовище
python3 -m venv .venv
source .venv/bin/activate

# Встановити залежності
pip install -e ".[dev]"

# Запустити сервер
python -m gps_denied

Сервер стартує на http://127.0.0.1:8000. Health check: GET /health.

Тести

python -m pytest tests/ -v

Структура проєкту

gps-denied-onboard/
├── src/gps_denied/       # Основний пакет
│   ├── __init__.py
│   ├── __main__.py       # Entry point (uvicorn)
│   └── app.py            # FastAPI application
├── tests/                # Тести
├── docs-Lokal/           # Локальна документація та план
├── _docs/                # Архітектурна документація
├── pyproject.toml        # Залежності та конфігурація
└── .gitignore

Ліцензія

Приватний репозиторій. Усі права захищено.