Propeller speech recognition robot
Introduction:
This project presents a differential drive robot that has two continuous rotation servos. The board of the robot is the popular Propeller Demo Board of Parallax. The Robot has the ability to recognize voice commands from the user and then it performs the corresponding movements.
The project is based on Goertzel Speech Recognition Demo introduced by Phil Pilgrim. When I saw Phils project I became so exciting and I decided to build a robot able to recognize the four basic movement commands: FORWARD, BACKWARD, RIGHT and LEFT in order to perform these movements according the users desire. Instead of a TV monitor, the robot uses 3 different LED s (Green, Red and Yellow) to interact with the user. First the user must teach the robot the four commands. For this reason the robot can hear and learn a command pronounced by the user when the Red LED is blinking. If a voice command is not very clear and the robot is not able to understand it the Yellow LED is blinking. The Green led is blinking when the robot has successfully recorded and learned a voice command or has understood a voice command and it is ready to perform the next recording or the next movement.
The hardware and the design:
If you already have a BoeBot and a Propeller Demo Board it is very easy to create a Propeller speech recognition robot. The only you have to do is to remove theBoard of Education from the Boebot and replace it with the Propeller demo Board. In addition you need three LED s (Red Green and Yellow) and some resistors to build the appropriate circuit on the Propeller demo boards breadboard. If you dont have a Boebot here is the list of hardware you need and you can find from Parallax store:
Propeller Demo Board
Boe Bot Chassis
Polyethylene Ball 1"
2 X Boe-Bot/SumoBot Wheel & Tire
2 X Parallax (Futaba) Continuous Rotation Servo
4AA Battery Holder
1 X Green LED
1 X Red LED
1 X Yellow LED
2 X 1K ohm, 1/4 watt resistor
3 X 220 ohm, 1/4 watt resistor
If you build your Propeller speech recognition robot with the hardware that I suggested above, your robot will looks like this:
I give you a Skethup schematic instead of a real image because I didnt use a BoeBote to build my Propeller speech recognition robot. Although I had two BoeBots in my lab I didnt use them because I had bounded them in other projects so I decided to build a new simple robot platform by myself.
I used a simple homemade chassis from plexiglas and two homemade aluminum servo adapters to adapt the two servos on the chassis. The plexiglas chassis has in the middle a square hole to bind a 7,2 V rechargeable battery. The wheels have 4,7 cm diameter each and are smaller than the BoeBots wheels.
I also give you a 3d eDrawing file: (Propeller speech recognition robot Drawings.rar) where you can see both models with full details.
Note: You need the viewer 3D eDrawing Viewer Download (viewer)
The circuit of the robot is the following:
Here you can see a video with the construction and the operation of the robot.The software:
The software of the robot is written in spin code. To be honest I dont believe that I have written any new code. I would say that my work was mainly a montage of already existed spin code that I found through the Parallax Forums. As I told you before the code is based on the Goertzel Speech Recognition Demo by Phil Pilgrim. I made some small changes in this code such us the way that the robot interacts with the user. I removed the TV output commands and I replaced them by the three blinking LED s commands. I also added some code from Control Two Servos.spin file by PE Kit Servo Control v1.4 in order to make the robot to move according the voice commands. I have also changed a bit the Servos for PE Kit.spin in order to work properly with the rest code. The code you have to run is the Speach_REC_Robot_4_commandsVer2.spin in conjunction with the objects: goertzel.spin, and Servos for PE Kit_nikos. All the necessary code is included in the Speach_recognition_Robot_Code.rar file.
This project presents a differential drive robot that has two continuous rotation servos. The board of the robot is the popular Propeller Demo Board of Parallax. The Robot has the ability to recognize voice commands from the user and then it performs the corresponding movements.
The project is based on Goertzel Speech Recognition Demo introduced by Phil Pilgrim. When I saw Phils project I became so exciting and I decided to build a robot able to recognize the four basic movement commands: FORWARD, BACKWARD, RIGHT and LEFT in order to perform these movements according the users desire. Instead of a TV monitor, the robot uses 3 different LED s (Green, Red and Yellow) to interact with the user. First the user must teach the robot the four commands. For this reason the robot can hear and learn a command pronounced by the user when the Red LED is blinking. If a voice command is not very clear and the robot is not able to understand it the Yellow LED is blinking. The Green led is blinking when the robot has successfully recorded and learned a voice command or has understood a voice command and it is ready to perform the next recording or the next movement.
The hardware and the design:
If you already have a BoeBot and a Propeller Demo Board it is very easy to create a Propeller speech recognition robot. The only you have to do is to remove theBoard of Education from the Boebot and replace it with the Propeller demo Board. In addition you need three LED s (Red Green and Yellow) and some resistors to build the appropriate circuit on the Propeller demo boards breadboard. If you dont have a Boebot here is the list of hardware you need and you can find from Parallax store:
Propeller Demo Board
Boe Bot Chassis
Polyethylene Ball 1"
2 X Boe-Bot/SumoBot Wheel & Tire
2 X Parallax (Futaba) Continuous Rotation Servo
4AA Battery Holder
1 X Green LED
1 X Red LED
1 X Yellow LED
2 X 1K ohm, 1/4 watt resistor
3 X 220 ohm, 1/4 watt resistor
If you build your Propeller speech recognition robot with the hardware that I suggested above, your robot will looks like this:
I give you a Skethup schematic instead of a real image because I didnt use a BoeBote to build my Propeller speech recognition robot. Although I had two BoeBots in my lab I didnt use them because I had bounded them in other projects so I decided to build a new simple robot platform by myself.
I used a simple homemade chassis from plexiglas and two homemade aluminum servo adapters to adapt the two servos on the chassis. The plexiglas chassis has in the middle a square hole to bind a 7,2 V rechargeable battery. The wheels have 4,7 cm diameter each and are smaller than the BoeBots wheels.
I also give you a 3d eDrawing file: (Propeller speech recognition robot Drawings.rar) where you can see both models with full details.
Note: You need the viewer 3D eDrawing Viewer Download (viewer)
The circuit of the robot is the following:
Here you can see a video with the construction and the operation of the robot.The software:
The software of the robot is written in spin code. To be honest I dont believe that I have written any new code. I would say that my work was mainly a montage of already existed spin code that I found through the Parallax Forums. As I told you before the code is based on the Goertzel Speech Recognition Demo by Phil Pilgrim. I made some small changes in this code such us the way that the robot interacts with the user. I removed the TV output commands and I replaced them by the three blinking LED s commands. I also added some code from Control Two Servos.spin file by PE Kit Servo Control v1.4 in order to make the robot to move according the voice commands. I have also changed a bit the Servos for PE Kit.spin in order to work properly with the rest code. The code you have to run is the Speach_REC_Robot_4_commandsVer2.spin in conjunction with the objects: goertzel.spin, and Servos for PE Kit_nikos. All the necessary code is included in the Speach_recognition_Robot_Code.rar file.
Comments
Very nicely done! Not to mention: a well-produced video!
-Phil
What if you used the English 'Forward' and 'Right' and the Greek words for 'Backward' and 'Left', or the other way around. They're all markedly different then. Any difference?
@PJ - I like the idea of mixing English and Greek to avoid common sounding words.
Robert
Great project, NikosG!
Thank you for your encouraging comments. Opinions from people like you have a special value for me!
Phil I hope that the changes I have made in your code doesn't make you crazy I feel that I make a sacrilege
when I remove or impede commands in your code.!!! (Your code is very sophisticated and I realy feel fear when I try to change something!!!)
The idea of mixing English and Greek suggested by P J Allen and Whit is amazing!!! Thank you very much !!!
This idea improves the effectiveness of the robot and gives me a practical solution in the new challange that I
face right now.A new command menu with 6 voice commands. I design an educational activity with the Propeller speech recognition robot ispired by the whell-known educational software.
I have some difficulties but I hope that I will be able to solve the problems soon.
The wireless microphone setup suggested by RobotWorkshop is very interesting. I saw this video [url=
] Speech Controlled Parallax Bot [/url]. I think that this robot must use this method. Unfortunately the creator doesn't give more information. But the result is amazing!
erco, you are surpise me! your Greek are perfect Thank you very much! (Kalo Pasha! = Hapy Easter!)
BTW, in the "wireless mic" video, I believe the verbal commands were being interpreted by a PC program before being forwarded to the BoeBot in digital form over an RF link.
-Phil
Kalo Pasha to you as well!
i downloaded this to open the .rar file for windows 7
http://www.7-zip.org/
The question that arises after the construction of the Propeller speech recognition robot is how we can use it in a class for educational purposes. Although the programming code is very sophisticated and it is more suitable for high level programming activities, the use of the robot is very simple and it consist an excellent tool in order to introduce the idea of the programming. In my opinion we can use this robot even with primary school students or smaller children because the user can program the robot only with the voice and it is not necessary to know any programming language or the use of any computer menu and command.
One idea is to imitate the activity Driving a car from Motion Planning software
In this activity the user tries to drive a virtual car using a six-command menu. The final goal is to drive a green car from the start, and park it in the parking place.
The six command menu moves the robot forward and backward and it has also the ability to make the robot to do arcs.
In order to do this activity using the propeller speech recognition robot we must create a similar menu with 6 voice commands. Personally I used mixing English and Greek command menu to avoid common sounding words as it is suggested by J. Allen and Whit.The six commands are the following:
Command-1: The robot makes a Front Left Arc (VOICE Command: LEFT)
Command-2: The robot moves FORWARD (VOICE Command: FORWARD)
Command-3: The robot makes a Front Right Arc (VOICE Command: RIGHT)
Command-4: The robot makes a Rear Left Arc (VOICE Command: ARISTERA) (I used the corresponding Left in Greek language)
Command-5: The robot moves Backward (VOICE Command: PISSO) (I used the corresponding Backward in Greek language)
Command-6: The robot makes a Rear Right Arc (VOICE Command: DEKSI) (I used the corresponding Right in Greek language)
Then we need a flat surface in which we put the speech recognition robot and we draw the parking place. After that we turn on the robot and we teach it the six commands using our voice. You can choose every voice command you want. Another good idea is to use the numbers 1,2,3,4,5,6 instead of the commands that I used above. But it is very important to keep the correct order of the commands when we teach the robot. Otherwise we must change the command order inside the SPIN code.
Then we try to park the robot in the parking place. The winner is the person who parks the robot using the less commands. Here is a video that explains activity:
This code except from the files: Goertzel Speech Recognition Demo by Phil Pilgrim and
Control Two Servos by PE Kit Servo Control v1.4, it is also use some code from
''ServoContinuesRotation by CRpropellerCode-v2.0 , in order to make the robot move in arcs.
If you find interesting this activity you can see the Motion Planning software in order to take ideas and create similar moving car activities with your students or with your children!
Nikos Giannakopoulos
hey yea ive used the rc filter with the same values and the scme circuit , btw i have an external speaker which has line in from the computer so ill take the amp from there and post the results. and thanks a lot for the help
The Greek robotic internet site Grobot.gr has published the "Propeller speech recognition robot project"
You can see the publication in the home page of the above site (in Greek language )