Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Well, as far as discussions go, and sharing my shallow knowledge of ROS, here are a few collected thoughts to start steering this.

Voice or speech recognition is a very new and unexplored field; I've followed a recent discussion on the list and these are still early days. Might help understanding commands, but not simple instructions for instance. This was what the author himself said.

I am not 100% sure you will need to have Linux on the tablet, since Android tablets are essentially Linux and there are modules developed on ROS that allow some sort of interaction with the robot. Now, using your tablet's CPU to run the entire robot would be unrealistic, with the level of refinement you are expecting.

Regarding "head" movement, well, this is a somewhat easier field; Supposing that you have some sort of support for the tablet (you will have to be creative here), you can use the famous "pan and tilt" mechanism, driven by servo motors, to move the head up and down, and to the sides. Not very human-like, but coherent with the "budged specified".

Now, facial expressions, mimicking the human expressions or not, well, I personally think this is too much to ask from a tablet or regular ARM processors. You might want to re-think your hardware requirements. I have not heard of anything like this yet (well, I am new here), but this is something that the Kinect software and hardware did, with games. This is complex stuff, IMO.

Back to the tablet interface with ROS or whatever hardware you have in mind, well, from my experience tablets don't play well with the USB port, naturally. You might want to consider bluetooth or WIFI. OF course this supposes the tablet will run the face software and some other light stuff, and some other stronger hardware (beaglebone black perhaps ?) would run the power-hunger parts of the robot, including image processing (input from camera and processing your smiley face, sending the result to the tablet.

The project is nice. It will keep you entertained for days, but I am afraid it will require some degree of programming skill. If you are a beginner like me, you might want to look into coding in python, at least to start, until you get the hang of things. It is common sense that if you want serious, quick and powerful stuff you should go to C and its variations.

For camera input you have OpenCV, and also OpenNI. Those will help you with image processing.

Now, your intention, of creating a sort of companion, is brilliant. I had an idea like this, simpler, tough, to be used to monitor the health of debilitated patients. A dog-shaped robot that would have some degree of cute interaction, and be able to collect readings like body temperature, blood pressure, pulse, and other simple metrics, monitoring them and eventually sending them elsewhere, via wifi.

Now, let's "face" it. A head is a complex thing by itself. Add ot this human interaction, even at the most basic level, and you have a project that is already big, by itself, left alone the rest of the robotic stuff, like being mobile, route planning, object avoidance, among others.

Let's go kickstarter on this, and I'll quit my day job :D