Drone Controller Details
Table of Contents
Introduction
The Drone Controller contains our Python Client. The Drone Controller defines drone behavior and handles communication with the AI model and Unreal Engine client.
Core Folders/Files
Below are the core folders/files for running the Search and Rescue operation:
-
updated_mission_control.py
: This is the main process that sets up image directories and starts the processes for parent_controller.py and websocket_server.py. -
parent_controller.py
: This performs setup and loops continuously, sending and receiving data from each drone. This is also where the VLM runs to process images. -
single_drone_controller.py
: Handles the behavior for each individual drone. This includes avoiding obstacles, flying to targets, and taking infrared/scene images for processing. -
websocket/websocket_server.py
: This is the WebSocket server that communicates with the Unreal Engine client. -
local_config.py
: Not included in the repository, this file contains 2 variables:LOCAL_IP = "Your Windows IP Address"
, which can be found by runningipconfig
in Windows Command PromptEXECUTABLE_PATH = "Absolute/Path/To/DroneEnvironment.exe"
, which is used if you setRELEASE_BUILD
toTrue
inparent_controller.py
-
settings.json
: Contains the AirSim settings configuration. Put this file in .../Documents/AirSim which is your main drive's Documents folder. This could also be found in .../OneDrive/Documentss/AirSim if you are tracking your Documents folder with OneDrive. -
helper_functions.py
: Includes various utility functions required by the drone controllers. -
classes.py
: Defines the structure of classes used in the drone controller, including Waypoint, Image, and VLMOutput -
model_files/pull_model.py
: Pulls a given model from Ollama. -
images/
: Contains the latest images taken by the drones. This folder is used to store images that are sent to the AI model for processing.
Miscellaneous Files
The following folders/files are not essential for running the Mission Control, but they provide various tests and examples used during development:
archive/
: Contains out-dated scripts, settings, and other files that are no longer used.websocket/testing
: Test scripts related to working with the websocket server
Resources
For more information on the Drone Controller, refer to the following resources: