How NASA Recycles Code for Outer Space
Software platform allows teams to share, recycle and update code on an ongoing basis.
More than 140 million miles from Earth, the Mars rover Curiosity is taking pictures, drilling rocks and analyzing soil samples in an attempt to answer the big question: Did the red planet ever support life? The rover carries the most advanced suite of scientific instruments ever sent to the Martian surface, and these tools depend on a new software platform that is proving just as mission critical as the tricked-out rover.
Called Ensemble, the set of applications allows science and engineering teams, for the first time, to share, recycle and update code on an ongoing basis. That’s good from a business — and taxpayer — perspective, because Ensemble drastically reduces the time and cost of planning and operating a mission.
Ensemble is “leading to a more efficient set of missions operations across all of NASA,” says Steve Hillenius, user experience manager and designer at NASA Ames Research Center outside of San Francisco. “It’s a really unique project at NASA that has been a cross-center effort and has significantly reduced the cost of running a mission.”
Sharable and Reusable Code
Ensemble is a platform that integrates software components from different teams into one unified application for a given mission. It’s based on the open-source Eclipse application framework and Java-based integrated development environment (IDE). Teams build an Ensemble product from a selection of shared plug-ins, which are used for tasks such as scheduling activities and browsing data. On top of those core functionalities, scientists can add plug-ins specific to an individual mission’s goals, such as collecting soil samples.
Prior to using Ensemble, Jet Propulsion Laboratory (JPL) and NASA teams shared some tools between missions, but they created the majority of code and tools specifically for each mission, essentially starting from scratch with every new launch.
John Bresina, a computer scientist in the Intelligent Systems Division of the Exploration Technology Directorate at NASA Ames, remembers working on the Mars Exploration Rover mission, a pre-Ensemble operation that relied on software tools developed independently by teams at NASA Ames and at JPL in Pasadena, Calif. “We kind of glued these tools together, but [the result] wasn’t integrated,” he says. The idea behind Ensemble was to create a platform that allowed these tools to be reused as sets of plug-ins.
“We had a bunch of groups that were working on similar software components for separate missions,” Hillenius says. “The idea was to really allow an open collaboration between these centers, to allow code reuse and specialization.”
One of Ensemble’s key applications for missions is for science activity planning and sequencing. In a given mission, teams of scientists, engineers and flight controllers are trying to maximize the amount of science activities the spacecraft performs. Ensemble gives these groups the many different tools they need, integrated under one interface and with shared data. That setup leads to a smooth workflow, where tools operate in sync with each other and with environmental and time constraints.
NASA has used Ensemble in six missions on a variety of spacecraft, from orbiters to landers to the International Space Station. Depending on the mission, teams select the software plug-ins they need for different tasks such as manipulating images or maneuvering the craft.
“You don’t end up with this behemoth software,” Hillenius says. “It’s actually very lightweight, based off of the needs of the mission. You select what you need and don’t take extra baggage.”
When scientists develop custom functionalities for missions, those functionalities go back into the platform so that future projects can use them. “From the very inception of the project, having Ensemble gives you a huge startup savings,” Bresina says. Even missions that have already been deployed can add new custom functionalities.
Hillenius says that his team leveraged components of the activity planning tool used in the Mars Science Laboratory mission for a similar tool used in the Lunar Atmosphere and Dust Environment Explorer (LADEE) mission.
Ensemble is available for commercial licensing; and a similar version of the software, called OpenSPIFe, is available as open source on GitHub.
Ready for Takeoff
What’s next for Ensemble? A mission closer to home — and under water. NASA Extreme Environment Mission Operations (NEEMO) is an analog mission in an underwater habitat called Aquarius off the coast of Key Largo, Fla., where four astronauts live for eight to 10 days at a time. NASA is using plans from Ensemble with a mobile-planning application designed for astronauts to one day use on the International Space Station or a future deep space manned mission.
“We’ve gotten to a point where we have a very mature suite for conducting missions operations,” Hillenius says. Now the fun part is integrating Ensemble with the latest tools in space exploration, whether they’re used in coastal waters or out in the Milky Way.