Julia Notable Uses

That’s an interesting question!

During my Ph.D., I studied how distributed estimation can occur in systems with high communication delays. The example I coded was a swarm of UAVs. For each one, I implemented a complete inertial navigation system solution.

I coded in MATLAB. Since I was analyzing stochastic algorithms, I needed many realizations in the Monte Carlo simulation. The MATLAB speed in the machine I had (which was pretty good for the time) would take roughly six months (I can’t remember the actual number). Thus, I needed to translate 10,000 lines to C using CMEX, which was very painful.

This was in 2011/2012. By the beginning of 2013, I heard about this language that was supposed to solve my problem (two languages problem)! The issue is that Julia was very new, and no toolbox whatsoever existed for many satellite applications. To learn the language, I decided to code many algorithms, which eventually became ReferenceFrameRotations.jl and SatelliteToolbox.jl.

The second reason we went with Julia was due to @ChrisRackauckas (who is really a legend, in a non-plot sense, by the way :D). He designed probably the best simulation framework for highly accurate control system simulations! I remember back in the day, I needed some features in OrdinaryDiffEq.jl, and @ChrisRackauckas discussed with me and helped a lot (like here DifferentialEquations.jl does not save fields of custom types after the callback function · Issue #117 · SciML/DifferentialEquations.jl · GitHub)! For simulating continuous and discrete systems (like software for the satellite attitude control), DifferentialEquations.jl is just perfect.

Today, we have a complete simulation of the AOCS software integrated into an environment validated against orbital data. This system helps a lot to identify problems and add new features.

9 Likes