Files
cf-autohover/pyproject.toml
K. Isom eed9778e59 Initial checkpoint: Crazyflie mission client (DearPyGui)
Two-step ARM -> LAUNCH -> LAND flight flow for a Crazyflie + Flow v2 deck:

- controller.py: cflib link + flight logic on one worker thread with a
  command queue. Supervisor arming, Kalman estimator reset/convergence
  wait, high-level-commander takeoff/land, configurable hover height
  (0.2-2.0 m), emergency stop, graceful land-on-shutdown, thread-safe
  snapshot()/scan(). States: DISCONNECTED/CONNECTING/READY/ARMING/ARMED/
  FLYING/LANDING/EMERGENCY/ERROR.
- mission_client.py: DearPyGui front-end, manual render loop polling
  snapshot() each frame. Context button ARM(green)->LAUNCH(blue)->LAND
  (yellow), secondary Disarm, hover-height slider, console log, and an
  Estimator state panel (x/y/z, yaw, flow counts) for drift inspection.
- uv-managed (pyproject.toml + uv.lock); run `uv run mission_client.py`.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 15:44:07 -07:00

18 lines
582 B
TOML

[project]
name = "crazyflie-mission-client"
version = "0.1.0"
description = "Tkinter mission client that flies a Crazyflie + Flow v2 deck to a 1 m hover"
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
# Crazyflie radio link, logging, commander, supervisor arming API.
# 0.1.25 is the first release with cf.supervisor.send_arming_request().
"cflib>=0.1.25",
# Immediate-mode GUI (same binding as the test-stand app).
"dearpygui>=2.0",
]
[tool.uv]
# Flat-module application, not an installable package — don't try to build it.
package = false