This article is more than 1 year old
Curiosity gets interplanetary software patch for better driving and more on Mars
And you thought patching your production environment was stressful
NASA has successfully installed a major software update on its venerable Curiosity Mars rover, which has been rolling over the Red Planet's landscape for more than a decade.
The Americans said some 180 changes were included in the update, which was deployed last week. Some were small, NASA said, such as making slight corrections to the messages Curiosity transmits to Earth, making future patch deployments easier, and improving control over the rover's head and arm.
Other updates were major, and included simplifying code that had become a bit bloated over 11 years of piecemeal patches while exploring Mars' Mount Sharp region, along with updates to the rover's movement and steering code.
"The flight software is essential to our mission, so this is a big deal for our team," said Curiosity Project Manager Kathya Zamora-Garcia of NASA's Jet Propulsion Laboratory.
The first major change to Curiosity's drive software lies in how it processes images of its terrain to better plan routes around obstacles. In newer rovers, such as Curiosity's successor Perseverance, the onboard computers can process images of the terrain while in motion. Curiosity can't do that, so it's long been stopping during every drive segment to reassess its surroundings and make course corrections.
This not only slows Curiosity down, but it also sucks up a lot of power, as the rover has to come to a stop and then fire up its internal systems repeatedly. While NASA can't add a new computer to Curiosity, it was able to update the code so the rover processes pictures faster, giving it more time to travel.
"This won't let Curiosity drive as quickly as Perseverance, but instead of stopping for a full minute after a drive segment, we're stopping for just a moment or two," said JPL's Jonathan Denison, Curiosity's engineering operations team chief. Denison added the change will also mean Curiosity consumes less energy while trundling around, allowing the team "to use more of our available energy for science activities."
- Curiosity finds clearest evidence yet for water on Mars
- Mars rover Curiosity reaches sulfate-rich Mount Sharp after 10-year journey
- Road trip on Mars: Thrill as Curiosity rover races up to 0.06 miles per hour. Marvel as it takes a mile-long detour
- NASA dons red and blue cardboard 3D glasses to drive Curiosity rover because its GPUs are stuck in the office
Another major update has to do with preserving Curiosity's most depleted asset – its wheels. Signs of wear began to show on the aluminum wheels within a year of Curiosity's arrival on the Red Planet, and previous software updates have been deployed to help combat the wear and tear on the treads.
Previous patches deployed an algorithm to improve traction, thereby reducing wear, and the latest patch "goes further," NASA said, "by introducing two new mobility commands that reduce the amount of steering Curiosity needs to do while driving in an arc toward a specific waypoint."
The idea with the update is to simplify the driving process to require less steering, further reducing friction and wear on the rover.
NASA's Denison said he's relieved to see the patches working as designed – as anyone responsible for software updates likely is after deploying a major patch. "The idea of hitting the install button was a little scary. Despite all our testing, we never know exactly what will happen until the software is up there," Denison said.
Estimated time left: 10 days
We're just as curious as Reg readers surely are to learn what goes into patching a decade-old rover that's more than 148 million miles away; luckily NASA was glad to share.
The latest image pushed to Curiosity, R13, was 21.921MB, only slightly larger than the 21.304MB R12 software it replaced, a JPL spokesperson told us. Still, Curiosity's operators split the update into 51 files, the first of which were downloaded on November 30 of last year. The last one arrived 10 days later from that date, in December, and it was between the third and seventh of April that the installation took place.
R13 was installed over multiple steps so that Curiosity's controllers could roll things back in case there was an error. Once the installation was complete, Curiosity was given two days to autonomously determine whether anything was wrong and automatically revert to its older software, JPL told us.
Once confident in the code, NASA set Curiosity to only use its latest software, but even then NASA still understands the value of maintaining a reliable backup.
"R12 is still onboard in a special backup area of memory, which allows us to switch back to it without that long uplink campaign," a JPL spokesperson told us. ®