Hamilton, Schmidt, Sears, Latts, and Hall Talking Around A Table

In Their Own Words: Norm Sears on Apollo Software 101

Norman Sears

Norm Sears was the Technical Director of the Primary Guidance, Navigation and Control System (PGNCS) at the MIT Instrumentation Lab, during the Apollo missions. Here he provides a bird's eye view on the pioneering software development that took place at the lab (now Draper) during this revolutionary decade.

"The MIT Instrumentation Laboratory was responsible for the design and development of the Guidance, Navigation and Control systems (GN&C) used on both the Command Module (CM) and Lunar Module (LM) spacecraft in the Apollo Program. The objective of the Apollo Program was to land men on the moon, and return them safely to earth by the end of the 1960’s decade. The software design and development was a major element of the GN&C system, and represents an important achievement in the success of this program.

The Navigation function of the GN&C can be defined as determining the spacecraft position in a designated coordinate system with a time reference, and then maintaining the spacecraft position as time advances using appropriate celestial mechanics equations. The spacecraft velocity vector (magnitude and direction) is also required for this determination. The combination of the spacecraft position and velocity vectors completely define the navigation function and are commonly referred to as the vehicle “State Vector’.

The Guidance function determines the required change in the vehicle’s velocity vector to establish a new trajectory required for changing mission phases such as lunar orbit establishment, powered landing, and spacecraft orbital rendezvous.

The Control function executes the desired velocity vector change called for by the Guidance function. This is done by controlling the spacecraft attitude and then controlling the timing and duration of the spacecraft propulsion system thrust period.

The software design and development for the above functions involve the generation of the required equations and algorithms to accomplish the required GN&C functions. These equations must then be coded or programmed in the on board Apollo Guidance Computer (AGC). The operation of the AGC requires an extensive software suite of its own which controls the computer running operation, such as the executive program, and additional error detection and recovery programs to insure reliable computer operation.

Extensive software testing (debugging) is required to establish the capability of the GN&C operation. This is followed by even more intensive system verification which assures proper operating capability for all mission phases. The GN&C system had to achieve a successful landing on the moon, but also safely return the crew to earth. This latter requirement of safe return to earth had to be provided at any point in the mission where the landing attempt had to be stopped (aborted) due to equipment failures, crew operating errors, or unexpected emergencies. These safe return requirements at virtually any point in the mission greatly increased the required verification effort over that of the nominal lunar landing mission."

Crew training in using the AGC and its associated software were additional design efforts involving extensive support for a variety of mission simulators at various NASA centers. During the actual Apollo flights or missions, GN&C system operation was monitored for support when needed.

The MIT lab GN&C system was used on 18 Apollo missions. The first two of these missions were unmanned flights where the system controlled the atmospheric reentry. The following 11 flights were manned missions supporting the lunar landing objective. Six of these missions successfully landed on the moon and returned. Four Skylab earth orbiting space station flights followed the lunar landing efforts. The final program mission was the Apollo Soyuz Test Project which involved the cooperative U.S. and Russian earth orbit satellite rendezvous and crew exchange.

The Instrumentation Laboratory Apollo GN&C design effort spanned 13 years (1961 – 1973) and involved 26 official software releases. In the 18 missions, 8 involved software for both the CM and LM spacecraft."