Let's Make Robots!

Beryl

navigate, recognize faces, speak, obey voice commands

Ok this is my new bot Beryl (cause she's blue...)

This is my big robot, intended to have a nano/pico-ITX PC inside with windows XP. 

She is powered by a 5AH SLA battery, And has 2X 12V 120rpm lynxmotion motors to get around.  There is a webcam mounted on the front, which I will be using via OpenCV for face recognition.  I have already begun developing the software for this in C#.  I am not sure at the moment whether I will use and arduino or my old make controller to interface the PC to the sensors and motors, but it will be one of those via USB.

more pics to come :-)

-----------------------------------------------------------------------------------------------------------

As promised, moar pics!!!

 

Back view: Here you can see the lighted rocker switch for main power, and how I have attached the webcam...

All of the plastic paneling is expanded PVC.  3mm for the blue side panels, and 6mm for the black decking.

I got it from TAP Plastics, who even cut it to my specified sizes ;-)

 

With the side cover off, you can see the SLA battery, power wiring, and the center shelf which will be where the motherboard goes.  The sides are held on with velcro.  Beryl has an aluminum frame made with 1/16" aluminum L-channel, and bolted together with 4-40 hardware.  The frame is basically just a gusseted 8"x10"x12" box.

 

A view of the bottom, showing the drive motors, and twin caster wheels.  I chose the plastic ones for their low weight and friction.

 

-----------------------------------------------------------------------------------------------------

Update (10/5/2009)

Got the make controller and solarbotics L298 motor controller mounted/wired up over the weekend.  Also added a panning IR sensor next to the camera.  Now, wearing an old laptop like a hat, Beryl Should have most of her planned capability.  I will add the internally mounted nano-ITX system next month or so when I have more money ;-), but for now I can start developing proper software using the laptop to run her.  More pics coming soon, and once I get her driving around, some video...

-----------------------------------------------------------------------------------------------------

Update (10/13/2009)

Bad news, my make controller died sort of, the digital outs no longer function.  So, in the interest of not cannibalizing my other working robots, I have ordered another arduino to replace it, and I will just write a sketch for it to communicate with the PC over the USB-Serial connection.  Also I have removed the panning IR, and replaced it with a Ping))) since that will give me longer range, and is easy to use with arduino (hard to use with the make controller).  Also, I have been disappointed with the performance and general quirkiness of C#, at least with the libraries I was using, so I am considereing switching to using Linux/Python instead.  Ordered the PC system to stuff inside Beryl, and all those parts should be arriving the 19th.  More to come :-)

 -----------------------------------------------------------------------------------------------------

Update (10/19/2009)

ALIX mobo should arrive today, then the hardware should be complete.  Arduino/protoshield arrived friday, and this weekend I got it all assembled and wired up.  Motors work now, and also mounted a new panning servo with a PING on it on the front.  New power wiring, with a 3-position switch to toggle between powering the bot, and charging.  For now have been running Ubuntu in a virtual machine on the desktop, and got a simple serial protocol for talking to my arduino from python, and for using Festival to do TTS.  Converted the ultrasound navigation routine from BORG-E to run on this bot, so It can navigate (sort of :-P) just via the arduino.  Chased it around the living room :-)

 -----------------------------------------------------------------------------------------------------

Update (1/25/2010)

Had been using Linux on it, but accidentally nuked my install :-(  However, fortunately I just figured out how to make it recognize my USB CD-ROM, so I installed XP and adapted my python code to use the pyspeech module instead of festival, which came with the bonus of having speech recognition via the microsoft API!  awesomesauce :-)  So now beryl is running around and "obeying" voice commands.  However she does not always seem to hear me ;-)  I also improved the automatic navigation via the arduino, so it does not get stuck when approaching things if it gets too close, now it will turn around if it's closer than a foot to something.  Still struggling with getting Opencv to do what I want.  Hopefully I will take the time to post a video soon....

 -----------------------------------------------------------------------------------------------------

