“What I love about open-source is that it really allows different people to work together.”Linus Torvalds, Linux creator
The freezing weather on Mars makes it difficult for flying things around. But, NASA’s JPL team did what they do best. They flew a helicopter named “Ingenuity” on the planet, a feat now considered to be equivalent to Neil Armstrong’s first step on the moon. Mars’s thin atmosphere—with an atmospheric volume less than 1% of Earth—poses a challenge to flying a helicopter. So, NASA’s Jet Propulsion Laboratory (JPL) had to keep Ingenuity light; below four pounds (1.8kg) to be exact. “Every gram was a challenge,” said Ingenuity Project Head MiMi Aung.
While the 6,000 strong-team of NASA’s JPL engineers made sure that Ingenuity is airtight, a large pool of developers(~12,000)–most of them unknowingly– have joined hands to build the guidance software that tells the helicopter where to go.
Open-source triumphs yet again
“Nearly 12,000 developers on GitHub contributed to Ingenuity’s software via open source.”Nat Friedman, CEO, Github
Linux, which made open-source a worldwide phenomena many years ago, is still in the game. It powers the software for space missions. The popular Python package SciPy played a vital role in the Ingenuity mission. The SciPy ecosystem is a collection of open-source software for scientific computing in Python.
The Ingenuity helicopter runs an embedded Linux distribution on its navigation computer. Much of its software is written in C++ using JPL’s open-source flight control framework F Prime (F’). First launched in 2013, the open-source project F Prime has been powering many space missions. F’ (F Prime) is a component-driven framework that enables rapid development and deployment of spaceflight and other embedded software applications. Linux started as a hobby operating system, and now it’s the de-facto platform for mobile computing, cloud computing, automobiles, etc. Now it’s an interplanetary operating system as well. “There’s definitely a collective pride on occasions like this,” said Linux Foundation executive director Jim Zemlin.
F’ has been originally developed at the Jet Propulsion Laboratory and has been successfully deployed on several space applications. It is tailored but not limited to small-scale spaceflight systems such as CubeSats, SmallSats, and instruments. F’ comprises of following elements:
- An architecture that decomposes flight software into discrete components with well-defined interfaces
- A C++ framework that provides core capabilities such as message queues and threads
- Modelling tools for specifying components and connections and automatically generating code
- A growing collection of ready-to-use components
- Testing tools for testing flight software at the unit and integration levels
In an interview with ZDNet, JPL engineer Timothy Canham said that F’ marked a shift in how JPL worked. For NASA’s JPL engineers, a major roadblock has been dealing with software written for custom purposes. F’ introduced modular and reusable coding routines. It gave engineers the freedom to build hardware independent of frameworks. Any brand of onboard camera can be used without any headache of dependencies. The same applies to any instrument onboard the missions. According to Canham, F’ started as a starter kit. “Although there’s a standard library of components, you’ll need to write a lot of your own software,” he said. Once NASA realised F’ is reusable outside of JPL, there was no looking back. Ever since, the open-source project has been used for the CubeSats and will be used for upcoming projects as well.
Github’s CEO expressed his awe as he wrote: ‘It’s also an achievement powered, in part, by an invisible team of open source developers from around the world. According to Friedman, nearly 12,000 developers on GitHub from around the world have contributed to Ingenuity’s software via open source. “Most of these developers are not even aware that they helped make the first Martian helicopter flight possible.”
“The Python ecosystem played a key role in everything from ground control to flight modeling to data processing.”Klint Finley, The Readme Project
Even though NASA is credited for this successful mission, the Github project technically makes this an international endeavour as developers outside of JPL have contributed. NASA’s upcoming lunar missions will leverage the contributions of the open-source community. Open-source software can make space missions cheaper. According to Terry Fong of NASA, open-source can help shorten the learning curve. “It makes things faster for us to take advances from the research world and put it into flight,” said Fong.
NASA has several programs for putting out data analysis and technology development contests and challenges to the public. The projects page of code.nasa.gov is built from data in catalog.json, available on github. NASA projects on code.gov are harvested from code.JSON, also on Github. Know more here.