Posted on 01/19/2004 8:21:35 AM PST by amigatec
Java runs remote-controlled Mars rover
Reuters January 16, 2004, 6:20 AM PT
The same piece of software that lets people around the world play video games on their cell phones is now letting scientists drive the ultimate remote-controlled car across the surface of Mars.
Java, the software developed by Sun Microsystems in the mid-1990s as a universal operating system for Internet applications, gave NASA a low-cost and easy-to-use option for running Spirit, the robotic rover that rolled onto the planet's surface on Thursday in search of signs of water and life.
For the next three months, NASA scientists and engineers at the Jet Propulsion Laboratory in Pasadena, Calif., will plot Spirit's wanderings with the Java-based Science Activity Planner that operates like a digital "Gran Turismo."
"It takes all the raw data in the mission database and builds a 3-D terrain you can spin around and zoom in," said Gene Chalfant, JPL technical staffer.
With the same point-and-click skills one would need for, say, online shopping, the NASA team will plan Spirit's daily activities, page through voluminous data and communicate.
"It's a sandbox, in a way, to try different ideas," Chalfant said. "You pick the rock you want to investigate and command the rover to move there, and the rover figures out the best way."
The team made virtually no changes to an online version of the program, dubbed Maestro, that lets space nuts page through panoramic color images, check out the rover's wheel-mounted hazard cameras or plan a rover mission just like real scientists.
The site has been so popular since its Jan. 2 launch that Sun had to provide extra bandwidth to keep NASA's servers up and running, Chalfant said.
The simulated rover drives on a 3-D model of the martian terrain as precise as the one used by the NASA mission.
"(Scientists) do exactly the same thing you can do," Chalfant said.
"A place...to have your mind blown" Java's journey from mundane to extraterrestrial began nearly a decade ago when JPL scientists began noodling with the programming language to create a command and control system for the 1995 Mars Sojourner, said James Gosling, known as "the father of Java."
The JPL team showed Sun what they had done, and Gosling, a vice president and fellow at the Santa Clara, Calif.-based software and systems developer, was hooked.
"I'm a geek anyway, so it sucks me in," Gosling told Reuters. He spent so much time at the Pasadena space laboratory that he became an advisory board member.
"They are doing things that people think are science fiction," he said. "It's a place to go to have your mind blown. It's hard to find a government agency...where people are living their dreams."
Although Java's data-handling capabilities initially attracted NASA, the code's ability to transcend the many systems used by mission scientists and engineers sold the space agency, Gosling said.
"They can have scientists all over the world looking at the data but collaboratively deciding on the way the mission should proceed," Gosling said. "They are all speaking different languages when they talk to the rover, but everybody in the control room is using Java."
Separately, Alameda, Calif.-based Wind River Systems created the embedded software in Spirit and its twin, Opportunity, that manage a wide range of functions, including data collection and communications.
What is misleading is calling Java an operating system. It's not an operating system. It's a programming language that compiles to byte code. It requires a Java "virtual machine" installed on an operating system to run.
Java runs the stuff on the ground on this end.
The engineers and scientists on the ground are using a program written in Java. But the article doesn't say what operating system they are using. They could be using a variety of operating systems. The Java program would run on all of them if there is a Java virtual machine installed on them.
A conventional RTOS (Real Time Operating System) from Wind River Systems runs on the rover itself.
That is corrrect. But there has to be some program running on the RTOS, probably written in the version of Java for embedded systems. From the tone of the article, I would guess that is the case, although there aren't many details given. I will poke around NASA's website and see if they give a better description of how they did things.
You can download Maestro from there website and install it. It works fairly well.
Arf! That's like saying
you're not nuts because you are
saner than Manson...
About time someone thought about doing a Java compiler, wonder how it will compare with C/C++ compilers in performance?
Yes, Maestro is written in Java. It is clear that the scientists are using a Java program on their computers to communicate with and command the rover on Mars. What isn't clear is the language used to write the programs running on Rover itself. In the past these were written in C, C++, Lisp, or an assembly-like language. But on this mission, is the Rover itself running Java programs?
Here is a link to an article describing a talk given by James Gosling, the inventor of Java, at a Java conference last year. The following excerpt makes it clear that they will run Java on future rovers using a real-time version of Linux for embedded systems:
James Gosling, considered the father of the Java programming language and a Sun Fellow and VP at Sun Microsystems Laboratories, will deliver a keynote address and introduce the TimeSys-powered Mars rover at JavaOne on Wednesday, June 11, at the Moscone Center in San Francisco.
JPL and Sun are developing this vehicle as a proof of concept for the next-generation of unmanned Mars exploration rovers, scheduled for launch in 2009. JPL is demonstrating the use of Java-based applications executed on a real-time Linux platform as an alternative to C/C++ applications on a traditional commercial RTOS. TimeSys Linux/Real-Time and JTime, the industrys first RTSJ-compliant Java virtual machine (JVM), are serving as the foundation for this new concept vehicle.
It appears that Maestro is built with gcc 2.96 and not gcc 3.3.1.
I had to install libraries from 2.96 to get it to run on Mandrake 9,2
It seems likely to me that if java were running on the rover, it would be more prominently mentioned.
So, I still don't know for sure what is running on the rovers, but unless I hear a clear statement that Java is, I will continue to assume it is not.
In any case, the title of this article is still very misleading. The article talks about the earth-based software, yet the title clearly states that Java is running the rover. Chalk that up to reporters who know nothing about computers.
Disclaimer: Opinions posted on Free Republic are those of the individual posters and do not necessarily represent the opinion of Free Republic or its management. All materials posted herein are protected by copyright law and the exemption for fair use of copyrighted works.