Julia and the satellite Amazonia-1

Hi guys!

Long time, no see!

As some of you may know, I am the mission architect and the technical responsible for the attitude and orbit control subsystem (AOCS) of the Brazilian satellite Amazonia-1, launched on Feb 28. This is an image obtained by the first recording procedure:

Here you can see the big city of São Paulo (on the left), São José dos Campos where INPE is located (“small” city on the top right), and the beautiful Brazilian shore, showing Santos, Guarujá, Bertioga, São Sebastião, and Ilhabela (the small island on the right).

OK Ronan, but this is a Julia forum, do you know?!

I just want to share with you guys a very successful usage of Julia. Since 2013, when I got involved with the project, I started to use Julia to do all the kind of analysis. The first version of SatelliteToolbox.jl dates back to 2014, during v0.3.0 days. In this package, I added a lot of functions related to satellite and orbit analysis, which was eventually used in the Amazonia-1 project.

I used Julia in the following tasks:

  • General mission analysis such as fuel budget computation, orbit planning, ground station visibility analysis, etc.
  • The Amazonia-1 AOCS simulator is 100% written in Julia using the amazing DifferentialEquations.jl ecosystem. The results obtained from it greatly match the real satellite dynamics obtained after the orbit injection.
  • The AOCS telemetry analysis system is also 100% written in Julia. The problem with AOCS is that you often need to get a lot of data from the satellite telemetry and plot many graphics. During the integration and testing, I needed to do this daily. Hence, we developed inside INPE a Julia package that automatically fetches the raw telemetry from the database, process, and output what we want. Today I can very easily see the overall satellite AOCS state with just two or three commands.
  • The in-orbit sensor calibration required the implementation of Kalman filters, which, of course, was coded in Julia.

We can now say that Julia is truly a part of the Brazilian space program :slight_smile:

Finally, I want to thanks all you developers that created Julia and the fantastic package ecosystem. It really made a lot of difference to me! I am 100% sure that I would have a lot more work if I had to use another computing language.

194 Likes

Congratulations! Very nice work!

2 Likes

This is extremely interesting! @Ronis_BR , do you know any Julia package for multi-spectral image registration?

Thanks! No, I do not know unfortunately :frowning:

:rocket: :artificial_satellite: :top:

image

5 Likes

Awesome! Congrats!

1 Like

GDAL, ArchGDAL
I am also adding subsets of gdal functions from GDAL.jl and ArchGDAL to GMT.jl so probably one can do that already with GMT.

5 Likes

This is awesome!

2 Likes

Fantastic, congratulations on the successful launch and early ops, and thanks for sharing your experience!

Are any of the tools you built (simulator, telemetry analysis) open-source or are planned to become so? I’ve had to reinvent the telemetry/simulation output analysis wheel a couple of times and I think there’s a potential for some good Julia based tooling. Probably not turn-key systems as I think are always fair unique requirements for each project but there seems to be a ton of underlying common functionality that could be implemented in Julia packages.

1 Like

Um dos raros momentos em que dá orgulho de ser brasileiro! Obrigado por isso, @Ronis_BR

6 Likes

Thanks! The AOCS simulator I cannot disclose because it models the internal AOCS dynamics. Hence, we have some NDA that prohibits us from sharing it. The same applies to the telemetry analysis tools.

However, let’s say that 85% of everything is inside the ReferenceFrameRotations.jl and SatelliteToolbox.jl. The other bits are very specific to the Amazonia-1 itself.

We are also discussing (although COVID delayed it) to open-source a simulator of the mission operational concept. It is used in the Space Mission Integrated Design Center (CPRIME) at INPE. The GUI was coded in Qt/C++ but the simulation core is 100% Julia:

Muito obrigado!!

8 Likes

Como tuga congratulo-me também com este feito. É bom ouvir boas notícias vindas da vossa terra.

4 Likes

Uma das pouquíssimas boas notícias vindo daqui…
One of the very few good news coming from here…

2 Likes

As someone who’s worked in spacecraft technology research/development until recently: hats off, great effort, thank you for sharing this!
Minor remark on your GUI screenshot: is it not T&TC (Telemetry & TeleCommand) instead of TT&C? :innocent:

1 Like

Thanks!!

We use TT&C as an acronym for Telemetry, Tracking and Command.

2 Likes

Congratulations! That’s so exciting. I’m interested to hear about what is next for you, and the extent to which you’ll be able to reuse and extend your software for future missions.

Do you have any sort of publication planned, especially focused on lessons learned?

2 Likes

Thanks!

Yeah! Me too :slight_smile: Everything I coded was planned to be extensible, let’s see if I achieved my goal.

I still need to discuss this with people at INPE. We are compiling the lessons learned for each area but I am not sure if anyone thought about a publication in a journal. I will proposed this idea :slight_smile:

3 Likes

Awesome! This is so cool! I already love using SatelliteToolbox, can’t wait to see what’s next!

1 Like

@Ronis_BR Super cool project. Have you considered using Julia to analyse the satellite images? It seems that Julia is really well suited for the advanced image analysis used in earth observations (EO) today.

Last year I made a student project with a friend implementing InSAR processing and SAR based flood mapping. I am very interested in following the use of Julia for EO image analysis.

2 Likes

Parabéns, um excelente trabalho! @Ronis_BR :clap:t3::clap:t3::clap:t3:

2 Likes