What "Brain" should I chose for my robot?
December 11, 2013
I am considering a more advanced "brain" for my Service Droid robot. I know I could use the computer to do all the advanced computing and relay commands to the robot, but if possible, I would like to have an integrated system. So far, I see 3 variants:
1. Raspberry Pi + webcam (+ screen?)
2. Android phone with integrated front camera
3. Android tablet (4.3" screen) + OTG adapter + webcam
At the moment, I do not have any of them, although I have a Galaxy S II Android 4 phone I could try to use before I commit to any new purchases. So, let's talk about each variant.
1. I don't know much about the Ras-Pi, other than it runs Linux and has some GPIO pins available, as well as I2C and USB interfaces ready to go. But this may become the most expensive route, because I would like to have a screen to do different stuff and in the end as a "face" to my robot. The Pi should either have WiFi integrated or I would need to add an adaptor. Ras-Pi is a modular system, so when you need to add lots of modules it becomes pretty expensive.
2. I found a 3.5" Android phone for around $50 on DX. I am not sure I could connect a webcam to an Android phone, but I could use the integrated front (screen side) camera. But it will require me to install the phone on the head, which will add some weight. The phone has integrated Bluetooth, so I could use that to control the Arduino on the robot. Cheap does not mean powerfull, but even a cheap phone should have comparable performance with the Ras-Pi.
3. I saw a 4.3" tablet on DX for under $50. It does not have any integrated cameras, but there is another tablet (pink) that has dual 0.3k cameras. These tablets do not have Bluetooth. But, I read on the forums that with an OTG cable adapter, you can connect almost anything to the tablet, so in theory, I could use a USB (powered!) hub after the OTG adaptor and connect a webcam and the Arduino directly. This would allow me to install the tablet on the slanted "chest" plate of the robot and the webcam on the head, along with a US sensor. Also, a direct cable connect to the Arduino eliminates the lag from the Bluetooth connection.
Since I will have to learn how to program any of these devices, or at least to mod some other's people code to adapt it to my robot, I would like to know which will be easier, Linux or Android and then what language, Phyton, Processing, other?
What do I want to do with the brain software. I want to have some mapping abilities, voice recognition + TTS, vision recognition to be able to recognize people and objects, use the screen to display moods andother useful information, debugging, etc. I would probably use the WiFi to update the code, to have a video feed, and to have remote control. The processing power will probably not be enough in any of the variants for all of this stuff, so I'll do what I can.
That being said, I need advice on which variant will be easier to learn and develop further. Thanks.