title | emoji | colorFrom | colorTo | sdk | sdk_version | app_file | pinned |
---|---|---|---|---|---|---|---|
DeepDrone |
🚁 |
green |
green |
streamlit |
1.41.1 |
main.py |
false |
A drone chat agent for drone analytics and operations, built on the smolagents framework with DroneKit integration for real drone control.
- Drone Chat: Interact with a drone assistant through a chat interface
- Visualizations: Generate flight paths and sensor readings visualizations
- Maintenance Recommendations: Get maintenance suggestions based on flight hours
- Mission Planning: Generate mission plans for various drone operations
- Real Drone Control: Connect to and control real drones using DroneKit
- Take off and land
- Navigate to GPS coordinates
- Return to home
- Execute waypoint missions
- Monitor battery and location
- Clone this repository
- Copy
.env-example
to.env
and add your Hugging Face API token - Install dependencies:
pip install -r requirements.txt
- For Python 3.10+ users: Run the compatibility patch:
python dronekit_patch.py
- Run the application:
streamlit run main.py
The DroneKit integration allows you to control drones running ArduPilot or PX4 firmware.
If you're using Python 3.10 or newer, you need to run the patch script before using DroneKit:
python dronekit_patch.py
This script fixes the "AttributeError: module 'collections' has no attribute 'MutableMapping'" error by patching the DroneKit library to use collections.abc instead of collections.
To test the drone control features in simulation:
- Install ArduPilot SITL simulator (follow instructions at https://ardupilot.org/dev/docs/setting-up-sitl-on-linux.html)
- Start a simulated drone:
sim_vehicle.py -v ArduCopter --console --map
- Run the example script:
python drone_example.py
Note: The simulator must be running before you attempt to connect with DeepDrone.
To connect to a real drone:
-
Ensure your drone is running ArduPilot or PX4 firmware
-
Connect using one of these methods:
# For direct USB connection python drone_example.py --connect /dev/ttyACM0 # Linux python drone_example.py --connect COM3 # Windows # For WiFi/Network connection python drone_example.py --connect tcp:192.168.1.1:5760 # For telemetry radio connection python drone_example.py --connect /dev/ttyUSB0
Use natural language commands in the DeepDrone chat:
- "Connect to drone at tcp:192.168.1.1:5760"
- "Connect to drone using USB at /dev/ttyACM0"
- "Connect to drone via telemetry at /dev/ttyUSB0"
Once connected, you can control the drone with commands like:
- "Take off to 10 meters"
- "Fly to latitude 37.7749, longitude -122.4194, altitude 30 meters"
- "Return to home"
- "Land now"
- collections.MutableMapping error: Run
python dronekit_patch.py
to fix the DroneKit library for Python 3.10+ - Connection refused error: Ensure the drone or simulator is powered on and the connection string is correct
- Import errors: Verify that DroneKit and PyMAVLink are installed (run
pip install dronekit pymavlink
) - Permission errors: For USB connections on Linux, you may need to add your user to the 'dialout' group or use
sudo
IMPORTANT: Always follow safety guidelines when operating real drones.
- smolagents for agent functionality
- Hugging Face's Qwen2.5-Coder model for natural language understanding
- DroneKit-Python for real drone control
- Streamlit for the user interface
- Pandas, Matplotlib and Seaborn for data analysis and visualization