Flash: Software wings its way to Mars rovers
- By Patricia Daukantas
- Feb 06, 2004
NASA's twin Mars rovers have been receiving medicinal shots of software over the agency's Deep Space Network.
The updates let Earthbound programmers finally get the Spirit rover back to doing its job, said Roger Klemm, a flight software developer at NASA's Jet Propulsion Laboratory in Pasadena, Calif.
Last week, Spirit was successfully analyzing the mineral composition of Martian rock. Spirit had fallen into a mysterious communications silence on Jan. 21, apparently from a shortage of system memory for the flash file system.
The rover's computer could not allocate enough memory for the file system, so it kept trying to reboot itself, Klemm said.
Engineers commanded Spirit's computer to stop using the flash memory and perform a checkdisk routine. They discovered the computer was choking on thousands of separate files.
Each rover has 256M of flash memory, with 227M available for files, plus 128M of RAM. Certain blocks are reserved for dedicated program buffers. The JPL team last week was preparing to reformat Spirit's flash memory. The programming team also has become aggressive about deleting files from the flash memory of the second rover, Opportunity, Klemm said.
Most of the code is written in C, running under the VxWorks 5.3.1 operating system from Wind River Systems Inc. of Alameda, Calif. A few files are in assembly language, and one module is in C++.
Engineers at NASA Langley Research Center in Hampton, Va., adapted a flight-mechanics application, originally developed in the 1970s for planning shuttle missions, to model the complex interactions of the Spirit and Opportunity rovers' hardware and software.
Before the landings, NASA executed multiple simulations of parachute, rover capsule and back shell behavior during entry into the Martian atmosphere, said Eric Queen, a Langley research engineer.Studying landing scenarios
Using a 128-processor SGI supercomputer at JPL, the Langley engineers studied thousands of possible random landing scenarios via a mathematical technique called Monte Carlo simulation. The supercomputer crunched through the simulations in a few hours, instead of taking two weeks as it did in the days of the 1997 Mars Pathfinder program, Queen said.
The simulations factored in the rovers' onboard software. Although the rovers' computers have less processing power than modern PCs, they have 'a lot more intelligence onboard than any previous Mars mission,' Queen said.
Meanwhile, scientists at JPL are using sophisticated graphics technology to reconstruct the Martian surface in 3-D to aid the engineers on Earth who do the driving.
JPL has two eight-processor SGI Onyx 300 computers, each with a dual-pipeline SGI InfiniteReality 4 graphics subsystem, said Bob Peach, president of Rand Federal LLC of Phoenix. Rand Federal is the integrator under a six-year contract with SGI and JPL.
The Onyx systems convert the high-resolution rover photos into 3-D images, which the drivers see through stereo goggles while sending motion commands to the rovers on the Martian surface.
Brian Cooper, lead rover driver at JPL, said he and his seven colleagues tell the rovers where to go and how to move their robotic arms. They study images the rovers have already collected and transmit a list of prioritized targets.
JPL programmers spent three-and-a-half years writing the program to see in 3-D. 'It's almost like standing on the surface of Mars,' Cooper said.
Because of the 10-minute delay between transmission and reception of commands, the drivers can't move the rovers in real time. Typically, JPL communicates with the rovers at least once per day, after building up command sequences and rehearsing motions.
The commands go in JPL's Rover Markup Language, an extension of Extensible Markup Language, Klemm said. The sequences of RML commands are packed into code blocks.
'The management of sequences has turned out to be a very big job on this project,' Klemm said.