On July 4, 1997, NASA's Mars Pathfinder spacecraft entered the Martian atmosphere. In its
hull, the Pathfinder held a 22-pound, six-wheeled Sojourner Rover, the first robot ever to
explore the Martian terrain. Scientists used a specially designed Java interface to
designate science targets for the Rover and perform a variety of operations. At the same
time, people around the world had the opportunity to simulate their own Rover missions and
view data downlinked from Mars.
Developed for NASA's Telerobotics Program by Jet Propulsion Laboratory (JPL), with SoHaR
Inc and IA Tech Inc, the Web Interface for Telescience (WITS) enables mission participants
worldwide to collaborate and view Rover activities over the internet. JPL, the premier
center for robotic exploration of the solar system, is managed for NASA by the California
Institute of Technology. JPL's Rover and Telerobotics Program develops technology to
demonstrate how telerobotics can contribute to NASA missions.
Interested scientists and students used WITS over the internet to command the JPL Rocky 7
research Rover in a May 1997 field test in the California desert. Participants viewed the
terrain through the Rover's eyes and controlled the robot's exploration activities using a
desktop computer with a browser. "WITS is a testimony to the robustness and ease of
programming with Java," says Paul Backes, WITS team leader at JPL.
The mission
Backes and his team first envisioned a distributed interface for planetary Rovers in 1995.
Facing the challenge of accommodating growing teams of scientists, Backes sought a way to
allow large groups to collaborate easily from remote locations. Since future missions will
last up to six months or more, JPL needed a way for large science teams to collaborate
without residing there. The challenge lay in creating an interface that could be easily
loaded while running flawlessly on all user machines.
NASA awarded funding to JPL in October 1995, just as the first Java beta releases were
circulating over the internet. Backes' team began running simple tests with Java to see if
it could meet their development needs. In their first experiment, the team used Java to
command the Rover using images transmitted from space. Within one month, the team reached
its first milestone, getting a head start on creating the full WITS interface in Java.
The solution
From Backes' point of view, Java offered the crucial advantage of easy installation.
"Java's platform independence and automated downloading over the internet have been
critical," says Backes. At a test run in December of 1996, distributed teams
successfully controlled the Rover with a Java applet. "I had three test sites on
three different platforms using two browsers, all working exactly the same way," he
says. "I gave everyone a URI and bingo they were there."
Java played a key role in the development of a GUI for WITS. "I've used GUI builders
in the past and often found that they were complex and difficult to incorporate into the
underlying language," says Backes. Building the interface with Java proved so
easy-even without special GUI development tools-that Backes' team ended up writing the
interface directly in Java. "Java was simple, graphical and intuitive. I've never had
such an easy time building a GUI," he says.
With its Java interface, WITS allows the public-or scientists-to easily interact with the
sophisticated Rover. Participants click a screen image, select the Rover's position and
use command options to place an instrument or pick up a rock. Once complete, an activities
list is sent to the Rover.
Development environment
Backes and his team began writing code in November 1995. By August 1996, WITS was ready to
roll. "The speed of our development was remarkable," says Backes. Even though
the team had to learn a new language, it took JPL less than half the projected time to
develop WITS with Java. "To be honest, I would never have attempted to build a
distributed interface in time for the Mars Pathfinder mission without Java. We would have
had no chance of successfully meeting our deadlines," says Backes.
Deployment environment
The Java applet is deployed from a SPARCstation 10 Web server. Users download the applet
via a browser such as Netscape or Internet Explorer. The SPARCstation communicates with
other parts of the telerobotic system using CGI scripts.
Only the mission system is authorized to connect to the command uplink systems at JPL.
Identical mission and public versions of WITS, with alternative URLs, are used during
missions and field tests. Each database is updated with the actual mission data.
User types, passwords and IP addresses ensure optimal security for all systems.
"Security is tremendously important. When I first went to the mission planning team
and told them we would generate commands for the Rover over the net, they got quite
nervous," recalls Backes. NASA gave the go ahead only after Backes outlined a plan
guaranteeing that the system would remain secure.
Looking at the future
Reflecting on the WITS and Rover's first three-way field tests, Backes recalls, "We
knew it was going to work from JPL, and that it should theoretically work for the students
and for NASA headquarters." Still, he was ecstatic with the results. "There were
just no problems," he says. "After many years of aggravation with other
difficult systems deployment, this was so easy."
WITS has given JPL the power to generate an outreach program with the potential to connect
millions of users. Scaling the system has become top priority for Backes. The original
communications architecture prohibited use by more than 1,000 concurrent participants.
While initially the group thought this would be sufficient, it turned out to be more than
two orders of magnitude too small. "With Sun's help and technical recommendations, we
are modifying the architecture to increase capacity," says Backes. A new Sun server
and protocol will enable WITS to support millions of users.
Backes' team, whose priorities include continually enhancing the applet's functionality,
is currently developing 3D graphics for standard internet users-written entirely in Java.
Exploring New Heights
New Update