In 2023, NASA will launch VIPER (Volatiles Investigating Polar Exploration Rover), which will trek across the surface of the moon and hunt for water ice that could one day be used to make rocket fuel. The rover will be armed with the best instruments and tools that NASA can come up with: wheels that can spin properly on lunar soil, a drill that’s able to dig into extraterrestrial geology, hardware that can survive 14 days of a lunar night when temperatures sink to ˗173 °C.
But while much of VIPER is one of a kind, custom-made for the mission, much of the software that it’s running is open-source, meaning it’s available for use, modification, and distribution by anyone for any purpose. If it’s successful, the mission may be about more than just laying the groundwork for a future lunar colony—it may also be an inflection point that causes the space industry to think differently about how it develops and operates robots.
Open-source tech rarely comes to mind when we talk about space missions. It takes a tremendous amount of money to build something that can be launched into space, make its way to its proper destination, and then fulfill a specific set of tasks hundreds or thousands (or hundreds of thousands) of miles away. Keeping the know-how to pull those things off close to one’s chest is a natural inclination. Open-source software, meanwhile, is more usually associated with scrappy programming for smaller projects, like hackathons or student demos. The code that fills online repositories like GitHub is often an inexpensive solution for groups running low on cash and resources needed to build code from scratch.
But the space industry is surging, in no small part because there’s a demand for increased access to space. And that means the use of technologies that are less expensive and more accessible, including software.
Even for bigger groups like NASA, where money’s not an issue, the open-source approach may end up leading to stronger software. “Flight software right now, I would say, is pretty mediocre in space,” says Dylan Taylor, the chairman and CEO of Voyager Space Holdings. (Case in point: Boeing’s Starliner test flight failure in 2019, which was due to software glitches.) If it’s open-source, the smartest scientists can still leverage a larger community’s expertise and feedback if it runs into problems, just as amateur developers do.
Basically, if it’s good enough for NASA, it should presumably be good enough for anyone else trying to operate a robot off this planet. With an ever-increasing number of new companies and new national agencies around the world seeking to launch their own satellites and probes into space while keeping costs down, cheaper robotics software that can confidently handle something as risky as a space mission is a huge boon.
Open-source software can also help make getting to space cheaper because it leads to standards everyone can adopt and work with. You can eliminate the high costs associated with specialized coding. Open-source frameworks are usually something new engineers have already worked with, too. “If we can just leverage that and increase this pipeline from what they’ve learned in school to what they use in flight missions, that shortens the learning curve,” says Terry Fong, chief roboticist of the Intelligent Robotics Group at NASA Ames Research Center in California, and deputy rover lead for the VIPER mission. “It makes things faster for us to take advances from the research world and put it into flight.”
NASA has been using open-source software in many R&D projects for about 10 to 15 years now—the agency keeps a very extensive catalogue of the open-source code it has used. But this technology’s role in actual robots sent to space is still nascent. One system the agency has trialed is the Robot Operating System, a collection of open-source software frameworks maintained and updated by the nonprofit Open Robotics, also headquartered in Mountain View. ROS is already used in Robonaut 2, the humanoid robot that has helped with research on the International Space Station, as well as the autonomous Astrobee robots buzzing around the ISS to help astronauts run day-to-day tasks.
ROS will be running and facilitating tasks critical to something called “ground flight control.” VIPER is going to be driven around by NASA personnel who will be operating things from Earth. Ground flight control will take data collected by VIPER to build real-time maps and renderings of the environment on the moon that the rover’s drivers can use to navigate safely. Other parts of the rover’s software have open-source roots as well: basic functions like telemetry and memory management are handled onboard by a program called core Flight System (cFS), developed by NASA itself and available for free on GitHub. VIPER’s mission operations outside of the rover itself are handled by Open MCT, also created by NASA.
Compared with Mars, the lunar environment is very difficult to physically emulate on Earth, which means testing out a rover’s hardware and software components isn’t easy. For this mission, says Fong, it made more sense to lean on digital simulations that could test many of the rover’s components—and that included the open-source software.
Another reason the mission lends itself to use of open-source software is that the moon is close enough for near-real-time control of the rover, which means some of the software doesn’t need to be on the rover itself and can run on Earth instead.
“We decided to have the robot’s brains split between the moon and Earth,” says Fong. “And as soon as we did that, it opened up the possibility that we can use software that’s not limited by radiation-hard, flight computing—but instead, we can just use off-the-shelf commodity commercial desktops. So we can make use of things like ROS on the ground, something used by so many people so regularly. We don’t have to just rely on custom software.”
VIPER isn’t running on 100% open-source software—its onboard flight system, for instance, uses extremely reliable proprietary software. But it’s easy to see future missions adopting and expanding on what VIPER will run. “I suspect that maybe the next rover from NASA will run Linux,” says Fong.
It will never be possible to use open-source software in all cases. Security concerns could be an issue, and might cause some parties to stick to proprietary tech entirely (although one plus to open-source platforms is that developers are often very public about finding flaws and proposing patches). And Fong also emphasizes that some missions will always be too specialized or advanced to rely heavily on open-source technology.
Still, it’s not just NASA that is turning to the open-source community. Blue Origin recently announced a partnership with several NASA groups to “code robotic intelligence and autonomy” built from open-source frameworks (the company declined to provide details). Smaller initiatives like the Libre Space Foundation based in Greece, which provides open-source hardware and software for small satellite activities, are bound to gain more attention as spaceflight continues to get cheaper. “There’s a domino effect there,” says Brian Gerkey, the CEO of Open Robotics. “Once you have a large organization like NASA saying publicly, ‘We’re depending on this software,’ then other organizations are willing to take a chance and dig in and do the work that's necessary to make it work for them.”