[Dprglist] The dead end of Artificial Intelligence

Murray Altheim murray18 at altheim.com
Tue Aug 4 03:13:10 PDT 2020

On 4/08/20 12:36 pm, David Anderson via DPRGlist wrote:
> Murray,
> Do you have a link for this?
> David
>> A few days ago the NASA Curiosity Rover took off for Mars, and onboard
> it'll be using more BBS technology than AI/Expert Systems technology. 
> Curiously.
Hi David,

My comment references a quote (below) that the AEGIS software on board
the Curiosity rover represents 20,000 lines of code of its total of
3.8 million, so the actual number is about half a percent.[5]

But I probably should clarify my remarks about Behaviour-Based Systems
or BBS in stating that from what I know of NASA robotics I rather doubt
that the Curiosity team have much *interest* in the behavioural aspects
of their robot OS. Individual researchers might, but NASA as an
organisation is primarily interested in scientific exploration, not
robotics per se, nor certainly any philosophical (or marketing) aspects
of robotics, under which the concept of "AI" seems to fall; i.e.,
robotics for NASA is simply a means to an end. All of the Mars rovers
have been designed primarily as tele-robotics platforms, basically to
put human eyes and remote-controlled instruments on Mars. So I'm kinda
mistakenly calling their rover OS a BBS, but do so as in it I recognise
some similar bones of say, what many of us are doing with our robots.

Curiosity has a task-driven, semi-autonomous operating system, whose
focus is on reliability, survivability, and autonomous handling of
low-level tasks such as obstacle avoidance. Then it's communications
and remotely activating its sensor systems. Choice of navigational
targets is done by NASA Mission Control (likely JPL, who I think
oversee the project), not the rover. There is a three axis IMU, a lot
of cameras, and a large number of complex sensor subsystems, but the
rover has no navigational "AI" (more on this below). If one compares
the hardware used in the various rovers this is not surprising, as
less than 75% of available CPU time is used for autonomous tasks like
navigation [1], and this must be considered within the environment of
what is a relatively small CPU. The tasks the robot are to perform are
likewise sent to the rover as "command sequences" by Mission Control,
and do not originate on the robot. Here's a description:

  "To decide which navigation method to use, NASA uses the Rover
   Sequencing and Visualization Program (RSVP), which is basically
   a Mars simulator. RSVP shows Curiosity’s current position on Mars,
   along with surface topology, obstacles (rocks), and so on. RSVP
   can then be used to plot a move (go forward 10 meters, turn 30
   degrees right, go forward 3 meters) — or to pick an end point,
   which Curiosity will dutifully, autonomously navigate to. To
   safely navigate Mars, Curiosity uses its Hazcams (hazard avoidance
   cameras) to build a stereoscopic map of its environment, identifies
   which objects are too large to drive over, and then plots out a
   course to the end point.

  "When Curiosity finishes its drive, it transmits a bunch of thumbnail
   images from its on-board cameras to NASA, which are then used to
   work out Curiosity’s exact location on Mars. This data is fed into
   RSVP, the next day’s movements are plotted, and so on and on." [2]

As to its available processors:

"The rover has four processors. One of them is a SPARC processor that
runs the rover's thrusters and descent-stage motors as it descended
through the Martian atmosphere. Two others are PowerPC processors: the
main processor, which handles nearly all of the rover's ground functions,
and that processor's backup. The fourth one, another SPARC processor,
commands the rover's movement and is part of its motor controller box.
All four processors are single core." [3]

The only "AI" on board Curiosity is a system called the Autonomous
Exploration for Gathering Increased Science (AEGIS) -- NASA's backronyms
are usually pretty tortured -- which is used to let the robot pick remote
targets and send them on to Mission Control. AEGIS "represents the first
time artificial intelligence was deployed on a faraway spacecraft" [4].
So basically it has a PixyCam2-style object classifier built into one of
its sensor component systems.

