Skip to main content

Python API for controlling HG-Fly F09-lite drones via MAVLink

Project description

pyhulax

Python API for controlling the HG-Fly F09-lite / Hula drone over MAVLink.

This branch packages the drone SDK only:

  • pyhulax public API package
  • pyhulax.core, pyhulax.fylo, pyhulax.system, pyhulax.control, pyhulax.logging
  • optional video, vision, web, and database extras

It does not publish the maze solver, dashboard, CLI, or competition assets.

Install

Base API only:

pip install pyhulax

With optional extras:

pip install "pyhulax[video]"
pip install "pyhulax[vision]"
pip install "pyhulax[web]"
pip install "pyhulax[db]"
pip install "pyhulax[all]"

Quick Start

from pyhulax import DroneAPI
from pyhulax.core import Direction

with DroneAPI() as drone:
    drone.connect("192.168.100.1")
    drone.takeoff()
    drone.move(Direction.FORWARD, 100)
    battery = drone.get_battery()
    print(f"Battery: {battery}%")
    drone.land()

Configured defaults:

from pyhulax import DroneAPI, DroneConfig, MediaConfig, NetworkConfig

config = DroneConfig(
    network=NetworkConfig(
        drone_ip="192.168.100.1",
        tcp_port=8888,
        web_port=5000,
    ),
    media=MediaConfig(
        base_dir="media",
        photo_dir="photos",
    ),
)

drone = DroneAPI(config=config)
drone.connect()  # uses config.network.drone_ip by default

The SDK’s default settings are loaded from packaged files in pyhulax/config/*.json. Passing DroneConfig(...) only overrides the keys you explicitly set.

Full SDK docs live in docs/sdk/README.md. Auto-generated API reference is configured with MkDocs + mkdocstrings in mkdocs.yml.

Optional Features

  • video: RTP decoding, OpenCV display, recording helpers
  • vision: ONNX-based detection helpers
  • web: browser streaming helpers
  • db: async PostgreSQL flight logging

The core API imports cleanly without these extras installed.

Public API Areas

  • connection lifecycle
  • takeoff, landing, movement, rotation
  • telemetry and obstacle sensing
  • manual control
  • media listing, download, and delete
  • optional video streaming
  • optional structured logging

Local Verification

Run tests from the project venv:

.venv/bin/python -m pytest -q

Build the wheel:

uv build --wheel

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

pyhulax-0.2.0.tar.gz (147.4 kB view details)

Uploaded Source

Built Distribution

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

pyhulax-0.2.0-py3-none-any.whl (153.9 kB view details)

Uploaded Python 3

File details

Details for the file pyhulax-0.2.0.tar.gz.

File metadata

  • Download URL: pyhulax-0.2.0.tar.gz
  • Upload date:
  • Size: 147.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyhulax-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b2c7c516dae5bc8e99253dddc17baf9f2679be56d540461a7d3d4f41e2efd955
MD5 dc27a47843d3ec206babc05aaa82a746
BLAKE2b-256 38287f471d205a5b82781df5abfd76d93f60da508c9f2f5f0ee4688fca0ca35f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyhulax-0.2.0.tar.gz:

Publisher: publish-pypi.yml on XENOPSAE/pyhulax

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyhulax-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: pyhulax-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 153.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyhulax-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 14cfe5b89dc7c76494531455251e525ceafbad7d1ba94966c36e1e67eef09eef
MD5 936cb4f50338a507fec44374ba4ee1ff
BLAKE2b-256 e2957ab18061dac79dae538191dcb76b51df4589d731d8012b65cc7b79242a6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyhulax-0.2.0-py3-none-any.whl:

Publisher: publish-pypi.yml on XENOPSAE/pyhulax

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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