Mission-Critical System, such as satellite systems, healthcare systems, or nuclear power plant control systems, require rigorous testing to ensure they meet specific operational requirements before deployment. This includes Operational Acceptance Testing (OAT), which ensures systems function correctly under real-world conditions. In satellite development, In-Orbit Testing (IOT) is a crucial OAT activity performed post-deployment to verify subsystem performance and payload requirements. IOT scheduling is complex, involving factors like satellite visibility, antenna usage costs, and configuration times. This article addresses the gap in OAT literature for satellite systems, emphasizing unique constraints such as antenna-related costs and context-switching. Unlike previous methods, which focus on CPS test case prioritization, our approach integrates scheduling challenges and resource constraints specific to satellite systems. We propose a multi-objective approach using Non-dominated Sorting Genetic Algorithm III (NSGA-III) to generate near-optimal IOT schedules. Our method evaluates schedules based on operational cost, fragmentation, and resource efficiency. An industrial case study with SES Techcom demonstrates significant improvements: an average improvement of 49.4% in cost fitness, 60.4% in fragmentation fitness, and 30% in resource usage efficiency compared to random search approaches. Additionally, our approach improves cost efficiency by 538% and resource usage efficiency by 39.42% compared to manually constructed schedules, while requiring only 12.5% of the time.
IOTSchedulerTool requires a virtual machine with the following characteristics:
- OS: Any Unix-based OS (e.g., Ubuntu, Fedora, macOS) supporting Python 3.11.6 or higher
- CPU: 1 core
- Memory: 2 GB
- Disk: 1 GB
IOTSchedulerTool has been tested on the following configurations:
- OS: Ubuntu 20.04 LTS
- CPU: 8-core
- Memory: 32 GB
- Disk: 1 TB
- Python 3.11.6 or higher
- Poetry 1.3.0 or higher
- Download the archive "IOTSchedulerTool.zip" from the artifact repository.
- Extract the archive to a directory of your choice.
- Open a terminal and navigate to the extracted directory.
- Run the following command to install the required dependencies:
poetry update && poetry install- The installation is complete. You can now run the tool using the following command:
IOTSchedulerTool requires the following input data:
- A list of satellite passes extracted from an orbit prediction tool. The following tool are supported:
- Additionally, the TLEs of the satellite can be easily obtained using the following command:
iot_planner tools download-tle [parameters]- The generated passes file then needs to be converted to a pass file interpretable by our tool. To do so, run the following command:
iot_planner tools convert-passes [parameters]To create a configuration file, perfom the following steps:
- Generate the input data the instruction provided above.
- Run the following command to create a configuration file:
iot_planner tools make-configThen follow the instructions to create the configuration file.
To run the tool, use the following command:
iot_planner schedule -n [name] -e [config_file] -p [passes_file]Due to confidentiality agreements, we cannot provide the actual data used in our case study. However, similar datasets can be generated using the provided tools. Galileo's orbit data can be obtained from their public TLEs, and the antenna costs can be estimated based on industry standards. Further, any ground location can be used to generate satellite passes using one of the supported tools. The exact parameter settings of the tool have been provided in the configurations file of each of our experiments (see the empirical folder).
This software is © University of Luxembourg and is licensed under the GPLv3 license. See the LICENSE file.