The AEGIS software represents 20,000 lines of code of the 3.8 million on
the rover. There's an article in The Atlantic discussing how AEGIS works
as well as some interesting aspects of the project, including the
controversy of even including "AI" on board Curiosity [5].

So far as I understand, NASA have always prioritised durability over raw
processing power or using the latest technology. If there's a state of the
art for NASA, it's in radiation hardening over anything else. The Perseverance
and Curiosity rovers both use what they call a Rove Compute Element or RCE
[6], and there is a primary and secondary unit on board each robot, the
latter a lower power recovery operating system. All of the previous Mars
rovers (Sojourner, Spirit, Opportunity), Mars Reconnaissance Orbiter, and
the SpaceX Dragon spacecraft all use the VxWorks ROS. The RAD750 used in the
Curiosity rover listed for $200,000 due not to performance improvements but
to radiation hardening [7].

In terms of software, the RCE is only semi-autonomous, i.e., it's designed
to be given tasks and be able to fulfill tasks within the Earth-to-Mars
communications window (4-24 minutes, currently about 13 minutes)

[7] Inside the Curiosity’s Brains

   "Even though Curiosity‘s computers are specialized for space use, the circuit
    board and operating system will be familiar to many. The CPU is a RAD750, a
    version of the IBM PowerPC 750, which was used in many computers from Apple,
    including the original iMac. The datasheet for the RAD750 states that the
    processor, “is the best space microprocessor available today by any selection
    criterion — performance, cost, availability, or flight heritage.”

    RAD750 radiation-hardened PowerPC space microprocessor

    On-board memory includes 256MB of DRAM and 2 GB of Flash Memory (~8 times
    as much as rovers Spirit or Opportunity), both with error detection and
    correction and 256kB of EEPROM. The microprocessor operates at up to 200
   megahertz speed, 10 times the speed of earlier microprocessors in rovers
   Spirit and Opportunity."

[8] Tech Specs

     * Radiation-hardened central processor with PowerPC 750 Architecture:
       a BAE RAD 750
     * Operates at up to 200 megahertz speed, 10 times the speed in Mars
       rovers Spirit and Opportunity's computers
     * 2 gigabytes of flash memory (~8 times as much as Spirit or Opportunity)
     * 256 megabytes of dynamic random access memory
     * 256 kilobytes of electrically erasable programmable read-only memory"


A good JPL-authored description of Curiosity's task-driven OS (as well as
lots of interesting bibliographic references) can be found here:

   Prototyping an Onboard Scheduler for the Mars 2020 Rover
   Gregg Rabideau and Ed Benowitz
   Jet Propulsion Laboratory, California Institute of Technology, Pasadena, CA

...and also check out NASA Mars Exploration Home [9], which has lots of related
resources, including a "Free Drive" where you can drive a simulated rover across
a simulated Martian landscape. Kinda fun, almost no danger.

It'd be lovely if someone from NASA or JPL could correct any misunderstandings
or mistakes in what I've written above, but I think that's the gist of it.




[1] Comparison of embedded computer systems on board the Mars rovers (Wikipedia)
[2] How does NASA drive Mars rover Curiosity?
[3] Curiosity (rover) on Wikipedia
[4] Curiosity Rover: Facts and Information
[5] The Mars Robot Making Decisions on Its Own : Thanks to artificial-intelligence
      software, the Curiosity rover can target rocks without human input.
      Marina Koren, 23 June 2017, The Atlantic
[6] Mars Curiosity Rover : Brains (NASA)
[7] Ever Wish You Had a Backup Brain? The Mars Rover Has One
[8] The Mars 2020 Rover's "Brains" (NASA)
[9] Mars Exploration Program (NASA)
Murray Altheim <murray18 at altheim dot com>                       = =  ===
http://www.altheim.com/murray/                                     ===  ===
                                                                    = =  ===
     In the evening
     The rice leaves in the garden
     Rustle in the autumn wind
     That blows through my reed hut.
            -- Minamoto no Tsunenobu

More information about the DPRGlist mailing list