A GUI-based drone control application written in Python using the Tkinter library. This application allows users to control a drone, manage its waypoints, and visualize its position on a grid. The application is designed to work seamlessly with the UGCS SDK.
- Drone Position Visualization: Visualize the drone's position on a grid.
- Waypoint Management: Set new latitude and longitude waypoints.
- Mission Control: Pause and resume missions, switch to guided mode.
- Heading Adjustment: Adjust the drone's heading using a slider.
- UGCS SDK Integration: Fully integrated with UGCS SDK for executing drone commands.
- Python 3.x
- Tkinter (usually included with Python)
- Java (for running UGCS SDK commands)
- UGCS SDK
-
Clone the Repository:
git clone https://github.com/shoresj/DroneControl.git cd DroneControl
-
Install Dependencies: Ensure Java is installed. If not, download and install it from here.
-
Set Environment Variables: Set the following environment variables in your system:
UGCS_CLASSPATH
: The classpath for the UGCS SDK.JAVA_COMMAND
: The path to the Java executable (usually justjava
if it's in your PATH).
For example, on Unix-like systems, you can add these to your
.bashrc
or.zshrc
:export UGCS_CLASSPATH="/path/to/ugcs-java-sdk/*" export JAVA_COMMAND="java"
On Windows, set the environment variables through the System Properties.
-
Run the Application:
python drone_control.py
-
Start the Application: Run the script as shown above. The main window of the application will open.
-
Visualize the Drone's Position: The grid on the left side of the window represents the area where the drone can move. The blue circle represents the drone.
-
Adjust the Heading: Use the heading slider to adjust the drone's heading. The current heading is displayed below the slider.
-
Set New Waypoints: Enter new latitude and longitude values in the provided text boxes and click "Confirm" to set a new waypoint.
-
Mission Control:
- Pause Mission: Click the "Mission Pause" button to pause the current mission.
- Switch to Guided Mode: Click the "Guided" button to switch the drone to guided mode.
Contributions are welcome! Please fork the repository and create a pull request with your changes.
This project is licensed under the MIT License. See the LICENSE file for details.
If you encounter issues, ensure that:
- The Java SDK and UGCS SDK are correctly installed.
- The environment variables are correctly set.
- You have the necessary permissions to run Java commands from your terminal.
Feel free to open an issue if you need further assistance.
Made with ❤️ by Joe