| Title: | Flight Mechanics Analysis Tools Interoperability and Component Sharing |
|---|---|
| Abstract: |
Several NASA centers have developed independent flight mechanics tools to meet the science needs of spaceflight missions. A NASA Engineering and Safety Center (NESC) assessment was performed to increase the interoperability of three specific tools: Copernicus from Johnson Space Center (JSC), the General Mission Analysis Tool (GMAT) from Goddard Spaceflight Flight Center (GSFC), and the Mission-Analysis Operations Navigation Toolkit Environment (MONTE) from the Jet Propulsion Laboratory (JPL). All these tools are utilized in various spaceflight regimes and mission lifecycles (e.g., design, analysis, operations) to generate a variety of products (e.g., maneuver planning, orbit determination, error analysis, trade study, flight products). Each tool was built over the years with specific goals unique to each center, which were based on the science missions they supported, and naturally lead to variations in their capabilities. Before this assessment, these tools were not integrated and could not easily share data, models, or components. This assessment achieved its goal of improving interoperability between legacy flight mechanics tools at different NASA centers and helped pave a path forward for increased Agency-wide collaboration. A description of the results and the modifications to the three analysis tools that allow the interoperability are provided in the technical report, NASA/TM-20230006507 NESC-RP-18-01313 "Flight Mechanics Analysis Tools Interoperability and Component Sharing". |
| Watch Now |
Interoperability between GMAT and Monte was obtained by improving the data sharing functionality of the GMAT Application Programing Interface (API), including ephemerides, covariance, and maneuvers; and by developing a Python Plugin in GMAT to enable sharing of dynamics between GMAT and Monte. These improvements were implemented in GMAT beginning with version 2022a.
Interoperability between GMAT and Copernicus was obtained by implementing the same open-source API for trajectory graphics originally developed for Copernicus (using OpenFrames) and the same high-performance three-dimensional (3D) graphics library (using OpenSceneGraph) into GMAT. Now, advancements in this 3D graphics technology will be shared between the tools. This improvement was implemented in GMAT beginning with version 2020a.
Interoperability between Monte and Copernicus was obtained by adding a Python interface to Copernicus (RoboCopPy) that allows mapping of data between the Graphical User Interfaces (GUI) of the two tools. This improvement was implemented in Copernicus beginning with version 5.0.
In addition, to overcome the general challenge of transferring trajectories between flight mechanics tools, a trajectory reverse engineering process was developed that uses a set of Python scripts to first convert a trajectory from MONTE or Copernicus into a more widely used Spacecraft and Planet Kernel (SPK) file, and then from the SPK file into the file format needed by either MONTE or Copernicus.
GMAT is an open-source tool that is licensed under Apache License 2.0 and is publicly available from https://sourceforge.net/projects/gmat/files/GMAT/.
Copernicus is available free of charge to other NASA centers, government contractors, and universities, under the terms of a US government purpose license. Eligible individuals can download the software from https://software.nasa.gov/software/MSC-26673-1.
MONTE can be licensed from JPL for government, academic, and commercial use. Users interested in obtaining the MONTE tool can formally request the software via JPL's Software Release website (https://download.jpl.nasa.gov/ops/request/request_introduction.cfm).
Five "use cases" are provided that demonstrate the interoperability of MONTE and Copernicus. In addition, a set of Python utility scripts used to transfer data between MONTE and Copernicus are also provided (MonteCop Module). The MonteCop Module and the 5 use cases are available here: https://github.com/nasa-jpl/MonteCop.
(1) Human Landing System (HLS) Use Case.
This use case represents the Copernicus to MONTE data transfer scenario of a Low Lunar Orbit (LLO) to a Near Rectilinear Halo Orbit (NRHO) trajectory. During the Artemis III mission, one of the phases will involve returning the astronauts from the south pole of the Moon to the Orion capsule at the NRHO Gateway orbit.
(2) Monte to Copernicus Visualization Use Case.
This use case represents the Spacecraft and Planet Kernel (SPK) to Copernicus data transfer scenario where complex trajectories developed in Monte or any other tool, are visualized in Copernicus. The python script used to generate trajectory visualizations in Copernicus from SPK kernels is called bsp2visualCop.py. The trajectory contained in the SPK kernel is loaded into Copernicus as an ephemeris file and a segment attached to it as a "static point trajectory" is used for visualization purposes (no optimization is applied here). The python function call requires as input the SPK kernel (.bsp) file. Optional argument inputs, as the spacecraft ID, the central body, the frame to visualize the trajectory are possible. For more complex trajectory visualizations, an optional JSON input file can be passed to the function call to generate a more personalized output with specific frames, central body, number of segments, colors, etc.
(3) Icy Moons Tour Use Case.
This use case represents the SPK to Monte/Cosmic data transfer scenario where trajectories developed in Copernicus or any other astrodynamics tool capable to store trajectories in form of SPK kernels, are recreated in Monte. The use case considered is the design of Moon tours to explore the Icy worlds. A Saturn Moon tour that enables an Enceladus capture orbit is used. A traditional tour consists of a sequence of flybys of the moons Titan, Rhea, Dione, Tethys, and Enceladus to pump down the energy of the initial Saturn post-capture orbit, enabling an affordable ΔV Enceladus capture insertion. For simplicity, only the Enceladus phase is considered, although the process of generating other phases of the tour is similar.
(4) Enceladus Orbiter Use Case.
This use case demonstrates the use of the Monte-Copernicus interface (Trajectory Reverse Engineering strategy) for two orbiter trajectories around Enceladus: an NRHO and an Enceladus Low Orbit (ELO). Enceladus is a celestial body known for its complex gravitational environment and designing trajectories under this environment is particularly challenging. The initial trajectories are generated using the Circular Restricted Three Body Problem (CR3BP) model in Copernicus. The Copernicus solutions serves as initial condition for reconstruction in Monte under a higher fidelity dynamical model.
(5) Europa Flyby Use Case.
This use case represents the Copernicus to MONTE data transfer scenario of a Low Lunar Orbit (LLO) to a Near Rectilinear Halo Orbit (NRHO) trajectory. During the Artemis III mission, one of the phases will involve returning the astronauts from the south pole of the Moon to the Orion capsule at the NRHO Gateway orbit.
(6) Monte-Copernicus Scripts (MonteCop Module).
The Python scripts implemented for each use case depend on a collection of utility scripts, collectively forming the MonteCop Python module, which includes the implementation of the trajectory reverse engineering process. To execute these use cases, the MonteCop module needs to be present in the local machine and its path added to the user Python path. Additionally, the robocopy module, the Copernicus builtin python interface, needs to be imported.