Securing the Skies: How the Federal Aviation Administration Is Using Julia to Develop the Next Generation Airborne Collision Avoidance System
With more than 100 thousand scheduled commercial flights worldwide every day, keeping all of those aircraft from colliding with each other is a monumental task in which any error is potentially catastrophic.
The Federal Aviation Administration partnered with Lincoln Labs to develop the next generation Airborne Collision Avoidance System (ACAS-X) using Julia. According to Lincoln Labs, Julia has a number of advantages that make it suitable as the new standard for avionics.
What are the goals of this project?
- Improve safety and reduce the risk of collision
- Allow aircraft to fly closer together
Why Julia?
According to Lincoln Labs, Julia is:
- Fast
- Easy to understand
- Concise, familiar syntax
- Executable
- High performance – comparable to C
The ACAS-X project requires computation of an exhaustive search over 650 billion decision points within the optimized logic table in order to identify failures. Julia reduced the time required to conduct these computations by several years.
Most importantly, Julia dramatically reduces time, cost and errors by eliminating the two language problem.
Previously, FAA partners such as Lincoln Labs needed to use Matlab to develop their algorithms and then program in C++ in order to run the algorithms over very large datasets quickly and efficiently. But having to program sequentially in two languages is extremely inefficient - costing time and money, as well as introducing room for error in translation and conversion.
Furthermore, transferring the specifications to industry using this legacy system required three different types of documentation: first, the specifications were written both in variable-based pseudocode and in English descriptive pseudocode. But this approach left gaps in interpretation, leading to possible confusion or disagreement. So programmers also created state charts to fill these gaps and eliminate the potential for misinterpretation.
Julia eliminates the need for all of these different languages and specifications.
Now, the researchers at Lincoln Labs can develop their algorithms, test them, run them over massive datasets and deliver the algorithms and specifications for industry in just one language – Julia. Industry partners can use the same code for implementation, analysis, construction and testing.
This has dramatically reduced cost and time to market, increased efficiency, reduced errors and increased air safety.
Or, as Robert Moss of Lincoln Labs says:
“The previous way of doing things was very costly. Julia is very easy to understand. It’s a very familiar syntax, which helps the reader understand the document with clarity, and it helps the writer develop algorithms that are concise. Julia resolves many of our conflicts, reduces cost during technology transfer, and because Julia is fast, it enables us to run the entire system and allows the specification to be executed directly. We continue to push Julia as a standard for specifications in the avionics industry. Julia is the right answer for us and exceeds all our needs.”