Skip to main content

Universal SDK for rover programming

Project description

geodrive

Python SDK для управления роботами-роверами через gRPC

Tests Package version Supported Python versions License


geodrive - это удобный Python SDK для управления роботами-роверами через gRPC протокол.

🚀 Основные возможности

  • Два клиента на выбор - Асинхронный для веб-приложений и синхронный для скриптов
  • Готовый веб-интерфейс - Красивая панель управления из коробки с картой и телеметрией
  • Безопасность - Надежная обработка ошибок и переподключение
  • Реальное время - Потоковая телеметрия и управление
  • Универсальность - Поддержка различных моделей роботов-роверов

📦 Установка

uv add geodrive
# или
pip install geodrive

Быстрый старт

Базовое использование

Подключение к роверу

from geodrive import Rover

# Подключение к роверу
with Rover(host="10.1.100.160", port=5656) as rover:
    # Отправка команды движения к точке
    rover.goto(5.0, 3.0, 1.57)
    
    # Получение телеметрии
    telemetry = rover.get_telemetry()
    print(f"Позиция: ({telemetry.position[0]:.2f}, {telemetry.position[1]:.2f})")
    print(f"Ориентация: {telemetry.attitude[2]:.2f} рад")

🛠️ Что внутри?

Управление движением

  • Точное позиционирование в координатах X, Y, Yaw
  • Потоковое отслеживание прогресса движения
  • RC-Channels для возможности ручного управления

Телеметрия в реальном времени

  • Потоковая передача данных о позиции и ориентации
  • Мониторинг состояния батареи и датчиков

Надежная коммуникация

  • gRPC для высокопроизводительной связи
  • Автоматическое переподключение при обрывах
  • Валидация команд и данных

Гибкость использования

  • Синхронный для простых скриптов
  • Асинхронный для веб-приложений
  • Поддержка контекстных менеджеров

📋 Требования

  • Python 3.10+
  • geonode на стороне робота или кастомный gRPC сервер
  • Сетевое соединение с роботом

🔗 Зависимости

geodrive построен на современных технологиях:

  • grpcio - высокопроизводительный gRPC клиент
  • protobuf - работа с бинарными протоколами
  • structlog - структурированное логирование

📚 Документация

Начало работы

API документация

Для разработчиков

📄 Лицензия

Проект распространяется под лицензией MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

geodrive-0.0.8.tar.gz (57.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

geodrive-0.0.8-py3-none-any.whl (72.6 kB view details)

Uploaded Python 3

File details

Details for the file geodrive-0.0.8.tar.gz.

File metadata

  • Download URL: geodrive-0.0.8.tar.gz
  • Upload date:
  • Size: 57.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for geodrive-0.0.8.tar.gz
Algorithm Hash digest
SHA256 1aab64b701771d6ee222bfa69ef41b96641d3ba90a391bc1cf2fb47906919091
MD5 571c50e3bbf35651c87c4128b684fbf0
BLAKE2b-256 3fdaac87b59ce5108da72f5eda72402cf04f4271a77943183176e2f8660e96a3

See more details on using hashes here.

File details

Details for the file geodrive-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: geodrive-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 72.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for geodrive-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 12a1cb374759a556db1296d482d9b2b8a9f1bc98cdbfcc72790108c503e08c7c
MD5 16cde374fbdac1b6db7e1c0f7f6ecaad
BLAKE2b-256 a2579f66451a328400eeaa6869eb58a1e68521bba8eea2c8af2d6256272fab18

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page