Inspiration
Drone operators in the field shouldn't have to fight a UI. They're managing complex interfaces under pressure when their focus should be entirely on the mission. We asked a simple question: what if you could just talk to your drone?
What it does
C2 Voice Command lets an operator control a drone using natural spoken language. You speak a command, Whisper transcribes it, Claude Opus parses the intent into a structured flight command, a safety validator checks it against no-fly zones and impossible actions, and pymavlink sends it directly to the drone via MAVLink 2 — all in under a second. Unsafe commands like flying into restricted zones are rejected with a spoken explanation before anything moves.
How we built it
We built a full voice-to-MAVLink pipeline from scratch: Silero VAD for voice detection, faster-Whisper for local speech-to-text, Claude Opus via the Anthropic API for intent parsing using structured tool-calling, a custom Python safety validator with compound map awareness, and pymavlink sending commands to ArduPilot SITL running in Gazebo Garden. On top of that, a TypeScript/Vite dashboard streams live telemetry over WebSockets.
Challenges we ran into
Getting the full pipeline to run end-to-end with sub-second latency was the core challenge — each component introduced delay and they had to be tuned together. Handling ambiguous commands gracefully (partial location names, multi-step instructions, altitude-conditional no-fly zones) required careful prompt engineering. Keeping the Gazebo + SITL environment stable while streaming live telemetry to the dashboard simultaneously took significant debugging.
What we learned
Structured tool-calling with Claude is significantly more reliable than free-form parsing for safety-critical applications — typed output means no ambiguity. MAVLink 2 is remarkably approachable once you understand the coordinate frame conventions. And voice interfaces demand a different kind of robustness than text — you have to design for the full range of how humans actually speak.
What's next for Super Powers
Multi-vehicle coordination, agentic mission planning, and fully offline operation with local LLM inference. The MAVLink stack requires zero changes to run on real Pixhawk hardware — that's the next step.
Built With
- ardupilot-sitl
- claude-opus-(anthropic-api)
- fastapi
- faster-whisper
- gazebo
- mavlink-2
- pymavlink
- python
- silero-vad
- typescript
- vite
- websockets
Log in or sign up for Devpost to join the conversation.