Update (1/28/2010)

Added a video of me domonstrating the voice command and speech!

 -----------------------------------------------------------------------------------------------------

Update (7/4/2010)

Ordered a new arduino, ardumoto shield and another lady ada protoshield.  Also a bunch of sharp IR sensors.  going to rework the navigation setup to be run top down from the PC rather than being offloaded to the arduino as before.  The panning sonar works ok for small slow bots but for bigger fast ones i find myself wanting faster feedback and that means fixed sensors.  I want to clean up all the electronics and try to avoid the rats nest of jumpers i have in there now, so I'll be hardwiring everything to headers, and using servo cables to connect all the sensors.  Should be nice and cleans and sturdy.  This is THE bot, built to last; so I want her to be cleanly built and easy to maintain.  Will post more pics of rebuilt control stack when it's done :-)

 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Nice robot. Out of curiosity how much does your SLA battery weigh? This looks a lot like what ive been looking to build.

hi,

I want to ask you about the alix board and how windows xp works on it, what kind of graphics has it on it ?

thanks , cristi

im running XP pro on it, which works kinda just barely.  there is only 256mb of RAM on it, and the geode is NOT a fast proc.  I will be trying to offload the more complex stuff to my desktop over the network, and the ALIX will be just collecting sensor data and connecting beryl to the WIFI.

you can find full specs of the alix board im using (3d3) here: http://www.pcengines.ch/alix3d3.htm

protip: it is a little tricky to get XP installed on it, I used an external USB cd-rom to install it to the CF card, but in order to get it to boot from the cdrom, You have to hold down "pause/break" during POST to get it to boot from the cdrom.

(tip snagged from here http://www.twam.info/linux/gentoo/installing-gentoo-on-alix3d3)

Best of luck!

Where did you get these two wheels mounted on the geared motor? Looks very solid.

lynxmotion sells a set of hubs for their 6mm shaft gearmotors that have 12mm hex ends to fit RC truck wheels made by many manufacturers (tamiya and traxxas for sure).  The wheels I have on there are rear wheel for a traxxas rustler or stampede RC truck with a set of duratrax road tires w/ medium density foam inserts.  I got the tires and wheels at a local hobby shop.

I was very happy how the base turned out, with the dual casters I was worried about getting the height right so it wouldn't rock.  fortunately the casters I got were just right with just some 6mm PVC spacers :-)

TAP is very nice, yessir it is

:D 

your plans are what? meaning, how would you make an object recognition script (not in code, please just explain your process...)

I am working with a library called OpenCV, specifically a wrapper for it that works with C# called EmguCV.  OpenCV includes lots of different kinds of computer vision functionality, including Haar cascades for face detection, and EigenFace for face recognition.  These are some standard computer vision techniques for dealing with faces and what I want Beryl to do is to recognize several particular people, who I will train it to recognize, and greet them appropriately when they are "seen" by the robot.

A Haar cascade will mark an area of the current frame, as possibly containing a face, the software will then crop that section and pass it to eigenface's routine, which will try to compute which of the known faces this one most resembles.

Additionally I want Beryl to be able to navigate the environment in much that same manner as Borg-E.

Beyond this, I will just see how far I can go with it, I also have idea about making her respond to voice commands, and speak to the user using speech synthesis....

I am making a similiar platform which will use OpenCV to do the "looking around" jobs. The microcontroller was used like a surrogate to control all I/O sensors and motions for the on-board PC computer which is essentially the brain. For the speech recognition and text-to-speech , probably you can try windows speech SDK since you are using C#. Anyway, coding is the key point. I expect it will take a very long time.

 

well if I were able to just sit down and work on it without a lot of interruption I'm sure I could have the basics I have outlined here hammered out in < 1 week.  Of course I have a job, so i just work on it with the very limited energy I still have left after work at night, and on weekends.  I expect it will take me several months to get it all coded to the level I would like. :-)