Planning my Robot

Planning

First up, I would like to apologize for talking about my website on here. I acknowledge that it is not the right place to talk about it.

Next, I would like to say that I have started with my plans for my robot. I have decided to use an Aruino system and have a controller that can be used to code custom paths.

I will be using an MP3 system so that he can speak to you, and he will be able to communicate in a way to make the user feel comfortable. The purpose is to be able to give people with disabilities the opportunity to let their feelings out and have someone to talk to. 

He will be able to patrol your room, and will be able to take photos and videos with a [voice] command. 

Note that this is all mainly ideas, not fully developed plans. I may not have enough money to do all this. Not all of these functions will be used, but hopefully I can add these later as I go on.

If anyone has any ideas, please comment on this blog. I live in Perth, Australia, so if anyone lives here maybe we could catch up? I will be giving you recognition if you have ideas that I can use.

Thanks, Liam!

 

Start simple

Welcome Liam,

(The forum might be a better place for this, but at least you gave yourself a good introduction)

A few things that you might already know, but good to keep in mind. I don’t know how much experience you have.

I think it’s awesome you are thinking about building a robot, but make sure to start simple!. Try building a robot that can drive around the room and avoid obstacles using a few distance sensors by implementing a reactive robot paradigm (subsumption architecture by Rodney Brooks for example). Don’t do everything at once!

When that works you can go on. Next i try to give some pointers on how to proceed and on how some of your current ideas might be too ambitious (for now).

  1. For the motors most people use a motor controller or create one using h-bridges. It is easiest to use tank style driving where you can send a signal to both the left and the right motors with a particular speed and a particular time.
  2. There are arduino shields with sd card slot that are able to play mp3 files. Just play a combination of sounds on the sd card to ‘speak’.This is the easiest way, since speech synthesis is a lot harder. Nevertheless you need to record a lot of words/sentences.
  3. For the robot to understand the sentences or feelings of the human i must temper your expectations. Speech analysis with arduino is just too hard. At the very best it might be able to distinguish between a set of 5/10 commands. (Think about what’s needed to do speech analysis: At the very least you need to figure out the frequencies in the sound signal (by doing fourier analysis) and train a neural network by giving a lot of examples of what utteration belongs to a particular word.)
  4. Photo and Video can be done using a laptop/smartphone or an interface between the arduino and a simple camera (arduino tells the camera to take a picture (but this is hard already)).

Good luck and let me know if you want more info.

Thanks!

Right. Thanks for your help. 

What should I use for the robot to understand sentences/emotions?

re: understanding sentences

The simpliest way to add understanding of sentences in my opinion…

Add an Android phone/tablet to your project and use the built in speech to text and text to speech features.  You can use bluetooth or USB to communicate with the Arduino “body”.  I think BT is far easier these days.  The phone/tablets also come with cameras and other sensors.  I will save the specifics of how to “understand” sentences for another post, but you might find some info here…https://www.robotshop.com/letsmakerobots/node/37264

Another alternative would be to use a LattePanda or something similar (it has a Windows PC and an Arduino on a single board that communicate directly).  I don’t know what the speech to text and text to speech libraries are for windows, but there should be something you could use.

The advent of Arduinos with built in wifi raises some additional possibilities…having a simple arduino robot talk to a web server without having phone.  Arduino w/ BT to a PC is a similar option.  You would  need a phone to talk to (as a remote control) for the robot, where the commands are relayed from the phone to the server and picked up by the simple arduino bot with wifi.  I don’t know how the speech would be produced though in this case.  

You are going to need a lot of different sub-systems to do a true verbal system of “understanding sentences”.  A lot of metadata (memories) are needed about words, phrases, sentences, patterns, parts of pseech, etc. are needed to pull this off, but it can be done…all my bots do it.  I do it on a PC with a database for persistent storage of the memories.  Almost all of this could be done on Android (with SQLite) or a Raspi Pi as well…  An added plus would be to add a true NLP libary to really break down the sentences into their proper grammar.

All of this is not simple…if building a robot that can avoid obstacles is a 1 (for effort level), building a robot that speaks and understands sentences to some degree would be at least a 10.  You need to be a seasoned programmer on 2-3 different platforms to pull this off and have months or more of spare time to kill.  If you choose to do this, I’ll be happy to share my thoughts and failures if it helps.

Starting simple is good, especially when learning microcontrollers for the first time. Setting some big goals and striving to meet them is good too.  I suppose a lot depends on where your passions lie.

Regards,

Martin