Beryl

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 :-)

 

navigate, recognize faces, speak, obey voice commands

  • Actuators / output devices: 2x Lynxmotion GHM-02 gearmotors, Hitec HS-81 servo
  • Control method: autonomous
  • CPU: AMD Geode 500Mhz
  • Operating system: windows XP
  • Power source: 12v SLA 5ah
  • Programming language: Python
  • Sensors / input devices: Microsoft LX700 Webcam, wireless mouse/keyboard, PING))) Ultrasonic sensor
  • Target environment: indoors

This is a companion discussion topic for the original entry at https://community.robotshop.com/robots/show/beryl

Very tidy bot you have

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!

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

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

openCV

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…

Without special software

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?

I’d be extremely impressed

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.

TAP

TAP is very nice, yessir it is

:smiley:

not using an arduino for vision

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.

 

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

I am making a similiar

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.

 

coding
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. :slight_smile:

RC truck wheels

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 :slight_smile:

about the alix board…

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

xp on the ALIX

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!

Nice robot. Out of curiosity

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