Controller Software: Evolution, Identification, and Implementation

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. Advisors: Justin Bradley and Hamid Bagheri

Publication Details

Journal
Insecta mundi
Published
2024-12-01
Primary Topic
Software Testing and Debugging Techniques
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Controller Software: Evolution, Identification, and Implementation

Insecta mundi
Software Testing and Debugging Techniques
article

Controller Software: Evolution, Identification, and Implementation

article en

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. Advisors: Justin Bradley and Hamid Bagheri

Insecta mundi
Openalex Percentile: Top 48%
Software Testing and Debugging Techniques
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.