My anticipation for controlling the robot is to use multiple Raspberry Pi's that all serve a specific role. There is no reason it has to be multiple Pi's, but since they are low powered they probably can't do everything on a single unit.  We can better think of the different components as modules that can be run on the Pi with the most available processing capability... maybe a control unit can spin up the services as required on a suitable Pi unit. Some functions will "need" to be run on a certain Pi, for example a Pi connected to a sensor is the only Pi that can read the values from that sensor.  Maybe there will need to be some specific uni-role Pis and then some more generic Pi's for "decision making" and "information processing". I envisage the following Pis:
  • Head
    • Vision - Web Cam, Radar, Kinnect (this will need something more powerful than a Pi)
    • Sound processing
      • Sensing and positioning sounds
      • Processing and identifying the sounds
      • Raising Alerts based on the sound (the following actions will be managed from a Control Unit that picks up the "emergency alert", not this sound processing Unit)
        • If a large bang and close by then raise an "emergency" alert and divert power to further identify the sound
          • Move the vision sensors to look at it
          • Identify if there is a danger
            • If not, 
              • "Remember" that sound profile and that a large bang nearby from a balloon popping is not dangerous
              • Carry on with previous task(s)
            • If so
              • Take precautionary action
                • Protect sensitive areas
                • Move away
                  • Establish where to move to
                  • Is it safer?
                    • Yes
                      • Then move
                    • No
                      • Stay and take the hit
    • Vocal processing for audio feedback
    • Control
      • Decide what actions to be taken to increase the "happiness quotient"
      • Respond to emergency alerts
      • Request movement / action from motor controls
    • Emotional engine
      • Monitor "happiness quotient" and individual factors affecting it
      • Raise alerts if "happiness quotient" drops below a certain threshold
      • Raise alerts if any individual factor drops below a certain threshold
        • Such as power / energy levels drop below a certain level
          • E.g. When the battery runs low, raise an emergency alert and the control system should dicate the most important action is to find food (power) 
  • Body
    • Sensor input(s)
      • Touch
      • Vision / Radar
      • Sound
      • Smell
      • Temperature
      • etc
    • Central nervous system
      • Spatial Awareness
        • Process sensors inputs (vision, sound, touch, etc) to build an image of the world around
      • Process all sensory input and fire alerts if something needs attention
        • Use spatial awareness to combine inputs and deduce if something needs attention, such as the sound of a car and the sight of it getting close could be impending danger - raise an emergency alert
    • Motor control
      • Move something forwards / backwards / left / right / around
      • Move an arm
      • etc