Telemetry Monitor
/ General Atomics Aeronautical Systems
Overview
General Atomics Aeronautical Systems (GA-ASI) is a defense company based in San Diego, CA, leading the development and manufacturing of unmanned aircraft and mission systems. During the summer of 2022, I worked as a Software Developer Intern on the Modeling and Simulation team, responsible for the development and delivery of flight-critical simulation software.
The Problem
My team utilized an application called AVSim to simulate the flight of unmanned aircraft with real-time aircraft telemetry data (ex: latitude, longitude, fuel). AVSim communicates the telemetry data via UDP messaging to other applications or to a physical ground station computer itself to simulate flight.
One shortcoming of AVSim, however, was that it did not offer a way to see what data it was sending out to other apps/computers. I addressed this issue by developing a monitor application that could be used in conjunction with AVSim to allow developers or ground station pilots to easily examine the telemetry data being generated by AVSim and quickly identify and troubleshoot errors that may be affecting aircraft behavior.
Solution
To accomplish this task, I worked through the entire Software Development Life Cycle (SDLC), which involved:
- Establishing technical and functional requirements
- Identifying potential use cases and error-handling based on Interface Control Documentation (ICDs)
- Creating wireframes and mockups of the monitor's graphical user interface (GUI) and iterating upon feedback until a final design was achieved that satisfied the established requirements and use cases
- Iterative development in Python, beginning backend with the implementation of a multi-threaded UDP client-server program to process telemetry messages, and then moving frontend with the construction of the GUI using Python's Tkinter toolkit
- Validation with a custom test client (which sent a simple, parsable telemetry message that mimicked an AVSim message) and with AVSim itself, and refining until the expected behavior was achieved
Reflections
This internship was filled with many firsts for me, including working full-stack, implementing a multi-threaded client-server, and using Agile methodologies. Delivering a working, tested monitor in 10 weeks and watching my team adopt it to troubleshoot real issues was super rewarding. It was an incredible opportunity to apply the object-oriented design and systems programming concepts I learned in school to building a real-world application, and to be at the forefront of aviation as part of the Modeling and Simulation team!