SRS Home EncoderMeetingsEvents

Contact UsLinks

Google
Search WWW Search seattlerobotics.org

Standard Technologies of the Seattle Robotics Society

Kevin Ross

President, Seattle Robotics Society

Last Updated 10/11/04


This guide is ultimately intended to help you build a simple robot. I hope to do so by introducing some of the technology that the Seattle Robotics Society has developed and/or adopted over the past couple of years. The pre-existing designs shown here are easily incorporated to robots of almost any size or complexity.

The target reader is someone with at least a small amount of experience and/or extreme interest in building a small project. There will be some hardware to build, some software to write, and some electronics to assemble. This project is completely within the grasp of most people who can dedicate their attention to building a project from start to finish. Along the way, I hope you learn a few things.


The Overview

The current state of robotics can be summed up in one word: Infancy. While a whole lot of progress has been made in the past 25 years, you would be quite surprised at how elementary the technology really is. For the most part, this is actually good news for you since the step from having no robotics to state of the art is really quite short. The bad news, of course, is that leaves a lot of design and building work to be done. Several members of the Seattle Robotics Society have been striving to provide standard robotic technologies as a starting point for hobby robotics. This document will describe these basic technologies, and hopefully provide you with inspiration and a list of resources from which you can start building your own robot.

What is it that this article is going to do for you? The goals of this article are:

I intend to show you what can be done with our standard technologies to build a small, inexpensive robot. This robot should cost around $100-$150 to build, depending on where you buy the parts. While I hope you find most of the information here useful, a lot of the building of this robot will be up to you. I haven't endeavored to write down each and every possible step. I will try to point out tricks and tips, and highlight how things work. Writing every single step would be difficult. I have attempted to add pictures where thousands of words would otherwise be required. Let me know if there is something that isn't clear, and I will attempt to add more.

Allow me to help set your expectations on what this robot will be capable of doing. The word ROBOT generates many different ideas on what a robot really is. Many people think of R2D2 (Star Wars), Johnny 5 (Short Circuit), or some other Hollywood creation. These are examples of movie robots, and as such, don't really exist! There are some robots that are quite impressive, such as some of the machines at MIT (MIT Robotics Link) . These are examples of very cool robots that are beyond most peoples ability (and pocket book) to construct.

The robots that most hobbyist build are small, much simpler machines. However, this smaller machines all demonstrate many of the same abilities (and problems) of their high priced cousins in the research field. Building a robot such as this is a real achievement, and something you should be quite proud of doing.


Books, Magazines, and Resources

Before I get started, I thought I would take a moment to point out some sources for information.

There are many books on robotics out there. Most are interesting, a few are up to date, and a couple are outstanding. In 1996, the current fantastic book is Mobile Robots: Inspirations to Implementation. If you were only going to buy one book about building a hobby level robot, this is definitely the one to buy.

Another great book is the Robot Builders Bonanza: 99 Inexpensive Robotics Projects by Gordon McComb. This book is full of great ideas, circuits, tips, and mechanical designs. Very much worth having and reading. More information about these books.

More great information can be found in monthly and bi-monthly publications. Check out these magazines.

Turns out that the Internet is full of really great robotics information. Try getting out your favorite search engine, and search for robotics. You would be amazed at what you can find in a short about of time. Here are some of my favorite web sites.


The Robot

A good way to demonstrate our technology is to focus on a particular example, and show how these technologies work together.

The robot that will be described in this article is approximately 8" in diameter, has 2 modified R/C servo motors for the drive system, and a small onboard computer for a brain. It uses infra-red sensors to detect objects in its path, and a bumper skirt to avoid objects that the infra-red cannot see. The software determines the robots behavior. This robot is built to simply move forward until an obstacle is encountered. Then the robot takes evasive action until the obstacle is cleared. Once that happens, it continues on its way. Other easy to implement variations are for the robot to seek out light (often called a photovore in robotics lingo), chase a beacon, navigate a maze, or by attaching a pen, draw a picture on the floor.

Picture of robot

(Click on picture for larger view)

As you can see in the photo, this robot is built on a really nice robot base. The base can be purchased from Marvin Greens Robot Kits Web Page for an extremely reasonable price. The robot base and a controller board are available from Marvin, or you can create your own.


Really Basic Stuff

If you have never built anything before, the idea of jumping straight into a robot is a big leap. Big leaps often fall short. Little steps are best. I would like to present some really basic information on a few subjects:

More documentation can be found in the Basics Column of our online newsletter, The Encoder.


The Components

This robot is built up, as most are, from a set of sub components. The major components of this robot include


The Acrylic Base

The base that was selected for this robot is available from Marvin Greens Robot Kits Web Page for a reasonable price. This base is an excellent design. It was designed to hold the modified R/C servo motors, and has a very inventive bumper skirt design that has proven itself to be quite reliable. The bumper skirt design is discussed in a later section.

Under side of robot

(Click on picture for larger view)

Bottom side of robot.

Side view of robot base

(Click on picture for larger view)

Side view of robot.

This base demonstrates a very common 3 point design. Two independent wheels are used for directional control, and are supported by a single third point. The third point in this case is a drawer pull knob available at any hardware store (can be seen just above my thumb in the picture). Another popular 'slide' is a carriage bolt, which has a rounded head end. Some people use casters in the front, but the robot is well balanced and the offset of a swivel caster in the front often times interferes with the proper turning of the robot. The slides are quite common.

A quick tidbit: I normally choose to mount the knob so the wheels are forward of the knob. As the robot accelerates in the forward direction, the torque applied by the motors will cause it to lift the front end. By putting the knob in the rear, I have found that the robot is more stable, and doesn't tend to unbalance itself.

Another very nice design feature about this base is the two levels of horizontal surface. This allows a lot of flexibility in mounting sensors, batteries, switches, etc.


Servo Motors and Wheels

In the picture above showing the bottom side of the robot, you can see two black rectangular boxes. The end of my thumb is resting on one. These are R/C servos (What's a servo motor?), and are used as gearhead motors. The servos are connected to light foam wheels.

Picture of wheel assembly

(Click on picture for larger view)

Wheel and control horn (left side), completed wheel (right side)

The wheels are Dave Brown R/C airplane wheels. The robot above uses 2.5" wheels, which are available at most hobby stores that have a good selection of R/C airplane parts. The Futaba S-148 servo motor used here comes with several different control horns. A trick is to mount the control horn onto the inside of the wheel so it can be attached to the servo motor, as seen in the picture. I have had good luck putting the mounting screw into the control horn, then mounting the horn and screw to the side of the wheel. This way, you insert a small screwdriver into the hole through the wheel, which should find the horn screw mounted on the inside. I have used hot glue to mount the control horn to the wheel hub, but have found that leaving your robot in a warm environment (i.e. a hot car in the summer), can cause the glue to weaken, and the wheel to fall off. I would suggest drilling and using small screws to secure the horn to the wheel.

The servos used here have been modified so they can turn continuously, rather than being limited to a 180 degree turning range. The modification is straightforward, and yields very good results. (Hacking a servo to make a motor ) According to Futaba, you can expect about 100 hours of continuous use on these motors before failure. The electric motor inside the servo uses thin wires as brushes. These wires will eventually wear through. We have used these motors in a display at the Pacific Science Center in Seattle, WA. It turns out that the 100 hour number is pretty accurate. For most hobbyists, 100 hours of running on a robot like this is a very long time indeed. Aside from the PSC, I have yet to see anyone else wear a motor out.

Where to buy a servo


The Microcontroller

The computer on this particular robot is a Motorola M68HC11, which is a single chip microcontroller. This means that is a complete computer on a chip. The chip itself is a standard part produced by Motorola, and comes in several different variations. The printed circuit board shown in the picture below is produced by Marvin Green, and is available for purchase an extremely reasonable price. Check out Marvin Greens BotBoard page for ordering information.

Picture of microcontroller

(Click on picture for larger view)

The Microcontroller mounted on the base

Picture of botboard

The difference between a microprocessor and a microcontroller is rather subtle. A microcontroller is a microprocessor with some additional hardware that makes it suitable for controlling external devices. The hardware includes general purpose Input/Output lines, Analog to Digital converters, and a few other features. Quite often, the two terms are used interchangeably.

The Motorola MC68HC11 is an excellent general purpose microcontroller. It has several features that make it ideal for creating a small robot such as this.

 There is quite a bit of information about the MC68HC11. Here are some good links to browse through:

Link Synopsis
http://freeware.aus.sps.mot.com/hc11/home.html This is Motorolas 68HC11 web page. From this, you can find most of the official documentation and help. Definitely a must if you want to talk HC11.
http://www.seanet.com/~karllunt/tips.htm Karl Lunts page that has free languages, such as BASIC and FORTH, for the HC11. He also has several sample source files. Two great languages for the HC11.
http://www.hitex.com/automation/FAQ/68hc11/ A pretty decent Frequently Asked Questions about the 68HC11. If this no longer exists, you might try doing a web search for 68HC11
http://fleming0.flemingc.on.ca/~pspasov/mcu/mcu.htm This is yet another useful link I found with a search engine.

 


 The Basic Stamp

There is an alternative to the MC68HC11 that has been extremely popular lately. Its called a Basic Stamp. There are a couple of versions of this microcontroller out there. The one we see in use most often is the BS1, which is Basic Stamp 1. It looks like the picture below. It is a 14 pin SIP that has the entire microcontroller and memory onboard. Basically, you connect power, download a program, and it goes! Another version is the Basic Stamp 2, which has more I/O lines and runs faster (and costs more!).

 

The Basic Stamp 1

The Basic Stamp 2

 

To program that Basic Stamp 1, you create a small cable that connects to the parallel port on your PC. There is some free software available that you can download that will compile and program the BASIC stamp. Its really very easy. Check out more information at the Parallax Inc. homepage. There is a great deal of information available on this site, including application notes, and software. To find the software to download, click on BASIC Stamp I programming kit.

Marvin Green has a schematic and plans for a Stamp based robot he called the Explorer Bot. Check it out at his website.


Infrared Detection System

This robot uses an infrared object detection system. The infrared detection system uses two emitters (LED's that emit infrared light), and a single detector. The detector is a Sharp GP1U5 infrared detector that is typically used to receive IR signals from remote control units. This is a widely available part (can even be bought at Radio Shack), and does an excellent job. In the following picture, you can see the three elements of the IR detection system. Near the top of the picture is the Sharp IR detector (it is the silver cube with the wires coming out the back). Lower in the picture, peeking out from beneath the lower frame, you will find two round tubes. These house the IR emitters. One emitter aims ahead and to the left. The other aims ahead and to the right.

 

Picture of infrared components

(Click on picture for larger view)

The components of the IR detection system

The Sharp IR detector is designed to detect IR light that is modulated (the technical term for flashed on and off) at 40khz. When the detector sees a 40khz IR light source, it will signal this information by dropping its output pin to the low state. The pin stays low as long as the modulated IR source is detected.

The electrical interface to the Sharp module is extremely simple. There is a power, ground, and signal line. From experience, we have found that it is works best if you make sure there is a connection between the ground pin and the metal case of the detector. A small wire can be soldered to both to make the electrical connection.

The algorithm for using this system is pretty simple. Each IR emitter is turned on independently. If, while the emitter is on, the IR detector senses a signal, then some object is in front of the robot. If an obstacle is detected with both the left and right emitters, then there is a strong chance the object is in front of the robot. Lastly, if IR is detected with both emitters OFF, then there is some interfering IR source nearby, and the detector can be considered unreliable.

Real life robotics always has a few caveats. This subsystem is not immune to problems. In reality, the IR detector actually will work with any IR source that modulates between about 35khz and 45khz. It also has demonstrated some problems at detecting false signals when used under some types of fluorescent light. Even with these occasional problems, this same design has been used on many different robots with great success.

Implementing Infrared Object Detection


Bumper Skirt

The bumper skirt on this robot is a fascinating study in simplicity. It is a section of plastic tubing that is slightly larger than the diameter of the robot. The skirt has no rigid mechanical connection to the robot, which is what really causes it to work well. Most skirt designs end up with one or more rigid connections to the robot body. Typically, at the connection points, the skirt is not operational, as the rigid connection does not correctly sense contact with an obstruction.

Picture of bumper skirt

(Click on picture for larger view)

Sectional view of the bumper skirt

As you can see by the pictures above and below, the bumper skirt is attached to the body of the robot by a simple pair of rubber bands. The trick to this is that the rubber bands end up opposing each other, creating equal yet opposite forces on the skirt. This leaves the skirt suspended on the rubber bands, and capable of moving any direction.

Picture of underside of robot

(Click on picture for larger view)

Bottom side of robot showing the rubber band connection points and switches.

This particular robot has three bumper switches. One in the rear, and two in the front. This enables the robot to detect right or left collisions while in the forward direction, and only collision when traveling towards the rear.


Control Software

The control software for this robot is writing in FORTH, a stack based language that is popular for many who dabble in robotics. This particular robot has control software written in Tiny4th, which is available from a website of Karl Lunt. I will be posting the source code for this robot in the future.


SRS Home Page

Written and maintained by kevinro@nwlink.com