Graduate Studies

 

First Advisor

Justin Bradley

Second Advisor

Hamid Bagheri

Degree Name

Doctor of Philosophy (Ph.D.)

Department

Computer Science

Date of this Version

12-3-2024

Document Type

Dissertation

Citation

A dissertation presented to the faculty of the Graduate College at the University of nebraska in partial fulfillment of requirements for the degree of Doctor of Philosophy

Major: Educational Studies (Educational Leadership and Higher Education)

Under the supervision of Professor Deryl K. Hatch-Tocaimaza

Lincoln, Nebraska, February 2020

Comments

Copyright 2024, the author. Used by permission

Abstract

In the annals of automation history and advancement, one can find control technology is at the core. Modern-day controllers rely heavily on software capability to provide stability and improve the system's performance. In particular, drone flight controllers use autopilot control software to accomplish autonomous navigation from take-off to landing. However, we know very little about how the controller code modifications and its impact, particularly at the software level. No general framework has been developed to identify the control code changes and observe the real values of software control loops at the kernel layer. In this thesis, we lay the foundation of a general framework for studying, thinking about, implementing, and assessing control software as a discipline distinct from software engineering and control communities but informed by them. We argue that control software is sufficiently critical to warrant its own field of study focused on the safety-critical aspects of its realization. Here, we present 3 distinct pieces of that foundation by performing a first-of-its-kind study on the evolution of two popular open-source safety-critical autopilot control software -- ArduPilot and Paparazzi, to better understand how controllers evolve and the space of potential mismatches between control design and their software implementation. We report on three major findings. First, control software evolves quickly and controllers are rewritten in their entirety, many times over through the controller's lifetime, which implies that the design, synthesis, and implementation of controllers must support not just the initial baseline system but also their incremental evolution. Second, many software changes stem from an inherent mismatch between the continuous time/space physical model and its corresponding discrete software implementation, but also from the mishandling of exceptional conditions, and limitations and distinct data representation of the underlying computing architecture. Third, using our mutation tool that we developed, we show that small code changes can have a dramatic effect in a controller's behavior, which implies that further support is needed to bridge these mismatches as carefully verified model properties may not necessarily translate to its software implementation. For the second piece of our foundation, we present an automated technique based on a novel application of machine learning to detect commits related to control software, its changes, and how the control software evolves. We identify the safety-critical control software, its boundaries with other embedded software in the system, and the way in which control software evolves could help developers isolate, test, and verify control implementation, and improve control software development. We leverage messages from developers (e.g., commit comments), and code changes themselves to understand how control software is refined, extended, and adapted over time. We examine three distinct, popular, real-world, safety-critical autopilots – ArduPilot, Paparazzi UAV, and LibrePilot to test our method demonstrating an effective detection rate of 0.95 for control-related code changes. Lastly, we present a fully-implemented runtime code manipulation system to improve the control software based on our studies, we monitor real values of software control loops at the kernel layer and implement an additional controller to enhance the system reliability that is not easy-to-reach by typical coders. Using software engineering techniques, we leverage dynamic analysis that works with real values during run-time execution of autopilot software to precisely monitor and modify control signals in control loops. Specifically, we propose an implementation of Dynamic instrumentation-based Real-time code manipulation by adding a System-near (DRS) controller in the autopilot system. We verify the DRS controller with six traditional control metrics under normal and abnormal flight behavior using the Software In The Loop (SITL) simulation environment. Tests demonstrated 45.5\% system response improvement under abnormal behavior.

Share

COinS