MARS EXPLORATION ROVER MISSION USING JAVA TECHNOLOGY
AUTHORS K.Kishore Kumar D.No. 16-3-3, Matam Center, Samalkot. Ph. 94400 31263 E-Mail: firstname.lastname@example.org Mail:email@example.com D.Kartheek Treasury Colony, Pratapnagar, Kakinada. Ph.9247590251 E-
COLLEGE: PRAGATI ENGINEERING COLLEGE, SURAMPALEM
ABSTRACT Man who is a good explorer by nature is trying to invade his next planet, the Mars, with the help of JAVA enabled rovers. Both JAVA and rovers are wonders created by man. Java technology today is good for general purpose computing and GUIs, but it was not ready for use with control systems like the software on the Rover. The Golden Gate project seeks to use RTSJ (Real Time Specification for JAVA) to develop a system of control software that can be used on a Rover. The places where NASA scientists have used Java for this mission is all on the groundside right now. They have created this collaborative command and control system called Maestro, which does this combination of data visualization, collaboration, command and control. Java RTS enables developers of real-time applications to take full advantage of the Java language ecosystem while maintaining the predictability of current real-time development platforms. Java RTS also brings the world of real-time programming to developers currently using Java technology to create applications that reach into the physical world. Golden Gate project is being worked on which will create code that would replace the proprietary APIs and real-time operating system code (Wind River) in future missions. Java 3D and Java Advanced Imaging technology are also key to the software JPL (Jet Propulsion Laboratory) is using to render and interpret real time images captured by the Rover. JAVA, due to its unique features like, platform independency, rich set of API libraries such as 3-D modeling APIs, Advanced Imaging APIs and its Mission Data System to control physical systems fuelled the Mars exploring rover mission. INTRODUCTION NASA's twin Mars rovers, Spirit and Opportunity, are exploring opposite sides of the Red Planet to search for evidence of past or present water and to map its geological and climate history. On Jan. 3, 2004, the Spirit rover landed in Gusev Crater on Mars, kicking off a
mission planned to last 90-days. Two years later, Spirit and fellow robotic explorer Opportunity, which landed Jan. 24, 2004, are still going strong. Each Martian morning, the rovers receive a full day of instructions. They operate autonomously all day, and transmit the resulting images and data back to earth at the end of the day. The operations staff lives on "Mars time", each day is approximately 24 hours, 40 minutes. Planning is done during the Martian night, and there are strict deadlines for the uplink of new rover instructions. The places where NASA scientists have used Java for this mission is all on the groundside right now. They have created this collaborative command and control system called Maestro, which does this combination of data visualization, collaboration, command and control. In the current mission, the software used on the ground to create commands to send to the Rover, and the control software that actually sits on the Rover, are two very different systems with nothing in common whatsoever. What's being used up on the Rover is a well-known real-time operating system from Wind River Systems. Golden Gate is being worked upon which will create code that would replace the proprietary APIs and real-time operating system code (Wind River) in future missions. Sun Labs, Carnegie Mellon-West, a campus of Carnegie Mellon located near Sun Labs in Silicon Valley, and the Jet Propulsion Labs (JPL) are working together on this project. Work is being done on implementation of a software architecture developed at JPL called MDS, or Mission Data System. Greater commonality is being created between the flight system on the Rover and the ground system -- all essentially using Real-Time Specification for Java (RTSJ), and a more seamless development environment for the entire system. Java language pioneer James Gosling calls the ground-side control system that sent signals to the Mars Rover,” the coolest Java app ever". Mars Exploration Rovers Mission
Twin robot geologists SPIRIT and OPPURTUNITY search for past running water. Jet Propulsion Laboratory, landed on Mars on in January 2004 with Java on board: a Java-based operating system developed by JPL and Wind River. On the ground, NASA scientists used Java to create a collaborative
command and control system called Maestro, which provides 3-D reconstructions of the Mars terrain. For the command and control system, big parts of it are this rather large Java application. There are a lot of parts involved in this. The Rover itself has a computer onboard. There's no Java in that computer now. But on the ground-side, there are a number of parts of the whole command and control chain that goes out to the Rover that's done in Java. A combination of software and a fivefoot touch screen, MER (Mars Exploration Rover) Board assists science and operations teams during MER surface operations. The tool enables teams to retrieve, view, share and annotate mission data and rover images from anywhere at the Jet Propulsion Laboratory's mission control, in real time. The board provides an immersive work environment while its touch screen literally puts information at the team members' fingertips. With the help of Java technology, Earthlings can now explore Mars with the program that NASA scientists use to operate the Spirit rover! The Maestro project, from JPL, allows you to navigate the 3D world of Mars from your desktop computer using advanced Java technologies including Java 3D and Java Advanced Imaging. Eight cameras aboard the rover provide a 360 degree view of the terrain. The Mission Data System (MDS) is an architecture that abstracts the problem of controlling such systems. All elements must talk to one another. In earlier days MDS lacked the realization that it will execute on a real computer with all the limitations that digital computers have. For instance, threads, execution models, scheduling problems, interrupts, IO, and so on must be taken into account, along with serious time constraints. Collaborative Information Portal The Collaborative Information Portal (CIP) is a key component of the Mars Exploration Rovers Mission. CIP is a tier enterprise system built on Java and Oracle technologies that enables mission managers and scientists and engineers worldwide to display and collaborate on data and images downloaded from Mars and to view mission schedules, reports, and clocks.
The CIP went through a series of intensive, realistic operational readiness tests at the Jet Propulsion Laboratory and has played a key role in helping NASA's twin robotic Mars Exploration Rovers, Spirit and Opportunity, complete their missions successfully since landing on Mars in January, 2004. CIP uses the following three tier architecture:
Client JAVA technology-based application (JFC/Swing). Middleware server Web services, Enterprise JavaBeans (EJB) technology, Java Message Service (JMS).
Data Repository Database (Oracle) File Monitor (JAVA technology-based application) Data loader (JAVA technology based application) Oracle database is used to store metadata that references images and streaming
media stored in the file system: the database is used to store such things as tags that identify geographical location or search criteria (such as panoramic angle or time-of-day). Walton also described a custom built project management system that sits on top of NASA’s enterprise Oracle database that uses gant charts and scheduling modules to track project progress.
R T S J (Real Time Specification for JAVA)
The Sun Java(tm) Real-Time System (Java RTS) is the first conformant commercial implementation of Java Specification Request (JSR) -001, the Real-Time Specification for Java (RTSJ). Java RTS enables developers of real-time applications to take full advantage of the Java language ecosystem while maintaining the predictability of current realtime development platforms. This means that real-time components and non-real-time components can coexist and share data on a single system. Java RTS also brings the world of real-time programming to developers currently using Java technology to create applications that reach into the physical world. For either audience, Java RTS offers a very predictable, lowlatency, modern software architecture that can bring the core benefits of Java technology to developers whose applications interact with the physical world. Many developers typically think that "real-time" means "really fast" as in moment to moment interaction with the system. While we work to keep Java RTS fast, real-time in the RTSJ context means "the ability to reliably and predictably respond to a real-world event". So "real-time" is more about timing than speed, per se. The ability to program a real-time solution means that developers need the appropriate support from the system in order to reason in a temporal fashion. Said more formally:
Real-Time application development requires: An API set and semantics which allow developers to correctly reason about and control the temporal behavior of applications
RTSJ /Java RTS Provides:
An API set, semantic JVM enhancements, and JVM-to-OS layer modifications which allow Java developers to correctly reason about and control the temporal behavior of Java applications. Java RTS Features and Benefits
New Real-Time Threads, Scheduling, and Synchronization The RTSJ introduces the concept of two new threads: real-time threads and no-heap real-time threads (a thread which cannot be interrupted by garbage collection). These threads offer more precise scheduling than with standard Java threads. They have 28 levels of priority and unlike standard Java, their priority is strictly enforced.
Real-time threads are synchronized and are not subject to so-called priority inversion situations where a lower priority thread has a block on a resource needed by a higher priority thread and thus prevents the higher priority thread from running. Rigorous testing with partners has shown that Java RTS completely avoids any priority inversion - which is crucial for mission-critical applications.
New Memory Management Schemes The RTSJ defines two new types of memory areas that allow real-time applications to avoid unpredictable delays commonly caused by traditional garbage collectors: 1. Immortal memory holds objects without destroying them except when the program ends. This means that objects created in immortal memory must be carefully allocated and managed. 2. Scoped memory is used only while a process works within a particular section, or scope, of the program such as in a method. Objects are automatically destroyed when the process leaves the scope. This is a useful feature akin to garbage collection in that discrete creation and deletion is not required as in the immortal memory case - but the process must be sure to exit the scope to ensure memory is reaped. Neither immortal nor scoped memories are garbage collected, so using them avoids problems of GC interference.
Asynchronous Events Handling & Asynchronous Transfer of Control The RTSJ provides two mechanisms for asynchronous communication: asynchronous event handling, and asynchronous transfer of control. Asynchronous event handlers deal with external events (known as "happenings") which can occur outside the JVM. The RTSJ is unique in that it allows developers to schedule the response to asynchronous events in order to avoid disrupting the temporal integrity of the rest of the real-time application. Asynchronous Transfer of Control (ATC) provides a carefully controlled way for one thread to interrupt another thread in a safe manner.
Time & Timers
The RTSJ specifies several ways to specify high-resolution (nanosecond accuracy) time including absolute time and relative time.
Direct Access to Physical Memory While still maintaining security protections, the RTSJ allows direct access to
physical memory. This means that device drivers can be created written entirely in Java. Previously, Java applications had to link to native code to communicate directly with the hardware. The Jet Propulsion Lab doesn't want a bunch of processors on the Rover. They want one processor, but they will have both real-time and non-real-time code and both soft and hard real-time code on the same system. The RTSJ and any conformant implementation do not change the semantics of the Java Language Specification or the Java Virtual Machine Specification. In physical systems that make use of RTSJ code, a lot of non-real-time Java code will have to be written as well, another opportunity for Java programmers. In my opinion, there's no way that the code for the 2009 mission for the Mars Science Laboratory (MSL) will be written in C++. The RTSJ APIs, methods, and classes are fully detailed and contain sample code that demonstrates the important concepts and techniques. Additionally, you will find coverage of such specific topics as: - Scheduling - Memory management - Synchronization - Asynchronous event handling - Asynchronous transfer of control - Asynchronous thread termination - Physical memory access A Modern Software Platform for Real-Time Embedded Systems
Golden Gate Project Overview Sun Labs and NASA/JPL (Jet Propulsion Laboratory) scientists are working together on a project to implement JPL's Mission Data System software architecture using the Real-Time Specification for Java development platform. MDS implemented in RTSJ is targeted for the Mars Smart Lander mission, launching on October 25, 2009. Physical devices (vehicles, spacecraft, manufacturing equipment, etc.) are currently being designed with the assumption that software will play a much larger part of the device's control aspect. Traditional design of these devices has relied primarily on analog electrical, hydraulic, and pneumatic control structures but various trends have caused current designs to depend more on software for control. Many organizations have begun, with the help of software community, to create software architectures for these next generation devices and are looking for the most advanced software development platforms capable of supporting the rigorous physical, temporal, and complexity demands necessary for device control.
NASA's Maestro project is the mission-critical spacecraft planning tool (with visualization, simulation, timeline, plan construction) as well as a public engagement tool It is also a lightweight platform for developing mission-related software, and the interface for all the Mars rovers. The old GUI interface looked remarkably Eclipse-like with various views, such as overhead maps, lists of images, image viewers and timeline editors, so it was a natural fit with the Eclipse RCP GUI perspectives and views. The motivations leading to Eclipse: Java for platform independence, an application framework to allow retiring large portions of their in-house code, and a component framework to allow custom deployments for different users. The Eclipse framework allows teams from various areas of NASA to contribute views that are packaged together to create a seamless GUI for the user. For example, a Plan Editor for rover operations created by NASA JPL can co-exist in the same Eclipse perspective with a graphical timeline editor created by NASA Ames Research Center, as well as several other views created by shared teams. NASA is using a wide variety of open source and commercial products with Eclipse. In the Eclipse RCP (Rich Client Platform) runtime environment, they use:
Java Advanced Imaging, Draw2D and (planned) GEF for graphical views. (planned) Eclipse's BIRT for reporting. Missions generate a huge amount of data, and planning requires reports and charts. Log4j for logging. Castor XML and Xerces-J for XML handling and persistence. Hibernate, PostgreSQL and PostGIS for database access. The mission workstations run Linux, however, Windows, Mac OS-X and others are in use elsewhere, and they want to support those platforms as well.
• • • •
In the Eclipse IDE environment, they use:
• • •
JIRA, Confluence and CVS for team interaction XML Buddy JUnit and CruiseControl for testing and integration builds.
NASA has formed the Ensemble Project, an open architecture for development, integration and deployment of mission operations software and is based heavily on Eclipse RCP. It has been adopted by multiple teams from JPL for science operations, simulation and modeling and from Ames Research Center for Timeline GUIs and automated planning. The Ensemble project is expected to be used on the 2007 Phoenix mission and the 2009 Mars Science Laboratory mission. The Java 3D API Specification The Java 3D API, an exciting new part of the JavaMedia suite of APIs, enables the creation of three-dimensional graphics applications and Internet-based 3D applets. It gives developers high-level constructs for creating and manipulating 3D geometry and for building the structures used in rendering that geometry. With Java 3D, developers can efficiently define and render very large virtual worlds. Moreover, in line with Java's "write once, run anywhere" vision, applications written using Java 3D can run on a wide range of platforms and systems and are adapted for use on the Internet. Rover Hardware Because of the limits of mass on the rover, the hardware needs to be versatile. For example, past missions used large fish-eye cameras to check the sun's position for the purpose of calculating position, but now small pan cameras perform this task and take other useful
photographs. Solar panels charge the batteries that power the heater, essential for the equipment to survive the night temperatures. Eventually, if no other equipment fails, the dust build-up on the solar panels will reduce their effectiveness and the rover will break. Already, the two rovers have exceeded their projected 90-Martian-day life spans. An extendable arm hosts additional equipment. One example is a Rock Abrasion Tool (RAT). The RAT lightly rubs the surface of a rock to clean it, and then slowly, over a matter of hours, grinds into the rock to take samples. There are no burrowing instruments, although there is an ice borer that a subsequent Phoenix mission will carry. The Phoenix mission aims to repeat the failed attempt to explore the polar ice caps. Work has already begun on this project. The rover also carries several cameras used not only for positioning and photography, but also in surface navigation and descent. Speaking of descent, the landing required a four-minute entry burn to slow the rover. A parachute opened, lowering the rover on a bridle. The release triggered a few meters above the ground, and the craft bounced to the ground. The total descent took six minutes to slow in speed from 5.4 kilometers per second to zero. Communication Bandwidth is limited by Earth rise and set, and distance. Early in a mission, there might be one to five sessions per Martian cycle, with about 30MB relayed through orbiters and JPL's Deep Space Network. This program drives it through the Martian day while there is no contact with Earth. The scientists use multiple images of the rover's surroundings to generate a view for planning. There are several possible outlooks, including an immersive 3D view, photos with mineralogical test results superimposed on the landscape, and color highlighting showing the range of the arm. These diagrams help to create plans and simulations. Software The software that drives the mission is known as Science Activity Planner (SAP). It has three roles: mission operations, public outreach, and generating next-generation technologies. NASA has made a version of the visualization software used to plan the daily mission available to the public.
Maestro relies upon the newly-opened Java 3D, which itself runs on top of lowlevel graphics libraries and offers immersive display support. SAP uses additional Java tools, including Xerces-J, Java Expression Parser (JEP), Java Complier Compiler (JavaCC), Xalan-J, Junit, and others. In addition to this cornucopia of Java, applications such as MySQL, Linux, CVS, and Emacs reduced the workload of the team. Open source software (OSS) was vital to the success of the project because it conserved team resources. In combination with commercial, offthe-shelf (COTS) hardware, open source software reduced costs, simplified the overall system design, and allowed access to outside experts. Using OSS at NASA Historically, NASA has not used OSS for mission-critical development, although there have been isolated incidents of its use. For the Mars mission, administrators decided that open source systems had reached a sufficient level of maturity. The fact that the team was small and experienced in using OSS tipped the balance in favor of an introduction of OSS. There were several concerns to overcome before this happened, however. Marsette Vona named several of the objections and the responses to them. To begin with, some wondered why the software was free if it was good. Another concern was that OSS developers might quit the project. To these, the team countered that non-monetary motivations drive many developers, and that a person quitting was also a risk of in-house and commercial software. In fact, OSS software reduces the risks associated with replacing developers, because someone else will still have access to the code.
CONCLUSION We all know how JAVA emerged from the hands of Gosling’s team who were trying to program an application which could work efficiently on electronic devices. It was a success and soon java spread over the world due to its unique feature, platform independency to
be used in web applications. Now JAVA and its rich set of API are even helping us drive to our next planet MARS. Now we have two rovers on mars each exploring the red planet. These are working efficiently since January 2004 only with the help of the best ground control system powered by JAVA. Sun is working to implement java in physical systems like rovers and power plants .Sensing plays a key role in these projects. This could be considered a mile stone in the fields of Artificial Intelligence and Robotics. Now that Java has helped us get to Mars, who knows what "Java Everywhere" will mean in the future? REFERENCES Java™ Technologies, Web Services, and Mars A NASA Trip Report Joan Walton, Project Manager Elias Sinderson, Computer Scientist Ronald Mak, Project Scientist NASA Ames Research Center Brian Giovannoni Carnegie Mellon University Nov. 1999 Nichols report “Using Java for Flight Implementation” Interviews of – – Dr. James Gosling, creator of Java, Sun Microsystems Dr. Greg Bollella, lead of RTSJ, Sun Microsystems
Mars Rover Update with Dr. Steve Squyres, Cornell University Java Technology and the Mission to Mars By Dr. James Gosling www.sun.com www.java.com www.nasa.gov