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>
18 lines
582 B
TOML
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
|