240 likes | 634 Views
SPACE and Software Development. James Burk – Manager of PM – jamesb@exsilio.com. The First Computer in Space. IBM built the first computer used in space for the Gemini program, which enabled America’s first spacewalk and first two-person spacecraft.
E N D
SPACEandSoftware Development James Burk – Manager of PM – jamesb@exsilio.com
The First Computer in Space • IBM built the first computer used in space for the Gemini program, which enabled America’s first spacewalk and first two-person spacecraft. • It was designed to calculate spacecraft maneuvers such as orbit insertion and re-entry. It was more of an aid to the pilots than controlling the actual flight profile. (They still had to do the work.) Ed White – First American Spacewalk
pioneered Software Development *NASA is the United States government’s lead agency for space exploration. “Development of the on-board software for the Apollo program was an important exercise both for NASA and for the discipline of software engineering. NASA acquired considerable experience in managing a large, real-time software project that would directly influence the development of the Shuttle on-board software. Software engineering as a specific branch of computer science emerged as a result of experiences with large-size military, civilian, and spaceborne systems. As one of those systems, the Apollo software effort helped provide examples both of failure and success that could be incorporated into the methodology of software engineering. Even during the early 1960s, the cycle of requirements definition, design, coding, testing, and maintenance was followed…by software developers.” - From “Computers in Spaceflight: the NASA Experience”
Margaret Hamilton • Born 1936 in Indiana. Graduated with a Math degree. Was a working mother in the 1960s. Worked at MIT’s Draper Lab. • Lead Developer / Architect of the on-board flight software throughout NASA's Apollo Moon missions during the 1960s. • A true pioneer of software development including systems design, process modelling, formal systems modeling languages, operating system design, automated life-cycle deployments and overall automation, code re-use, open architecture techniques, software quality assurance and end-to-end testing techniques, error detection and recovery techniques, language-based correctness checks, and man-machine interfaces. WOW! • Published over 130 papers, proceedings, and reports about the 60 projects and six major programs she worked on. • She literally coined the term “Software Engineering” to legitimize her activities among the other engineering disciplines at NASA / MIT Draper Lab. Margaret Hamilton stands next to a stack of Apollo Guidance Computer source code.
In November 2016, Margaret Hamilton was awarded the Presidential Medal of Freedom(which is the highest honor in the U.S.) by former President Barack Obama.
Programming in the 1960s • Writing software meant punching holes in stacks of paper cards. • The “program” (stack of cards) were fed into a large mainframe computer (sometimes the size of the whole building floor!) • Running the program might take all night. Thus, debugging was hard. • After the program was finished, it was designed into the hardware. • A group of expert seamstresses would literally “sew” the threaded copper wire through magnetic rings. • This was known as “core rope memory” • 0 = the wire going through the ring • 1 = the wire going around the ring
Apollo Guidance Computer • Used on both Command Module & Lunar Module • Provided guidance, navigation and control functions. • The first computer with integrated circuits. • 2048 words (each word = 16 bits) of erasable magnetic core memory and 36,000 words of read-only (rope based) memory.
Apollo Guidance Computer vs. iPhone 6 • AGC had 2k of RAM, 32k of Storage, and ran at a blistering 1.024 Mhz. • Its OS was 16-bit with non-preemptive multi-tasking, could do up to 8 operations at once. Comparison to iPhone 6: • 16-bit OS vs. 64-bit preemptive multitasking (3.36B ops/sec) • # of Transistors - iPhone 6 has 130,000 times more • Clock Frequency - iPhone 6 is 32,600 times faster • Instructions/second - iPhone 6 is 80.8 million times faster • Overall Performance - iPhone 6 is 120 million times faster So an iPhone 6 could theoretically guide 120 million Apollo missions (launches or moon landings) at the same time! More reading: http://www.zmescience.com/research/technology/smartphone-power-compared-to-apollo-432/
Video: Apollo 11 – First Moon Landing • Clip of From The Earth To The Moon(a docu-drama mini-series produced by Ron Howard & Brian Grazer) • Shows accurately the minutes leading up to the first Moon Landing by Neil Armstrong and Buzz Aldrin using the Lunar Excursion Module (LEM). • The LEM was an engineering marvel and was the only component of the Apollo Program to never suffer a failure that significantly affected the mission. • Pay attention to the Alarms and how everybody reacts to them.
Video: Post-Watching Discussion • A 1201 error (Executive overflow - no vacant areas), and then a 1202 (Executive overflow - no core sets) flashed after Armstrong had mistakenly left one radar system on, while Aldrin used a second system to determine the distance to the ground. • The 120n errors were due to the computer doing too many things at once, and discarding the lowest-priority operations. This bug, which was traced to the guidance radar hardware, had never happened during a mission and only once during testing, but it was deemed too unlikely to necessitate a hardware redesign. • Neil Armstrong had his hand on the abort lever the whole time, but since he was such an experienced test pilot with ice in his veins, he didn’t lose his cool and never aborted the landing. Neil had earlier saved another mission (Gemini 8) by doing some quick problem solving during a critical malfunction when a thruster was stuck on and the craft tumbled. • Guidance Controller Steve Bales also kept his cool and issued several “GO” commands keeping the mission going. He was awarded the Presidential Medal of Freedom for this.
Comments from Margaret Hamilton “Due to an error in the checklist manual, the rendezvous radar switch was placed in the wrong position. This caused it to send erroneous signals to the computer. The result was that the computer was being asked to perform all of its normal functions for landing while receiving an extra load of spurious data which used up 15% of its time. The computer (or rather the software in it) was smart enough to recognize that it was being asked to perform more tasks than it should be performing. It then sent out an alarm, which meant to the astronaut, I'm overloaded with more tasks than I should be doing at this time and I'm going to keep only the more important tasks;i.e., the ones needed for landing ... Actually, the computer was programmed to do more than recognize error conditions. A complete set of recovery programs was incorporated into the software. The software's action, in this case, was to eliminate lower priority tasks and re-establish the more important ones ... If the computer hadn't recognized this problem and taken recovery action, I doubt if Apollo 11 would have been the successful moon landing it was.” • — Letter from Margaret H. Hamilton, Director of Apollo Flight Computer Programming MIT Draper Laboratory, Cambridge, Massachusetts, titled "Computer Got Loaded", published in Datamation, March 1, 1971
What Software Does for Space Exploration • Computer Assisted Design (CAD) of space hardware • Simulations of Missions for design, refinement, and training purposes. • Communications between Earth & spacecraft. • Operation of spacecraft (each one has a computer with firmware, OS, and applications that need to be maintained & patched) • Gathering and processing of data from space missions. • Image Processing (Hubble Space Telescope, Mars Missions, Other Planets & Asteroids) • Astronomy (computer models of the universe, Kepler mission) • Weather Forecasting
Why Specs are Important: Failure of Mars Climate Orbiter • Designed to orbit Mars and study its atmosphere, as well as relay telecom to a lander mission. • Launched December 11, 1998. • Communication lost during Mars orbital insertion on September 23, 1999. • The failure was traced to a software bug. • The software supplied to NASA by Lockheed Martin used U.S. units of force rather than the expected Metric units of force that were in the specification. • As a result, the spacecraft entered Mars orbit too fast, skipped off and burned up.
Space Launch System • NASA’s Next-generation Rocket. • Derived from Shuttle techs. • First mission planned for 2019. • Using Open Source Application Development Practices. • Enables Humans to Mars and other Interplanetary human missions.
Future Software applications for Space • “Interplanetary Internet” (Delay/Disruption Tolerant Networking) • Robotics & Artificial Intelligence (HAL from the movie 2001) • Astronomy - Finding another Earth-like planet. (Kepler, James Webb Space Telescope) • Creating new spacecraft / missions (SpaceX Mars Colonial Transporter)
Further Reading NASA Software • https://software.nasa.gov Space Launch System (SLS) SpaceX Mars Colonial Transport • Wikipedia • Youtube Interplanetary Internet • Wikipedia The Mars Society Historical • Computers in Spaceflight paper (from NASA History Archives) • Project Gemini • Margaret Hamilton | awarded Pres. Medal of Freedom | Wired Article | MIT Article • Apollo Lunar Module (LEM) • Apollo 11 Moon Landing • Apollo Guidance Computer • Apollo Guidance Computer code on Github | Article • Mars Climate Orbiter • Kepler Mission • James Webb Space Telescope