QUESTION: What type(s) of CPU does the rover have? How fast is it? How much memory does it have? What other storage devices? Does the software on the Rover include a model of the Rover (for things like movement, orientation, power management, ...) or are these things handled seperately at a lower conceptual level? How does the Rover know its location and orientation? What type of model does it assume it lives in (i.e., flat glid, flat hexgrid, flat 2 dimensional, 3 dimensional, etc)? ANSWER from Jake Matijevic: The 'Sojourner' rover has only a single CPU used in its operation. The computer is an 80C85 with a 2MHz clock rated at 100KIPS. It can address 64K of memory. The computer uses, in a 16Kbyte page swapping fashion, the memory provided in 4 different chip types: Size (Kbytes) Type Function 16 PROM, Harris 6617 Boot code and 'Rover-Lite' backup code 64 RAM, IBM 2586 Main memory 176 5, SEEQ 28C256 Programs, patches and 32Kbyte chips nonvolatile data storage 512 Micron MT1008 RAM Temporary data storage At boot up or upon reset the computer begins execution from the radiation hardened PROM. The programming stored in PROM loads programs into the radiation hardened RAM from non-volatile RAM. Program execution proceeds from the RAM. As commands are executed, other programming in non-volatile RAM is required and then swapped into the RAM for execution. To prevent excessive thrashing, some programs are executed from non-volatile RAM. The software on the rover does not have explicit kinematic, dynamic or functional models. However, the software does contain tables, constants and equations which are derived from experience in performance with the vehicle and embody predictions (for example) for use in power and thermal management. The rover maintains an estimate of distance (from the lander) and orientation. As it drives, it updates distance by tracking wheel revolutions using encoders which count motor shaft revolutions. An average of the values derived from the six wheel encoder measurements is used to determine distance traveled. A gyro is used to measure changes in orientation. Distance and orientation estimates are referenced to a coordinate system centered at the lander. Once per day, the lander cameras image the rover. Measurements derived from this image provide an update which is given to the rover as part of its daily command load. The on-board rover estimators update the estimate in distance and orientation during traverses between daily commanded updates. There are no assumptions concerning terrain modeled within the rover software. By the use of accelerometers, one aligned on each axis, the rover knows its orientation to the gravity vector on the surface. All other measurements and checks of position of rover components (e.g., bogies, wheels, etc.) are developed from sensor measurements. --Jake Matijevic The ANSWER comes from Steve Stolper on July 14, 1997: The lander and rover software was written in the 'C' programming language. The lander also runs a real-time operating system that provides a multi-tasking environment. Many programs share the CPU on the lander. - Steve