Let's Make Robots!

Serv-O:Home Robot

Navigates via ultrasound/bumper switches, locates (hopefully human) motion via PIR Sensors, navigates to that motion and offers the source a drink
ServoFlowChart.pdf41.56 KB
I_am_ServO.mp329.07 KB

Sorry about the bump-all I've done is move him out of WIP status in accordance with FritsL's new rule ;-) He's getting a serious upgrade in functionality and a sensor package that will let him detect humans while on the move (while removing the PIR array.) He ain't gonna look much different though. Maybe a little.

I've been working on Serv-O since I put ArDui5X here on the site.  The objectives for Serv-O are to create a Large, Arduino-based robot capable of finding humans in a home or party setting, approaching them and offering them a drink/snack/pamphlet, then moving on to another guest or to going back to base when the batteries or drink tray get low. (Alternatively to act as a security unit.)  For this reason it had to be tall enough that it doesn't require guests to bend over very far to get the drink (or that it would be more menacing than a Roomba if someone broke in.)

This is achieved (imperfectly as of yet) by using a set of 3 PIR sensors mounted in and at 45° to the right and left of the direction of travel.  The robot stops (else the PIRs would be useless,) polls the sensors and when it gets a high reading on the front sensor it moves forward.  If it gets a low reading on the front sensor, it checks the left and right sensors and turns towards whichever it gets a high reading off of first, then moves towards the "target" until it gets to 30cm from the target, and uses an audio cue to offer the drink up. This is the flow-chart for the program:

Here's a look inside his access panel:

The ISD 1740 is the audio chip and offers plenty of volume without an off-board amp.  (Thanks to Fizikus and Gabriel for helping me get this figured out.) Audio cues are my voice using a vocorder.  (I've attached an mp3 of the line audio.). Ackjay helped me pick out the voice modulation.

The main brain is an Arduino Uno R3 with an R3 Motor shield (L298 to handle the big amps that these motors pull.)

Sensor and body setup:

The tray is large enough to hold a 12pack of 12 oz drinks.  The head moves up and down to allow for wine glasses, etc.

...and one more view:

The "top-brain" as I have been thinking of it is an AT Tiny 45 that "breathes" the eyes.  It stalls them when the audio is playing (see the video) and in theory is capable of acting as a kind of VU meter to the audio cues, but I don't know if that's necessary.

Here's a headshot:

I love that face.  It was made from a children's "night vision" binocular set from a big box store.  I cut it up, painted it and put a pair of sliced-up ping pong balls in the front element slots with two high brightness blue LEDs on the AT Tiny breather circuit mentioned above.  This let me have the cool eye effects without tying up any Arduino pins or run time.  It also makes it just a little bit like a brontosaurus, if you think about it-two brains, kind of...

The next step is to perfect the programming.  Hardware is complete for all intents and purposes, all sensors register on a serial check (of course, the bumper is on the TX pin so it stalls the Serial line but works for the run-time sensing.)

So what do you think LMR?  Hot or not? ;-)

Update-yes, its name is "Serv-O" but can you guess what common part is completely absent from this build? I left the option to put the head on a servo open but I don't know how much I like that idea. In any case, the name refers to function, not part usage.


(No offense to my British friends.). JAX, a viewing of the movie and several oz. of liqueur just now made me realize how much of a Tribute to Wall-E that Serv-O is. Not just because of the face and blue eyes, but they're both just babbling trash cans on tracks. Okay, more booze now...


Less of a technical update than a Cautionary Tale...


I looked over at him the other day and discovered that Serv-O had a new purpose:

That's right-dog toy caddy.  Notice the streak of blood on his chest.  That's from Clara Belle, whose tail gets so happy that she sometimes hits walls and flings blood.  (A little disturbing, but we love her none the less.)

In any case, I guess this is one of the problems with building medium- to large-scale robots: space.  I have plenty of room for the desktop models, but Serv-O sits next to the bookshelf and takes up space, aRDui and Yubin Kun sit next to the workbench in various states of packing.  K-9 is (As I blogged recently) sitting on the bench upside down.  I should probably learn to make the robots I have better, but I think making them is what I like most.  Refining them isn't as much fun for me.

Comment viewing options

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

Is that an upside down trash can? My first robot attempt was a small upside down trash can but that was back in the mid-80's and I never finished it. Couldn't get enough range out of the IR "eyes" circuit. I'm interested in building something similar to yours for greeting only, no serving refreshments. I've got my "idea swiping" notepad out and will be watching your progress. :-)


Yep-13 Gallons!  It was a lightweight way to add enough height to the RAD base to get drinks up to grabbing height.  I don't have any IR on this one yet-only sonic, which isn't that great if there are a lot of soft/fuzzy obstacles in a room. Please feel free to "swipe" ideas from me, as well as to contribute any insights to my projects you have as you develop your own.

I have to ask though, you said you were considering serving wine or at least offering wine glasses. What have you considered doing to make him more stable?

Although I know next to nothing about structural engineering, given the task he's supposed to be doing I agree that increased stability would be nice, no one would like to cry over spilt wine (the waste it would be) ;-)

Regardless, it looks very nifty and I love the disturbing cylon voice... now... "By your command" let wine be served :-p (I'll volunteer for "live fire" testing if need be :-p)

P.S. - Also do you think PIR sensors would be suitable to add "cat stalking" to a robot? Any budget ones you could advise?

Yeah, Ackjay and I kind of kicked around the "By your command" cue.  I decided against it in the end because I decided that wasn't something you'd want to hear at a cocktail party...

As far as a "Cat Stalking" PIR sensor system goes, you might be able to make it work, but keep in mind the robot has to be still for about a full second before you get a reliable reading.  That might work better for people milling at a party than work for a cat that is prone to running and hiding.  Look at Dagu's "Compound eye" for what you're after, unless we're talking about an outdoor cat. 

Personally, I would... Alas I was not invited ;-) But I understand how other people might not be so comfortable with it :-)

As for the compound eye I've saved it for future reference, once I get past my first bot that is :-P Until then I still have other issues to deal with and wait for stuff to arrive in the mail *sigh*

And yeah the cat is indoors and 1 second periods of robot stillness shouldn't be a problem I think.

Good points. One thing I know I'll be doing is ramping the speed. Another is to put alternative trays on with stabilizers for the wine bases. Any other ideas will be appreciated throu.