mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-04-23 04:26:36 +00:00
feat: stage1 — domain schemas, SSE events, pydantic-settings config
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# GPS-Denied Onboard
|
||||
|
||||
Сервіс геолокалізації знімків БПЛА в умовах відсутності GPS-сигналу.
|
||||
|
||||
Система використовує візуальну одометрію (VO), співставлення з супутниковими картами (cross-view matching) та оптимізацію траєкторії через фактор-графи для визначення координат дрона в реальному часі.
|
||||
|
||||
## Стек
|
||||
|
||||
| Компонент | Технологія |
|
||||
|-----------|------------|
|
||||
| API | FastAPI + Pydantic v2 |
|
||||
| Стрім подій | SSE (sse-starlette) |
|
||||
| БД | SQLite + SQLAlchemy 2 + Alembic |
|
||||
| Граф поз | GTSAM (Python) |
|
||||
| Карти | Google Maps API (Strategy-патерн) |
|
||||
|
||||
## Швидкий старт
|
||||
|
||||
```bash
|
||||
# Клонувати та перейти в гілку 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`.
|
||||
|
||||
## Тести
|
||||
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
## Ліцензія
|
||||
|
||||
Приватний репозиторій. Усі права захищено.
|
||||
Reference in New Issue
Block a user