Cray Systems, DAS House, Quayside, Temple Back, Bristol BS1 6NH, England. Fax: 44-117-9290917 E-Mail: peat@craysys.co.uk
ABSTRACT. LEO is a highly configurable program which provides a real-time display of spacecraft orbital data. It was originally developed to serve as a control room "big screen" display, but its field of application has now spread much wider to include simulation, education and general hobby interest. This has been possible because the software runs under Microsoft Windows (3.1 or later), is highly interactive, and has only modest hardware requirements. Furthermore, the architecture of the program, which is based upon Microsoft's ActiveX technology, enables its components to be easily reused. The program offers a number of different types of display window, showing graphical representations of spacecraft orbital positions and data in alphanumeric form. It is currently being used operationally at both the European and German Space Operations Centres.
LEO began life in early 1993, as the result of the company's success with the Visim program (see Ref. 1). Visim was developed by Cray to display orbital and attitude information graphically on DEC workstations. It was developed initially with company funding and subsequently sold to the European Space Operations Centre (ESOC) in Darmstadt, Germany.
Visim's success inspired the author to investigate how feasible it would be to develop a program with similar capabilities, but running on the ubiquitous personal computer. The low cost and ready availability of this kind of hardware would mean that the potential market could be much larger than for Visim, which only runs on more expensive workstations. The processing capabilities of PCs was found to be more than adequate to allow a real-time display of orbital data to be generated. It was decided to develop a prototype program to show the orbital position of the Space Shuttle during the Spacelab D-2 mission which was to be launched in April 1993. The program was finished in time for the launch of Spacelab D-2, and was run on many PCs at the German Space Operations Center (GSOC). However, due to the arrival of the program just a few days before launch, it was decided not to use it in the main control room.
The programs good reception at GSOC prompted Cray to develop it further, and version 1 was sold to ESOC for its first operational use on the ERS-2 mission. GSOC have also subsequently used the program for the Express, Rosat and Euromir-95 missions. Version 1 only supported low-Earth orbit missions (hence the name), and had only fixed size windows, so, at the request of ESOC, version 2 was developed which added support for missions with high apogees, and was generally made more configurable. This is the current version which is the subject of this paper.
Figure 1. A typical LEO display configuration for the ISO mission
When the program is first started, the user is presented with a single Master Orbital Display window, showing a dummy spacecraft in a default, low Earth orbit. The user can then use the menus and pop-up configuration editor to specify the desired spacecraft and their orbital parameters, the number, type, size and location of additional display windows, and to customise the contents of each window. The general method of editing each window is to click within it using the right mouse button. This will bring up, in Windows 95 style, a context sensitive menu. All this information can then be saved to a configuration file for that particular mission, which can later be reloaded to recreate the display. There are several types of window that LEO can display, and these are now described individually. A typical LEO display is shown in Figure 1.
Master Orbit Display Window - There is always one and only one of these windows in each display configuration. Apart from the graphical orbit display it contains, it is used to store and save configuration files, and edit most of the parameters associated with each configuration. Most of the parameters are modified by means of standard "property pages" as shown in Figure 2.
Figure 2. One of the standard property pages used for configuration editing.
The most important properties associated with the appearance of the display are configured using the View property page. There are three display modes called Inertial, Earth Fixed and Map. The Inertial and Earth Fixed modes both use an orthographic projection. The difference is that the Inertial mode uses inertially fixed equatorial coordinates, whilst Earth Fixed mode uses coordinates fixed relative to the rotating Earth. Both these projections are visible in Figure 1. Map mode shows the spacecraft ground track plotted over a "flat" map of the Earth, see Figure 3 for an example. Another important property is the Best Fit mode. Enabling one of the Best Fit modes will cause the program to automatically generate a viewing point and scale coordinates so that the best possible display is generated for the given window dimensions and primary spacecraft orbit. There are two Best Fit modes which either generate a view from above the orbital pole, or above the spacecraft looking towards the Earth. In all cases, the display is completely redrawn every 10 minutes. Spacecraft positions are updated every 5 seconds. Alternatively, the viewpoint and axes can be setup manually using the View Controls window. There are a number of other display features which can be enabled or disabled using the View property page. These include;
The master display window is also used to define the spacecraft and their orbits. Any number of spacecraft can be configured, but only one can be defined as the primary spacecraft. The primary spacecraft is used by the Best Fit algorithms, and all the data displayed in the auxiliary windows is pertinent only to the primary spacecraft. Each spacecraft can have an icon associated with it, and these icons are standard Windows icons that can easily be created with common drawing tools. The orbit of each spacecraft can be entered in a number of ways using the Orbit property page. The easiest method is to import the orbital parameters directly from a file containing the standard NASA two-line element sets. This format is widely used and recognised with the space operations field, and these element sets are regularly updated and posted on various Internet servers (e.g. ftp://ftp.afit.af.mil/pub/space/). Alternatively, the orbit can be defined by entering either the Cartesian components of position and velocity at a given epoch, or the osculating Kepler elements. The orbits are propagated using the standard SGP4 and SDP4 models. The latter is used for "deep space" orbits, defined as those having a period greater than 220 minutes.
Ground stations are also defined via the Master window property pages. Any number of stations can be defined, and for each one the user can define the name, a 3-letter mnemonic which is actually displayed, and the latitude/longitude coordinates. An angle is also specified, which corresponds to the minimum elevation of the spacecraft above the horizon before it is considered to be visible.
Figure 3. A LEO display configuration demonstrating the Map display mode.
Auxilliary Orbit Display Windows - these are very similar in appearance to the Master Display Window, but it is only possible to edit properties associated with the view. For example, only the View property page is available for editing, and not those associated with ground station and spacecraft properties. Any number of these Auxiliary Orbit Windows can be defined for a given configuration, allowing the user to setup a display with several different types of view of the same orbit.
Ground Station Pass Window - is a table of current and upcoming ground station passes, giving the expected time of Acquisition of Signal (AOS), the duration of the pass and the time remaining until AOS. During a pass, the data is highlighted and the current elevation of the spacecraft above the ground station's horizon is displayed, together with the time remaining until Loss of Signal (LOS). As mentioned previously, these calculations are performed only for the primary spacecraft and are based on the currently selected minimum elevation. The user has the opportunity to set the number of passes to be simultaneously shown, and the font to be used. Additionally, the "look-ahead" time also has to be specified. This is the time into the future for which the program will search for passes, and is necessary because for certain types of orbit, such as geostationary, ground station passes either last for ever, or never occur.
Miscellaneous Orbital Parameter Window - this window shows various orbital parameters in alphanumeric form. The user can select which parameters are to be displayed form a list which includes height, speed, latitude/longitude, perigee/apogee height and lighting. In addition, the attitude parameters earth aspect angle and sun aspect angle are also available. These parameters were added for spin-stabilised spacecraft (such as Cluster), and give the angle between the spin axis and the Earth and Sun directions respectively. The spin axis orientation is entered via a dialog box which can be called up from the Master Display Window.
Clock Window - this is a simple window showing the current UTC time only. As with all the other windows, it is possible to select a font.
Logo Window - In view of the often prominent position of the orbital display, most organisation like to have their logo clearly visible for public relations purposes. The Logo Window allows the user to display any standard Windows bitmap file.
Although each display configuration can have only one primary spacecraft, several instances of the program can be run in parallel, each one corresponding to a different spacecraft, as the following figure shows.
Figure 4. Two instances of LEO running in parallel, showing the ERS-1 and ERS-2 missions.
Architecure - The core of LEO is the orbital display ActiveX control. ActiveX controls (formally known as OLE controls, or OCXs) are software components developed according to a Microsoft specification, and follow the Component Object Model (COM). This means that the control is an object at the binary level, and can easily be integrated with other software, regardless of what language that software is written in, and without recompilation being necessary. Currently, the most common method of employing ActiveX controls is to use them in visual development environments such as Visual Basic. Additionally, Microsoft is now strongly promoting ActiveX technology as a way to "activate" Internet Web pages. The orbital display control is written in C++, and contains approximately 8,000 lines of code.
The control is hosted by a relatively simple program written in Visual Basic. This has proven to be a very good compromise between the rapid development afforded by the Visual Basic environment, and the speed and power of C++.
Operating System - LEO exists in two versions - 16-bit and 32-bit. The former will run on any version of Microsoft Windows from 3.1 and upwards. The 32-bit version is compiled specifically for Windows-95 and NT, and offers superior performance to the 16-bit version.
Hardware Required - Due to the relatively large number of floating point calculations which have to be performed by the orbit and graphics routines, the program runs at an acceptable speed only on machines which have a floating point coprocessor available. This is not too restrictive, since most PC's sold today use the Intel 486 or Pentium processors with integrated math coprocessor. Depending upon the Windows version, LEO will run on machines with as little as 8 Mbytes of memory. Standard VGA (640x480 pixels) is sufficient, although the displays will obviously look better at higher resolutions.
The current version of LEO has clearly demonstrated the programs potential. However, one cannot afford to stand still, and the rapid increases in the power of PCs also means that new features can be built into this type of program that were previously unthinkable. Firstly, the possibility of displaying a real-time attitude representation opens up. Because the attitude of a spacecraft usually changes more rapidly and more unpredictably than its orbital position, this will necessitate some kind of real-time telemetry input to the program to keep the display up to date. Some progress has already been made towards this goal, and detailed 3-dimensional models of the Rosat and Mir spacecraft have been generated and can be rotated and rendered very rapidly using the OpenGL 3D graphics subsystem that is supported by Windows NT and future versions of Windows 95. A logical extension from low-Earth orbit to high-Earth orbit is support for interplanetary missions which should pose few problems. Indeed, this has already been done within a related product called MMORBIT, which is a multi-media mission display program that features a full animated run-through of the Galileo mission (see Reference 2).
LEO has demonstrated that a modern PC is an ideal platform for this type of application, and that expensive workstations are no longer required to generate a first rate display. The configurability of the program means that it can easily be used to support most, if not all, Earth orbiting missions, including those with multiple spacecraft. The future looks interesting, and the author is looking forward to develop the program further to make the most of the exciting new possibilities being opened up by the ever improving hardware and operating systems of modern PCs.
A free demonstration of the LEO display program can be ordered on diskette. This is a fully functioning version of the program, but has a limited lifetime. In order to run the program, a PC with the following minimum configuration is required,
To order the demonstration disk please e-mail the author, or write to him at;
Cray Systems,
c/o DLR GSOC,
Münchener Strasse 20,
D-82234 Wessling,
Germany
Please state whether you require the 16 or 32-bit version.
1. S. Mara, 'VISIM', JBIS, June 1993
2. C. Peat, 'MMORBIT - A PC Based Mission Display Program', JBIS, Vol. 48, pp. 279-283, 1995