Advanced Simulation in a Containerized Environment using NASA's Trick
ASCENT Architecture: Payloads generate and push data into the Spacecraft Interface. Messages from a transmitting spacecraft are pushed to the Network Simulator and delivered to the receiving spacecraft based on expected propagation, loss, and delay metrics. The Truth Interface exposes an API to asynchronously share information between spacecraft.
The Advanced Simulation in a Containerized Environment using NASA's Trick (ASCENT) is a large-scale, cloud-based modeling, simulation and analysis (MS&A) framework for the development, integration and test of ground and flight software for multi-satellite missions (MSMs).
Developed for programs such as DARPA’s System F6 and Blackjack Pit Boss, ASCENT provides high-fidelity modeling of space vehicles, including spacecraft bus and payload models; communications and tracking networks; and reference frame, measurement and force models. It also emulates flight processors, thus enabling flight software to be developed and tested in real-time, mission-level simulations for applications in MSM guidance, navigation and control (GN&C); GPS-based positioning, navigation and timing (PNT); planning and scheduling; and automation and autonomy.
ASCENT is built upon NASA’s Trick M&S framework, which is used for simulation of orbital dynamics and GN&C functionality for robots and spacecraft that range from low Earth orbit (LEO) to the Moon, and EMANE, which is used for simulation of communications across realistic network conditions and realistic physical dynamics. Integrated testing of spacecraft autonomy and bus payload management software using realistic models for the buses, payloads and the network links provide insight into achievable performance requirements (bandwidth, latency, etc.) for satellite communications constellations.
ASCENT comes with a simple Python-based front-end in which modules can be included in an experiment, deployed to the cloud, or perform automated post-processing with as little as a single line of configuration per action. Cloud integration utilizes Kubernetes and Docker to deploy applications across multiple hosts. Kubernetes provides a system for resource management, ensuring host processing and memory are not overwhelmed, causing unwanted artifacts into the experiment results. Docker containerizes applications, allowing applications to run in their native environments and avoids issues with different versions of shared libraries.
ASCENT also has the ability to run faster than real-time simulations which can be integrated with flight software. This helps to enable a software-in-the-loop pipeline for continuous integration and development in a flight-like environment. This pipeline has been advanced with our testing framework, SUMMIT, which allows for automation and analysis of test results from a flight software integration with ASCENT. It provides agile developers with rapid feedback for quick verification and validation. For example, our Cluster Flight Application undergoes extensive testing in this framework in order to meet project deliverables and validation requirements for flight readiness.