They’ve also used lessons learned from Spirit and Opportunity to make driving Curiosity more efficient and less risky. All in all the team spent four years enhancing RSVP in preparation for Curiosity, though improvements and enhancement to the software continue as they learn more about the environment and terrain on which the rover is operating. “We have implemented many new graphics features in HyperDrive for instance after landing that help us drive safely on rough terrain and help use contact the ground with our arm mounted instruments,” Cooper said.
NASA, of course, is famous for developing “perfect” software for the space shuttle. RSVP, however, being software that is neither onboard the spacecraft nor involved in a manned mission, need not be perfect. However, before commands are sent to the rover, they go through a “carefully crafted process,” said Cooper, that includes human review (and simulation via HyperDrive) and automated checks. Any bugs in the code are logged and tracked via Jira.
As for their software development practices, the fact that the the development team members are, ultimately, also the end users makes project management a bit simpler. Cooper said that the team uses a mix of traditional software development practices and Agile methods, including pair programming (“More like small group programming,” according to Cooper) and daily standups.
While the RSVP code already has a long and distinguished history operating Mars rovers, it’s not being sunsetted anytime soon. Cooper said that RSVP has already been chosen as the control software for the InSight Lander, scheduled to reach Mars in 2016. He also hopes it will be chosen to drive another rover planned to launch in 2020.
Who knows? Maybe someday humans will go actually go to Mars and drive rovers directly (while, ironically, the cars on Earth may all be self-driving). In the meantime, the smart cookies at JPL will keep writing the code to keep those rovers moving and busy.