Introduction: Belvedere - a Butler Robot


Belvedere is a robot I designed and built to serve appetizers at parties and entertain with jokes and dancing.  He has the ability to navigate the first floor of our house while avoiding obstacles.  Belvedere's first job assignment was entertaining guests at our son's first birthday!  His main body sits on an iRobot Create, which he uses as a drive system.  Here is a list of his main features:

- Navigates to one of four different rooms by turning a knob on his back
- Avoids obstacles using non-contact sensors (ultrasonic and infrared)
- Uses his British voice to offer food, make comments, and tell jokes
- His flat head is perfect for a plate of appetizers or a cooler of drinks
- He will play music and dance on command with a push of a button
- LEDs on his front light up in various patterns to show he is active
- Spinning bowtie!

This project was inspired by many other robot projects.  In particular, JoeCreate's Serverbot instructable (LINK) gave me many great ideas and Belvedere wouldn't be a reality without his impressive work and documentation.

Continue reading for details of Belvedere's construction, code samples, photos, and videos!

Detailed photos can also be found at this picasa album

Step 1: CONSTRUCTION

Belvedere's main body is mounted to an iRobot Create which he uses as a drive system.  The main body is made from a concrete form tube used in construction.  I borrowed this idea from JoeCreate's Serverbot instructable (LINK).  The various circuit boards are mounted on a plexiglass table mounted firmly to the iRobot Create. The main body is also mounted firmly to the plexiglass table.  Belvedere's flat head is made from a round piece of plexiglass lined with a non-skid mat.

In order to make Belvedere more stable, I mounted an extra swivel caster on the opposite side of the caster included with the iRobot Create.  This additional caster is shown in the pictures below.

Detailed photos can also be found at this picasa album

Step 2: ELECTRONIC COMPONENTS

Here is a list of electronic components used to create Belvedere:

- iRobot Create platform
- Arduino MEGA microcontroller (the brains of the operation)
- Sparkfun 16x2 LCD for message display and debugging
- Adafruit WaveShield used to store and produce voice and music clips
- HMC6352 compass module from Sparkfun
- Custom LM386 amplifier board to produce voice and music clips through speaker
- 3 X Maxbotix Maxsonar EZ1 Ultrasonic Ranging Sensors
- 2 X Sharp GP2D12 Analog Distance Sensors
- 3 inch speaker
- Hobby servo for spinning the bowtie
- Many voltage regulators, switches, buttons, etc
- A few custom boards for power and signal distribution


Pictures of the components are below.
Detailed photos can also be found at this picasa album

Step 3: NAVIGATION

Belvedere can run in two different modes, NAVIGATE and ROAM.

In NAVIGATE mode, Belvedere keeps track of his location on a large grid of the house. To plan his move to the next destination, he uses a WAVEFRONT algorithm. I got the idea to use a wavefront algorithm from the Society of Robot's website (LINK). In order to use this mode, the floor and permanent obstacles (walls, couches, etc) must be pre-mapped into a large matrix. Also, Belvedere must be started in the same location and orientation when he is turned on, otherwise he wouldn't have a reference.

In ROAM mode, Belvedere, will not keep track of his location in the house. He will move a few feet forward, pause for a while, turn randomly, and continue forward.

OBSTACLE AVOIDANCE

In NAVIGATE mode, Belvedere will constantly monitor his three ultrasonic ranging sensors when he moves forward. If an obstacle is detected closer than a certain threshold, he will begin to slow down gradually. If an obstacle is within 1 foot, he will stop and speak a warning. The Sharp IR sensors are used to veer Belvedere away from walls without slowing him down.

In ROAM mode, if Belvedere detects an obstacle while moving forward, he will stop, rotate a random angle, and continue forward in a different direction.

Step 4: SOFTWARE

Belvedere's "brain" is the Arduino MEGA microcontroller.  It has an incredible amount of inputs/outputs and memory for such a low-cost controller.  For more details on the Arduino MEGA and other Arduino boards, follow this LINK.   Belvedere uses almost all of the 54 digital pins on the Arduino MEGA.  Details of Belvedere's pinouts can be found at this Google Document.

CONNECT ARDUINO MEGA TO iROBOT CREATE

