Rosanswers logo

I do not want to reinvent the wheel on this one. What I have in mind is a program developed that shows a simplified face maybe a little better that eyes,nose, mouth (maybe a smiley face at first) in cartoon style accompanied with voice or text message shown on a tablet.

I would like to develop a robot head that really is only a tablet mounted vertically that can locate, turn, and interact using on board camera. The user can either via voice recognition or touch screen interact with this stationary friend. I am sure some of this is already done. If someone (I have limited robotic and programming experience) can organized in modules so the user can start with:

  1. Porting Linux to a spare tablet such as the old Viewsonic tablet that is collecting dust right now.

  2. Interfacing with the tablet throughthe micro usb port which most tablets have using an arduino, raspberry pi, propeller board.

  3. Motor driver,gearing hardware and mounting of the tablet .

  4. Accepting input through microphone, touch screen, or keyboardand camera.

  5. Above mentioned display output via cartoon face and simple response boxes on the touch screen or actual artificial voice output.

The need of using a tablet is so it can be portable or eventually mobile. Basically the tablet is the "head" and "face" of the robot friend. I think the neatest thing would be the interactive face that not as complex as the various AI programs that tend to be propriety and expensive. The whole point of this would be an inexpensive, open source robotic friend especially for old folks and childern. This is not exactly fleshed out but a starting point for a discussion about a desktop robot friend.

Originally posted by fschutzman on ROS Answers with karma: 1 on 2014-07-16

Post score: 0


1 Answer 1


Rosanswers logo

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

Originally posted by ccapriotti with karma: 255 on 2014-07-17

This answer was ACCEPTED on the original site

Post score: 0

Original comments

Comment by fschutzman on 2014-07-18:
Thanks for the input. I have seen robots running with far less computing power than a tablet. I was thinking of converting to linux to remove the constrictions that an android operating system. Too bad someone has not figured out how to make the tablet act as just a smart monitor taking input from another computer. The problem I see is that the necessary computing power of a robot requires a big form factor which is not advantageous to something small on a desk. I am sure someone can come up with an "app" that produces a moving face. Anyway it is a thought for someone to go with.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.