Nasa Explores Eclipse Rich Client Platform
Jeff Norris and Mark Powell of NASA's Jet Propulsion Laboratory gave a fascinating presentation at EclipseCon regarding NASA's adoption of the Eclipse Rich Client Platform for Mars rover mission planning software.
Rover Operations - 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. This would have seemed great during college days, but it gets old after a while for those that have families, and on days when they're going to bed just as the sun is coming up.
Planning is done during the Martian night, and there are strict deadlines for the uplink of new rover instructions. The instructions are transmitted through JPL's deep space network to the Mars orbiter, and relayed to the rovers.
NASA's Maestro project is the mission-critical spacecraft planning tool (with visualization, simulation, timeline, plan construction) as well as a public engagement tool (students get hands-on experience with a similar interface to that used by planners.) 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. They went looking for an application framework, and got an IDE, too.
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 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.
(Jason Fox, Ken Rabe, and I-Hsiang Shu also contributed to NASA's presentation.)