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