Most people that add a microcontroller to the iRobot Create use the iRobot Create Command Module.  iRobot engineers supply example code with the Command Module so that it can communicate with the Create over the serial connection.  I needed many more inputs/outputs and more memory than the Command Module could offer, so I decided to connect the Arduino MEGA to the Create.  I wired the serial communication pins between the two and converted the Command Module code to Arduino code (very similar since they are both written in C).  The main change I made to iRobot's example code was that I didn't want to use the same timers to control sensor updates.

VOICE AND MUSIC

Belvedere's audio clips are pre-recorded and stored on an SD card.  The Arduino can access any one of the clips as needed.  Belvedere has at least 50 different audio clips that are in different categories (offer food, move obstacle, joke, comment, music).

Belvedere's voice was generated by the text-to-speak software at AT&T's Natural Voices website:

http://www2.research.att.com/~ttsweb/tts/demo.php#top

You can choose gender and various accents. This website was convenient because I could directly export the file to .wav format.

SOURCE CODE

I have attached the Arduino source code below.  It is three files zipped together.  Two of the files are header files that support the main .pde file.

Step 5: VIDEO

An HD video of Belvedere in action can be seen at youtube at this LINK.

Detailed photos can also be found at this picasa album

Comments

author
zacharias_pap made it!(author)2015-09-02

Hey please i need help with the code i would not want to use an irobot create i have a couple of drill motors i want 2 relays for each motor (4 in total) i want it to drive as tank drive with 2 motors.1 relay will be for going forwoard and the other will be for going backwards.

author
zacharias_pap made it!(author)2015-09-02

And can somebody please send me a wiring diagram

author
gadgetnerd3373 made it!(author)2015-07-20

hey it's gadgetnerd again so i finally built my variation on this thing but i need help with a IR only version of the code

any help would be greatly appreciated. Thanks!

author
PARTYGUY made it!(author)2015-06-25

omg this is blowing my mind :)

author
robotfanatic made it!(author)2015-05-12

Do u do commission work? Or maybe sell plans? My email is jacobglyn1995@gmail.com . I look forward to hearing from u

author
zachjenkinsproducts made it!(author)2014-12-01

Do you mind if I use this as a science fair project?

author
wolffan made it!(author)2014-12-02

I do not mind at all. Good luck!

-Andy

author
gadgetnerd3373 made it!(author)2013-12-02

Do you mind if I post my modified version of this design? It would be my first instructable.

author
wolffan made it!(author)2013-12-02

I don't mind at all, thanks for asking!
-Andy

author
Timmers made it!(author)2013-06-17

Have you seen this, pretty cool creation.

http://www.kickstarter.com/projects/567971283/iroo?ref=live

author
amasinggray made it!(author)2013-03-11

COOL!!!!

author
ssbookyu made it!(author)2013-01-04

Can't wait for the 2.0 version that dispenses martinis as dry as it's humor :D

author
lukeyes made it!(author)2012-08-13

Hi, I'm working on a similar project using a hacked Roomba as a base, and a netbook for control. I made a similar ROAM navigation mode, but every time I try to use it around the house, it constantly will get stuck on something like a table, where the bumper and Ultrasonic sensor senses that everything is fine so the wheels keep spinning, but it's not moving anywhere. Have you ever run into this issue? How did you solve it?

Thanks.

author
MadiASTRO made it!(author)2012-07-25

Wait where can i find the microcontroller

author
dgrigg007 made it!(author)2012-06-15

Does it go on carpet???

author
sourcer made it!(author)2010-06-28

around how much did the whole project cost?

author
robotmaker made it!(author)2012-02-19

ebay can cut down some costs on parts

author
D5quar3 made it!(author)2011-02-12

The create is 129+ tax and shipping,
The Mega is around 65+ tax and shipping,
The compass is around 30+tax and shipping,
The wave shield is 21+ tax and shipping,
The lcd screen is 12+ tax and shipping
The servo is around 10+tax and shipping
various parts <20
so the whole thing is around $315

author
lucasjhughes made it!(author)2012-02-13

Does this robot have trouble going up onto rugs and stuff

author
konner09 made it!(author)2011-10-30

Van you give an example or tell me what custom boards you used?

I am trying to build something like this and was hoping for idieas

author
robotbrad made it!(author)2011-07-25

That looks great. I am completely a newbie at this, but I would really like to build something similar.
Do you know how much weight it could handle and still move at normal speeds?

author
gradof6b made it!(author)2011-06-22

