Let's Make Robots!


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.

how would you do it with a webcam, and an arduino? Probably take a picture and see how similar what ever you are seeing is to the said object.

 Also, binocular vision or whatever, the thing humans have where there is an overlap in both eyes see. that's depth perception, but would a robot be able to tell the distance?

well as I said above, the arduino or make controller (I decided to go with the make controller for the nice OSC protocol) is just for hardware control.  The webcam plugs into a Laptop that sits on top of the robot and run's some software i am developing in C#.  In the future I will replace this laptop with a nano-ITX or pico-ITX PC which will be built into the robot's chassis, and will run this same software.

I have no plans to do stereo vision, I will be using ultrasound and/or IR for rangefinding.


I'd be extremely impressed if someone managed to run any kind of vision processing software on an Arduino using a webcam - just interfacing the webcam for smooth video alone seems like it would eat up most of the Arduino's computing resources.

Stereo or binocular vision is not strictly required for depth perception; there have been robotic vision systems built which can estimate distance from single or multiple cameras.

Cant wait ot see him doing something! I'm curious about what ideas for face rocognition can be implemented :)

Very tidy bot you have there.
I had my first taste of OpenCV just a few months ago for an industrial automation project, and you can really do some impressive stuff with it. I'd had experience with various image processing techniques before, but OpenCV just makes everything so accessible.

Looking forward to future developments!