Implementation Overview

Welcome to the Implementation documentation for UAV&V. Below, you will find detailed information regarding the architecture, setup, and technical aspects of the project.

System Architecture

Here, you can provide a description of the system architecture. This section should cover the design of the UAV&V system, how the various components interact with each other, and any key technologies or frameworks used. Be sure to include diagrams or flowcharts where applicable.

Key Components

Installation

Provide a step-by-step guide for installing the system. Include prerequisites, dependencies, and any configuration that needs to be done before running the system.

Prerequisites

Setup Instructions

Adding a new topic

View the PX4 instruction to create a new topic.

Custom Fault

The custom fault feature allows users to upload a Python script to simulate faults. When a custom fault is triggered, the output of the user-defined Python script replaces the original sensor values in the PX4. These modified values are seamlessly integrated into the system as inputs to the Extended Kalman Filter (EKF). This process ensures that the custom fault logic directly influences the UAV’s navigation and state estimation, allowing realistic simulation of the impact of the fault on system performance.

The Python script must follow a predefined interface depending on the targeted component, it must takes input as previous value and must output the value which needs to be the current value, more details on the format are available on the website.

The custom fault feature offers significant advantages. It allows users to simulate novel and complex fault scenarios beyond predefined types, enabling more comprehensive testing. Researchers can explore combinations of faults, such as simultaneous GPS drift and IMU noise, to assess the robustness of the UAV in multi-fault scenarios. Furthermore, the ability to define context-aware fault logic provides a powerful tool to evaluate UAV behavior under diverse and realistic operational conditions, significantly improving the versatility of this framework.

Due to potential security risks associated with the execution of Python scripts, such as malicious or unintentional actions, this custom fault system is restricted to local fault execution only. To ensure safe and seamless usage, a template for the Python file, specifying the required input and output parameters, is provided in the project's Git repository. This template helps users quickly implement their fault logic while adhering to the expected format. This feature is currently only implemented for GPS, but will soon be updated for IMU as well.

Future Enhancements

The proposed toolkit offers significant potential for future enhancements and expansions. One of the primary goals is to extend its compatibility to support additional flight controllers such as ArduPilot and RotorS. By broadening the range of supported platforms, the toolkit can cater to a wider community of researchers and practitioners in the UAV domain, enhancing its usability and impact.

This toolkit also includes implementation capabilities for both location-based and combined location-time-based faults. Although these features have not been evaluated in any research, the toolkit supports them.

In addition, while the present faults are embedded within the flight controller code, our future goal is to investigate and implement faults as external attacks that do not necessitate modifications to the flight controller's source code.

Another key area of future work is conducting experiments with real drones. This involves deploying PX4 firmware augmented with fault injection capabilities directly to physical UAVs. Such real-world testing will provide deeper insight into the practical implications of the toolkit’s fault injection models and their effectiveness in uncovering vulnerabilities and improving the resilience of the system.

More about the tool

The papaer publised about this tool is avaialble here [link to be added after the paper is published], which contains all the architectural details the possibilities of V&V with this tool.

© Copyrights  |  Tool created and owned by CISUC