Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
NASA's Curiosity Mars rover gets a major software upgrade (phys.org)
90 points by Tommstein on April 14, 2023 | hide | past | favorite | 16 comments


> "Curiosity doesn't have a dedicated computer [so it can autonomously navigate during one continuous drive]. Instead, it drives in segments, halting to process imagery of the terrain after each segment... The new software will help the venerable rover process images faster"

> "Curiosity's aluminum wheels... began showing signs of broken treads in 2013... sharp rocks were chipping away at the treads... The new software [introduces] two new mobility commands that reduce the amount of steering Curiosity needs to do while driving in an arc toward a specific waypoint."

So the rover can cover more distance per unit time, with less tread wear per unit distance

> "Those are just two of about 180 changes implemented"

> "The software update will also enable them to upload software patches more easily than in past. And it will help engineers plan the motions of Curiosity's robotic arm more efficiently and point its "head" atop the mast more accurately."


I'd be curious to know some technical details on the deployment process, such as the byte size, how long it took to send, any unique challenges. It must be high stakes. Imagine if they accidentally bricked it with a bad update.


From 2012: https://www.wired.com/2012/08/nasa-patch/

This has likely changed, especially after this most recent update, but:

> "The process took four days"

> "On the first day of the software update, the team deployed a temporary version of the new software to the rover's primary computer. This version was only held in RAM so that the computer would revert back to the previous version when it restarted. This gave the team a chance to make sure everything was functioning properly. On the second day the team deployed a more permanent version of the update to the computer's file system. On the third day they deployed the temporary version to the backup computer and on the fourth day they deployed the permanent version to the backup computer."

> "every interaction takes about 30 minutes: 14 minutes to send a signal to the rover in space, 14 minutes to get a response"

> "it only took a few minutes for the software to actually install"

---

On the hardware: https://venturebeat.com/business/sending-a-software-update-t...

> "Curiosity Rover is powered by a pair of computers built by BAE Systems. These RAD750 computers use a 10-year-old IBM PowerPC microprocessor running at 132 megahertz. It has just 120 megabytes of random access memory... doesn’t have enough memory for both the landing and surface missions"

NASA have been using RAD750s since 2005, most recently on JWST. BAE has a successor in the RAD510, but it looks like NASA are switching from PowerPC to RISC-V with the SiFive X280: https://www.talospace.com/2022/09/the-rad750s-successor-look...


15 minutes to respond, reminds me of the systems we use at work


Clicking the "Leaving Meeting" button in Teams is sometimes like that...


wow, thinking it must have good error correction


When I read news about Curiosity I am always fascinated. And the fact that today it has exceeded its original mission duration of 2 years by a factor of 4 is impressive.


Sounds waterfall rather than agile. Presumably its too risky to do lots of little updates.

I wonder what language it's written in.


The "move fast and break things" silicon valley microservices mentality hardly applies to spacecraft on planets months away.

Before any change gets uploaded, I'd imagine it goes through days/weeks (possibly months) of simulation and analog testing.

Not to mention the project requirements are not changing often and are going to be very clearly defined.

As I'm sure you know, Agile shines where requirements are fluid and not clearly defined.


Its written in C. The RTOS is VxWorks.



I remember a lot of it is written in Java. Was a big press thing for Sun years ago


Java is used on the ground station control software and a virtual version of the rover,

https://www.cnet.com/tech/tech-industry/java-runs-remote-con...

"NASA Mission Software Development on the Eights: Java 8, JavaFX 8, and NetBeans 8"

https://www.youtube.com/watch?v=6O9V5nc13h8


I thought curiosity was done. Or was that a different Rover?


Probably thinking of Opportunity which went dark in 2018 due to insufficient power from its solar panels

Curiosity is powered by an RTG so it seems like the wheels are its biggest risk of failure


I hope it was written in Rust to keep us safe.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: