Traditionally, instrument command and control systems have been highly specialized, consisting mostly of custom code that is difficult to develop, maintain, and extend. Such solutions are initially very costly and are inflexible to subsequent engineering change requests. Instrument description is too tightly coupled with details of implementation.
The Instrument Remote Control (IRC) project addresses these problems. NASA Goddard Space Flight Center and AppNet, Inc. are developing a very general and highly extensible framework that applies to virtually any kind of instrument that can be controlled by a computer (e.g., telescopes, microscopes and printers).
Our initial prototyping effort was targeted for HAWC (High-resolution Airborne Wideband Camera), a first-light instrument of SOFIA (the Stratospheric Observatory for Infrared Astronomy). A production-level application of this technology is for one of the three candidate detectors of SPIRE (Spectral and Photometric Imaging REceiver), a focal plane instrument proposed for the European Space Agency's Far Infrared Space Telescope. The detectors are being developed by the Infrared Astrophysics Branch of NASA/GSFC.
The Advanced Architectures and Automation Branch (Code 588) of NASA / GSFC has defined the following goals for the Instrument Remote Control project:
A key aspect of the object-oriented architecture, implemented in Java, involves software that is driven by an instrument description. The Astronomical Instrument Markup Language (AIML) is a domain-specific implementation of the more generalized Instrument Markup Language (IML). The software architecture combines the platform-independent processing capabilities of Java with the vendor-independent data description syntax of Extensible Markup Language (XML), a human-readable and machine-understandable way to describe structured data. IML is used to describe command sets (including parameters, datatypes, and constraints) and their associated formats, telemetry, and communication mechanisms. The software uses this description to present graphical user interfaces to control and monitor the instrument.
Recent efforts have extended to command procedures (scripting) and representation of data pipeline inputs, outputs, and connections. Near future efforts are likely to include an XML description of data visualizations, as well as the potential use of XSL (Extensible Stylesheet Language) to permit astronomers to customize the user interface on several levels: per user, instrument, subsystem, or observatory-wide. We also plan to provide instrument developers with customized XML editors and other tools that facilitate easy instrument description and design iteration.
The XML excerpt below defines a single ASCII ``Move'' (telescope) command, which consists of three arguments (RA, DEC, and Epoch). RA and DEC use the same IRC-defined datatype, but have a different range of values. Epoch is an unconstrained floating point value.
<Command name="Move" > <Argument name="RA" type="gov.nasa.gsfc.irc.datatypes.Sexagesimal" > <ValidRange low="00:00:00.0" high="23:59:59.99" /> </Argument> <Argument name="DEC" type="gov.nasa.gsfc.irc.datatypes.Sexagesimal" > <ValidRange low="-89:59:59.99" high="89:59:59.99" /> </Argument> <Argument name="Epoch" type="Float" /> </Command>
In general, each Command has an associated RecordFormat which describes how the user's input will be formatted for transmission to the instrument.
<RecordFormat name="Move" size="-1" ordered="true" terminator=" " attributeSeparator=" "> <Format name="RA" format="%s" header="RA=" /> <Format name="DEC" format="%s" header="DEC=" /> <Format name="Epoch" format="%.1f" header="EPOCH=" /> </RecordFormat>
The above command and its associated format result in the following command string being sent to the actual instrument.
Move RA="21:05:54.98" DEC="-12:50:07.98" EPOCH=1950.0<CR>
The GUI screen that is created by the Java framework from this XML description appears in Figure 1.
Binary commands, convenience commands, command procedures (using Python and JPython), complex telemetry, DMA connections to an instrument, extremely fast data rates (up to 15 MB/sec), and support for a Programmable Signal Generator (using an XML version of SCPI standards) have also been implemented, as described on IRC Web site.
NASA/Goddard IRC website (prototype, papers, presentations, DTD):
NASA/Goddard XML for Astronomy website:
Stratospheric Observatory for Infrared Astronomy (SOFIA):
Sall, K. Ames, T. & Warsaw, C. 1998, in ASP Conf. Ser., Vol. 172, Astronomical Data Analysis Software and Systems VIII, ed. D. M. Mehringer, R. L. Plante, & D. A. Roberts (San Francisco: ASP), 103, NASA's Instrument Control Markup Language
St. Laurent, S. 1999, Inside XML DTDs: Scientific and Technical, 300-309
St. Laurent, S. 1999, XML: A Primer, Second Edition, 294-297