I think this is just awesome and want to make one. In this instance all the work (like the instructions as to what to do) is being controlled by the arduino. Like the irobot is just a motor controller? So would it be possible to use all the coding but just use a servos or motor and a motor controller instead of the irobot?

author
wolffan made it!(author)2011-06-22

Yes, you are correct! I treated the iRobot Create as a motor controller and two drive wheels. I also used some of the other sensors for the front bumper and cliff detection. But, you could figure out what to remove from my code.

author
gradof6b made it!(author)2011-06-29

Cool thanks for responding =)

author
tinker234 made it!(author)2011-06-05

hey could i use a bowl to make a head and make it pop up so it will say your food sir or better yet make the top a microwave so it heats your foood and serves it to you

author
tinker234 made it!(author)2011-05-23

nice could i add robotic arms and a plastic dome to the top to keep flies away other than that brilliant

author
ducttape17 made it!(author)2010-07-24

When you bought your iRobot Create did you buy the Premium Development Package or any other accessories?

author
wolffan made it!(author)2010-08-03

I didn't buy the premium package at the time. I bought the rapid charger and rechargeable battery later. But, I suggest you purchase a package that comes with the rechargeable battery and charger since it is expensive to run off of AA batteries.

author
RPisces made it!(author)2010-06-22

This is...amazing. A while back I saw a similar project HERE but this is the most polished design I have ever seen! After a year of toying around with the roomba, I finally am at a stage where I can build this. All I need is a digital compass though. Using the encoders by themselves on the Roomba/Create just simply isn't good enough for accurate navigation and predefined path following.

I am hopefully going to get one of these HMxxxx compass modules soon (they're not cheap) and get going on a similar version of this project. Awesome job!

Here's a pic of what I've got so far; you can't really see all the good stuff though because it's all encased in the black project box. It has
*Text-to-speech module (Emic TTS by Winbond)
*RF (Xbee 1mW chip antenna with accompanying custom controller)
*10A 5V switching voltage refgulation
*2x16 backlit serial LCD
*Additional circuitry for ease of programming (I'm not using the Arduino MEGA so I had to figure out how to do a lot of serial with only one UART!)
*BASIC Stamp II coprocessor
*USB port (5V power only; nonfunctional data terminals) for adding additional modules/sensors)

The whole enclosure can be simply unplugged from the connector I made and can be re-programmed without you having to tote around the roomba as well.

DSCF8136.JPG
author
wolffan made it!(author)2010-08-03

Nice job putting everything in an enclosure and using cables with connectors. I found that spending more time in the beginning planning the wiring and connectors makes it much simpler later when you have 100 wires! Keep me posted on your progress...

author
dannelle made it!(author)2010-07-31

WOW dats super and how much does it cost to do all this project! and are there accessories that you bought and that you build yourself??

author
RPisces made it!(author)2010-06-22

I will probably add a video of the basic (and I mean *very* basic haha) functions I have coded in so far. I am using an Arduino as well but I am a bit limited as I am currently stuck with the ATmega328 and a BASIC Stamp II.

author
ducttape17 made it!(author)2010-06-13

How did you get your robot to talk with a british accent?

author
wolffan made it!(author)2010-06-13

Belvedere's voice was generated by the text-to-speak software at AT&T's Natural Voices website: http://www2.research.att.com/~ttsweb/tts/demo.php#top You can choose gender and various accents. This website was convenient because I could directly export the file to .wav format. Thank you for the question. I have added this info to the instructable.

author
dreadengineer made it!(author)2010-06-11

"HM6352" should be "HMC6352" right?

author
wolffan made it!(author)2010-06-13

You are correct, I just made the revision. Thanks!

author
CCOTTER247 made it!(author)2010-06-09

Can I use the arduino Duemilenove or does it not have enough pins?

author
wolffan made it!(author)2010-06-10

The Arduino Duemilenove does not have enough pins or memory for this specific project. But, you could remove some of Belvedere's features and it may work. For instance, the LCD panel takes up 6 digital lines, and it isn't necessary (but, great for debugging!!). I used almost every one of the Arduino MEGA's 54 digital pins. I also used a lot of memory (SRAM) because I stored the map of the house in a matrix variable. To better answer your question, I have added a link to my Google document that details the pinouts for Belvedere. Please see STEP 4 for the link.

About This Instructable

35,185views

124favorites

License:

More by wolffan:Belvedere - A Butler Robot
Add instructable to: