Juliacon 2024

Developing a Satellite Telemetry Analysis System
2024-07-10 , While Loop (4.2)

This talk presents how we developed a general, adaptable satellite telemetry analysis system using the Julia language and its ecosystem. The system can fetch the telemetry packets from the mission database, convert the desired telemetry variables, and output a data frame with the information. From here, we can use all the power in Julia language to perform the complicated analysis often required to verify the attitude and orbit control subsystem health.


In the previous JuliaCon, we presented how we use Julia to develop our next-generation satellites' attitude and orbit control subsystem (AOCS) at the National Institute for Space Research (INPE). During the development, we identified a critical area in which Julia could provide an excellent contribution: telemetry analysis.

Telemetry is all the data a satellite sends to the ground, encompassing the information we have to verify the system's health. We also use the same data during the satellite integration when we need to perform several analyses to check if all algorithms and functionalities work correctly.

This kind of analysis is particularly challenging for the AOCS. Given the bandwidth limitation, we can only provide a minimal set of parameters to be sent in the telemetry packet. Hence, we must perform many transformations to rebuild all the AOCS internal states, especially during unexpected events. For example, the AOCS telemetry frame usually contains only the satellite position in the inertial reference frame. Thus, to obtain its geodetic position (latitude, longitude, and altitude), we need to convert the inertial frame to an Earth-fixed frame and then transform it from the position vector to geodetic coordinates.

Every mission has its telemetry analysis system. However, those environments are usually built for fast telemetry checking, targeting the satellite operators during the daily control routines. Those environments often lack a proper programming platform to perform telemetry data transformation.

Given the above discussion, we decided to build a general, adaptable telemetry analysis system for the Julia language. The ecosystem defines a set of general API functions to build the interface with any telemetry analysis system. First, we must define a telemetry source, stating how to obtain and unpack the packets. Afterwards, we define the telemetry database, where all the existing variables are registered, including the transfer functions between the bits in the frame and the engineering values. Given those definitions, the system is capable of fetching and converting the desired telemetry to a DataFrame, where we can use all the power in Julia language to perform any analysis we want.

From now on, we expect to use this system in all of INPE's missions, including the tasks in the development stage. System validation happened for the Amazonia-1 mission, which was successfully launched in February 2021, where we implemented the interface with the current telemetry analysis system, SATCS. In this task, Julia proved to be an outstanding alternative. We needed to convert a proprietary language for the transfer functions to Julia code, where we extensively used Julia's metaprogramming capabilities, leading to a high-speed system to convert the telemetry information. After implementing the interface, we could easily access the satellite's telemetry and perform a myriad of analyses. In fact, we quickly designed an automatic telemetry analysis system, running every day, to spot common problems and alert the mission specialists by e-mail if anything is identified.

This talk will detail how the system was designed and important study cases obtained from the Amazonia-1 satellite telemetry analysis, stating how the capabilities available in Julia language and its ecosystem were paramount in the development.

See also: GitHub

Since 2013, Ronan Arraes Jardim Chagas has been with the Space Systems Division of the Instituto Nacional de Pesquisas Espaciais (INPE). As his most significant accomplishment, he was the Mission Architect and the responsible technician of the attitude and orbit control subsystem (AOCS) of the Brazilian Satellite Amazonia-1, successfully launched in February 2021.

He has been working with Control Systems and Signal Processing for 15 years. During this time, he was involved in many projects related to those areas. He successfully embedded Kalman filters (Extended and Unscented) in many autonomous systems and developed state-of-art signal processing algorithms to perform estimation in distributed sensor networks.

He conducts several research projects at INPE. Those projects include artificial intelligence and advanced control techniques applied to the AOCS, space mission design optimization, advanced signal processing, and orbit analysis.

He is also a Julia language enthusiast. He has used it daily since 2013 to perform many activities related to his work. As his most significant project with this language, he developed a complete AOCS simulator to test and verify this subsystem. The simulation achieved outstanding performance and accuracy, given the orbital data collected from the satellite Amazonia-1.

He is the creator and maintainer of some important packages of the Julia language ecosystem: ReferenceFrameRotations.jl, SatelliteToolbox.jl, PrettyTables.jl, and others.

This speaker also appears in: