You are on page 1of 84

Cover.

qxd 3/10/2005 3:46 PM Page 84

Vol. 3 No. 4
SERVO MAGAZINE
REAL-WORLD ROBOTS
April 2005

Circle #40 on the Reader Service Card.


CoverInside.qxd 3/10/2005 4:26 PM Page 2

Remember when...
...electronics stores were stocked to the rafters

with every component imaginable and there was ALWAYS


a knowledgeable person there to help you?

Think those days are gone?


Great Products. Awesome Prices.
Well they’re not!
1.800.831.4242
You just need Jameco!
Call for a FREE 256-page catalog today.

We have the electronic components and knowledgeable


Technical Support people who can help bring back the fun
in your electronics hobbies, inventions, and DIY projects.

Circle #36 on the Reader Service Card.

Be sure to visit our new website at Jameco Electronics


www.Jameco.com/nvd —where electronics is still fun!
Circle #37 on the Reader Service Card.
Full Page.qxd 3/9/2005 9:28 AM Page 3

Circle #38 on
the Reader Service Card.
SV TOC.qxd 3/11/2005 10:20 AM Page 4

SERVO
Features & Projects
27 Reusable Robot Software
Part 3: Navigation

34 For the New Roboticist


Part 1: Common Errors in Building Robots

41 A Hobby CNC Milling Machine 22


Part 1: Platform Construction

46 Neural Networks 101


Introduction to Artificial Neural Networks

52 The Mini Servo Walker


Part 2: Adding Power and the Brain

58 Exoskeletons
What Are They Good For?

62 The Robotic Waiter


52
Servos Serving Drinks

On The Cover
The ever-popular ASIMO android
from Honda displays his agility

78
on our cover by balancing on
one foot.
Photo courtesy of Honda.

SERVO Magazine (ISSN 1546-0592/CDN Pub Agree#40702530) is published monthly for $24.95 per year by T & L Publications, Inc., 430
Princeland Court, Corona, CA 92879. APPLICATION TO MAIL AT PERIODICALS POSTAGE RATE IS PENDING AT CORONA, CA AND AT
ADDITIONAL ENTRY MAILING OFFICES. POSTMASTER: Send address changes to SERVO Magazine, 430 Princeland Court,
Corona, CA 92879-1300 or Station A, P.O. Box 54,Windsor ON N9A 6J5; cpcreturns@servomagazine.com
SV TOC.qxd 3/11/2005 10:21 AM Page 5

4.2005
“Asimov thought that they would have a robotic intelli-
gence — an AI that would function as a sentient, interactive
[robot] — by 2030. What would it be like to have a being
VOL. 3 NO. 4
that from its very inception was curious, intuitive, drawn to
certain things, fascinated by certain things?”
—Robin Williams, actor

Departments Columns
6 Mind/Iron 8 Robytes
The Future of ASIMO News from the Robotics World
7 Bio-Feedback 12 Rubberbands
Where You Have a Voice Holonomic Drive Platforms
10 New Products 16 Robotics Resources
The Latest Project Parts Searching for Stepper Motors
51 Robotics Showcase 22 GeerHead
Get What You Need Quick The RoboCoaster G2
56 SERVO Bookstore 66 Lessons from the Laboratory
Feed Your Brain Interview with Steve Hassenplug
72 Brain Matrix 69 Assembly Line
DIP Microcontrollers Parts Inspection, Round #2: Motors
77 Events Calendar 74 Ask Mr. Roboto
Find a Show Near You Your Problems Solved Here
79 Robo-Links 78 Appetizer
Your Link to Parts and Services Why Do Most Women Hate Robots?
81 Advertiser’s Index 82 Then and Now
A List of Supporting Advertisers A Look Back at the Androbot TOPO

Coming 5.2005
Five Robots That Could
Save Your Life
The advancement of robots has
moved well beyond the battle
arenas and into the practical
applications they were truly
meant for: aiding man in tasks
that were once thought
impossible.
Mind-Feedb.qxd 3/10/2005 3:37 PM Page 6

Published Monthly By
The TechTrax Group — A Division Of
T & L Publications, Inc.
430 Princeland Court
Corona, CA 92879-1300
(951) 371-8497
FAX (951) 371-3052
Mind / Iron www.servomagazine.com

Subscription Order ONLY Line


by Ryan Lee Price Π1-800-783-4624

ust when you thought you couldn’t get time both feet are off the ground varies PUBLISHER

J enough of Honda’s ASIMO (the one we’ll


forever after refer to as “the original”),
they’ve announced the development of new
between 0.05 to 0.1 seconds. By comparison,
the step cycle of ASIMO (who has only been
doing it for a couple of years) is 0.36 seconds
Larry Lemieux
publisher@servomagazine.com

ASSOCIATE PUBLISHER/
technologies for the next-generation with an airborne time of 0.05 seconds. VP OF SALES/MARKETING
humanoid robot. The main focus will be to In order to run, a robot (and people Robin Lemieux
achieve a new level of mobility that will alike) has to be able to repeat the robin@servomagazine.com
better enable ASIMO to function and interact movements of pushing off the ground,
with people by quickly processing swinging its legs forward, and landing EDITOR
information and acting more nimbly in real- within a very short time cycle and very little Ryan Lee Price
world environments. Since Honda rarely does time spent processing information as to ryan@servomagazine.com
anything low-key or in a mundane fashion where it is stepping. As well, it has to absorb
(except for their new Civic, of course), the impact of the landing. With the newly CIRCULATION DIRECTOR
they’ve decided to pack ASIMO with a whole developed processing circuitry and high- Mary Descaro
subscribe@servomagazine.com
slew of new improvements (well, three power motors — in addition to lightweight
actually, but they’re big changes) that will but very rigid legs — ASIMO can process
WEB CONTENT/STORE
usher in an higher level of robotic autonomy. these motions four times faster than that of Michael Kaudze
Essentialy, when the new and improved the previous model. It can not only run, but michael@servomagazine.com
ASIMO takes his first step, we’re that much it knows where it’s going, too.
closer to having one in our living rooms. The next-generation ASIMO can PRODUCTION/GRAPHICS
Much like the Six Million Dollar Man, maneuver toward its destination without Shannon Lemieux
the revamp will make it faster, stronger, and stopping to compare any changes between
more powerful than ever, literally. At 119 its input information and the information STAFF
lbs, it has gained five pounds and grown 10 about the surrounding area obtained from Dawn Saladino
cm in height to 130 cm. ASIMO’s power can its sensors. As well, ASIMO can now Corrie Panzer
last twice as long as before (now one hour) autonomously change its path when its floor
and it enjoys 34 degrees of freedom over sensor and visual sensors located in its head OUR PET ROBOTS
Guido
the 26 in the original ASIMO. detect obstacles.
Mifune
The combination of newly developed, By detecting people’s movements
more responsive hardware and new posture through its visual sensors and kinesthetic Copyright 2005 by
control technology will enable ASIMO to sensors added to its wrists, ASIMO can now T & L Publications, Inc.
proactively bend or twist its torso to move in sync with people around it, making All Rights Reserved
maintain its balance and prevent the it able to give or receive an object, shake
problems of slipping at higher speeds. hands more naturally with a person’s All advertising is subject to publisher's approval.
Believe it or not, ASIMO will be capable of movement, and step forward or backward in We are not responsible for mistakes, misprints,
running at a speed of 1.8 mph (making itself response to the direction its hand is pulled or typographical errors. SERVO Magazine
airborne approximately 0.05 seconds during or pushed. assumes no responsibility for the availability or
each stride), and the walking speed has By continuing to advance these new condition of advertised items or for the honesty
been increased from the previous one mph technologies, forward-thinking companies of the advertiser.The publisher makes no claims
for the legality of any item advertised in SERVO.
to 1.5 mph. such as Honda (and the 75 others in the big-
This is the sole responsibility of the advertiser.
Depending on one’s speed and the name robot race) will soon develop
Advertisers and their agencies agree to
airborne time, when a human runs (we’ve equipment and technology that will be
indemnify and protect the publisher from any
been doing it for more than a million years), useful to people. And isn’t that what this is and all claims, action, or expense arising from
the step cycle is 0.2 to 0.4 seconds, and the really all about? SV advertising placed in SERVO. Please send all
subscription orders, correspondence, UPS,
overnight mail, and artwork to: 430 Princeland
Court, Corona, CA 92879.

6 SERVO 04.2005
Mind-Feedb.qxd 3/11/2005 10:24 AM Page 7

ROV Control Animatronics vs. Robotics

HELP!!
I was wondering if you might I just wanted to let you know that
consider delving into ROV and tele- I subscribed to this magazine with the
operation in the “how-to” section of hopes that it will include valuable
your magazine. Though not technically a information on building and If you’re not seeing the types of articles
robot, an ROV does employ many programming servo-driven animations, you’d like, let us know! Tell us the topics
that you enjoy the most. Tell us what
systems that could be put into use on a and not specifically robots ... which I you’d like to learn. Are you a software or
true robot. Of particular interest to me is have very little interest in. What I hardware guy? Are you totally new to
stereo-vision (two cameras transmitting should say is that I could not care less robotics and don’t know where to start?
on different frequencies and the about robotics, yet I love animatronics. What sort of robots would you like to
build as part of a continuing series?
operator wearing an HMD, consisting of I hope that you will take this into
two LCD screens) and vibration detection consideration as you move forward. How about considering submitting an
(possibly a metal ball bearing in a curved Erich Neugebauer article yourself? You may be more of an
expert than you think! Did you figure out
section of pipe making contact with Via Internet a killer fix for a problem you were having
electrodes as the land ROV passes over with some part of your robotic system?
rough terrain. The operator could feel Article Wish List
Are you participating on a team or in a
this at the control station with a large How about less articles about club where you’ve got some unique
speaker mounted to the chair). Any BEAM and more about real robotics experiences or insight you could share
discussion would be much appreciated. based in reality and not marketing with your fellow roboticists?
Erik Zavrel hype. Articles based upon real world If you have general questions or
Via Internet problems in robotics such as navigation, comments about SERVO Magazine,
object recognition, color vision, etc. please contact us: SERVO Bio-Feedback,
Bracket Control Disgruntled 430 Princeland Court, Corona, CA
92879; or email: feedback@servo
I want to build a servo-controlled Via Internet magazine.com
robot like KHR-1, but my problem is the
body. How do you make the brackets How about a straightforward Better yet, go to our website at
www.servomagazine.com and check
that hold all the servos together? Do article on getting PWM going on an out the writer’s guidelines. You’ll get
you know a place where they sell only AVR. Try for the life of me, I can't quite paid for your printed submissions. Look
brackets like a kit? Any information get the hang of working the interrupts. at this as an opportunity to make a
difference in the development of robotics
would be appreciated. C or Bascom would be great. and make some extra cash for your own
Erick Soto Mark Weston projects!
Via Internet Via Internet

Circle #61 on the Reader Service Card.


SERVO 04.2005 7
Robytes.qxd 3/9/2005 5:49 PM Page 8

Robytes by Jeff Eckert


re you an avid Internet surfer ously as if they were having one-to-one Flying BEARs Pass Tests
A who came across something
cool that we all need to see? Are
conversations. The results are mixed,
but often amusing. For example, I Since 1996, the University of
you on an interesting R&D group asked Maria to tell me the color of an California, Berkeley (www.berkeley.
and want to share what you’re orange, and she promptly replied, edu), with support from the US Army
developing? Then send me an “Blue.” She also believes that lemons Research Office, the Office of Naval
email! To submit related press are red, but Maria is not stupid and, in Research, and the Defense Advanced
releases and news items, please fact, claims to have an IQ of 250. Research Projects Agency (DARPA),
visit www.jkeckert.com When asked to define reality, she has been working on the develop-
replies, “Reality appears to be an illu- ment of autonomous helicopters
sion I created to contain human via the Berkeley Aerial Robot (BEAR)
— Jeff Eckert
clients.” You have to suspect that program.
this is a programmed answer rather In 2003, it began to focus specif-
Virtual Robot Available 24/7 than deductive reasoning, but it’s still ically on obstacle avoidance prob-
pretty good. lems as applicable to DARPA’s
If you want to talk to Maria in per- Unmanned Combat Armed
son, just log onto www.robot-host Rotorcraft program, which aims to
ing.com You can also chat with some integrate autonomous unmanned
of her siblings, including Ayla, who aerial vehicles (UAVs) in combat and
is presented as a mermaid with reconnaissance missions. The tech-
the Weber Brothers Circus, but nology, however, is adaptable to a
when pressed, will admit that she is wide variety of applications, includ-
really Maria. ing automated search-and-rescue
What appears to be a more attrac- missions, inspection of power lines
tive version also appears at and pipelines, fighting wildfires, and
www.intellibuddy.com and this one taking photos of you driving around
speaks to you. However, she firmly with a beer in your hand.
believes that oranges are black and At last report, the researchers
The virtual robot Maria, who claims gets pretty rude if you disagree with had managed to get a 130-pound
to have an IQ of 250. Photo courtesy her. All in all, it’s a lot like trying to rea- scale-model chopper to fly through a
of the University of Auckland. son with someone at the Department simulated “urban canyon” consisting
of Motor Vehicles. of 10-foot canopy tents set up in a
We normally think of bots as two-by-three grid. In one test, the heli-
entities with a substantial mechanical
presence, but the concept of artificial An autonomous helicopter completes its run through a simulated
intelligence is surfacing in the form of “urban canyon.” Photo courtesy of UC Berkeley.
virtual bots. Students at the
University of Auckland (www.auck
land.ac.nz), for example, may soon
get academic support from “Maria,”
an assistant teacher whose physical
existence is limited to your computer
monitor. The creation of Shahin
Maghsoudi and Dr. Tiru Arthanari,
she has “a vocabulary of 203,000
words, a repertoire of 106,000 gram-
matical rules, and 118,000 rules of
logical interference.”
The goal in creating Maria was to
create an electronic “assistant” who
would be available 24/7 to answer
multiple student questions simultane-

8 SERVO 04.2005
Robytes.qxd 3/9/2005 5:50 PM Page 9

Robytes

copter’s laser scanner generated executed by astronauts can be done


three-dimensional images from which by robotic arms.
it generated its own flight path. ROKVISS consists of a small
Reportedly, the helicopter never double-jointed manipulator arm, an
veered more than 12 inches off the illumination system, and a power
proper course. supply and is supposed to test the
In another test, two of the UAVs ability of lightweight robotic joints
successfully avoided each other by to operate in space for future
communicating their positions to a assembly work or satellite repair and
ground station, which then returned servicing.
appropriate information that alerted “In order to be able to test the
them to each other’s presence. The complex interplay of all components
helicopters then adjusted course to and the time sequences required An image sensor designed to approach the
adaptive capabilities of the human eye.
avoid collisions, all without human for data transmission and data Photo courtesy of Vladimir Brajovic,
intervention. processing under real conditions, Carnegie-Mellon University, and
Practical implementation of these this mission to the International Intrigue Technologies.
flying machines may not be as far off Space Station is indispensable”
as you think. The UC Berkeley vehicles noted Dr. Wolfgang Paetsch, ROKVISS Intrigue Technologies, Inc. (www.
were adapted from commercially- Project Manager at EADS intriguetek.com), are developing an
available, radio-controlled machines SPACE Transportation (www.space. image sensor that is intended to give
that are sold in Japan and used as eads.net). robots the improved vision needed for
crop dusters. They could be in the Unfortunately, early in February, it applications outside controlled, illumi-
hands of your local police department was announced that the 11.5 million nation conditions. As a first step, they
soon. Euro (US $14,866.00) device doesn’t have created “Shadow Illuminator,”
work. As of this writing, it has been which is a software plug-in that simu-
able to send a signal to Earth, but can- lates chip circuitry.
not receive a reply. Several more As it happens, neurons in our eyes
Repairman Needed attempts to kick start it are scheduled, are capable of processing information
so stay tuned. before sending it to the brain.
Likewise, the pixels of the new device
will intercommunicate with regard to
what they are seeing, allowing them
Image Sensor Mimics the to modify their operation and adapt
Human Eye to ambient lighting conditions
before sending images to a computer
Led by robot vision expert processor.
Vladimir Brajovic, researchers at In this way, the sensor can gener-
ate images that show
When applied to x-ray images (unprocessed and uniform illumination
enhanced versions), the Shadow Illuminator software within both shadow
The ROKVISS robotic arm remains reveals additional detail. Photos courtesy of and highlight por-
flaccid on the International Nikola Zivaljevic, M.D.
tions of the scenery.
Space Station.
Eventually, the
concept may make
Late last December, EADS Space robots better suited
announced that a German-built for monitoring dimly
ROKVISS (which stands for robotics lit facilities, guiding
component verification on the ISS) unmanned vehicles in
robotic arm was on its way to the bad weather and
International Space Station with the combat conditions,
goal of demonstrating that dangerous and performing bio-
and strenuous work in space usually Before After metric functions. SV

SERVO 04.2005 9
ArpNewProducts.qxd 3/10/2005 2:52 PM Page 10

New Products

New Products
closed-loop control. The user can select either an analog
CONTROLLERS & PROCESSORS voltage feedback or a digital encoder feedback (quadrature
encoding is not supported). With the two feedback alterna-
tives, various simple devices, such as potentiometers, can
30-Amp DC Motor Controller be used as sensors to achieve position or speed control.

P ololu introduces its new 30-


amp motor controller with
multiple interface and feed-
The motor controller measures 2.475 x 1.175 inches
and has an operating voltage of six to 18 volts, making the
device well-suited for medium-sized robots and other proj-
back options for simplifying ects. The unit price for the motor controller is $99.00, and
servo control of commonly avail- there is free shipping in the United States.
able DC motors. The module features For further information, please contact:
three independent interfaces: a serial pro-
6000 S. Eastern Ave., Ste. 12-D
tocol for microcontroller-based applications, a Pololu Las Vegas, NV 89119
pulse-width interface for connection to hobby radio Corporation Tel: 877•7•POLOLU or 702•262•6648
control equipment or serial servo controllers, and an ana- Fax: 702•262•6894
Email: www@pololu.com
log voltage interface for simple tests and demonstrations. Website: www.pololu.com
The new motor controller distinguishes itself from Circle #47 on the Reader Service Card.
other devices in its class by offering a complete feedback-
based solution for applications requiring bi-directional,
SOFTWARE
STEER WINNING ROBOTS TracEquipment
WITHOUT SERVOS!
M ustang Technologies announces the release of
TracEquipment, its new equipment tracking soft-
ware. In today’s business environment, it is very difficult to
keep track of all the equipment that is owned by an organ-
ization, not to mention all the equipment’s information that
must also be maintained. TracEquipment was designed to
help organizations manage and track all their equipment,
as well as equipment that has been temporarily assigned to
customers and/or worksites (such as construction sites).
By using TracEquipment, organizations can quickly
identify all the equipment at a specific location and all the
erform proportional speed, direction, and steering with equipment assigned to a user, department, or division.
P only two Radio/Control channels for vehicles using two
separate brush-type electric motors mounted right and left
TracEquipment also maintains a complete audit trail on
each piece of equipment.
with our mixing RDFR dual speed control. Used in many Mustang provides a risk-free, “try before you buy” pol-
successful competitive robots. Single joystick operation: up icy, which allows customers to evaluate Mustang’s prod-
goes straight ahead, down is reverse. Pure right or left twirls ucts for 30 days. At the end of the trial period, customers
vehicle as motors turn opposite directions. In between stick can switch an evaluation copy and all of the data to a live
positions completely proportional. Plugs in like a servo to copy by entering a registration code provided by Mustang.
your Futaba, JR, Hitec, or similar radio. Compatible with gyro
For further information, please contact:
steering stabilization. Various volt and amp sizes available.
The RDFR47E 55V 75A per motor unit pictured above.
P.O. Box 8006
www.vantec.com Mustang Green Bay, WI 54308
Technologies Tel: 920•265•6936
Order at Website: www.MustangTechnologies.com

(888) 929-5055 Circle #58 on the Reader Service Card.

10 SERVO 04.2005
Full Page.qxd 3/10/2005 9:38 AM Page 11

USB Oscilloscope & Logic Analyzer


The new generation Scope
for the age of microelectronics.
8 Channel 40MS/s Logic Analyzer

 $295
Capture digital signals down to 25nS
with arbitrary trigger patterns.

3 Input 100MHz Analog DSO

 Classic Analog Scope using a standard


x1/x10 BNC probe. Additional inputs on the
POD for dual channel operation.

8 + 1 Mixed Signal Scope

 True MSO to capture an analog waveform


time-synchronized with an 8 channel logic
pattern triggered from any source.
Turn your PC or NoteBook into a powerful Scope and Logic Analyzer!
See inside your circuit in the analog and digital domains at the same time to
Real-Time Spectrum Analyzer make tracking down those elusive real-time bugs much easier.


See the spectrum and waveform of analog
signals simultaneously and in real-time Pocket Analyzer combines a high speed sample-synchronized storage scope
and logic analyzer with a programmable waveform and logic pattern generator.
Also included is an integrated real-time spectrum analyzer and powered "Smart
Waveform Generator POD" expansion interface so you've got all bases covered!
 Load up to 32K arbitrary waveform and replay
via the onboard DAC (10MS/s) or a digital About the same size and weight as a Pocket PC, this USB powered BitScope
pattern from the POD (40MS/s) needs no bulky accessories. It's the perfect low cost "go anywhere" test and
debug solution.

Standard 1M/20pF BNC Input BitScope "Smart POD" Connector BUS Powered USB 2.0 Device External/Passthru Power Supply
200uV-20V/div with x10 probe 8 logic channels, 2 analog channels Single USB cable to your PC Auto senses an external supply -
S/W select AC/DC coupling Dual channel capture from POD A/B Compressed data transmission removes power load from USB
S/W select 50ohm termination Async serial I/O for external control Simple ASCII control protocol for use with unpowered hubs.
Arbitrary Waveform Generator Logic Pattern generator 32K 40MS/s BitScope Scripting Language Supplies up to 500mA via POD

BitScope and your PC provide an array of Virtual Instruments

• R&D

• Education

• Robotics

• Lab Scope

• Fast DAQ

• Service

• Debug

BitScope Pocket Analyzer uses highly integrated Surface Mount


technology to provide functionality you would expect from scopes
many times the size and price. Its programmable Virtual Machine
architecture means new functionality can be added via software.
For custom Data Acquisition, export directly to your spreadsheet.

BitScope DSO 1.2 software for Windows and Linux www.bitscope.com


Rubberbands.qxd 3/9/2005 3:24 PM Page 12

by Jack Buffington

Holonomic Drive Platforms:


How to Drive a Robot
That Has No Front

Thisdrivemonth’s column will discuss how you can command a


platform that uses three or more omniwheels, which
redundancy. As long as you retain the function of at least
three wheels, your robot will be able to continue to move
are a special kind of wheel that has traction in the direction around holonomically.
that the wheel rotates, but no traction to the sides. There are You might think that controlling omniwheels might be a
several kinds of omniwheels, but all of them have one main Herculean task, but you would be wrong. There is some
wheel and several smaller wheels or rollers around the trigonometry involved, but it isn’t that hard to program. This
edge. Take a look at Figures 1 and 2 for some examples of column should make the task of programming it fairly easy if
omniwheels. you are using a high-level language, such as C.
The cool thing that makes using omniwheels worth the Let’s start with the highest level of how you will drive
extra effort is that they allow your robot to move in any direc- your omniwheels. Let’s assume that you are creating a sub-
tion at any time without turning. routine that will figure out the direction and speed for each
In essence, your robot won’t have a front because it will omniwheel. You are going to give this subroutine four vari-
just as easily be able to drive sideways as it can forward and ables. These variables are angle, speed, twist, and offset
backward. angle. This column will treat all of these as eight-bit variables.
An omniwheel drive train doesn’t look like your typical Angle will be in binary radians (brads), which simply means
drivetrain where all of the wheels are lined up on either side that forward will be 0, to the right will be 63, backward will
of the robot and rotate along parallel axes. Instead, the omni- be 127, and left will be 191. You’ll be able to give it any direc-
wheels are arranged in a radial pattern around the robot’s tion from 0 to 255, not just the numbers listed here. Speed
center. Figure 3 shows some possible configurations for will be from a full stop at 0 to full speed at 255. There is no
omniwheel drivetrains. A nice benefit of an omniwheel drive- backward speed. You can accomplish that by adding 128 to
train that has more than three wheels is that you have some your angle variable. Twist is a signed eight-bit variable in this

Figure 1. An omniwheel. Figure 2. This type of omniwheel is also Figure 3. You can have any
known as a transwheel. number of omniwheels
on your robot.

12 SERVO 04.2005
Rubberbands.qxd 3/9/2005 3:25 PM Page 13

Rubberbands and Bailing Wire

example, while you can


set this variable to be Brads = degrees * 255
any value from -128 to 360
127, you’ll find that you
will really want to limit Figure 4. Converting degrees
the range that you give into binary radians.
to some smaller range,
such as –16 to 16. Twist causes the robot to spin around
its center. If you send it a 0, then the robot will not turn.
If you send it more or less than 0, then it will turn to the
right or left faster as you get farther away from 0. The
reason that you want to limit the range that you send is Figure 5. Another way of looking at the “lookup table.”
because, if you send a number too far from 0, the robot
will spin so quickly that you won’t be able to drive it in any this table, you will have a pre-calculated list of 256 sine val-
meaningful manner. ues. A true sine wave will oscillate between 1 and –1, but to
Finally, there is angle offset. This is the angle in binary keep these calculations simple and fast, this table will
radians this wheel is offset from the first wheel. Figuring out oscillate between 0 and 255; 127 will represent 0 in a real
the offset angle for each wheel is easy to do. For example, sine wave.
for the robot at the top of Figure 3, the offset angles would If your motor driver code took a 0 as full forward and
be 0, 120, and 240 degrees. You can measure these angles 255 for full backward, you could do the calculation just
with a protractor. One thing to remember is that we are described for each wheel and pass it to your motor driver and
using binary radians for our calculations, so these angles con- have your robot go at full speed in the direction that it was
vert to 0, 85, and 170 brads when you use the formula in being commanded.
Figure 4. Obviously, this isn’t that useful, so what we will need to
For each omniwheel that you are using, you will take
the input angle and add to it the offset angle. The great Figure 7. A graphical look at what the formula in Figure 6 does.
thing about using binary radians instead of some other
range is that if, for example, you have an input angle of 100
brads and an offset angle of 170 and you add those two
together you get 270 brads; however, due to how eight-bit
variables work, you will overflow the register and end
up with a value of 14 brads, which will work fine for your
calculations!
Now take your adjusted angle and perform a sine( )
operation on it. Trigonometry on a small microprocessor is a
lengthy calculation. You can save a lot of time and process-
ing power by using our good friend the “lookup table.” In

Figure 6. Scaling the sin( ) result to vary the robot’s speed.

result = ( sin ( ) result * speed


256
+ ) (
256 - speed
2 )
TECH TIDBIT
Do you sometimes find information about a cool
electronic part, but can’t figure out where to buy it?
Take a look at www.findchips.com This site is a central
location where you can type in a part number and it
will search the online inventory databases of the major
electronic suppliers for matches and then display the
results in a nicely formatted table.

SERVO 04.2005 13
Rubberbands.qxd 3/9/2005 3:25 PM Page 14

Rubberbands and Bailing Wire

do is scale the values from the previous calculation based on cient for your purposes, but if you want to change the
the speed value that we are given. We will accomplish this direction that the robot is facing, then you will need to use
using the formula shown in Figure 6. In a nutshell, this for- the twist variable. Twist is a signed integer, so all you need
mula takes the input value and leaves it untouched if you to do to get your robot to turn in place is to add the twist
want to go full speed. As your speed variable decreases in variable to the scaled “lookup table” value. You will need to
value, the results are scaled more toward 127, which repre- keep in mind that this could overflow or underflow your
sents the motor not turning. For those of you who are visual eight-bit variable so make sure to do that addition in 16-bit
thinkers, Figure 7 should help you understand the function of signed math and then check that it will fit within an eight-
this formula. bit variable.
At this point, if you were to feed the results of this for- Here’s an interesting piece of information that might sur-
mula into your motor drive subroutine, you would be able prise you: You can use this very same omniwheel calculation
to move in any direction at any speed, but your robot on two-wheeled robots, as well. Your robot won’t be able to
would always face the same direction. That might be suffi- move sideways anymore, but it might simplify how you con-

Figure 8. Code to drive an omniwheel and the necessary “lookup table.”

// this code is meant to be compiled by the CCS C compiler for a Microchip PIC processor
const int8 sinWave[] =
{128, 131, 134, 137, 140, 143, 146, 149, 153, 156, 159, 162, 165, 168, 171,
174, 177, 180, 182, 185, 188, 191, 194, 196, 199, 201, 204, 207, 209, 211,
214, 216, 218, 220, 223, 225, 227, 229, 231, 232, 234, 236, 238, 239, 241,
242, 243, 245, 246, 247, 248, 249, 250, 251, 252, 253, 253, 254, 254, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 253, 252, 251,
251, 250, 249, 248, 247, 245, 244, 243, 241, 240, 238, 237, 235, 233, 232,
230, 228, 226, 224, 222, 219, 217, 215, 213, 210, 208, 205, 203, 200, 198,
195, 192, 189, 187, 184, 181, 178, 175, 172, 169, 166, 163, 160, 157, 154,
151, 148, 145, 142, 139, 135, 132, 129, 126, 123, 120, 116, 113, 110, 107,
104, 101, 98, 95, 92, 89, 86, 83, 80, 77, 74, 71, 68, 66, 63, 60, 57, 55,
52, 50, 47, 45, 42, 40, 38, 36, 33, 31, 29, 27, 25, 23, 22, 20, 18, 17, 15,
14, 12, 11, 10, 8, 7, 6, 5, 4, 4, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 16, 17, 19, 21, 23, 24,
26, 28, 30, 32, 35, 37, 39, 41, 44, 46, 48, 51, 54, 56, 59, 61, 64, 67, 70,
73, 75, 78, 81, 84, 87, 90, 93, 96, 99, 102, 106, 109, 112, 115, 118, 121,
124, 128};

int8 omniwheel(int8 speed, int8 angle, int8 offsetAngle, signed int8 twist)
{
/* This routine takes speed, angle, offsetAngle and twist and returns
an int8 that represents the speed and direction that the motor should turn.
The returned value is a 0 for full forward, 127 for stop, and 255 for full
backwards */
int16 tempInt;
signed int16 signedInt;

angle += offsetAngle; // add the offset angle


tempInt = sinWave[angle]; // run it though the lookup table
tempInt *= speed; // scale the result
tempInt /= 256;
tempInt += (~speed / 2); // ~speed complements the bits which is the same as
signedInt = tempInt; // performing 256 - speed only faster
signedInt += twist; // add in twist
if(signedInt < 0) // then check to make sure it didn’t underflow
signedInt = 0;
else if(signedInt > 255) // or overflow
signedInt = 255;
return signedInt; // the return will truncate signed int but will
// still return 0 to 255
}

14 SERVO 04.2005
Rubberbands.qxd 3/9/2005 3:36 PM Page 15

Rubberbands and Bailing Wire

trol your robot. To control a two-


wheeled robot using this calculation,
just keep the angle variable at 0 for for-
ward and 127 for reverse, have the off-
set angles for the wheels be 63 and
191, use speed to control the speed
of the robot, and use twist to turn
the robot.
Now that this whole process has
been described, there is a C function
that will perform this whole calculation
in its entirety, as well as the sine
“lookup table” that it needs.
Writing code to drive omniwheels
seems pretty intimidating at first, but —
as you can see — it actually renders
down to a surprisingly small amount of
code. Let’s look at what it would take
to turn these values into actual motor
rotations so that you can impress your Figure 9. Shown is a large robot that uses omniwheels. The arrow shows where zero
robot-building buddies. One way degrees is so the proper starting direction is always known.
would be to use a microcontroller that
has as many pulse width modulators power, but it would work. Another your microcontroller.
(PWM) as the number of motors that method would be to use one of the Using omniwheels on your robots
you would like to drive and use them to many hobby servo controllers out can make them a lot of fun to play
drive some H-bridges in locked there — such as the Buffington Effects around with. This sort of robot can
antiphase mode. Locked antiphase hobby servo controller. If you were move in ways that others can’t, so
PWM rapidly switches the motor for- to connect a DC motor controller — sometimes it can help you achieve a
ward and backward to achieve speed such as a Vantec RET411P or IFI task that would otherwise be impossi-
and direction control of a motor. Robotics Victor884 — that takes servo ble. Hopefully, you now understand
Take a look at November 2004’s pulses as its input to the hobby servo how to drive omniwheels and will be
“Rubberbands and Bailing Wire” controller, you could easily control able to apply this new knowledge to
column for more information about many motors without bogging down your next project. SV
locked antiphase PWM and driving
motors.
You could also write a routine to
bit-bang as many pulse width modula- Custom Computer Ser vices, Inc.
tors as you need. That would be horri-
bly inefficient of your processing Build-It-Yourself
Robotics Development Kit!
RESOURCES Move! Great for Robot The Robotics
See! Sumo Competition!
Development
www.ccsinfo.com Features Kit offers an
Sells the C compiler for PIC introduction
Sense
include: to the world of
processors used in this column Direction! robotics for both
Respond to beginners and
t
ga
www.microchip.com IR Remote! r tin
Sta $229 advanced robot
y
Onl
Manufacturer of the PIC Speak! Assembled Robot Shown Here enthusiasts.
microcontroller

www.omniwheel.com Use code SVA05 to get


Sells omniwheels FREE Batteries for your$10
robot. Value
www.acroname.com
For more information request a free copy of our brochure today!
Also sells omniwheels
Sales 262-522-6500 x35 www.ccsinfo.com Fax 262-522-6504
Circle #41 on the Reader Service Card.
SERVO 04.2005 15
RoboResources.qxd 3/9/2005 3:14 PM Page 16

Tune in each month for a heads-up on


where to get all of your “robotics
resources” for the best prices!

On the Hunt for Stepper Motors

D irect current (DC) dominates the


field of robotics. DC is used as the
main power source for operating the
learn how to apply them to your robot
designs.
ent ways. One you may encounter is
bipolar. It has four wires and is pulsed
by reversing the polarity of the power
onboard electronics, for opening and Under the Hood of a supply for each of the four steps.
closing solenoids, and, yes, for running Stepper Motor
motors. Few robots use motors Design Considerations
designed to operate from AC — even There are several designs of stepper of Stepper Motors
the automatons used in factories. Such motors. A common type is the unipolar
robots convert the AC power to DC, stepper motor. The motor is composed Stepping motors differ in their
then distribute the DC to various sub- of two sets of paired windings. design characteristics over continuous
systems of the machine. Internally, wires connect to each of the DC motors. The following sections dis-
DC motors can either be continu- windings, and there may be as many as cuss the most important design specifi-
ous (for the lack of a better word) or eight wires coming from the motor. cations for stepper motors.
stepping. Here is the difference: With a Though some wires are commonly con-
continuous motor, the application of nected together, this reduces the wire • Stepper Phasing. A unipolar stepper
power causes the shaft to rotate con- count to five or six instead of eight. requires that a sequence of four pulses
tinually. The shaft stops only when the In operation, the common wires of be applied to its various windings for it
power is removed or if the motor is a unipolar stepper are attached to one to rotate properly. By their nature, all
stalled because it can no longer drive side of the power supply, say, the posi- stepper motors are at least two-phase.
the load attached to it. tive rail. Each winding is then ener- Many are four-phase, while some are
With stepping motors, the applica- gized, in turn, by grounding it to the six-phase.
tion of power causes the shaft to power supply for a short time. The
rotate a few degrees, then stop. motor shaft turns a fraction of a revo- • Step Angle. Stepper motors vary in
Continuous rotation of the shaft lution each time a winding is ener- the amount of rotation of the shaft
requires that the power be pulsed to gized. For the shaft to turn properly, each time a winding is energized. The
the motor. The more pulses fed to the the windings must be energized in amount or rotation is called the step
motor, the more the shaft turns. As proper sequence. For example, ener- angle and can be as small as 0.9
such, stepper motors are inherently gize wires one, two, three, and four in degrees. The step angle determines
“digital” devices — a fact that will come sequence and the motor turns clock- the number of steps per revolution. A
in handy when you want to control wise. Reverse the sequence, and the stepper with a 1.8-degree step angle,
your robot via computer. By the way, motor turns the other way. This is for example, must be pulsed 200 times
there are AC stepper motors, as well, called the wave-step sequence. for the shaft to turn one complete
but they aren’t really suitable for robot- Another approach actuates two revolution.
ics work and won’t be discussed here. windings at once in an on-on/off-off,
Stepper motors aren’t as easy to four-step (or “phase”) sequence. This • Pulse Rate. The smaller the step
use as standard DC motors, but for the enhanced actuation sequence increases angle is, the more accurate the motor,
applications that require them, stepper the driving power of the motor and pro- but the number of pulses stepper
motors can solve a lot of problems with vides greater shaft rotation precision. motors can accept per second has an
a minimum of fuss. In this column, There are other varieties of stepper upper limit. Heavy-duty steppers usual-
we’ll take a closer look at steppers and motors and they are actuated in differ- ly have a maximum pulse rate (or step
16 SERVO 04.2005
RoboResources.qxd 3/9/2005 3:14 PM Page 17

rate) of 200 or 300 steps per second, The UCN5804 can be directly inter- upon request, but note that more and
so they have an effective top speed of faced to the stepper motor, as long as more specialty ICs are available only in
one to three revolutions per second (60 the motor does not require more than surface-mount packages. So be sure to
to 180 rpm). about one amp per winding. brush up on your soldering skills!
In operation, the chip is given two
• Running Torque. Steppers can’t deliv- input signals: direction and step. When to Use a
er as much running torque as standard Pulling the direction pin high or low
DC motors of the same size and reverses the rotation of the motor. Stepper Motor
weight. A typical 12-volt, medium-sized Pulsing the step pin manually, from a Stepper motors aren’t a replace-
stepper motor may have a running microcontroller or even a 555 timer IC, ment for ordinary continuous DC
torque of only 25 oz-in. To increase the rotates the motor. For more informa- motors. The lower overall torque and
torque, it is necessary to either use a tion on the UCN5805, refer to the data speed of steppers make them less ideal
gear train or increase the voltage. sheet available for it. Several websites, as drive motors for robots weighing
Unlike a continuous DC motor, increas- including Alltronics (www.alltronics more than a few pounds. Unless your
ing the voltage to a stepper does not .com), provide the data sheet as a free robot is small or lightweight — say,
increase its speed. download. under a pound or two — use geared DC
It’s also possible to use discrete motors. Reserve stepper motors for
• Braking Effect. Actuating one of the logic gates to control stepper motors. I those applications where controlled
windings in a stepper motor advances won’t get into specifics here; you can positioning is required.
the shaft. If you continue to apply cur- find schematics on the Web, as well as For example, you might mount an
rent to the winding, the motor won’t in my book, Robot Builder’s Bonanza, ultrasonic sensor or camera on a turret
turn any more. In fact, the shaft will be Second Edition, and Building Robot and drive the turret back and forth
locked — as if you’ve applied brakes. As Drive Trains, by Dennis Clark and with a stepper motor. Keep in mind
a result of this interesting locking Michael Owings. These books provide that stepper motors are inherently
effect, you never need to add a braking useful details on using a volt-ohm open-loop control systems, and you will
circuit to a stepper motor because it meter to “decode” the wires on typical need some mechanism for “homing”
has its own brakes built in. unipolar motors. the motor to a known start point each
Let’s not forget that there are time your robot is powered on. This
• Voltage, Current Ratings. Like DC many more advanced stepper motor can be done manually, with a switch,
motors, stepper motors vary in their chips available from semiconductor or potentiometer.
voltage and current ratings. Steppers companies — including ST Micro, Keep the following in mind if
for five-, six-, and 12-volt operation are Allegro, and Analog. Many of these you’re still keen on using stepper
not uncommon. Unlike DC motors, companies will provide free samples motors for the drivetrain of your robot:
though, if you use a higher voltage
than specified for a stepper motor, you
don’t gain faster operation, but more
running and holding torque.

Controlling a Stepper
Motor
Though stepper motors can be
controlled via mechanical means — like
a relay — the most common approach
is to use a computer or a stepper
motor control circuit. In the absence of
direct computer control, the easiest
way to provide the proper sequence of
actuation pulses is to use a custom
stepper motor chip, such as the Allegro
Micros UCN5804, available from sever-
al surplus sources such as Alltronics.
This chip is designed expressly for use
with the common unipolar stepper
motor and provides a four-step actua-
tion sequence.
SERVO 04.2005 17
RoboResources.qxd 3/9/2005 3:16 PM Page 18

gear train. Even a 2:1 gear train ratio will


double the torque. Of course, the gear
train will also reduce the effective speed
of the motor by an inverse amount: the
output of a 2:1 gear train is half the
input speed. If the motor turns at a top
rate of 60 rpm, for example, a 2:1 gear
train will reduce it to 30 rpm.

Sources for Stepper


Motors
Despite their many advantages,
stepper motors aren’t nearly as com-
mon as the trusty DC motor, so they are
more difficult to find. When you do find
them, they’re expensive when new.
The surplus market is by far the
best source for stepper motors for
hobby robotics. In this “Robotics
Resources,” you’ll find sources for
selected mail-order surplus companies
that regularly carry stepper motors.
FIGURE 1. All Electronics at www.allelectronics.com They carry most of the “name brand”
steppers — Thompson-Airpax, Molon,
• Avoid uneven terrain, like ramps or technique is to use a 12-volt power Haydon, and Superior Electric. The cost
bumps. The smoother the surface, the source with motors rated at five volts. Be of surplus steppers is often a quarter or
better the motors will drive the robot sure to observe all current ratings and fifth of the original list price.
across the floor. design your drive circuitry accordingly. The disadvantage of buying sur-
plus is that you don’t always get a
• Increase voltage to the motors. One • Increase torque through a simple hook-up diagram or adequate specifi-
cations. Purchasing surplus stepper
FIGURE 2. B.G. Micro at www.bgmicro.com motors is largely a hit-or-miss affair, but
most outlets let you return the goods if
they aren’t what you need. If you like
the motor, yet it still lacks a hookup dia-
gram, read the following section on
how to decode the wiring. If you like
the motor, yet it still lacks a hookup dia-
gram, use a multimeter to determine
the wiring layout. Here are two web-
sites that provide useful information on
how to do this:

http://209.41.165.153/stepper

http://www.bbastrodesigns.com/
cot/operate_stepper_windings.
html

You can also find stepper motors


in discarded computer printers and fax
machines. Most of these motors are
designed for five- or 12-volt operation.
These motors are not built for torque,
so plan accordingly if you’re thinking
18 SERVO 04.2005
RoboResources.qxd 3/9/2005 3:17 PM Page 19

about using them to drive a five-pound DC (geared and non) and stepper
deskbot around the room. motors. If you’re in the Los Angeles
area, be sure to take a trip to the C &
All Electronics Corp. H retail store.
www.allelectronics.com
All Electronics is one of the primary Digi-Key
sources in the US for new and used www.digikey.com
robotics components. Prices and selec- Digi-Key is one of the largest mail
tion are good. Walk-in stores are in the order retailers/distributors of electronic
Los Angeles area. components in North America. Their
Product line includes motors, printed catalog has everything — you’ll
switches, discrete components, semi- probably need a magnifying glass to
conductors, LEDs, infrared and CdS read it! Fortunately, they also offer a
sensors, batteries, LCDs, kits, and much very fast and efficient online ordering
more. Specifications sheets for many system, complete with links to data
products are available at the website. sheets (when available). Check them
out for specialty stepper motor inte-
Alltronics grated circuits.
www.alltronics.com
Not to be confused with All Electronic Goldmine
Electronics in Southern California, this www.goldmine-elec.com
Northern California electronics mail- Electronic Goldmine sells new and
order firm is known for a good assort- used electronic components, robot
ment and reasonable prices on new items, electronic project kits, and more.
and surplus merchandise. A catalog in PDF format is available;
Request their printed catalog or printed catalogs are sent to US
download one for free from the site addresses only. Be sure to check out
(you need Adobe Acrobat Reader to the interesting and unusual (and low-
view it). Among their robotic product cost) robotics kits.
line are motors (DC and stepper), step-
per motor controllers, power MOSFETs, Fair Radio Sales
and more. www.fairradio.com
Fair Radio Sales primarily caters to
American Science & Surplus ham operators, with their radio sets
www.sciplus.com and old gear, but they have plenty of
Often carries surplus stepper test equipment and general surplus
motors. Printed and online catalog electronics to tide over anyone. Prices
available. are always reasonable. I’ve bought
from them for over three decades. The
B.G. Micro company provides an annual catalog,
www.bgmicro.com with updates.
B.G. Micro is a haven for the elec-
tronics tinkerer and robotics enthusiast. Fry’s Electronics
Much of the stock is surplus, so it www.frys.com
comes and goes, but while it’s being Fry’s is an electronics superstore
offered, it has a good price attached to chain operating primarily in the West
it. Get it while you can because some- Coast region of the US. Among the
one else surely will. wide product line are some electronics
kits, including a stepper motor experi-
C & H Sales menter kit. If there isn’t a Fry’s near
www.candhsales.com you, they offer online shopping (limited
C & H sells motors of all types, selection) at www.outpost.com
gears, pneumatics, pumps, solenoids,
relays, and lots of odds and ends. Their Gateway Electronics, Inc.
catalog (both printed and online) regu- www.gatewayelex.com
larly contains dozens of quality surplus Gateway is a general electronics
SERVO 04.2005 19
RoboResources.qxd 3/9/2005 3:18 PM Page 20

Sacramento, and Santa Rosa). Included


in their line are surplus stepper motors.

H&R Company, Inc. (Herbach


and Rademan)
www.herbach.com
Surplus mechanicals: motors,
relays, gears, optics, and lots, lots more.

Jameco Electronics
www.jameco.com
Full-service general electronics
mail-order, Jameco carries just about
everything you need. The product line
includes some stepper motors.

MECI — Mendelson Electronics


Company, Inc.
www.meci.com
Well, MECI sells just about every-
thing you could want or need in elec-
tronics components. If you can think of
it, they probably have it. They also pro-
FIGURE 3. HSC Electronic Supply at www.halted.com vide a “BattleBots Parts” page on their
website with some new and surplus
mail-order and retailer. Among their St. Louis, San Diego, and Denver. components suitable for combat
product line are passive and active robots. These include heavy-duty
components, motors, electronic kits, HSC Electronic Supply / Halted motors, batteries, and more.
gadgets, books, and tools. Some of www.halted.com
their goods are new; others are They offer mail-order, with walk-in Mouser Electronics
surplus. They operate local stores in retail stores in California (Santa Clara, www.mouser.com
Mouser Electronics is a mail order
FIGURE 4. Mendelson Electronics at www.meci.com components distributor, providing a
full line of products for industry and
hobbyists. All general electronics are
carried, including active and passive
components, wire and cable, hard-
ware, relays, switches, fans, heatsinks,
batteries, component kits, chemicals,
and tools. SV

ABOUT THE AUTHOR


Gordon McComb is the author
of the best-selling Robot Builder’s
Bonanza, as well as Robot Builder’s
Sourcebook and Constructing Robot
Bases, all from Tab/McGraw-Hill. In
addition to writing books, he oper-
ates a small manufacturing company
dedicated to low-cost amateur
robotics. You’re welcome to visit at
www.budgetrobotics.com He can
also be reached at robots@robot
oid.com

20 SERVO 04.2005
Full Page.qxd 3/9/2005 9:25 AM Page 21

Produced by Founding Sponsor

Profiting from the


1st New Industry Premier Sponsors

of the 21st Century RoboticsTrends

Evening Reception Host

Premier Media Sponsor

SECOND ANNUAL

Conference and Exposition


The Nation’s Premier Business Development Event
for Mobile Robotics and Intelligent Systems

May 10-11, 2005


Hyatt Regency Cambridge
Cambridge, MA
www.roboevent.com

Photos courtesy of iRobot, SICK, K-Team, CTG, Business Design Lab, ActivMedia Robotics, LLC.

Corporate Sponsors Media Sponsors Association Sponsors

SERVO 04.2005 21
Geerhead.qxd 3/9/2005 3:07 PM Page 22

by David Geer Contact the author at geercom@alltel.net

The RoboCoaster G2
It’s the Ride of Your Life!

kay, I’m writing this RoboCoaster rarely seen or experienced state-of-the- stoops, and does a shoulder rise and
O G2 piece for “GeerHead” and all I
can think of is the lyrics to the Cars’
art ride that’s a lot like a roller coaster,
but all robot.
fall while the wrist axis can roll, pitch
(to veer off a degree from a horizontal
song “Magic.” RoboCoaster G2 can From its hexapod base, the G2 has plane), and yaw (swerve), giving it
definitely get you twisted. I love the six degrees of freedom of movement. motion effects seldom experienced in
Cars, so all I can think is I must love this It offers the rider the sensations of other rides.
RoboCoaster, too. briefly sustained inertia, several feet of In addition to taking passengers
Well, who wouldn’t? You like warm articulation, and up to 15 degrees of on a ride within its six degrees of free-
weather, amusement parks, rides, and rotation. dom of movement, the RoboCoaster
roller coasters, right? And you’re a Rotating and gyrating on its six G2 can make a large, circular move-
roboticist, so you love robots, of course. axes extended over the length of its ment with the passenger module out-
gigantic robot arm, the G2 can be pro- side its normal footprint of mobility. It
Dish on the Coaster, grammed to move in new patterns can also shoot its arm straight up in the
Man every time, so it’s never the same ride air while maintaining a full range of
twice. wrist mobility.
RoboCoaster G2 is an update to a The G2 major axis rotates, bends, The robot comes equipped to carry
two or four passengers and, as a
Frontal view. You can see how the robot’s gigantic size makes it difficult to get a stand-alone ride secured to the
close-up and keep all of its features in view. ground, it can serve (process?
shake up?? turn into human milk-
shakes???) 60 to 120 people per
hour, assuming a one and a half
minute thrill ride.
Until now, we’ve been talking
about the RoboCoaster as a single,
fixed, stand-alone ride. With the
G2, multiple RoboCoasters can be
affixed to a high-speed re-circulat-
ing track in which the robots are
coupled together in train sets. This
multiplies RoboCoaster’s individual
movement abilities with the high-
speed, twisting, turning movements
of state-of-the-art roller coasters.
The attraction to thrill seekers is
obvious — a motion experience you
can get nowhere else. Just don’t
eat or drink before you get on. In
addition to being one of few loca-
tions with such an offering, parks
could theoretically build a working
22 SERVO 04.2005
Geerhead.qxd 3/9/2005 3:08 PM Page 23

GEERHEAD

ride big enough and fast enough to


serve 2,500 passengers an hour. Can
you say “Cha-ching?”

G-Whizzzzzzzzzzzzz!!
Though the ride is capable of four
Gs of gravity, it is limited to 1.9 Gs for
passenger safety. It is also limited to
movement combinations that aren’t
likely to kill passengers — which is a
good thing.
The ride can be configured to be
slow and gentle, like a rocking chair or
fast and furious, like a hurricane. Each
individual RoboCoaster can be config-
ured, ride to ride, to suit the tastes of
the individual passengers. One car can
provide a modest rush, while the very
next set of passengers can be flung
from one extreme to the other at top
speed.
Other extreme ride movements This view of RoboCoaster shows a loaded four-passenger carriage, as well as the
include lateral head (passenger com- individual G2 “car’s” wrist, forearm, arm, and part of its base. As a piece of
partment) shaking and inverted rota- machinery, it’s as beautifully streamlined as it is agile.
tion. Training in an astronaut’s cen-
trifuge doesn’t come close to the expe- The control system includes high- also includes a broad array of
rience this ride brings to the public. performance AC servo drives that use PC-based and industrial field bus
a motion profile for an optimized rela- communications formats. Other
Robotics, Already! tionship between the ride’s individual features include remote, Internet-
motors and their speed. The system based system diagnostics and an
RoboCoaster is similar in many
ways to modern industrial robots found Speed and construction that many a roboticist would call art.
in production lines, though many times Look at the flesh-tone-colored arm behind the yellow carriage.
larger. Where the payload of an aver-
age industrial spot-welding robot is
about 150 Kg (around 330 lbs), the
RoboCoaster’s payload is 500 Kg
(about 1,100 lbs). So, that theoretical
2,500 passenger an hour coaster
could easily weigh in at well over a
dozen tons.
If you plan to seek out the first full-
on, track-based RoboCoaster G2 roller
coaster thrill ride built in the US, you’ll
have to look pretty hard. We won’t
expect to see the very first one(s) to
start popping up at popular attractions
until the 2006/2007 season.
When you do find them, here’s
what you’ll want to check out to take
note of their robotics: The arm struc-
ture of the individual cars and the sys-
tem controls are the key robotic ele-
ments, built by KUKA — a robotics
manufacturer based in Germany.
SERVO 04.2005 23
Geerhead.qxd 3/9/2005 3:08 PM Page 24

GEERHEAD

future tracked G2 coaster depend on


the construction an amusement park
plans to build and offer to its con-
stituency. However, the largest one
currently in the planning stages is for
a dark ride of about 65,000 sq ft with
a track 1,400 feet long. Since any
tracked G2 construction is based on
totally modular components, almost
any size and configuration will be
possible.

Why G2?
The G2 offers much greater capac-
ities, not the least of which is the abili-
ty to assemble several of them togeth-
er for a tracked motion ride. This
enables rides to be constructed that
take passengers through any of a vari-
ety of interactive shows that tell stories
based on themes.
Straight-on view of side-angle ability. A demonstration of the uniqueness of the The G2 can be built to run on a
experiences this robotic ride has to offer. track that extends through up to nine
interactive four-dimensional cinemas.
open-network-capable, industrial, PC are actually managed by VXWorks, The object is to make you part of the
control module. which is a popular OS for embedded story. (Not that anyone in the general
Specifically, the motion control sys- devices. public knows, but wouldn’t you be
tem is based on 600-volt AC servo drive guessing Disney right now?)
technology, while the robot’s controller How Big Did You Say?
user interface is Windows-based. The That Does Compute!
real-time and motion control, however, The size and capacity of any
New motion sequences are easily
Nothing like this type of engineering has been seen in the amusement parks yet. programmed. The G2 can adopt one
path through a dark ride for one show
and another for a completely different
show — different projections for the
cinematic aspect — on the very next
trip through.

Safe Enough for


Passengers, a First for
Robotics
Until now, industrial robots have
not been acceptable for the safe car-
riage of human passengers. The
RoboCoaster was developed pretty
much from scratch from a specialized
industrial robot. This meant that the
amusement park industry’s regulators
had to start from scratch, as well as to
make sure that this application of the
technology was going to be safe.
Nothing quite like this type of engi-
24 SERVO 04.2005
Geerhead.qxd 3/9/2005 3:10 PM Page 25

GEERHEAD

neering, building materials, and robot-


ics had been seen in the amusement
park industry before. New protocols
were developed to insure appropriate
designs and ultimate safety approvals
for passengers.

The Spin on Spin Offs


RoboCoaster development has
spun off two new and rapidly growing
areas in the service robotics industry,
which is said by some to be the
last frontier of robotics. These are
entertainment robotics and medical
robotics.
Having proven that robots and
people can safely live together in a
common environment in which robots
serve people in a very intimate way
without harming them, the What a rush. Not only do they look safe, they’re clearly having fun!
RoboCoaster is leaving behind a
stream of debates and inquiries the lesser charted territories of medical You Missed It!
among roboticists as to how the tech- robots and other areas of robotic
nology can be a stepping stone into entertainment. If you weren’t at the International

Yes! The internet’s first and best


robotics source has been purchased
by Jameco Electronics, and we’re
committed to greatly expanding the
product line quickly!

Each month we’ll add hundreds more


new robotics products. Plus we’ll
We’re continue to supply favorites like
Back! Muscle Wire®, the OctoBot Survivor™
robot and more.

Be sure to visit us online at

www.RobotStore.com
Robotic Arm Kit
(No. 4-523)
or call

1.800.374.5764
Twin Motor Gearbox Kit
(No. 3-709) ...and see what’s changed!

For All Your Robotic Needs!


Circle #53 on the Reader Service Card.
SERVO 04.2005 25
Geerhead.qxd 3/9/2005 3:10 PM Page 26

GEERHEAD

Association of Amusement Parks and


Attractions last fall in Orlando, FL, you
people to pay to build one of these is
a full-function live demonstration. The
When, When??
missed what may be your only chance word is that amusement industry Where, Where???!
to see and ride a tracked RoboCoaster executives were chomping at the bit to While the first generation
G2 for the next year or two. put up one of these puppies in their RoboCoaster can be inspected and
You know the only way to get playgrounds. enjoyed this summer at LEGOland parks
in Europe and in California as a family
RESOURCES attraction, the G2 tracked ride won’t be
in parks until the 2006-2007 time frame.
KUKA automation and robotics — www.kuka.co.uk/ Just where you’ll find G2 is still
AMEC — www.amec.com hush, hush, but you can expect to find
RoboCoaster — http://archiv.kukaroboter.de/robocoaster/index_flash.html G2 rides not only in the US, but in Asia
and Europe, as well. SV

THE STORY OF INVENTOR GINO DE-GOL


You knew there had to be a person- ters were so close and small and the drives was born. A key enabler for safe
al story of one lone roboticist with a robot so large. robotic-human interaction, the technol-
dream in here somewhere, didn’t you? As early as the 1980s, De-Gol was ogy became a foundation for part of
Gino De-Gol, who eventually formed struck with an astounding idea: “What a the architecture for the RoboCoaster
RoboCoaster, Ltd., is the man with that great ride a robot would make!” program.
story. The world of robotics in the 1980s By the year 2000, De-Gol had real-
Roboticist Gino De-Gol left college was an infant technology by today’s stan- ized that many of the separate automo-
to enter the professional world of indus- dards. Working safely with robots meant tive design and construction abilities
trial robotics and never looked back. turning them off, putting them in fully and safety technologies of industrial
He has been a specialist in robotics enclosed safety barriers, or being able to robots — though seemingly unrelated —
applications for Rolls Royce — if you’ve run like heck! could be combined to form an
never driven or ridden in one, it is really Safety measures today follow much approvals standard for a passenger-
something to appreciate — and then for the same philosophy — keep people carrying robot.
the German automotive engineering and their machines at a distance from
giant KUKA, which became one of three each other. The Ride Was Born
companies that produced the In the 1990s, servo technology De-Gol wanted to build an
RoboCoaster — together with AMEC and brought better safety assurances to advanced robotic amusement park ride,
RoboCoaster, Ltd. robotics, enabling a fail safe that kept but his vision was open to obvious
robots from losing control and running applications in the military, medical, and
The Early Years over their roboticists. aerospace fields.
Through the 1980s and early 1990s, Safer robots made the prospect of In 2000, De-Gol started
De-Gol was a hands-on kind of guy — just increased man-machine interactions RoboCoaster, Ltd., to bring the world its
your kind of roboticist, I’ll bet. He tai- viable. Working together more closely, first passenger-carrying robot that was
lored robotics to automated automobile people and machines could be more fully realized, developed, and safety
assembly lines, programming their every productive. With this, De-Gol added certified. De-Gol presented it to the
thought and action, finessing their every another brush stroke to his idea of one amusement park industry and, due to
caress for the materials that they would day building RoboCoaster! his highly applicable, high safety stan-
form into millions of cars that have since dards, the RoboCoaster was immediate-
been driven, loved, and eventually Safety is a Plus ly accepted.
junked or preserved for posterity. As industrial robotics grew, the Today De-Gol is bringing new and
This meant working in tight spots, need arose for further safety measures innovative robotics applications to
dangerously close — personally — with in man-machine working conditions. In other areas of amusement rides, includ-
each robot. The truth is that experi- shops where a human operator would ing show-action robotics, also known as
ences like De-Golo’s, which so many be working in close proximity with the peripheral effects. De-Gol’s work is
industrial roboticists have shared in, robot while its servos were still active, bearing fruit in Edutainment (a new con-
were among the earliest intimate man- the arrangement had to be fundamen- cept that combines education with
machine environments. In some cases, tally safe. entertainment), TV, and movies, where
De-Gol had to literally ride the robot to This is how the controls architec- actors and robots intermingle to bring
finesse its movements because the quar- ture that enables safe and redundant true millennium-era stories to life.

26 SERVO 04.2005
Grau3.qxd 3/9/2005 6:15 PM Page 27

by Steve Grau Figure 1

W hether you are building a robot to explore another plan-


et, compete in the DARPA Grand Challenge, rescue vic-
tims of a disaster, or just satisfy your own curiosity, it’s likely
ware components and will allow software components that
use navigation functions to be decoupled from components
that implement navigation functions. In other words, high-level
that you’ll want it to have the ability to navigate from place control software will only need to be concerned with where
to place on its own. the robot should go next. It need not be concerned with the
Last month, we laid the groundwork for navigation by underlying details of the robot’s steering and propulsion mech-
developing shaft-encoder and localization software compo- anisms; these details will be the responsibility of the Navigator.
nents. These components enabled our robot to keep track of Our Navigator interface will define four navigation
its position using dead reckoning. We also created test soft- operations:
ware that enabled the robot to navigate by performing timed
maneuvers. This was fine for testing, but lacked feedback to 1. moveTo — Move the robot to a specified point.
compensate for changing battery voltage, varying floor sur- 2. rotateTo — Turn in place to face a particular direction.
faces, differences between the servo motors, and other fac- 3. go — Move continuously in one direction.
tors. In this article, we will develop reusable navigation soft- 4. stop.
ware components that use the output of the localizer to pro-
vide feedback for improved navigation. We specify this in Java with the following code:
In this article series, we have been developing software
(programmed in Java) for a robot we’ve named the public interface Navigator {
public void moveTo(float x, float y, boolean wait);
“RidgeWarrior II.” We are using the pre-built IntelliBrain-Bot public void rotateTo(float radians, boolean wait);
robot chassis and electronics kit from RidgeSoft (www.ridge public void go(float radians);
soft.com), shown in Figure 1. The goal is to develop useful public void stop();
robotics software components that we can put to use in the }
RidgeWarrior II and easily reuse in future projects. Java source
code for this series of articles is available at www.ridge Figure 2. Navigation and localization class diagram.
soft.com/articles/ridgewarriorii/ridgewarriorii.htm

Defining a Navigator Interface


We will use Java’s interface mechanism to define a gener-
ic interface to the navigation components. This facilitates soft-
ware reuse by allowing the functionality of a navigator to be
defined independent from a particular implementation. This
minimizes the interdependencies — coupling — between soft-
SERVO 04.2005 27
Grau3.qxd 3/9/2005 6:16 PM Page 28

Creating Reusable Robotic Software Components

this design, it makes sense to


implement a generic component
applicable to typical differential-
drive robots, rather than a compo-
nent that is specific to just our
RidgeWarrior II robot. We will
implement a class named
DifferentialDriveNavigator that can
be used for navigation in a wide
variety of differential-drive robots.
The key to steering a differen-
tial-drive vehicle is varying the
speed of the wheels or tracks inde-
pendently. Similar to a tank, our
two-wheeled robot will go straight
ahead when both wheels turn at
the same speed. It will move for-
ward in a curve when the wheels
turn in the same direction, but at
different speeds. The robot will
rotate in place when the wheels
turn at the same speed, but in
Figure 3. Servo speed verses position input setting. opposite directions. Obviously, our
DifferentialDriveNavigator class
The moveTo and rotateTo methods provide a “wait” argu- will need the ability to vary the speed of the motors.
ment. This argument indicates whether the method should
return before the operation is complete or should it wait to Controlling Servo Motor Speed
return until the operation has been completed.
Before we get into the details of navigating, let’s first
Navigation for a Differential develop a Java class named ServoMotor that allows a servo
Drive Robot to be controlled like a generic motor. This will allow our
DifferentialDriveNavigator class to work with any variable
Our robot’s locomotion is based on an ordinary two- speed motor, not just servo motors. Our ServoMotor class
wheeled, differential-drive design. Because of the popularity of will create a façade that makes the servos appear to be
generic variable-speed motors.
Figure 4. Heading error. The Java class library included with the IntelliBrain-Bot kit
already defines a generic motor interface named Motor. The
ServoMotor class will translate from this interface to the
Servo interface. The Servo interface defines servo shaft posi-
tioning commands, whereas the Motor interface defines
motor power commands.
The servos included with the IntelliBrain-Bot kit incorpo-
rate modifications for continuous shaft rotation, so they func-
tion like motors but are commanded like servos. Giving a con-
tinuous rotation servo a positioning command actually
results in setting the power level applied to the output shaft
rather than setting the position of the shaft, as is the case
with conventional servos. Calling the servo interface method
to position the shaft at the midpoint, setPosition(50), turns
the power off. Setting a value greater than 50 causes the
servo shaft to turn in the forward direction. Setting a value
less than 50 causes the servo shaft to turn in the reverse
direction. However, the servos we are using reach their max-
imum power and speed long before the position value reach-
es the extremes of the input range: zero and 100.
Figure 3 is a chart of data collected using the
TestServoResponse class. The chart shows that the wheels
28 SERVO 04.2005
Grau3.qxd 3/9/2005 6:16 PM Page 29

PART 3

reach maximum speed when the position input offset reach- navigation commands mentioned earlier: go, move to, rotate
es 14 percent above or below the power-off point of 50 per- to, and stop.
cent. Therefore, the effective range of the position setting is The navigator’s run method will periodically check the
roughly 50, plus or minus 14 (36 to 64). Varying the position robot’s progress and react accordingly. When the thread is
setting within this range will affect the wheel speed, but vari- not busy, it will sleep so other threads can do their work. The
ations outside of this range will have no effect. following code implements the run method:
Our ServoMotor class’ setPower method will convert the
power setting value to a position setting value, as follows: public void run() {
try {
mServo.setPosition((power * mRange) / Motor.MAX_FORWARD while (true) {
+ 50); switch (mState) {
case MOVE_TO:
The mRange variable is the effective range above and below goToPoint();
the center value, 50. In our servo analysis above, we deter- break;
mined 14 is the range value for the servos we are using. case GO:
goHeading();
Rather than “hard coding” the value 14, we will allow the break;
range to be set when a ServoMotor object is created. This case ROTATE:
will allow the ServoMotor class to be reused with other servo doRotate();
makes and models. break;
default: // stopped
The setPower method will also need to communicate the break;
motor direction to a DirectionListener, which we defined in }
the previous article. The following code accomplishes this: Thread.sleep(mPeriod);
}
if (mDirectionListener != null) }
if (power != 0) catch (Throwable t) {
mDirectionListener.updateDirection(power > 0); t.printStackTrace();
}
The two servos mount in opposite directions on our }
robot’s chassis. The sense of shaft rotation of the left servo
motor is the same as the robot’s sense of direction. However,
the sense of direction of the right servo is the reverse of the
robot’s sense of direction. Rather than propagate confusion
related to the sense of direction throughout our software, we
will avoid this by making the sense of direction configurable in
the ServoMotor class. The setPower method will convert from
the robot’s sense of direction to the servo’s sense of direction:
if (mReverse)
power = -power;

Finally, our setPower method will handle the special case


of turning the servo off when the power is set to zero, as
well as limit the range of the power variable:

if (power == 0) {
mServo.off();
return;
}
else if (power > Motor.MAX_FORWARD)
power = Motor.MAX_FORWARD;
else if (power < Motor.MAX_REVERSE)
power = Motor.MAX_REVERSE;

Implementing the
DifferentialDriveNavigator Class
In order to avoid complicated scheduling interactions
between the DifferentialDriveNavigator class and our robot’s
other sensing and control activities, we will use a separate
thread to carry out navigation functions. This thread will nav-
igate using four states of operation, coinciding with the four
Circle #68 on the Reader Service Card.
SERVO 04.2005 29
Grau3.qxd 3/9/2005 6:17 PM Page 30

Creating Reusable Robotic Software Components

power to the wheels to correct


the heading. In the case
shown, more power must be
applied to the right wheel and
less to the left wheel. Of
course, if the error were in the
opposite direction, the response
would be reversed.
As the error gets larger, the
navigator should respond more
aggressively by increasing the
power difference applied to the
wheels. We will make the
amount of the power difference
proportional to the size of the
error.
Hence, our navigator will
use “proportional control” to
keep the robot on course. The
following code obtains the
heading from the Localizer, per-
forms the proportional control
calculation, and sets the motor
Figure 5. Navigator response to heading change. power accordingly:

Next, we will need to implement the navigation meth- Pose pose = mLocalizer.getPose();
ods: goToPoint, goHeading, and doRotate. Since driving in a float error = mTargetTheta - pose.theta;
straight line shouldn’t be too complex, let’s start with the // constrain the error value to –Pi < error <= Pi
goHeading method. if (error > PI)
error -= TWO_PI;
else if (error < -PI)
Going Straight Ahead with error += TWO_PI;

Proportional Control int differential = (int)(mGain * error + 0.5f);

The function of the goHeading method is quite simple: mLeftMotor.setPower(mDrivePower - differential);


mRightMotor.setPower(mDrivePower + differential);
check the current heading then adjust the power to each
wheel to keep the robot on course. When the robot is
heading off course — as shown in Figure 4 — the The mGain variable is a tunable, proportional-gain con-
goHeading method needs to apply different amounts of stant that controls how strongly the navigator reacts to error.
A larger gain will result in a more aggressive response to
Figure 6. Navigating to a point. error. However, too large a gain will cause the robot to
oversteer. Figure 5 shows the robot’s response — meas-
ured using the TestNavigatorResponse class — to a sudden
change of the target heading. A gain of 6.0 results in a
slow response and the robot tends to drift off course. A
gain of 100.0 causes the navigator to oversteer, resulting
in erratic motion. A gain of 25.0 yields a quick response to
the change in heading and good stability.

Navigating to a Specific
Location
Now that our robot has the ability to steer itself in a
particular direction, it won’t be hard to implement the
goToPoint method, allowing it to navigate to a specific
location. After all, it is just a matter of heading to the des-
30 SERVO 04.2005
Grau3.qxd 3/9/2005 6:18 PM Page 31

PART 3

tination and stopping once it is there. nation by using the Pythagorean Theorem to calculate the
Our navigator can calculate the distance and direction to distance to the destination. However, this calculation would
the destination using the output of the localizer and a little require calculating a square root, which is computation inten-
bit of trigonometry. Once it calculates the direction, it can sive. Instead, we will use a less intensive method, summing
then use the goHeading method to head that way. The nav- the absolute values of the two error terms. This won’t yield
igator can determine the robot has arrived at the destination the exact distance, but it will be good enough.
by noting that the distance to the destination has dropped When the robot is in transit to the destination, the navi-
below a threshold. gator will need to make regular adjustments to keep the
We will use the following overall structure for the robot on course. To do this, it must determine the angle —
goToPoint method: theta — to the destination. Fortunately, the Java class library
provides just the function we need: Math.atan2, a method
private synchronized void goToPoint() { for calculating arc tangents.
// Get the current position from the localizer
We will implement the remainder of our goToPoint
Pose pose = mLocalizer.getPose();
method as follows:
// determine the proximity to the destination
: float absXError = (xError > 0.0f) ? xError : -xError;
if (very close to the destination) { float absYError = (yError > 0.0f) ? yError : -yError;
// stop if ((absXError + absYError) < mGoToThreshold) {
: // stop
} mLeftMotor.setPower(Motor.STOP);
else { mRightMotor.setPower(Motor.STOP);
// update heading mState = STOP;
: // signal waiting thread we are at the destination
goHeading(); notify();
} }
} else {
// adjust heading and go that way
mTargetTheta = (float)Math.atan2(yError,
Figure 6 depicts the robot heading toward its destina- xError);
tion. The location of the destination relative to the robot’s goHeading();
current destination in Cartesian coordinates is (xError, yError). }
The angle theta is the straight-line direction to the destina-
tion. The values of xError and yError can be calculated by sub- Rotating in Place
tracting the robot’s current coordinates — obtained from the
Localizer — from the destination’s coordinates: The final navigation method we need to implement is
doRotate to enable rotation in place. Similar to the goToPoint
float xError = mDestinationX - pose.x;
float yError = mDestinationY - pose.y; method, this method will use data from the Localizer and the
target heading to determine which direction to rotate and
We could determine if the robot has arrived at the desti- when to stop. We will use the following Java code for this:

Run Cool.

PololuSMC04

Too Much Heat? motorcontrollerwith


tripleinterfaceandfeedback
control,shownactualsize.

Introducing Pololu’s new line of high-current motor controllers with total resistance
under 0.050 ohms. Find out more at www.pololu.com or by calling 1-877-7-POLOLU.
Circle #74 on the Reader Service Card.
SERVO 04.2005 31
Grau3.qxd 3/9/2005 6:18 PM Page 32

Creating Reusable Robotic Software Components


private synchronized void doRotate() { our software. The operating system will take care of briefly
Pose pose = mLocalizer.getPose(); suspending execution of the navigator thread when a wheel
float error = mTargetTheta - pose.theta;
// choose the direction of rotation that results encoder thread needs to take a quick peek at its sensor.
// in the smallest angle Multi-threading helps simplify scheduling, but — in order
if (error > PI) for it to work properly — we must consider the interaction
error -= TWO_PI; between threads. Our main thread will provide high-level con-
else if (error < -PI)
error += TWO_PI; trol of the robot, calling the navigator methods: go, moveTo,
float absError = (error >= 0.0f) ? error : -error; rotateTo, and stop. These are just simple methods that set the
if (absError < mRotateThreshold) { goal of the navigator. We will not go into the details of each
mLeftMotor.setPower(Motor.STOP); of these methods. We will only consider the moveTo method:
mRightMotor.setPower(Motor.STOP);
mState = STOP;
public synchronized void moveTo(float x, float y,
notify();
boolean wait) {
}
mDestinationX = x;
else if (error > 0.0f) {
mDestinationY = y;
mLeftMotor.setPower(-mRotatePower);
mState = MOVE_TO;
mRightMotor.setPower(mRotatePower);
if (wait) {
}
try {
else {
wait();
mLeftMotor.setPower(mRotatePower);
}
mRightMotor.setPower(-mRotatePower);
catch (InterruptedException e) {}
}
}
}
}

Coordinating Threads We call this method from the main thread to give the navi-
gator thread its next goal. We must assure that the variables
We’ve kept our control logic simple and avoided undue that define the goal — mDestinationX, mDestinationY,
coupling between the navigator and other components by mTargetTheta, and mState — are only changed and read as a
using a dedicated thread to execute the navigation code. This consistent set; otherwise, the navigator thread could resume
allows the navigator to pilot the robot without awkward con- execution at an inopportune time and use some values from the
sideration for the robot’s other tasks, such as sampling sensors. new goal and other values from the old goal. For example, the
If we were to implement the RidgeWarrior II as a single navigator would use mDestinationX from a new goal and
threaded program — the only choice with many robot con- mDestinationY from the previous goal if it was to resume execu-
trollers — the navigator code would need to include logic to tion just as the main thread finished execution of the first line of
take into consideration the priority and timing constraints of the moveTo method. This would result in the navigator steering
other tasks. For example, we would need to consider if the toward an unintended location — the combination of the new
arc tangent calculation is going to take so long that the wheel destination’s x coordinate and the old destination’s y coordinate.
encoder will miscount. With multi-threading, we can give the This wouldn’t be desirable, especially if heading toward this
wheel encoder threads a higher priority than the navigator unintended destination happened to lead the robot over a cliff!
thread. This moves the scheduling burden to the operation Fortunately, Java comes to the rescue, again, by providing
system — in our case, the Java virtual machine — simplifying the “synchronized” keyword. Adding this keyword to a
method or a smaller block of code allows the Java virtual
Error Sources Description machine to act like a traffic cop, only allowing one thread (car)
The accuracy of the wheel-diameter and
into synchronized code (an intersection) at a time. By adding
Calibration wheel-base measurements provided to the Localizer the synchronized keyword to the methods: go, moveTo,
affect its accuracy. rotateTo, stop, goHeading, goToPoint, and doRotate, we’ve
The accuracy to which the wheel encoders are able assured the variables that are shared by multiple threads will
to measure the position of the wheels directly
affects the accuracy of the Localizer. Using wheel always be accessed and manipulated as a consistent set.
Encoder encoders that provide more counts per revolution — One other thread coordination caveat we must consider
such as the WheelWatcher WW-01 encoder — is allowing a calling thread to wait while the navigator carries
reduces error due to encoder quantization.
out the requested command. This will allow a thread calling
Wheel Any slippage of the wheels will result in
Slippage localization errors. moveTo or rotateTo to wait for the operation to complete
The dead-reckoning localization method we are
before continuing to execute. Once again, Java provides a
using is based on self-centric encoder measurements. means to do this: the wait and notify methods. We’ve includ-
This results in accumulation of error because the ed a call to wait in the moveTo method. This tells the Java vir-
robot has no fixed external reference from which it
Localization could recalibrate its position. Incorporating external tual machine the thread must wait until another thread noti-
references — such as landmarks, the Earth’s magnetic fies the virtual machine that the waiting thread can continue.
field (compass), or satellites (GPS) — would help We’ve included a call to notify in the goToPoint and doRotate
improve the accuracy of the Localizer.
methods to notify the Java virtual machine that the waiting
Tablle 1. Major sources of error. thread — if there is one — can resume execution.
32 SERVO 04.2005
Grau3.qxd 3/9/2005 6:20 PM Page 33

PART 3

Testing and Results RESOURCES


We’ll use four test classes to exercise our navigator by RidgeWarrior II Source code
moving the robot in well-defined patterns: www.ridgesoft.com/articles/ridgewarriorii/ridgewarriorii.htm

IntelliBrain-Bot kit
1. NavigateForward — Moves the robot straight ahead.
www.ridgesoft.com/intellibrainbot/intellibrainbot.htm
2. Rotate — Rotates the robot 180 degrees in place.
3. NavigateSquare — Moves the robot in a square pattern. WheelWatcher WW-01 Quadrature Encoders
4. NavigateFigureEight — Moves the robot in a figure-eight www.nubotics.com
pattern.
other robot projects. We also discovered that our robot is less
Experimenting with these classes confirms that the shaft than perfect — no big surprise! While it is tempting to try to
encoders, localizer, and navigator software work well. However, produce a robot that is error free — no matter how hard we
the navigation precision is far from perfect, due to a variety of try — we can only reduce the built-in errors. We can’t eliminate
errors. Table 1 lists some of the more significant sources of error them, and we can’t do anything to prevent unpredictable ran-
that affect the precision with which our robot can navigate. dom errors. A robot’s systems and control software will always
need to deal with imperfection and unknowns.
Conclusion In the next article in this series, we will develop software
to deal with navigating an imperfect robot through unchart-
This month, we have implemented two more reusable ed territory. SV
software components — a ServoMotor controller and a
DifferentialDriveNavigator — to add to our robot software
components bin. By using the Motor and Navigator interfaces,
ABOUT THE AUTHOR
as well as multi-threading, we have been able to minimize the Steve Grau has been developing software for over 20 years.
coupling of these components to other software, hardware, He is the founder of RidgeSoft, LLC, and the author of the RoboJDE,
a Java-enabled robotics software development environment.
and electronics components, making it easy to reuse them for

Circle #85 on the Reader Service Card.


SERVO 04.2005 33
Barlow1.qxd 3/9/2005 2:21 PM Page 34

FIGURE 1

D esigning your first robot can be a daunting task. There are so many
disciplines you have to learn that it can appear to be a major undertaking.
In this first of two parts, I will detail some of the many errors I have encountered
over the years while designing my robots. This information will be most useful
to the beginner, but I know that the seasoned veterans may find some of my
errors informative, as well. Part 1 of this primer will include mistakes I have
made, as well as design ideas, necessary skills, tips, and time-saving methods
for a new design. In Part 2, I will go into detail regarding program errors, tips
for programming, hardware tips, and useful circuits that I routinely use for
my robots.
34 SERVO 04.2005
Barlow1.qxd 3/9/2005 2:21 PM Page 35

PART 1: Common Errors in Building Robots

Where to Begin? when I wanted an SRF04 range sensor


(Figure 2). I then ran out of room with FIGURE 2
Because this article is primarily tar- that design and started another.
geting the new and beginning design- As you learn to create, you will also
er, I will tell you how I personally got learn about new ideas and features
started in robotics. you may want. You could start out with
I have always had some program- a really big chassis and a few high-
ming skill from working with comput- power CPUs, but then the entire sys-
ers and I preferred the Basic language. tem will overwhelm you and you’ll
I had programmed in assembly and never get a working robot. If your first
Fortran, but as mentioned earlier, Basic robot bounces off a wall, turns, and
simply was less of a strain. For those of moves on, that is good enough, and
you who have success in low-level lan- you have reason to be proud of your-
guages, please do not feel I am criticiz- self. Even companies within the indus-
ing these in any way. In addition, I have try build prototypes first before going
always had mechanical skills and was into production.
skilled with some electronics and sol- Con — They cost more, use more bat-
dering. I realize that these abilities are The CPU tery power, and are harder to design if
possibly more than some beginners not based on an existing track system.
may have right now. From my years of programming
I started my first robot when I experience, I have to recommend the Wheels
received a Parallax Board of Education Basic program language for the begin- Pro — They are slightly cheaper than
(BOE) as a present. I learned a few sim- ner. Of the Basic-compatible CPUs, I tracks, use less battery power, and are
ple programs on the BOE and then recommend the Parallax BASIC Stamp. easier to build from scratch.
built a small robot (Figure 1), very simi- The Basic Atom is very good, as well, as Con — The steering is more difficult,
lar to the BOE-Bot sold by Parallax. I I described in the January 2005 issue in caster wheels hangup, programming is
would recommend starting out with SERVO. more difficult using servo commands
the BOE-Bot to anyone. With this kit, The Atom is really made for people or steering commands, and tricycle
you will learn programming skills, as with some experience, however, so I gear is less stable.
well as hardware skills, and right out of give the nod to Parallax when it comes
the box you will have a working robot to the outright beginner. You can use Time
(once it’s assembled). You will not have 99 percent of Parallax programs on the
to learn how to create 360-degree rota- Atom, so I leave this up to your choice. I have spent many, many years
tional servos, H-bridge circuits, sensors, The Atom has more memory space and designing robots and developing my
or any of the other myriad skills neces- features, but the learning curve is skills. You cannot expect to learn every-
sary. The LEGO Mindstorms kits and a slightly steeper because of a smaller thing at once. If you try to cram in too
few other beginner kits will whet your amount of available documentation. much, you could lose any of the enjoy-
appetite, as well, without throwing you There are many fine assembly- ment you have. Start off as simple as
into the deep end immediately. based CPUs, as well, and they may you can. Ultimately, this hobby is
have more features than a Basic-com- meant to be fun for you and you alone.
Design Ideas piled CPU. I personally do not recom- It is very nice to show off a robot to a
mend them for a beginner, though. friend, but — if you are losing patience
Do not bite off more than you can trying to get a design to work just to
chew. We all want the super fancy Tracks or Wheels? display a fancy feature — you will lose
high-tech, whiz-bang robot, but Rome your desire to create.
was not built in a day. Start off simple This is a design choice we all must I have had some robots that spent
and add to your robot as you go along. face in the beginning. From experience, years in the design stage. I am always
If you reach a point where the original I would have to say that tracks are eas- adding features as I go along. Have fun
design is limiting you, great. This is a ier to work with for a beginner. To help with what you have now; don’t dwell
good stage. You now have a reason to you make an informed decision, I will on what you want to have in the
build a second robot. list some pros and cons of each. future.
I know it costs more money for a
new robot, but the rewards will be Tracks Program Language
worth it. My first robot had two servos Pro — Stable platform, easy to rotate,
for drive wheels and three fixed IR sen- excellent traction, and easy motor con- Program in the language that is
sors. I then moved up to a track system trol with an H-bridge circuit. easiest for you, not what anyone else
SERVO 04.2005 35
Barlow1.qxd 3/9/2005 2:21 PM Page 36

A PRIMER FOR THE NEW ROBOTICIST


code for you personally. long page, you will be able to easily
With that said, as men- scan up and down it, following your
tioned under the CPU variables and checking subroutines.
heading, I can recom-
mend that beginners Skills Necessary
start out with the Basic
language. There is no Regarding the skills necessary for
better place to begin building a robot, some of you may be
than the Parallax website. wondering where it all ends. I think I
If you already program in can say from years of experience that
C or assembly, then by all you never will acquire all the skills nec-
means, stick with it. I essary. Each year, new hardware is
FIGURE 3 myself freely admit that C being developed to advance robotics. I
and assembly just aren’t have compiled a list of basic skills
tells you and not just for the so-called my bag. I spend too much time strug- below. Please realize this is not an all-
added features of a different language. gling with the language and not inclusive list. Other roboticists will have
Pure assembly code is theoretically the enough time actually coding. their own lists of skills.
quickest, but what good is that if you If the language is not intuitively
cannot understand it? obvious, then I want no part of it. 1. Soldering. Soldering is a mandato-
You are the master of the robot, Obviously, many millions of people do ryskill for any home-built design. A
not the other way around. Why should an excellent job with assembly, C, Java, panavise to hold your work and a good
your robot/CPU dictate to you that you etc., so to each his own. I am in awe of quality temperature-controlled solder-
must learn a low-level language simply the people who have mastered the ing iron are must-have items. A solder-
to gain a few faster CPU cycles? World- low-level languages. If you feel you can ing iron with a replaceable element
famous aviator Chuck Yeager once said handle it, then, of course, jump in and and tip will also work well. For us mid-
that he would rather fight a poor pilot have fun. dle-aged builders, reading glasses will
in a top-line fighter jet than an excel- make a big difference when soldering
lent pilot in a poor-quality jet. Work Environment tiny wires. If you can afford it, purchase
This is true of your program lan- a large, lighted magnifying glass for
guage, as well. If you struggle and Program in a quiet and comfortable your solder stations.
strain every day trying to figure out environment if at all possible. Nothing is
code simply because this CPU language worse for creativity than having a dozen 2. Basic Electronics. High-level skill with
may run faster than another language, distractions taking you away from your electronics is not necessary, but basic
then what is the advantage to you in mental processes. This is true of any understanding of wiring and connec-
the end? form of creativity, such as painting or tions skills are. Areas in this category
I cannot emphasize this enough. writing. Even the monitor can make a would be battery connections, working
Pick a language that is the easiest to difference. I prefer to code on my lap- with capacitors and resistors, connect-
top. The LCD screen does not hurt my ing four-wire sensor packages, LED
eyes as much as a tube monitor. circuits, and servo connections.

Debugging 3. Advanced Electronic Skills. These


would be circuit board production, H-
When debugging software, I high- bridge motor design, 360-degree servo
ly recommend a hard copy printout of modifications, pulse-width modulation
your program. I realize this becomes (PWM), etc. For your first robots, do
unwieldy for large programs, but the not worry too much about these. I pre-
benefit is more than worth it. If you sume you will be designing a small
have spent hours trying to find an error robot that can be wire-wrapped or
in your code, you may be surprised to breadboarded. H-bridge chips are very
realize how quickly you see your mis- cheap and can drive small motors
take once you have a hard copy in front directly. Fully rotational servos can also
of you. be purchased these days, so you don’t
Tractor feed printers are becoming need to rewire a conventional servo.
more scarce every day, but if you have
to, tape your single-page printouts 4. Hardware Skills. These can be as sim-
FIGURE 4
together into one long page. With this ple or as fancy as you desire. My first
36 SERVO 04.2005
Barlow1.qxd 3/9/2005 2:22 PM Page 37

PART 1: Common Errors in Building Robots

robot used a wood platform for the Wire up a sin-


chassis and servo mounts were gle LED and make
screwed to the wood frame (Figure 1). it flash with your
Any form of substrate will work. program. Add in a
Aluminum is not necessary for a switch to turn the
small robot. Plexiglas works well, but is LED on and off.
difficult to cut. “Robotics Resources” in Add a single servo
SERVO Magazine has had numerous or motor and see
articles on materials for robotics and I if you can make it
encourage you to look back through rotate. Make the
these. switch shut the
I am always searching toy stores for motor off through
robot bases to modify. A remote control software. Do not
tank, bucket loader, or bulldozer are bother with wheel FIGURE 5
obvious and easy modifications. Simply encoders and
throw away the entire top section of the PWM. A simple wired H-bridge will have You may never use them all, but you
tank or bulldozer and save the track and plenty of amperage for a small robot may be able to combine some ideas
motor assembly for your new robot. (Figure 5). with others to create something new.
Figure 3 shows a bucket loader that I Once you can get the robot to Save all references found in magazines
used, which is a cheap way to go. There move, then you can add in some sort and on websites.
are also many very fine robot bases sold of collision sensor. Nothing can be I am always reading about new
in SERVO and Nuts & Volts. more simple than a bumper switch features or hardware being designed.
mounted on the front of your robot. SERVO always has excellent articles
5. Program Skills. This is something This will work on the switch circuit you and ideas for robotics. Tape sticky
that may have to be learned on your learned earlier. Have your program sim- notes to the pages of the magazines so
own or at a college. I highly recom- ply detect a switch and shut off both you can find them in the future. If you
mend the book Programming and motors/servos. With these new skills see an H-bridge circuit, mark the loca-
Customizing the BASIC Stamp behind you, you can tackle adding an tion. For example, if you find a website
Computer by Scott Edwards (Figure 4). I/R or sonar range sensor. You will have for a SRF04 sensor, save the website
This book not only teaches basic pro- confidence to program the sensor link. You will always find a good use for
gram skills, but it teaches you electrical because you already have accom- these items in the future.
skills, as well. This book is not specifi- plished so much.
cally for robotics, but what it teaches is Your robot’s program should not 7. Pack Rat Skill. Don’t laugh; this is
easily applied to them. There is a small be complicated. My first robot had a truly an art form in itself. I am always
robot you can build and a sonar chap- bumper switch, two switches (left and looking at old toys, electronics, or hard-
ter in the book, as well. right). Then, I added two I/R sensors, ware to see what may be useful for
Parallax has excellent manuals and then a SRF04 with range detection. On robotics. “Robotics Resources” in the
tutorials online, but start off slowly; do my latest robot, I have I/R range sen- October 2004 issue covered salvaging
not try to add many features at once. sors, light sensors, sonar sensors, IR electronics and useful hardware for
A flowchart is not always necessary, edge sensors, all working together your robots. I encourage you to pack
but it will definitely help you. If you (Figure 6). I never could have added all away any useful items you find. Some
don’t understand how to create a pro- these various sensors at
fessional flowchart, don’t worry. once without learning
Simply write on a paper what you want them in steps.
your robot to do. Anything written
down is better than nothing. 6. Research. This is a very
For example: your text-based flow- necessary skill. Research
chart could show the following: can be as easy as mark-
ing useful code found in
Drive forward SERVO or as daunting as
If obstacle detected, then do some- spending hours on line
thing (turn left?) (bumper switch?), (IR searching the Web for
sensor?). information. Write things
If no detection, then drive forward down, keep notes on cir-
again. cuit designs, and write
End down your own ideas. FIGURE 6

SERVO 04.2005 37
Barlow1.qxd 3/9/2005 2:41 PM Page 38

A PRIMER FOR THE NEW ROBOTICIST


your design. Two years circuit board. I do not recommend this
ago, I created a quite com- as a first step for beginners. If you wish
plicated circuit board all to, you may read my article on circuit
from my head. I added board production in the August 2001
many dozens of compo- issue of Nuts & Volts.
nents and ICs, but I never
got around to creating a 11. Logbook. Keeping a journal or log-
wire schematic. This has book of your designs is indispensible.
come back to haunt me For years, I would wire a robot, write
more times than you can code, make changes, and never write
imagine. I now have this anything down. This was a horrible
board on the bottom of my habit to get into and it has more than
robot with a second board once really hurt me. I always comment-
FIGURE 7 stacked over it. ed my code (a little bit), but never kept
Sure enough, I am always a list of changes or what I had done
of these may be small switches, needing to know where a certain wire that day.
motors, wire, lights, rheostats, broken goes and ... you guessed it. I have to A logbook does not have to be
circuit board sections, remote control tear the robot apart to figure out my fancy. I use a simple school notebook.
units, plywood scraps, angle brackets, own work. At the time of creation, a If I do work on my robot, I write down
tin sheets, etc. schematic just did not seem necessary. the date, any new program revisions —
Wrong! This does not have to be a such as bolomark5.1.bas — and what
8. Disassembly Skill. Tear things apart. daunting chore. You can either write exactly I did to change that program. If
If you have a broken VCR, take it apart the schematic by hand on paper or use I add new hardware, I write down
and see what is inside. If you cannot fix a computer based schematics program. what I added or modified and any
it, you can use parts for your pack rat I myself use Express PCB Schematic applicable wiring codes.
skill. I have been taking things apart all Designer (www. expresspcb.com). It will take some effort to get into
my life. I admit, I did not get many of Scribble anything onto paper; it is the habit of writing things down, but
these back together or working again, better than tearing apart your robot a your logbook only has to be legible to
but some, I did. In the process, I have year down the road. You do not need you. You should see the chicken scratch
learned the tricks and secrets to their to learn how to make an industry-stan- on some of my pages. Obviously, being
design. I also have gained a junk box dard schematic in the beginning. Write clear and concise is best, but it is far
full of spare parts. down what you can understand initial- more important to have something
ly. As you gain experience, you can written down rather than nothing.
9. Schematics. Drawing or creating a increase your skill level. Make this one of your very first habits
schematic of your work is a very neces- to develop.
sary skill to have. I cannot emphasize 10. Circuit Board. Your basic circuit
this enough. Create a schematic of board can be anything that is easily 12. Read Your Logbook. This sounds
understood by you. Wire-wrap, bread- silly, but — if you have debugging prob-
board, copper breadboard, or a profes- lems — don’t just assume you can
sionally designed circuit board will all remember everything that you have
work well. done over the years. This is the purpose
Breadboards work great for of a logbook: to remember things you
debugging and the learning process. can’t. On one robot, I had a socket con-
They also are reliable for robots (Figure nection for an IR calibration resistor.
7). For your first robot, use a bread- On the disassembly of my main boards
board. Then go from a breadboard to to check my wiring (recall that I had no
an actual wired board. The industry schematic), I inadvertently pulled loose
makes a copper perf board that is this resistor. Sure enough, my IR circuit
wired exactly the same as a bread- failed and I spent hours finding locat-
board (Figure 8). You can take your ing the problem. I wrote this down in
design and transfer it directly to this my logbook.
copper board and solder on your parts. Wouldn’t you know it, this hap-
Designing an actual printed circuit pened to me a second time about a
board is an entirely new skill. These can year later for the same reason. Once
be made online by companies such as again, I pulled the resistor loose, and
FIGURE 8 ExpressPCB or you can make your own once again, I spent hours debugging. If
38 SERVO 04.2005
Barlow1.qxd 3/9/2005 2:42 PM Page 39

PART 1: Common Errors in Building Robots

I had only read my logbook, I would bolt into the center of the ball
have seen this problem documented half to attach it to your robot
and fixed it in two seconds. (Figure 9).

Tools • IR edge sensors. One difficult


problem I had was implementing
You will spend a lifetime acquiring IR edge sensors on a robot using
tools — both expensive and inexpen- the Atom’s hardware interrupt. I
sive. Some useful tools are: a logic had spent many long hours trying
probe, Dremel drill, panavise, soldering to figure out why I was getting
iron (good quality), tweezers, jeweler’s many false interrupts in my code.
screwdriver set, parts bins, alligator I was not sure if I was getting FIGURE 9
clips, X-acto knife and saw, hot-melt motor noise interfering with the
glue gun, solder sucker or solder wick, edge sensors tied to the interrupt pin, changed, depending on how many
resistor color code chart, magnifying if I was getting stray noise through my edge sensors there were tied in paral-
glass, mini drill bits, heatshrink, basic circuit board, or where the false inter- lel, as well.
multimeter, bench-top power supply, rupts were coming from. I even tried a I never did figure out why the IR
oscilloscope, and IR test card or IR test counter in my code to only act upon an sensors were putting out false trig-
circuit. interrupt if the system had counted five gers. I think they were in a floating
occurring interrupts. state and any stray circuit noise must
Problems I Have Had I finally installed a pull-up resistor have affected them. I’m telling you
on the interrupt pin. I thought that I this long story so that you, too, will
If you are still with me, then you needed to keep this pin pulled up to +5 always persevere through your prob-
may find some useful information from volts until the I/R edge sensors output lems. Don’t give up!
the many problems that I have had a low or zero. This, too, did not work.
over the years: I was on the right track, however. I • SRF04 sonar and “specular error.”
finally determined that this pull-up On one of my robots, I had a single
• Battery problem. Ni-MH caused the resistor is a critical value. Too low a SRF04 sensor (Figure 2), and many
CPU to reset, as Ni-MH batteries are resistor value (300 ohm), and the edge times, the sonar would not detect a
not always a direct replacement for Ni- detectors cannot bring the interrupt wall or a corner. I found out that this
Cad batteries. I had a working robot, pin low fast enough. Too high a resistor is called “specular error.” This mani-
that used four Ni-Cad batteries. The value (1.2 kilohm), and the false inter- fests itself if a robot moves towards a
motors were tiny and only drew 300 rupts continued unabated. This value wall at an angle of about 30 degrees.
mA/h. I installed four Ni-MH batteries
and spent weeks trying to figure out
why my CPU kept resetting. It was not
this simple at the time, of course. I
tried filter capacitors and storage
HobbyEngineering
The
Thetechnology
technologybuilder's
builder'ssource
sourcefor
forkits,
kits,components,
components,supplies,
supplies,tools,
tools,books
booksand
andeducation.
education.
capacitors to no avail. I finally deter-
mined that the Ni-MH batteries could
not supply the instant-on amperage Robot
Robot Kits
Kits For
For All
All Skill
Skill Levels
Levels ICs,
ICs, Transistors,
Transistors, Project
Project Kits
Kits
draw from the motors. I solved this
with a second battery pack of Ni-Cad Motors,
Motors, Frame
Frame Components
Components
batteries, in parallel.
and
and Scratch
Scratch Builder
Builder Supplies.
Supplies.

Order
Orderby
byInternet,
Internet,phone,
phone,fax
faxor
ormail.
mail.
• Tricycle drive robot. On one of my
robots, I had dual-servo-drive motors www.HobbyEngineering.com
www.HobbyEngineering.com
and a trailing wheel. I found out that,
Books
Books and
and
1-866-ROBOT-50
1-866-ROBOT-50
when backing up, this wheel would 1-866-762-6850
Educational
Educational KK 1-866-762-6850
1-650-552-9925
jam or twist in an odd direction and 1-650-552-9925
1-650-259-9590
1-650-259-9590 (fax)
(fax)
cause the robot to become stuck. I sales@HobbyEngineering.com
sales@HobbyEngineering.com
solved this by placing a fixed, round 180
180 El
El Camino
Camino Real
Real
BEAM Millbrae,
Millbrae, CA
CA 94030
ball caster on the rear of the robot. A BEAM Kits
Kits and
and Components
Components 94030
plastic round caster from a chair works Visit
Visit our
our store
store near
near SFO!
SFO!
well. I have heard of other people who
use half of a ping-pong ball. Glue a Most
Most orders
orders ship
ship the
the day
day received!
received! World-wide
World-wide shipping.
shipping. Convenient
Convenient pay
payment options..

SERVO 04.2005 39
Barlow1.qxd 3/9/2005 2:42 PM Page 40

A PRIMER FOR THE NEW ROBOTICIST


had been testing other items on to keep moving a servo back and forth.
FIGURE 10 the robot and never ran it for I also had many problems with the sen-
more then 30 seconds. sors not detecting narrow objects, such
as chair legs. This is an inexpensive
• One change at a time. Only method of sensing, but — in the end —
make one change at a time while installing multiple sensors will make a
debugging or making coding much better system. If you can afford
changes. Resist the temptation to it, you can never have too many sen-
make two or more changes at the sors! A rotating sensor head works fine
same time. Unless you are racing for large objects and walls, but it will
against a deadline, there is no rea- fail most of the time on narrow
son to ever make two code objects.
changes at once. Even something Four SRF04 sensors work a billion
The signal will bounce off the wall, so simple as a subroutine name change times better than one on a rotating
slide down along the wall, hit a corner, or a variable name change can cause head. Please understand I am not
and come back to the robot — or the grief if combined with a second knocking a swivel-head design; I just
signal may simply continue and never change. When you make two changes wish to make it clear that, if you can
show a return. The sonar will think together, it’s very hard to know which afford it, multiple sensors will always
there is a long distance ahead when change caused a new program error. give more efficient object detection.
there really is not. This is most notice- Perhaps, professional programmers can
able on very smooth walls, particularly make more than one change before • Metal battery holders. I highly rec-
metal walls. compiling, but it seems like every ommend metal battery holders for all
time I try to do it, I get burned in the applications (Figure 10). Over the
• Keep your code neat and clean. I long run. years, I have had many plastic battery
have never been the best programmer, holders fail. The contacts will melt out
but — over the years — I have realized • Version numbers. Save different ver- of the holders or the case will split in
that neat code makes for easily under- sions of your program. I used to make half. I know that many people will say
stood code. Keep your variables in one a code change and overwrite my origi- I am drawing too much amperage, but
section and constants in another. nal program. I did this routinely until this is not always so. Even when it is
Subroutines should be clearly listed and one time, I made many major changes new, a plastic battery holder can cause
grouped in sections. This will also help at once and overwrote the original all kinds of grief. Keystone Electronics
tremendously with debugging your (note the one change at a time item sells nice aluminum and steel battery
program. above). Naturally, the program quit holders.
I once had a stack overflow prob- running and it took me forever to fig-
lem in my code. My robot would only ure out what went wrong. Summary
run for around 30 seconds before Use any method you wish, but —
resetting. I thought I had a hardware whenever you make a code change — I hope that this first article has
problem — possibly some stray voltage save it as a new program. For example, shown you many of the problems and
on the CPU power line. Finally, some- change the base number for minor revi- errors that can develop for a roboticist.
one on the Atom forum reviewed my sions and the tens digit for major revi- Part 2 will go into detail regarding syn-
code and found out that I had some sions — bolomark3.7 to bolomark3.8 is tax and code errors, useful programs,
goto subroutines without proper a minor change and bolomark3.5 to helpful notes, and useful circuits. I’m
returns. He cleaned up my code and, bolomark4.0 is a major change. sure that many other people have
now, I can run for hours without errors. good tips and tricks, as well. I encour-
This problem crept up on me because I • Single sensor on a rotating servo age you to always search for useful
head problems. I spent information and record these tips in
RESOURCES many long hours trying to your logbook.
get a robot to be crash free We are all working on the cutting
Parallax: www.parallax.com using a SRF04 and GP2DO2 edge of technology and anything you
Basic Micro Atom: http://basicmicro.com mounted on a swiveling learn now will certainly be useful in the
Nuts & Volts: www.nutsvolts.com servo head. I never was future. Always remember never to give
Keystone Electronics battery holders: www.keyelco. able to get my robot 100 up when struggling with a problem. Sit
com/kec/standpro/stdframe.htm percent reliable with this back, relax, ask a friend for help, or ask
Acroname Sensors: http://acroname.com
method. First of all, this is a for help on forums. Your simple designs
slow way of detecting today may lead to tomorrow’s next
Author: Admin@mntnweb.com
objects ahead if you have great breakthrough in robotics. SV
40 SERVO 04.2005
Davis.qxd 3/9/2005 11:48 AM Page 41

by Lester “Ringo” Davis

computer numerical control (CNC) machine is basically a milling machine


A with motors attached to each axis with a computer controlling them. A small
three-axis CNC milling machine can cost up to $35,000.00, and after looking at
what it did, I decided to try to build one for slightly less money — about
$34,500.00 less, to be exact. This article is not intended to be a recipe for
building a copy of my design, but for giving you ideas on how to build your own
using some of the techniques I found and avoiding some of the mistakes I made.
I’m an electrical engineer, so machining is not part of my background, but if I can
make this work, then so can you. I did have access to a small machine shop with
a band saw, lathe, and a milling machine.
I wanted my machine to be able to cut plastic up to four-inches thick, thin
metal, and also be able FIGURE 1. This shows the Acme screw, coupler, bronze bearing, tap,
to make printed circuit snap ring, ball bearing, and the precision ground rod.

boards (PCBs). I want-


ed to work on material
at least 12-inches wide
and 18-inches long,
and I was looking for
precision in the range
of 0.001 inch.
With those ideas in
mind, I started looking
at what materials were
available ...

SERVO 04.2005 41
Davis.qxd 3/9/2005 11:48 AM Page 42

A Hobby CNC Milling Machine

A little research on the Web revealed that there was


plenty of software available to run a CNC machine using
the printer port of a PC. The PC sends commands to step-
per motors that, in turn, spin the Acme threads to move
the cutting tool. An interface board is needed between the
PC and the stepper, but that was also easy to find. For a
cutting tool, I was looking at a Dremmel, a Roto-Zip, and a
laminate trimmer from Porter-Cable.

FIGURE 2. This is the completed tap for the screw holes.


Design
With the basic materials decided upon, I started
A glance at the McMaster-Carr catalog showed me designing the actual machine. Some CNCs move the mate-
that the precision ground rod I would use as my bearing rial in at least one direction while moving the cutting tool
supports came in stock lengths of six, 18, and 24 inches, in the other direction (s), but my design keeps the materi-
so I used those numbers as my main dimensions. The al stationary while the cutting tool moves in all three
threaded Acme screw I would use to move each axis came directions. I started with the Z axis (vertical) since it is the
in 36-inch lengths, so it would have to be cut down. The smallest. I planned from the start on using the 1/4-inch-
Acme screw is 10 turns per inch and the stepper has 200 diameter, six-inch-long linear rods, so the height of the Z
steps per revolution. This means that one step of the motor axis was to be six inches. If you want more Z travel, then
moves the desired axis 1/2000 or 0.0005 inches, which is just use longer rods and change your dimensions to fit. At
better than I was initially shooting for. There will be some this point, I had not decided which tool I would be using
slop in the system, but hopefully it will be minimized. In for the cutter so I designed the width of the Z axis to fit
Figure 1, you can see the Acme screw, coupler, bronze the largest one. After I drew the rods and Acme screw, I
bearing, tap, snap ring, ball bearing, and the precision could then get an idea on how deep the Z axis needed to
ground rod. be in order to have room to fit the horizontal linear rods
The next thing to decide was what material to use to and screw for the Y axis.
make the frame of each axis. Wood would have been okay I spaced the linear rods as far apart as I could and still
(and cheap), aluminum would be sturdier (but expensive), be comfortable that they were not so close to the edge as
but I decided to use a plastic material called high-density to make it weak. I wanted to use two bearings on each rod
polyethylene or HDPE for short. HDPE is available from any for stability, so I designed two one-inch-thick blocks to ride
plastic reseller, like McMaster-Carr, and comes in sheet on the Z axis rods. The lower block will be tapped to allow
form in a variety of widths and thicknesses. It is easy to the Acme rod to move it up and down. These two blocks
machine; you can cut it with a band saw, drill it, tap it, etc., are attached to a 4 x 5-inch piece of 1/2-inch HDPE. This
and the white color gives it a nice clean appearance. piece is what the cutting tool will be attached to. It has
holes evenly spaced so that it can be moved up or down
FIGURE 3. Completed machine without deck or cutter. depending on the type of tool that is attached to it. So, the
Z axis is basically a box with two rods running up and
down, through it and the cutting tool attached to the front
of it.
The Y axis (left and right) consists of a frame with two
horizontal linear rods and an Acme screw. These rods go
through the Z axis and support it while one side is tapped
for the Acme screw so that it can move. The width of the
Y axis is 18 inches, again because of the standard length
of the linear rods. I made the sides and back out of 1/2-
inch HDPE and six inches wide to make it stronger. Making
the sides narrower would reduce weight, but I was afraid
of flexing, so I decided to err on the side of caution. I deter-
mined the height by drawing the Z axis with the largest
motor attached and then leaving enough room for a four-
inch-high block of material. The bottom pieces of the
frame are where the bearings will be held so I used one-
inch-thick HDPE for these, as this allows almost the entire
bearing to be enclosed for added stability.

42 SERVO 04.2005
Davis.qxd 3/9/2005 11:49 AM Page 43

A Hobby CNC Milling Machine

The X axis (forward and backward), like the rest, is a


frame that moves the other two axes. This frame sits on
the table and also holds the material that is being
machined. This is made entirely out of one inch thick HDPE
for strength. It is 24-inches long, 20.5-inches wide, and 2.5-
inches high.

Cutting and Drilling


With the dimensions set, it was time to start building.
I did a rough cut of the HDPE on a table saw and grouped
the pieces according to which axis they belonged to. To
make sure everything came out exactly the same size, I
clamped the two sides of the Z frame together and drilled
a couple of holes and bolted them together. That way,
when I make the finishing cuts for length, both parts are
exactly the same size. For the width cuts, I also bolted on
the top and bottom pieces, then cut all four pieces on the FIGURE 4. This shows the completed Z-axis assembly.
milling machine at the same time. The most important
thing to remember when building this type of CNC slightly smaller so that the bearing can be pressed into
machine is that some dimensions are extremely critical, place, then it will save you a headache later.
while others are not. For example, it doesn’t matter if the One of the outer pieces should be drilled large enough
width of the Z axis is 3-1/2-, 4-, or 4-1/2-inches wide. The for the Acme screw of the motor coupler to pass freely
height of the Z axis should be close to what
was designed because, if it is too tall, then FIGURE 5. Measurement layouts are available at
the rods will not fit. www.servomagazine.com
Likewise, the spacing between the rods
does not matter, as long as there is enough
clearance for everything. The part that is
absolutely critical is that the spacing you use
has to be exactly the same for all four parts
for the rods to pass through. For the Z axis
this means the top and bottom of the frame
as well as the two blocks that will hold the
Motor
motor mounting plate. For the Y axis, it is
the sides of the Z axis and the sides of the
Y axis.
The way I ensured that everything was
lined up was to stack all the parts that
would be drilled together with the parts
needing the smallest holes on the bottom.
Then, I used a milling machine with end
mills to do the drilling. I had to cut holes for
the linear rods and the Acme screw. For the
linear rod, I cut the smallest diameter hole
first through all the pieces, then used the
next larger mill and only went through the
first three layers, then I went to the largest
mill and did the top piece.
You can feel it as you pass through
each layer, so stopping at the correct time
was easy to do. The outer pieces should be
the diameter of the rod and the inner pieces
should be the diameter of the outer dimen-
sion of your bearings. If you can drill it just

SERVO 04.2005 43
Davis.qxd 3/9/2005 11:49 AM Page 44

A Hobby CNC Milling Machine

a 27/32 mill for my hole to be tapped, and since all of


these holes were drilled at the same time, everything line
dup perfectly. You will want to go ahead and also drill the
holes to mount your stepper motors at this time.

Tapping
I bought taps for the 10-24 and 1/4-inch bolts I used
to bolt everything together, but decided to go another
route for tapping the holes of the frames to move every-
thing around. I could have bought Acme nuts that just bolt
to each frame, but they are expensive and can have too
much backlash. After I cut my Acme rod to the lengths I
needed, I had several pieces left over. I decided to use one
of them and turn it into a tap. This way, the tap would
match the Acme screw exactly and backlash would be min-
imized.
FIGURE 6. This is the completed Y-axis frame. To do this, I drilled a hole into one end to use as a han-
dle. Then, I turned down the other end a couple of
through, where the other outer piece should be drilled to degrees to make starting the tap easier. Then, using a
hold a bronze bearing. One of the inner pieces should be milling machine, I cut a couple of four-millimeter grooves
slightly larger than the rod diameter, and the other side into the Acme screw. This had to be done very slowly to
should be the correct diameter so that it can be tapped prevent breaking the bit. After this was done, I used a
later for the Acme rod. For my 1/2-inch Acme rod, I used small file and an X-acto blade to clean up the threads.
Once this was done, I was able to tap the pieces of
FIGURE 7. This shows the overall dimensions of the X axis. the frames.

Overall View
X Axis Dimensions Acme Screws
The Acme screws I used were 1/2-inch diameter,
but the stepper motors had 1/4-inch shafts. The cou-
plers available with the steppers were also 1/4 inch, so
I needed to reduce the diameter of the end of the
Acme screw. To do this, I used a lathe and turned
Motor
down the last 1/2 inch of each screw until it was 1/4
inch and fit in the coupler snugly. It is held in place by
a set screw. I also turned down the opposite end to
1/4 inch so that I could use a 1-1/4-inch bronze bear-
ing to support it. The bearing is inserted into a 3/8-
inch hole in the outer frame opposite the stepper.
.201
6 places per side
0.149 back only
Final Assembly
2.5
2.18 4 places
3/8 in front piece At this point, the only thing left to do is to assem-
1.25 3/4 in front piece ble each frame. There are several options when it
0.32 0.5 comes to attaching the sides to the top and bottom.
0.5
You could use extruded-aluminum, L-shaped pieces to
bolt everything together, or steel L-brackets from the
local hardware store. I took another option and drilled
2.25 holes though the top and bottom and then smaller
8.32 holes into the sides, which I tapped for 10-24 bolts.
9.25
10.18 This gives a nice, clean appearance and holds very
16.25 securely. I countersunk the holes on my Y axis because
18.50 I needed the clearance, but you could do it for all the
axes, if you want to.

44 SERVO 04.2005
Davis.qxd 3/10/2005 9:16 AM Page 45

A Hobby CNC Milling Machine

FIGURE 8. The completed X-axis frame. FIGURE 9. Here, the holes are tapped for the Acme screw.

After assembling everything except the Acme screws be downloaded from the SERVO website (www.
and steppers, you can slide each axis around by hand. I servomagazine.com). Next time, I’ll discuss the interface
was really impressed by how smoothly everything moved. board you will need to control the stepper motors from
The Z axis moves up and down with very little friction, your printer port and the software to drive it. We’ll attach
but there is no noticeable movement at all in the the cutting tool and walk through cutting out a simple
front-back or left-right directions. The other axes feel part. SV
just as stiff.
One modification I made here was to double up the

D e s k to p C N C S o lu tio n s
thickness of the Z-axis sides where the bearing goes
through. It looked a little thin having a bearing over one-
inch wide sticking through 1/2-inch walls. I made a small
piece to fit inside the Z axis about 1/4-inch thick. This
D e s k C N C

X T
allows me to use snap rings to hold the bearings in place.
All of the other axes used one-inch thick material, so they v e c to r
did not need modification. After threading in the Acme
screws, you can move each part by spinning the screw with 3 D C A D /C A M

im s r v .c o m
your finger. Everything should move smoothly with no
binding. Once you see that everything works, you can
attach your stepper motors.
S te p a n d d ire c tio n s e rv o d riv e s , 5 a m p 3 0 v d c
Next Time G lo b e p m d c s e rv o m o to rs w ith e n c o d e r s
D e s k C N C c o n tro lle r a n d s o ftw a re , (M S -W in d o w s )
The drawings I made when designing my machine can C N C C o m p o n e n t k its a n d a s s e m b le d sy s te m s
S u rfa c e s c a n n in g p ro b e a n d P o w e r s u p p ly k its
PARTS LIST
Ball bearings — 1/2-inch Thomson linear bearings #A81420

Linear rod — Thomson linear bearings #QS 1/2-L-SS-18


I M S e r v ic e
P .O . B o x 1 4 2 , N e w H u d s o n , M I 4 8 1 6 5
V o ic e : 8 8 8 -4 5 1 -1 6 7 0
Acme screw — Keystone Threaded Products
o r : 2 4 8 -4 8 6 -3 6 0 0
Stepper motors — Japan Servo #KP56LM2-097

Bronze bearings available from any hardware store

High-density polyethylene available from McMaster-Carr or


any plastics distributor

SERVO 04.2005 45
Thaler.qxd 3/9/2005 11:40 AM Page 46

46 SERVO 04.2005
Thaler.qxd 3/9/2005 11:40 AM Page 47

Prior to 1974, there had been many


attempts to model events and phenome-
na via network-based techniques.
Probably the most well-known of these
modeling methodologies was introduced
by the Reverend Thomas Bayes as early
as 1763. Within these models (Figure 1),
simple probability or rule-based calcula-
tions were carried out within so-called
“nodes,” and the results transmitted to
other such nodes to create compound
models. Once completed, such Bayesian
networks were impressive, although they
did admittedly require humans to endow
each node with wisdom.
Certainly, the creation of a Bayesian
net is an admirable and scholarly project;
FIGURE 1. Network vs. neural network models. Vintage network models
however, it does not qualify as the basis consist of intelligent nodes, communicating through dumb connections.
for the kinds of futuristic AI or robotics Modern day neural networks consist of dumb nodes or switches that
that Hollywood envisions. For one thing, effectively grow connections that embody intelligence.
what happens when an AI agent or
robot encounters a new scenario or environment for which the logical inputs — in1 and in2 — and comparing against some
new human wisdom is required? Out of pure necessity, the predetermined threshold value, θ. If the weighted input (in1 x
kinds of cybernetic systems predicted by science fiction must w1) + (in2 x w2) exceeds θ, the neuron transitions from the off
be capable of fending for themselves. to the on state. (Check for yourself that, by simply adjusting
The breakthrough year, 1974, was when researchers dis- the threshold value, θ, normally considered a connection
covered that multiple layers of totally unintelligent nodes, weight fed by a constant neuron outputting a value of 1, the
effectively acting as “on-off switches,” could autonomously AND network becomes an OR network.)
wire themselves together so as to effectively eliminate the
need for humans planting explicit rules or calculations within An Exemplary Artificial Neural
the individual nodes (Werbos). Instead, all of the wisdom Network
spontaneously “grew” in the form of connection weights
between very dumb nodes, called neurons. Realizing that the single neuron neural network just dis-
Interestingly enough, this work was fueled by so-called cussed was purely a pedagogical one that did not self-organize
computational psychologists who were attempting to gain a itself, let’s discuss how really practical neural networks function.
mathematical foothold into how the brain perceived things These will be nets that effectively build themselves and capture
and events within an environment. They needed to account much more complex relationships in higher dimensional spaces.
for how the brain could enlist relatively dumb
switches to encode all world knowledge in FIGURE 2. This is a simple example of how intelligence may be contained in
the form of electrochemical connections connection weights. With weights w1 and w2 both assigned values of 1.0 and
between them. The result was the so-called the switching threshold q set to 1.5, this simplest of neural networks acts as an
AND logic gate. By lowering the threshold to 0.5, it then acts as an OR gate.
perceptron, a collection of interconnected
neurons that allowed sets of patterns to be
associated with one another. Therefore, the
image of broccoli — a million-dimensional, reti-
nal firing pattern — could activate an opinion:
the cortical firing pattern representing one’s
emotional response to eating this vegetable.
To better understand how wisdom — in the
form of complex logic — can be represented by
connection weights between simple switches,
consider Figure 2. There, human ingenuity has
been used to prescribe connection weight val-
ues that convert the simplest neural network of
them all, a single neuron, into either an AND or
OR logic gate. Note that the neuron switches
between off (0) and on (1) states by weighting
SERVO 04.2005 47
Thaler.qxd 3/9/2005 11:40 AM Page 48

The input patterns could, therefore, consist of 28 sonar


range measurements, perhaps in meters {1, 1, 1, … , 4, 4, 4,
4, … , 1, 1, 1}. Since this pattern looks as though it’s an open
door, the corresponding desired network output pattern would
be {1, 0}, with the first component set to 1 to indicate a door-
way pattern. The second component — here represented as 0
— would be reserved to indicate those sonar patterns that do
not qualify as open doorways. If this had been the sonar return
from a wall, this latter component would be set to 1.
Prior to training this network, we would amass a training
exemplar database consisting of several hundred records that
include 28 fields describing the range measurements in the
sonar sweep and two latter fields indicating whether the cor-
responding sonar pattern represented a doorway or not.
Hopefully, this database would be collected over a range of
scenarios that include sonar sweeps of both walls and open-
ings at a variety of viewing aspects.
The particular network chosen (Figure 4) is known as a
multilayer perceptron (MLP) and consists of 28 input neurons
FIGURE 3. Doorway detection using sonar sweep. to accept the 28 sonar ranges from the angular sweep, 10
A hexapod robot, simulated here in virtual reality, conducts
a 30-degree sonar sweep to detect doors, portals, and intermediate or hidden layer neurons, and two output neu-
other openings through which it can crawl. Here it has rons that are intended to activate in a mutually exclusive fash-
identified a doorway to crawl through. ion to indicate the presence or absence of a doorway. To
train this MLP, we intend to rapidly stream these records —
Let’s consider, as an example, a sonar system aboard a called exemplars in neural network parlance — applying input
robot (i.e., a hexapod crawler) that is returning range meas- patterns to the net’s input layer and corresponding output
urements over a 30-degree range (Figure 3), in one degree patterns to its output layer as the MLP’s connection weights
sampling windows in the robot’s forward vista. If we elect to self-organize so as to capture all the complex relationships
build a neural network to classify the kind of scene in front involved. In this manner, we hope to create an accurate door-
of the robot as an open doorway or not, all we need to do way detector for the robotic crawler.
is assemble a training database involving representative In beginning such network training, all connection weights
sonar input patterns along with human judgments as to would be randomized, perhaps in the range from -1 to +1. In
whether each sonar pattern represents a passageway. training this network, each of our input patterns would be
applied to the net in what is called a feed-
FIGURE 4. Doorway-detecting neural network. Inputs are 28 sonar ranges for the forward cycle. Now, each of the hidden
angular sweep between +14 and -14 degrees. Outputs represent classification into layer neurons — labeled by the index j —
door and not door categories. The intermediate layer is called the hidden layer. receives 28 analog inputs, instead of the
two Boolean inputs in Figure 2. We call
this weighted sum netj, the net input to
the jth neuron (Equation 1). Rather than
simply comparing this net input against
some stored threshold value — as we did
before — we utilize a sigmoid function
(Figure 5) to approximate this switching
behavior and to calculate the activation
for the jth neuron, actj (Equation 2):

netj = ∑iwij x acti (1)

actj = 1/(1 + exp(-netj + θj)) (2)

where θj is the switching threshold or


bias of the jth neuron and acti, the acti-
vation of any preceeding neuron i.
Note that the functional form
expressed by Equation 2 manifests the
necessary switching behavior required of
48 SERVO 04.2005
Thaler.qxd 3/9/2005 11:41 AM Page 49

a neuron, transitioning from an off state (0) to an on state (1)


near the threshold value of θ (Figure 4), where actj assumes the
value of 1/(1 + exp(0)) = 1/2. One very convenient feature of
the sigmoid function is that its first derivative is well behaved,
in a mathematical sense, and takes on a very simple form:

actj ‘ = actj x (1 – actj), (3)

where actj’ represents the differential of actj with respect to


netj. This quantity, actj’ is very important, as you are about to
see, because it helps determine the corrections to any con-
nection weight feeding the neuron j. Further, because of its
simple analytical form, it can be readily incorporated into the
computer algorithm responsible for training this neural net.
Once all of the outputs have been calculated for each
hidden layer neuron, the forward propagation is repeated for
the two output-layer neurons that are likewise accepting acti-
vation values from the 10 hidden layer neurons. They calcu-
late net inputs and produce activations that are always initial- FIGURE 5. Sigmoid function (solid blue) versus simple
thresholding function (dashed red). This is a plot of
ly wrong when compared with the desired network outputs. Equation 2, showing the activation of the jth neuron, actj
It is at this stage that a training algorithm takes charge, with respect to its net input, netj. Here, the threshold,
notes the difference between actual and desired outputs of qj has been set to a value of five.
the network, and begins the process called backpropagation.
In the process, the connection weights feeding any neuron Its purpose is to keep the average training error from
are corrected or updated according to the following rule: “falling” into and dwelling within local minima and, instead,
keeps the error rolling between these error canyons and valleys
∆wij = η * δj * actj’ * acti (4)

where ∆wij is the correction — either positive or negative — that


must be added to the weight, wij. The adjustable constant
called the learning rate is η, δj is the output “error” of the jth
neuron, actj’ is the first derivative of neuron output with respect
to net input noted above, and acti represents the raw,
unweighted output of the neuron i feeding the neuron j
through the weight wij. The output error δj is easy to calculate
for any output neuron, being the difference between its desired
and actual outputs. Otherwise, the calculation of δj for any hid-
den layer neuron is more formidable, since it involves the
weighting of all the output layer deltas as they propagate from
the network output layer back to the neuron of interest, j.
In effect, the network’s output errors percolate back
through the network counter to the direction of typical infor-
mation flow. This backpropagation takes place along “trees”
whose branches begin at all the output neurons and termi-
nate at the “back doors” of the neuron whose weights are
being corrected. Thereafter, these weighted error sums gov-
ern the size and sign of updates applied to weights leading
to the “front door” of each neuron.
Before departing from our discussion of Equation 4, I
offer three observations. First of all, although the weight
update rule looks simple, it is derived from the requirement
that the average prediction error of the network over all of its
training exemplars be minimized, producing some very impres-
sive differential equations that ultimately reduce to this simple
equation. Secondly, Equation 4 may contain another additive
optional term proportional to the product of the last weight
update, ∆wij, and a constant called momentum.
Circle #99 on the Reader Service Card.
SERVO 04.2005 49
Thaler.qxd 3/9/2005 11:41 AM Page 50

until it arrives at an exceptionally deep error minimum from You now should have a handle on how intelligence is
which training cannot escape. Finally, Equation 4 amounts to automatically absorbed within the connection weights
what I typically call a “mathematical spanking,” effectively pun- between neurons, typically through this iterative process of
ishing connection weights that do not contribute to the accu- weight corrections. Of course, this particular example has illus-
racy of the neural network by modifying their values. This trated just one kind of artificial neural network, notably the
mathematical spanking continues as we repeatedly apply input workhorse of the field, the MLP. Although we have chosen a
and output training exemplars to the network until the predic- rather small, three-layer network as a robotics-related working
tion error falls below some acceptable level. example, oftentimes, four or more layers are used with many
As a result of these myriad weight updates, some very more neurons. Researchers in many fields are discovering the
interesting phenomena are occurring within the network. The MLP architecture may be used to conveniently model phenom-
first of these is the formation of what is called a classification ena and relationships within their respective disciplines.
layer, as the connection weights leading to the hidden layer In robotics, the kind of neural network just discussed may
self-organize to effectively collect input patterns into important be used to build reactive robotic systems, somewhat like a spinal
families or classes. In so doing, this classification layer learns by reflex that automatically maps sensor inputs to some robotic
repeated exposure to detect the important features of the response. In this case, such a response may involve generating
input space that can ultimately contribute to the correct classi- the necessary leg servo signals to advance a robot toward the
fication of the sonar pattern as indicative of a doorway or not. sensed doorway. Note that the kind of neural architecture
In this sonar example, distributed colonies of neurons required in building more ambitious deliberative robots — those
develop so that — because of their feeding or afferent connec- that choose among multiple courses of action from self-acquired
tion weights — they respond to important features, such as world models — is quite different than that discussed above and
walls, edges, and gaps. Therefore, when the sonar return sens- is beyond the scope of this introductory article.
es a solid wall ahead of it with no available portal to crawl
through, only the colony of cells corresponding to walls acti- Conclusions
vates. However, if the sonar return is from an open doorway,
then wall, gap, and edge detecting colonies all activate, pro- Neural network practitioners are always quick to point
ducing a preliminary classification of the doorway as just that. out that the primary advantage of artificial neural networks
The second self-organizational phenomenon takes place is their ability to capture highly non-linear relationships, but I
in the output weight layer, wherein the necessary logic for typically take the argument a few levels deeper than that.
classification develops that might very well resemble our pre- Throughout history, humans have devised models of
vious example of the AND gate. This heuristic knowledge, things and events by combining fundamental analogies to
once discerned, would look something this: If edge, gap, and describe more complex phenomena. Mathematicians have
wall features are all indicated in the classification layer, then characteristically combined well understood functional
a door is present; otherwise, the forward scene does not behaviors, such as linear, power law, and sinusoidal relation-
include a doorway. ships to account for phenomena having scientific or technical
Now that I’ve described the training of an artifical neural merit, weighting these simpler functional analogies by expan-
network (ANN), let me emphasize that absolutely no domain sion coefficients, ai:
knowledge was necessary. The network simply trained on
both examples and non-examples of doors, essentially learning F(x) = a1F1(x) + a2F2(x) … + anFn(x) (5)
the “zen” of what constitutes a doorway. This process consist-
ed of: 1) Learning the essential features of what constitutes a Here, the Fi represents the simpler functional behaviors that
door, and 2) The required logic to discern the presence of a could be the powers of x, Fourier components in the form of
door, should the requisite features be detected. A programmer sine and cosine terms, or a simple linear expansion.
did not have to hard code this logic into software, drawing The choice of proper functional analogies, Fi, and solu-
upon his or her world knowledge. The ANN learns completely tion for the expansion coefficients, ai, has occupied scientists
by exposure to sonar returns that are representative and non- and mathematicians for centuries. Once these weightings are
representative of doorways. (What I haven’t told you is how discovered — typically through linear matrix techniques — we
this process may be totally automated in real-time.) produce precise mathematical models to predict moderately
complex behaviors.
References However, the bulk of activities going on in the world are
not describable in terms of simplistic series expansions of the
Freeman, J. A. and Skapura, D. M. (1991). Neural Networks: type embodied in Equation 5. In reality, in the more complex
Algorithms, Applications, and Programming Techniques. and non-ideal problems increasingly mulled over by scientists
Addison-Wesley, Reading, MA. and engineers, events happen in complex, causal chains. For
instance, there may be some initializing event and then sub-
Werbos, P. (1974). Beyond Regression: New Tools for Prediction sequent events occur in a cascading fashion. Looking at any
and Analysis in the Behavioral Sciences. Ph.D. thesis, Harvard,
given output neuron in Figure 4, its activation is a function of
Cambridge, MA.
all the activations within the hidden layer that are, in turn, a
50 SERVO 04.2005
Thaler.qxd 3/9/2005 11:42 AM Page 51

Machine It Yourself &


Save...Guaranteed!
Tired of PAYING for Machining?
function of activations in the previous
layer. In effect, this network can repre- Put a COMPLETE
sent a causal chain of the form: MACHINE
THOUSANDS OF ELECTRONIC
F(x) = Fn(Fn-1(...F0(x))), (6) PA R T S A N D S U P P L I E S
SHOP
VISIT OUR ONLINE STORE AT
on Your
where F(x) is the output of any output
www.allelectronics.com Bench Top!
neuron that may be represented in a
nested functional form. In other words, WALL TRANSFORMERS, ALARMS,
something has happened, Fn, because FUSES, CABLE TIES, RELAYS, OPTO Now 7
something else has happened, Fn-1, ulti- ELECTRONICS, KNOBS, VIDEO Models!
mately because of some initiating event ACCESSORIES, SIRENS, SOLDER
ACCESSORIES, MOTORS, DIODES, • 3 Tools in 1 – Lathe, Mill Drill
x. In other words, multilayered neural • Versatile – Machine Metals, Plastic, Mo re
HEAT SINKS, CAPACITORS, CHOKES,
networks are the natural and most flex- TOOLS, FASTENERS, TERMINAL • Precise – Built to tolerances up to
ible way of modeling the world. 0.0005 inc h
STRIPS, CRIMP CONNECTORS,
• CNC Compatible – Models ma nu factured
A moment’s reflection reveals that L.E.D.S., DISPLAYS, FANS, BREAD- to easily adapt CNC systems
Equation 6 is a much more general BOARDS, RESISTORS, SOLAR CELLS, • EASY to Use – Full Instructions &
functional fit than Equation 5, allowing BUZZERS, BATTERIES, MAGNETS, Lifetime Tech Support
for such nontrivial causal chains and CAMERAS, DC-DC CONVERTERS, And ONLY the Smithy is...
HEADPHONES, LAMPS, PANEL • GUARANTEED to Pay for Itself or
incorporating the less general series METERS, SWITCHES, SPEAKERS, Your Money Back!
expansions at any level of nesting. PELTIER DEVICES, and much more.... Get Your FREE FACT KIT!
Also, realize that the solution for the
basic functional forms, Fi, cannot be O R D E R TO L L F R E E
Call Today
achieved using the traditional linear
1-800-826-5432 1-80 0-476-4849
Ask for operator SER
matrix techniques. Instead, we must
Ask for our FREE 96 page catalog
rely upon the iterative weight update
procedure discussed above that forms
the basis of training methods like back-
Robotics Showcase
propagation.
Because of the generality of fit
without any presuppositions about the
functional forms to be chosen, I call
MLPs the “Swiss Army knife” of fitting
functions. As long as there exists some
intrinsic relationship between input
and output patterns, a multilayered
neural network can discover it. In the
process, the network will automatically
divide its world into its most notable
entities (i.e., micro-feature detection
that partitioned the sonar network into
edges, walls, and gaps at the hidden
layer), classify its sensed world accord-
ing to the dominance of such features
(i.e., hidden-layer classification), and
automatically grow the logic in the
form of connection weights to make
some decision (i.e., the decision as to
whether the forward vista contained a
portal through which to crawl).
For these and other reasons, I will
always think of neural networks as so
much more than very high-dimension-
al, non-linear, statistical curve fits. They
are the future of autonomous robotics,
as well as a revealing model of human
perception. SV
SERVO 04.2005 51
Simpson2.qxd 3/9/2005 1:46 PM Page 52

Have you ever wanted to build a hex walker robot? Their interesting,
insect-like gait and seemingly complex leg construction make them one of
the more fascinating projects in robotics. Hex walkers are actually more
accessible for the hobbyist than they may seem at first. In this series of
articles, I will show you, step by step, how to build a six-legged crawler using
only three servos. With six legs and three
servos, we can experiment with
different gaits and full direc-
tional control over the
robot. Now that the
mechanical portion
of your walker
robot is finished, it’s
time to add power and a
brain. So, get your soldering
iron out and let’s get started!

52 SERVO 04.2005
Simpson2.qxd 3/9/2005 1:47 PM Page 53

Part 2

FIGURE 1. Install the socket, resistor, and two capacitors. FIGURE 2. The headers of the Perseus carrier.

Electrical Construction battery holders and attach it to the front of the main body
between the two servos on the underside of the base. Make
We will use a Perseus microcontroller and a Perseus car- sure the holder is placed all the way forward as shown in
rier kit to build the brain. They can be purchased from Kronos Figure 4. Mark and drill a 1/8-inch hole by dry fitting the
Robotics at www.kronosrobotics.com We will also need a battery holder. Attach with a #4, 1/2-inch machine screw
female header, but all these parts will be listed in the and nut.
resource section at the end of the article. Take the other two-Cell AAA battery holder and attach
it near the rear of the main body on the underside of the
Step 1: base. Make sure it is up against the two lock nuts as shown
Assemble the Perseus carrier using the included instruc- in Figure 4. Use a #4, 1/2-inch machine screw and nut.
tions. Install only the socket, resistor, and two capacitors as
shown in Figure 1. Don’t install the headers yet. Step 5:
Take the red wire from the lower (rear) battery holder
Step 2:
The headers included with the Perseus carrier are the sna- FIGURE 5. Connect the FIGURE 4. The proper location
pable variety. Use needle-nosed pliers to break off three, three- two leads to a switch. of the battery holder.
pin headers. Install them into the positions shown in Figure 2.
These will be the headers used to connect the servos.
Break off a two-pin header and install it into the position
shown at the top of Figure 2. This will become the power
header.

Step 3:
Use wire cutters to cut off a three-pin header from the
36-pin female header and install it as shown in Figure 3. This
will allow you to plug in an IR module so that you may con-
trol the walker with a universal remote.
Next, using a set of wire cut-
ters, cut off a five-pin female FIGURE 3. The program and IR headers.
header and install as shown in
Figure 3. This will become the
program header. In order to pro-
gram the Perseus, we will plug
the EZ232 driver into this header.
The brain is now complete.
We will attach it a bit later. For
now, let’s attach our walker’s
power source.

Step 4:
Take one of the two-cell AAA
SERVO 04.2005 53
Simpson2.qxd 3/9/2005 1:48 PM Page 54

The Mini Servo WALKER

FIGURE 6. Heatshrink the battery leads. FIGURE 7. Fix the PCB as shown. FIGURE 8. The power connections.

and the black wire from the upper (front) battery holder and location for it.
twist them together as shown in Figure 4.
You can complete the power connection one of two Step 6:
ways: You can solder the leads together and place a piece Using a pair of wire cutters, break off a two-pin header
of tape over the connection or you can connect these from the 36-pin female header. Then take the two remaining
two leads to a switch as shown in Figure 5. If you opt wires — black from the lower battery holder and red from the
for a switch you will have to drill a hole and mount the top — and solder the leads to the two-pin header. Make sure
switch, and the side opposite the 5/16-inch hole is a good you insert two pieces of 1/16-inch heatshrink before solder-
ing it in place. Once soldered, move the
FIGURE 9. The power connections schematic. heatshrink up and shrink it with a heat
gun or flame. Figure 6 shows the com-
pleted connector.
This connector will plug into the
two-pin male header that we added to
the Perseus carrier back in Step 2. If you
did not install a switch, you will use the
header as the switch. Place the female
header on the male header to turn the
walker on. Otherwise, you will leave the
header in place and use the switch to
control the power.

Step 7:
Now, it is time to attach the brain.
To do this, stick three pieces of mount-
ing foam to the underside of the
Perseus printed circuit board (PCB). The
tape does not need to run the full
length of the board; about an inch will
do. Trim the excess from the sides, then
stick the PCB in the position shown in
Figure 7. We want the board to be as
close to the center legs as possible with-
out touching them, so leave about an
1/8-inch gap.
Before we continue, let’s take a
closer look at the servo and power con-
nections depicted in Figures 8 and 9.
The power connector plugs into the
header marked “- ++” near the top of
the PCB.
54 SERVO 04.2005
Simpson2.qxd 3/9/2005 2:07 PM Page 55

Part 2

FIGURE 10. Plug in the EZ232 driver to the program header. FIGURE 11. This is the test data for Perseus.

As you can tell from the schematic diagram (Figure 9), with the Perseus by running through the tutorial. You can
there are eight more ports available to connect sensors or actually run through the tutorial without connecting to the
LEDs. One of these (Port 4) we show connected to the IR walker by using the included simulator. SV
module that we will use later.

Step 8:
SOURCES
Enlarge the 5/16-inch hole a bit so that the The Kronos Robotics website is located at www.kronosrobotics.com
servo connectors will fit. Once the hole has been
enlarged, pass the power connector up through the Qty Description Source and part number
1 Perseus microcontroller Kronos Robotics # 16382
hole and plug it into the two-pin header. Make sure
1 Perseus carrier, one kit Kronos Robotics # 16390
the red lead is facing the front of the walker. Note 1 36-pin female header Kronos Robotics # 16291
that, if you did not install a switch, you will have to 1 EZ232 eriver Kronos Robotics # 16167
plug and unplug this header to turn the walker on 1 IR module Kronos Robotics # 16226
and off. 1 SPST switch Kronos Robotics # 16241 or
Next, plug the EZ232 driver into the five-pin pro- All Electronics # MTS-4
gram header as shown in Figure 10. You can now 2 Two-cell AAA battery holder All Electronics # BH-42 or
program the Perseus. RadioShack # 270-398
1 Athena compiler Free download from Kronos
Robotics website.
Step 9:
To program the Perseus, you need
the Athena compiler. Download and
install the Athena compiler from
www.kronosrobotics.com
Connect a nine-pin cable from the
EZ232 driver to the PC and you should
be ready to go. The Athena software
comes with a complete manual that
includes hookup instructions, as well as
a complete tutorial.
With the PC connected to the
EZ232 driver and the driver plugged
into the five-pin program port, turn on
the power to the carrier board, and
load the debug terminal in the Athena
software by hitting F6. With power
applied to the Perseus, you should see
test data as shown in Figure 11.

That’s It
Next month, we will calibrate and
program the walker. Until then, play
Circle #106 on the Reader Service Card.
SERVO 04.2005 55
BookstoreApr05.qxd 3/9/2005 6:07 PM Page 56

andy
Mind Cday’s
For To ticist
Robo
The SERVO Bookstore
ROBOT DNA SERIES Mobile Robotic Car Design Build Your Own Electronics
Three Volume Pack by Pushkin Kachroo / Patricia Workshop
Mellodge by Thomas Petruzzellis
This thoughtful guide The Electronics
gives you complete, Workshop was written
illustrated plans and to assist the newcomer
instructions for building to the field of practical
a 1:10 scale car robot electronics through the
that would cost creation of a personal
thousands of dollars if electronics workbench.
bought off-the-shelf. This is a place specially
Everything you need to program your But, beyond hours of designed so that read-
robot controller: entertainment and ers can go there to
• Microcontrollers in Robots satisfaction spent creating and operating an work on an electronic project, such as test-
• Software Development impressive and fun project, Mobile Robotic ing components, troubleshooting a device,
• The Microchip PICmicro Microcontroller Car Design provides serious insight into the or building a new project. This book
• Microcontroller Connections science and art of robotics. Written by includes invaluable information, such as
• Designing the Robot System robotics experts, this book gives you a solid whether to buy or build test equipment,
• Going Forward background in electrical and mechanical how to solder, how to make circuit boards,
theory, and the design savvy to how to begin to troubleshoot, how to test
Everything you need to build your own conceptualize, enlarge, and build robotics components and systems, and how to build
robot drive train: projects of your own. $29.95 your own test equipment, complete with
• The Basics of Robot Locomotion appendix and resources, etc. This is THE
• Motor Types: An Overview book for anyone entering the field or hobby
• Using DC Motors Robot Programming of electronics. $29.95
• Using RC Servo Motors by Joe Jones / Daniel Roth
• Using Stepper Motors Using an intuitive method,
• Motor Mounting Robot Programming Electronics Demystified
• Motor Control deconstructs robot by Stan Gibilisco
• Electronics Interfacing control into simple and Now anyone with an
• Wheels and Treads distinct behaviors that are interest in electronics
• Locomotion for Multipods easy to program and can master it by reading
debug for inexpensive this book. In Electronics
All the data you need to build your own microcontrollers with little Demystified, best-selling
robot base: memory. Once you’ve science and math writer
• Mechanical Construction mastered programming your online bot, you Stan Gibilisco provides
• Electrical Construction can easily adapt your programs for use in an effective and pain-
• Operating Power physical robots. $29.95 less way to understand
• Robot Designs the electronics that
• Constructing a Two-Wheeled Rover Robot power so much of modern life. With
• Selecting the Right Materials Electronic Circuits for the Electronics Demystified, you master the sub-
• Glossary of Terms Evil Genius ject one simple step at a time — at your own
• Tables, Formulas, and Constants by Dave Cutcher speed. This unique self-teaching guide offers
Cutcher's 57 lessons problems at the end of each chapter, a
Subscribers: $21.95 each book build on each other and section to pinpoint weaknesses, and a 70-
Non-subscribers: $24.95 each book add up to projects that question final exam to reinforce the entire
are fun and practical. book. If you want to build or refresh your
The reader gains valu- understanding of electronics, here’s a fast
able experience in cir- and entertaining self-teaching course that’s
Electronic Gadgets for the cuit construction and completely current. $19.95
Evil Genius design and in learning to
by Robert Iannini test, modify, and
! Build Your Own Humanoid
The do-it-yourself
hobbyist market —
observe results. Bonus NEW Robots
website www.books.mcgraw-hill by Karl Williams
particularly in the area com/authors/cutcher provides anima-
of electronics — is Build Your Own
tions, answers to worksheet problems, links Humanoid Robots
hotter than ever. This to other resources, WAV files to be used as
book gives the “evil provides step-by-step
frequency generators, and freeware to apply directions for six exciting
genius” loads of your PC as an oscilloscope $24.95
projects to delve into, projects — each costing
from an ultrasonic less than $300.00.
microphone to a body We accept VISA, MC, AMEX, and DISCOVER Together, they form the
heat detector, all the way to a Star Wars Prices do not include shipping and essential ingredients for
Light Saber. This book makes creating these making your own
may be subject to change. humanoid robot. $24.95
devices fun, inexpensive, and easy. $24.95

56 SERVO 04.2005
BookstoreApr05.qxd 3/9/2005 6:08 PM Page 57

To order call 1-800-783-4624 or go to our website at


www.servomagazine.com

PIC Microcontroller Project Book Robot Mechanisms and CNC Robotics


by John Iovine Mechanical Devices Illustrated by Geoff Williams
The PIC microcontroller by Paul Sandin Now, for the first time,
is enormously popular Both hobbyists and you can get complete
both in the US and professionals will treasure directions for building a
abroad. The first edition this unique and distinctive CNC workshop bot for a
of this book was a sourcebook — the most total cost of around
tremendous success thorough — and thoroughly $1,500.00. CNC Robotics
because of that. explained — compendium gives you step-by-step,
However, in the four of robot mechanisms and illustrated directions for
years that have passed devices ever assembled. designing, constructing, and testing a fully
since the book was first Written and illustrated functional CNC robot that saves you 80 percent
published, the electronics hobbyist market specifically for people fascinated with of the price of an off-the-shelf bot and can
has become more sophisticated. Many mobile robots, Robot Mechanisms and be customized to suit your purposes exactly,
users of the PIC are now comfortable paying Mechanical Devices Illustrated offers a because you designed it. $34.95
the $250.00 price for the Professional one-stop source of everything needed for the
version of the PIC Basic (the regular version mechanical design of state-of-the-art mobile
sells for $100.00). This new edition is fully ‘bots. $39.95
updated and revised to include detailed
Robot Building for Dummies
directions on using both versions of the
by Roger Arrick / Nancy Stevenson
microcontroller, with no-nonsense JunkBots, Bugbots, and Bots on Ready to enter the robot
recommendations on which one serves Wheels: Building Simple Robots world? This book is your
better in different situations.$29.95 With BEAM Technology passport! It walks you
by Dave Hrynkiw / Mark W. Tilden through building your
From the publishers of very own little metal
BattleBots: The Official assistant from a kit, dress-
Robot Builder's Bonanza Guide comes this do-it- ing it up, giving it a brain,
by Gordon McComb yourself guide to BEAM programming it to do
Robot Builder’s Bonanza (Biology, Electronics, things, even making it
is a major revision of the Aesthetics, Mechanics) talk. Along the way, you’ll
bestselling bible of robots. They're cheap, gather some tidbits about robot history,
amateur robot building — simple, and can be built enthusiasts’ groups, and more. $21.99
packed with the latest in by beginners in just a few
servo motor technology, hours, with help from this expert guide
microcontrolled robots, complete with full-color photos. Get ready
remote control, LEGO for some dumpster-diving! $24.99
Mindstorms Kits, and Digital Electronics Demystified
other commercial kits. It gives electronics by Myke Predko
hobbyists fully illustrated plans for 11 The field of teaching
complete robots, as well as all-new coverage Robot Builder's Sourcebook digital electronics has
of Robotix-based robots, LEGO Technic- by Gordon McComb not changed significant-
based robots, Functionoids with LEGO Fascinated by the world ly in the past 20 years.
Mindstorms, and location and motorized of robotics, but don’t Many of the same
systems with servo motors. $24.95 know how to tap into the books that first became
incredible amount of available in the late
information available on 1970s and early 1980s
!
Robotics Demystified
the subject? Clueless as to
locating specific
are still being used as
basic texts. In the 20-
NEW
by Edwin Wise information on robotics? plus years since these were written, the rules
There's no easier, faster, Want the names, addresses, have not changed, but they do not provide
or more practical way to phone numbers, and websites of companies strong links to modern electronics, including
learn the really tough that can supply the exact part, plan, kit, CMOS logic, Programmable Logic Devices,
subjects. McGraw-Hill's building material, programming language, and microprocessor/microcontroller interfac-
Demystified titles are operating system, computer system, or ing. Courses teaching introductory digital
the most efficient, publication you’ve been searching for? Turn electronics will fill in the missing areas of
intriguingly written to the Robot Builder’s Sourcebook — a information for students, but neither the
brush-ups you can find. unique clearinghouse of information that will instructors nor students have resources to
Organized as self- open 2,500+ new doors and spark almost as explain modern technology and interfaces.
teaching guides, they many new ideas. $24.95 One assumption made by all the standard
come complete with key points, background texts is that experimenting with digital elec-
information, questions for each chapter, and tronics cannot be done easily — in the pro-
even final exams. You'll be able to learn more Check out our online bookstore at posed book, “digital guru” Myke Predko will
in less time, evaluate your strengths and www.servomagazine.com for a complete show how readers can set up their own
weaknesses, and reinforce your knowledge listing of all the books that are available. apparatus for experimenting with digital
and confidence. $19.95 electronics for less than $10.00. $19.95
SERVO 04.2005 57
Little.qxd 3/9/2005 11:30 AM Page 58

by Jascha Little

F or many — especially those of us that have read science fiction since


childhood — the remarkable lack of human-augmenting exoskeletons
in our modern world is very disappointing. Are useful exoskeletons
technologically not feasible? Perhaps there simply aren’t any tasks that
we really need them for. When we ask these
questions, what exactly do we mean by the
word “exoskeleton?”
An exoskeleton could be a multi-ton
armored behemoth that increased the
user’s strength by a factor of 100. For
rehabilitation or mobility, it could be
lightweight — no more cumbersome
than heavy clothing — designed solely
to give its wearer the strength to move.
Both of these examples fit the simple defi-
nition I would like to use for this discussion: a
device worn by a human operator to augment
some aspect of his physical capabilities and
controlled directly by the operator’s movements.
Let’s take a broad look at the feasibility of
exoskeletons with today’s technology. In
order to simplify the discussion, I will break
it down into four functional areas: power
supply, actuators, structure, and control
systems.

58 SERVO 04.2005
Little.qxd 3/9/2005 11:31 AM Page 59

What are They Good For?


Structure
The structure of an exoskeleton may be an engineering
challenge, but modern design capabilities, manufacturing
techniques, and materials science are more than sufficient to
meet the challenge. It would be difficult to argue that an
exoskeleton needs to be more complex or requires more
advanced materials than a modern fighter jet.

Actuation
There is a lot of research on artificial muscle fibers at the
moment. In the future, artificial muscles may represent an
excellent solution for actuating an exoskeleton, but good,
old-fashioned hydraulics is already up to the task. Hydraulic
actuators have an enormous force-to-weight ratio that may
never be matched by artificial muscles. High movement rates
can also be achieved with appropriate valves and plumbing.
The primary disadvantage to hydraulics is the complexity
of the overall system. A great number of moving seals and
high-pressure fittings must be maintained. Despite this,
hydraulics could be utilized in a wide range of exoskeleton
sizes and strengths. Although hydraulics may be the most
appropriate solution at the moment, there are already other
alternatives. Linear motors and motor-driven ballscrews are
used in many similar applications, such as robotics.

Control System
Who is to say exoskeletons aren’t feasible?
This may be one of the reasons we have not seen
exoskeletons yet. In 1965, the General Electric Research and ment, the operator’s sense of balance will be wasted. Just
Development Center attempted to create an exoskeleton how accurate and how quick the control system must be has
known as Hardiman 1. Although they succeeded in building yet to be determined.
an exoskeleton, the control system proved to be so difficult Recent attempts at lower extremity exoskeletons appear
that — according to a GE report —
attempts to move both legs at once
resulted in “violent and uncontrollable :$17(''($/(56$1',03257(56
motion.”
We certainly have far more )RU(8523(¶V1R (GXFDWLRQDO 52
advanced sensing and control tech- /RZFRVW+REE\
nologies available today. However, only 3&&RQWUROOHU $6852URERWNLW
in the last few years have we seen $FRPSOHWHVRIWZDUHDQG 'HYHORSHGE\'/5 ZZZGOUGH
KDUGZDUHVHWWRFRQWURO 3URJUDPPDEOHLQ&LQFOXGLQJ
bipedal robots that can balance them- WKH2:,029,7URERW /,18;DQG:LQGRZVŠVRIWZDUH
selves while performing even simple DUPWUDLQHU
tasks and these robots are the product
of massive research programs at large
companies.
An exoskeleton would have an
advantage over these robots. It would
have one of the best balancing systems
onboard that is known to man: the 52%%<53URERWNLW
human brain. Still, tapping into this (XURSH¶VPRVWDGYDQFHGURERW
resource will require a control system 0RUHLQIRUPDWLRQ#ZZZFURERWLFVGH
that works almost seamlessly with the
exoskeleton’s operator. If the control :::$5(;;&20
system is unable to respond quickly
and accurately to the operator’s move- 3OHDVHFRQWDFWXVE\HPDLOLQIR#DUH[[QO
SERVO 04.2005 59
Little.qxd 3/9/2005 11:31 AM Page 60

EXOSKELETONS
be a serious challenge.
The high-energy density of combustible fuels seems
attractive in this case, but — since the exoskeleton must be
worn by a human — including a combustion engine in the sys-
tem is not a trivial matter. The operator must be protected
from heat, noise, vibration, and exhaust. Also, the power
from the engine must be harnessed efficiently to operate the
exoskeleton’s complex system of actuators.
Alternatively, a battery-powered system would be much
kinder to the operator. Unfortunately, the energy density of
the best batteries is far less than that of combustible fuels.
Perhaps this problem can be solved well enough that an
exoskeleton could be used continuously for hours, but this is
not necessary for them to be useful in all applications. Many
of our most commonly used tools only run for a few hours or
less before they need refueling or recharging.
It is reasonable to believe that we will see exoskeletons
in actual use within the next decade. DARPA has been fund-
ing research on human exoskeletal augmentation for a few
years and the first prototypes are being tested. SERVO
Magazine’s Tetsujin (Japanese for “iron man”) competition is
another bright moment for the future of exoskeletons.
Hopefully, future competitions will see more advanced
entries. The DARPA projects will probably result in equipment
that is cost prohibitive for anyone but the military, but
SERVO’s Tetsujin will engender a more practical approach.
Hopefully, it will be the source of designs that could be devel-
oped into commercially viable equipment.
Assuming that exoskeletons are on their way, the most
The structure of a system is a challenge. important question is: What will we use them for? Visions of
power-armor clad soldiers are the first thing that comes to
to be much more promising than Hardiman, but they certain- mind for many when the word exoskeleton is mentioned. For
ly aren’t ready to stroll down the street. However, with the the military and DARPA, this is definitely a wonderful dream.
sensors and computing power available today, I believe we We can imagine a form-fitting exoskeletal suit that adds rela-
have the tools to solve the control problems presented by an tively little bulk to the operator but increases his strength,
exoskeleton. endurance, and deadliness. The suit would be armored and
heavily armed with equipment that a normal infantryman
Power Supply couldn’t carry into battle. The suit could operate for days
without refueling … and then we fade back to reality. The
The difficulty of this aspect of the exoskeleton depends exoskeleton described above is exciting, but for us to pursue
heavily upon the application. In some cases, the exoskeleton it first would be like Henry Ford skipping the Model T and
could receive its power from an external source via electrical going straight for the Porsche 911. There are many, many
cables, hydraulic lines, or other means. This technique is fre- iterations of the exoskeleton that we will see before a soldier
quently used with mining equipment, commercial diving wears one as standard issue gear.
tools, and in other industrial applications. Obviously, the However, the first exoskeletons may see use in combat
power supply isn’t a problem at all in these cases. When we situations. A properly designed exoskeleton could be the
consider truly mobile applications, the problem can become ideal method for delivering soldiers or law enforcement per-
formidable. sonnel into difficult urban situations. Building entry in the
The power required from the system should not be a face of armed resistance is a brutal, extremely dangerous
problem; modern combustion engines and electrical motors task. An exoskeleton could allow the operator to wear armor
can be designed with power densities greater than one far too heavy for a human to carry normally. Also, this
hp/lb. The average human (all 150 lbs or so) can only put out armored suit would only have to operate for the limited dura-
about one horsepower. The difficulty lies with energy densi- tion of the building entry operation and would not require
ty. Humans are highly efficient machines. A physically fit the suit to roam far from resupply and repair equipment.
human can eat a little food and then perform hard physical Such a suit might allow law enforcement to bring a human
labor for hours and hours. Building an exoskeleton that negotiator into a situation that would be too dangerous for
can keep up with its operator for an entire workday will an unarmored human.
60 SERVO 04.2005
Little.qxd 3/9/2005 11:32 AM Page 61

What are They Good For?


More peaceful applications are also likely candidates for
the exoskeleton’s debut. Although it is ridiculous to think that
they would replace forklifts in any type of warehouse appli-
cation, there are other types of lifting where an exoskeleton
would have an advantage. In rescue operations, especially
after natural disasters, teams of rescue workers swarm over
piles of rubble trying to save victims. These teams utilize
heavy-lifting equipment, but — in the wake of a large disaster
— it is often very difficult to get such equipment to the scene
quickly. An exoskeleton could be designed to allow rescue
workers to move wreckage far heavier than an unaided
human could move, yet still allow the wearer to climb over
and on top of rubble impassible to wheeled vehicles. The
exoskeleton could also be designed to protect its wearer
from the incredibly dangerous environment that the wreck-
age presents.
As hinted at in the beginning of this discussion, exoskele-
tons may have a humanitarian future, as well. There are an
unfortunate number of ailments which reduce or completely
destroy a human’s motor facilities. For centuries, wheelchairs
have been the only solution. For patients whose bodies have
been weakened, an exoskeleton could be designed that
could sense the wearer’s efforts to move his body and ampli-
fy his strength to a normal level. This application would not
require any technology that is not available today, but simply
the research and engineering to make it a viable tool. Such
an exoskeleton would provide the wearer with a far more
normal life than a wheelchair. Unfortunately, people who
have a complete loss of motor function in some or all of their With motivation from the darpa challenge
body would require an interface with the exoskeleton that and tetsujin, a breakthrough is near.
we have not yet developed. However, direct measurement of
the signals from our brain in not complete science fiction. grass roots efforts like SERVO’s Tetsujin competition will get
Still, it is not within the scope of my experience to discuss some sharp, motivated engineers interested in exoskeletons
how realistic or how soon we might see such technology. and really get the ball rolling. When lots of people start build-
I hope that the current DARPA exoskeleton projects pro- ing something in their garages and home shops, you know
duce some good results. Even more than that, I hope that that something has a bright future! SV

SERVO 04.2005 61
Neal.qxd 3/9/2005 6:25 PM Page 62

O ver the years, I have built many different robots. These robots have successfully navigated
around rooms, avoided objects, and completed other common mobile robot tasks.
However, believe it or not, most of my friends are not “robot geeks.” When they would see one
of my creations, they ask me, “What does it do?” I then explain my robot navigates around the
room and doesn’t bump into things, and they would give me a “deer in the headlight” stare and
change the subject.
One of the reasons I built the robot waiter is that I wanted a project that my friends could
enjoy and provide me with a better answer to the question, “What does it do?” When my friends
ask me what this robot is supposed to do, I can finally say, “It serves drinks!”
62 SERVO 04.2005
Neal.qxd 3/9/2005 6:25 PM Page 63

THE ROBOTIC WAITER


Components trips to the hardware store, I found a
solution to my robot’s height problem.
The Robowaiter is based on a I purchased a piece of four-inch-diame-
Zagros Robotics Max 99 Mobile Robot ter PVC and a mounting base. I cut the
and was selected because of the weight PVC down to three feet to give the
requirements of this project. The total robot a total height of about 4.5 feet.
weight of the Robowaiter is 33lbs, and With wood screws, I attached a square
the Max base is driven by two 12-VDC, piece of plastic to a common bookshelf
20-inch/lb, 25-rpm motors with six-inch bracket to the PVC pipe.
lawn mower wheels. A front and rear I originally planned to make some
three-inch caster balances the robot, sort of head for the robot, but decided
and this configuration is very stable but that I liked the sleek and simple look
has one serious disadvantage: It will with only a tray and a cap at the end of
“high center” or jam if any steep inclines the PVC. In the future, I plan to use the
are encountered. However, this is not a PVC pipe as a wire conduit between
problem in the environment in which the robot base and a head, as this
the robot will be working. should help keep the sleek, clean look I
was going for.
The parts list includes the following Assembly of the Max base was FIGURE 1. Max 99 base.
components: very straightforward, as the base is
shipped ready for mounting hardware Arts (www.technologicalarts.com)
Zagros Robotics Max 99 Mobile and electronics. First, I mounted the for the main processor for this project.
Robot, $229.95: two additional decks and the tower to The HC11 processor, motor-driver, and
• Two 12-VDC motors see if the robot would tip over. encoder-driver board all plug into a
• Two casters I painted the PVC riser black, then common backplane which is included
• Riser set with 7.5-inch spacers cut it in half to allow the additional with the HC11 package. This reduces
• Optics for wheel encoders deck to be mounted between the drive the wiring of the processor to terminat-
• Two D-cell battery holders base and the upper deck. ing the motors, connecting two pins
• 203 dual-channel motor driver I mounted the Max 97 deck with for a I2C bus, and wiring up the power.
• 12-inch-diameter deck, $9.95 the shelve bracket slightly more than I also installed a small switch between
• 12 x 12-inch plastic square (Max 97 halfway up the tower PVC pipe. At this the battery power supply and the
additional deck), $9.95 point, I bolted the PVC tower and PVC power distribution terminal strip. The
base to the upper deck to check for sta- encoder/sonar driver board was used
Tower Components: bility. I mounted the PVC base as far to to supply the five volts DC required for
• Three-foot PVC pipe (four-inch the rear as the riser bolts would allow to the I2C devices and encoder optics.
diameter), $20.00 keep the center of gravity toward the There are several sensors on the
• PVC pipe base, $5.00 center of the base (to prevent tipping). market which will do a good job of
• PVC pipe cap, $5.00 Originally, I thought I
• Shelve bracket, $3.00 would need to use a larger FIGURE 2. Base with PVC mounting base attached.
• Scrap plastic sheeting (robot skin) base for the robot to be stable
enough to stop without tipping
Electronic Components: over. However I was pleasantly
• HC11 MC package, $129.95 surprised when the Max 99 did
• MC motor driver, $39.95 not tumble over when I jogged
• MC encoder/sonar driver, $49.95 the robot around the room.
• Two SRF08 range finders, $54.95 each Once the electronics
• Devantech digital compass, $45.95 were mounted and tested, I
• Devantech text-to-speech module, used some scrap plastic sheet
$84.95 as a skin for the robot. This
improved the appearance and
Mechanical also protects the electronics if
Construction a drink spills.

The Max 99 has the ability to carry Electronics


the weight to do the job, but at 14-
inches tall, it would have made a verti- I used the Microcore HC11
cally-challenged waiter. After a few package from Technological
SERVO 04.2005 63
Neal.qxd 3/9/2005 6:25 PM Page 64

THE ROBOTIC WAITER


roaming around the room and serving When an object is detected less
drinks. The Robowaiter program is very than 16 inches from the robot, the robot
simple. The robot will move straightfor- will stop for about five seconds or until
ward and stop went it encounters an the way is clear again. If the path
obstacle. The robot will wait a few sec- remains blocked, the robot will rotate
onds and if the obstacle is still in the left until a clear path is detected. This
path, the robot will rotate to the left behavior should allow a guest to step in
until there is a clear path. Once a clear front of the robot, grab a drink, and then
path is detected, the robot will move allow the robot to continue on its way.
forward again and repeat the process. Usually when I write a program for
The key to this project is all in the a robot, it requires a terminal connected
code. The Robowaiter programming is to a serial port or RF modem to send the
in C and compiled using the popular robot a command. This is very inconven-
Imagecraft C compiler version 7.0 for ient when taking the robot out to show
the HC11. The project is broken into off. The program for Robowaiter starts
three key C libraries: running the waiter program as soon as
the power switch is turned on. I think
• Max.c — This contains general motor this is in keeping with the clean, sleek
FIGURE 3. The HC11 package. control and sensor routines. design I was striving for.

detecting obstacles, but I selected the • I2C.c — This contains the code, The Party
Devantech SRF08 range finders for two which drives the I2C communication.
key reasons: These sensors communi- The Robowaiter was finally ready
cate via the I2C protocol and work very • Waiter.c — This is the routine written to debut at a small gathering of family
well in the one- to four-foot range. A specifically for this project. and friends, and it was time to answer
terminal strip was used to set up an I2C that age-old question. I loaded fresh
bus, while Port D, Bits 4 and 5 were Through some experimentation, I batteries into the robot and ran a few
used to drive the I2C communication. found if I don’t want a drink to fly off tests in the room the Robowaiter would
Pull-up resistors (1.8K) are required on the tray or the robot to do a forward be working in before the guests started
each I2C communication lines. flip, I needed to control the speed. A to arrive. The room was almost empty
Telephone four-conductor cable is used simple, interrupt-driven pulse width to allow the robot a larger area to work
to connect the SRF08s to the I2C bus. modulation (PWM) routine made the in. Once people started to arrive, I
speed of each wheel adjustable. If I loaded some cups on the tray and
Programming reduced the speed of the robot to about turned it on. Immediately, the robot
50 percent, I was able to keep more was a huge hit with the children. They
The purpose of the Robowaiter is to glasses on the tray than on the floor. enjoyed blocking the path of the robot
entertain guests at a social gathering, Now that the robot was moving, I and seeing the robot react to them.
needed it to stop I allowed the robot to run for most
FIGURE 4. Block diagram of Robowaiter’s electronic components. when its path was of an hour, shutting it down several
blocked. As men- times to reload the tray. I was pleasant-
tioned in the elec- ly surprised that there where very few
tronics discussion, I times I actually had to help the robot
chose to use two out of a situation. The sonic range find-
Devantech SRF08 ers do a very good job of detecting
range finders to walls and people, but do not always
detect obstacles. detect chair legs or lamps.
The SRF08 sensors During the party, I also found that
use the popular I2C bookshelves could be hard to detect.
communication pro- Once, the robot managed to get hung
tocol, which allows up in a corner and needed a rescue.
you to drive up to The SRF08 range finders were set to
eight sensors with react to objects within 16 inches, but
just two digital I/O for future events, this range will be
points alone with extended to 20 inches. In some cases,
the compass and the robot would bump the person as it
text-to-speech mod- was stopping. This made some folks a
ules. little nervous since it appeared robot
64 SERVO 04.2005
Neal.qxd 3/9/2005 6:26 PM Page 65

THE ROBOTIC WAITER

FIGURE 5. Serving drinks at the Robowaiter’s premiere party. FIGURE 6. At the MARS meeting, it was a big hit.

had revolted and started attacking peo- come very close a few times. Another includes adding the SP03 speech synthe-
ple with its killer tray. suggestion was to “dress the robot up a sizer to the routine. This device will allow
Some of the guests made some sug- little” by adding a bow tie and maybe me to pre-program statements, which
gestions for future improvements. Ideas some arms to hold the tray. can be triggered by the HC11 via the I2C
worth mentioning include using a wider bus. I would also like the robot to ask the
base to prevent the robot from “wob- The Future guests if they would like a refreshment
bling.” With the smaller 12-inch-diameter when it stops and then warn them when
base, the robot had a tendency to rock Before the next social event, I plan it is about to start moving again. Lastly, I
forward when stopping. It never tipped to make some improvements based on plan to add another form of bump detec-
over or dumped a drink, but appeared to what I observed during the party. This tion to the robot. SV

Affordable Motion Control Products


Robot Building
Blocks

Motor Speed
Control

PID Motor
Position
Control
Solutions Cubed
3
Phone 530-891-8045
www.solutions-cubed.com Solutions
Circle #111 on the Reader Service Card.
SERVO 04.2005 65
LessonsFromTheLab.qxd 3/9/2005 5:53 PM Page 66

// castling bonuses
B8 castleRates[]={-40,-35,-30,0,5}; A
bi-month

LESSONS
//center weighting array to make pieces prefer
column ju ly
//the center of the board during the rating routine
B8 center[]={0,0,1,2,3,3,2,1,0,0}; st for
kids!
//directions: orthogonal, diagonal, and left/right
from orthogonal for knight moves

FROM THE
B8 directions[]={-1,1,-10,10,-11,-9,11,9,10,-10,1,-
1};

//direction pointers for each piece (only really for


bishop rook and queen
B8 dirFrom[]={0,0,0,4,0,0};
B8 dirTo[]={0,0,0,8,4,8};

LABORATORY
//Good moves from the current search are stored in
this array
//so we can recognize them while searching and make
sure they are tested first

— PART 8 —
Interview With Steve by James Isom

I f you have been to a LEGO Fest or


major robotics competition in the
recent past, chances are you have run
Steve Hassenplug: Like most people, I
played with LEGOs as a kid. My favorite
challenge was to build a car chassis,
SH: Right now, most of the stuff I do in
my free time has something to do with
robots. I build robots for different types
into Steve Hassenplug and his LEGO drive it off the table, find the weak of competitions. This summer, I have
creations. I first saw Steve’s work spots, and then rebuild it, stronger. trips planned around the US and even
when putting together my website, a trip to Denmark.
and I have always admired him for his SV: Besides playing with LEGOs, what
creativity and ingenuity. I recently sat did you enjoy doing as a kid? SV: You’ve created some pretty
down with Steve to ask him a few fun stuff. Where do you find your
questions about his work with LEGO SH: I liked to play chess. There weren’t inspiration?
robots. video games back in those days.
Steve: Most of my creations are
SERVO: How did you get started build- SV: What do you do now when you’re designed for some sort of competition,
ing LEGO robots? not building LEGO robots? but, actually, a couple of my most popu-
lar robots just came up by chance.
Here, the LegWay balances on two wheels. Full Contact is a Connect
Four-playing robot. SV: Tell us a little bit about
LegWay and how it works.

SH: Out of all the robots I’ve


made, I get more questions
about it than any other. The
name is sort of a takeoff on the
Segway. I first started on the
idea of building a robot to bal-
ance on two wheels when I got
a custom tilt sensor from a friend
of mine. I spent a few hours try-
ing to get it to balance with no
luck at all. Then, I gave up and
decided to mount a distance sen-
sor on the front to measure the

66 SERVO 04.2005
LessonsFromTheLab.qxd 3/9/2005 5:53 PM Page 67

distance to the ground. That


worked right away, with very
few changes to my program.
Many people think it won’t
balance on a slope, but that’s not
true. It constantly recalculates its
balance point, so it’s always
adjusting to the surface it’s on.

SV: When you approach a proj-


ect, do you follow a certain
design process?

SH: Full Contact was the hard-


est project I’ve worked on. It
took me about three months to
build and program it. I started The biggest difficulty was making sure the chips always fell into the board.
with a couple of ideas about the
strategy and approach I wanted to take. The key is to find the SV: You have a newer version called Stick. How is it different
most critical part of the robot and start with that. than Full Contact?
Sometimes, that means figuring out how fast you want the
robot to move and building a drive train that goes the right SH: When I built Stick, I wanted to make something that would
speed — or, maybe, building a good wedge. only use the electronics from a single Mindstorms kit. That
The two main hardware challenges with Full Contact means two motors, two touch sensors, and one light sensor. A
were checking the board and dropping chips into the board. friend gave me an idea for dropping a stick down inside the
I decided early on that I didn’t want to attempt to use a light board to see how many chips were in the column. In the fin-
sensor to detect chips. With a light sensor, it would be hard
to tell if the object was a chip or if the person behind the
board was just wearing a light or dark shirt. I finally decided
to use an axle and touch sensor to feel if there was a chip.

SV: When designing Full Contact, what was the most diffi-
cult problem you ran into?

SH: The hardest part was making sure the chips always fell
into the board. Because of how the board is designed, it has
some play. So, even if the robot goes to exactly the same
point every time, the chips won’t always go into the board.
My solution was to go past where the chip should go, drop
the chip (so it rests on top of the board), then slowly back up
the robot until the chip fell into the board.

SV: Tell us about the touch-sensor array.

SH: The touch-sensor array was actually pretty interesting. It


used six touch sensors, all connected in series. So, there is one
connection point on the back of the assembly where seven
wires (including the wire for the RCX) are connected together.
Five of the sensors are from an older LEGO set called a
Cybermaster, while the sixth is a normal Mindstorms touch
sensor. Each of the Cybermaster sensors has a resistor across
it, so when it’s open, there is still a reading. With that config-
uration, I was able to tell how many of the sensors were
pressed (and I know they are the bottom sensors).

Circle #125 on the Reader Service Card.


SERVO 04.2005 67
LessonsFromTheLab.qxd 3/9/2005 5:54 PM Page 68

The problem was solved by overshooting the slot. Rube Goldberg would be proud.

ished robot, the stick is the critical part SV: Your latest project is the Rube SV: How many modules does it cur-
that does all the work, but — when taken Goldberg-inspired Great Ball rently have?
out — it is little more than a simple stick. Contraption. Tell us about it.
SH: Actually, the GBC is not a static

AUTHOR BIO SH: The idea was to develop a project


to which many people could con-
model that has a specific number of
modules. Every time we get together,
James Isom is a part-time robotics teacher tribute. Some people like this more we set up a different arrangement and
and general all-around geek. He than a competition. The Great Ball builders have changed, improved, and
has taught robotics to children and Contraption is a combination of Rube added to their modules. Last time we
teachers in the US and abroad. His Goldberg and a bucket brigade, where set it up, we had 18 modules from nine
website with additional people build a module to take in LEGO different builders.
goodies (including the soccer balls and pass them on to the
MLCAD file of this robot) next module. Some modules are very SV: How could our readers get
can be found at ww.the simple and others are very complex. It’s involved? Are you bringing it to any
roboticslab.com He can a great group project because builders shows in the future?
be reached at james can design a module that fits with their
@megagiant.com individual abilities. SH: The GBC was developed for
Brickfest, which takes place
The Great Ball Contraption gets everyone involved. every August in Washington
DC. At that time, we hope to
have 30 or more modules con-
nected together to create one
of the greatest pieces of mov-
ing LEGO artwork, ever ...

If you’re interested in
making a module for the
Great Ball Contraption or
even starting one of your
own with your friends, a
complete specification, as
well as video and other
assorted goodies, can be
found on Steve’s website at
www.teamhassenplug.
org/GBC/ SV

68 SERVO 04.2005
AssemblyLine.qxd 3/9/2005 11:36 AM Page 69

by James Antonakos

Parts Inspection — Round # 2:


Motors, Motors, Motors

L
ast time, we examined the minia- Since the motor shaft diameter is small- was made regarding Uno’s forward
ture components (photoresistor er than the wheel shaft diameter, it motion: The rear wheels should rotate
and tilt switch) that will be used takes multiple revolutions of the motor at the rate of 3/5 revolutions per
for the Uno robot design, an update of shaft to make one revolution of the second. How does this translate
a 1950s light-sensing, collision-detect- wheel. In fact, the ratio of the diameters into the required motor’s RPM?
ing robot. This month, we will investi- (DW divided by DM) tells us how many Mathematically, we have:
gate the motors (both DC and stepper) revolutions of the motor are needed.
that will give Uno its ability to move. After rolling several wheels across rev DW 60 sec
RPM = x x
Table 1 shows two of the five the floor, the following assumption sec DM min
requirements needed to satisfy the
Uno design. Requirement Uno Component
A DC motor was chosen for mov- One DC motor to operate a pair of rear wheels.
ing Uno forward and backward, since a Ability to move and change direction. One stepper motor to control the direction of a front
wheel that swivels.
simple polarity change on the motor
terminals changes its direction of rota- Move on a smooth, level surface. No need for brakes.
tion. A stepper motor was chosen to Table 1. Two of Uno’s design criteria.
steer Uno, since only a small range of
motion is needed for the steering Ratio DW:DM Motor Speed (RPM) Figure 1. Connection between the DC
mechanism. A servo motor would be motor and rear wheels.
10:1 360
overkill for this design requirement.
5:1 180
A DC gear-head motor is a DC
motor with a gear-box attached that 4:1 144
reduces the motor’s rotational speed 2:1 72
by a certain factor. We do not want 1:1 36
Uno to zip all around the floor at 500 Table 2. Motor RPM as a function of
miles per hour. In fact, if Uno travels at shaft-diameter ratio.
a speed of one-half foot per second,
that would seem good enough for Part Current* Speed Torque
Product Number Gear Ratio Price
Number (mA) (RPM) (g-cm)
now. One foot of motion corresponds
162190CC GH12-1324Y 145 176 300 30:1 $16.95
to one or more revolutions of the rear
wheels on Uno’s chassis. The rear 161373CC GH12-1345T 185 116 650 30:1 $23.95
wheels rotate at a rate determined by 151440CC GH12-1632T 275 57 2200 100:1 $21.95
the speed of the gear-head motor and 161381CC GH12-1634T 293 145 850 30:1 $21.95
the ratio of the motor (DM) and wheel- 155862CC GH12-1926Y 300 70 1000 60:1 $21.95
shaft (DW) diameters. *Current at maximum efficiency
Figure 1 shows the connection
between the motor and the rear wheels. Table 3. DC motor characteristics.

SERVO 04.2005 69
AssemblyLine.qxd 3/9/2005 11:37 AM Page 70

THE ASS EMB L Y L INE


No-Load Current With Armature Estimated
Motor Current Load Applied Resistance Starting Current
(mA) (mA) (Ohms) (mA)*
GH12-1324Y 37 80 22.7 528
GH12-1345T 40 100 26.5 453
GH12-1632T 59 90 10.6 1132
GH12-1634T 59 150 13 923
GH12-1926Y 40 80 70 171
*With a 12-volt terminal voltage.

Table 4. Results of parts inspection on the DC gear-head motors.

of speeds to consider, as indicated in Table 2. We need to go


Figure 2. Several different DC reversible gear-head motors. Four
shopping for motors with speeds in this range.
larger motors have a shaft size (diameter x length) of 0.23 x 0.90 Table 3 lists different DC reversible gear-head motors
inches. The smaller motor has a shaft size of 0.16 x 0.70 inches. available from Jameco Electronics (www.jameco .com).
Note that the speeds of the Jameco motors fall within
where rev/sec is the number of revolutions of the rear wheels the calculated range from Table 2. In addition, the motors
each second. For the assumed value of 3/5 rev/sec and a come in a variety of torques. A heavy motor load may
shaft ratio of 10:1, the required motor shaft RPM is: require a high torque. Not knowing yet how much Uno will
weigh when fully assembled makes it difficult to select
(3/5)rev 10 60 sec just one motor, so the entire group of motors from Table 2
RPM = x x = 360rev/min
sec 1 min was ordered and inspected. These motors are shown in
Figure 2.
Plugging a few other ratios into the equation gives us a set One by one, each motor was connected to a 12-volt
power supply, in series with a digital multimeter set to meas-
ure the motor current. The motors were simply laid on top of
the lab bench, started, and allowed to run for a full minute
to allow their no-load current to stabilize. These no-load cur-
rents are listed in Table 4.
Each motor was then held firmly with one hand while
the shaft was gripped tightly with the fingers of the other
hand — not as tight as humanly possible, but forcefully
enough to make the motor work harder (simulating the load
of pushing Uno around). As indicated in Table 4, the motor
current more than doubled for many of the motors. Note
that it was not possible to stop any of the five motors from
rotating. They were all too powerful.
Next, the internal resistance of the motor was meas-
ured and used to estimate the starting current for the
motor. The starting
Figure 3. Close-up of the larger current is a higher-
motor type. Positive and negative than-average current
power terminals are on the opposite
ends of the motor from the shaft. that exists for a short
period of time when
a motor first begins
turning. It is impor-
tant to have an idea
of how large the
starting current may
be so that the power
supply and wiring are
capable of handling
the starting current
surge.
Figure 3 shows
70 SERVO 04.2005
AssemblyLine.qxd 3/9/2005 11:37 AM Page 71

another view of the gear-


head motor. Can you see
from the side view that
the shaft of the motor
coming out of the gear
box is off-center? This is
due to the gearing inside
the gear box. As for the
power terminals, when 12
volts were applied plus-to-
plus and minus-to-minus,
the motor rotated count-
er-clockwise, as seen Figure 4. Selling for $6.49, this stepper motor
when looking into the (rt 105881CC) will be used to steer Uno’s Figure 5. Unipolar stepper motor schematic
shaft. Since the five front wheel. showing connections to all four phase coils.
motors are all reversible,
the polarity was swapped Drive Voltage Step Angle Phase Current Phase Decent Holding
to the power terminals to System Resistance Inductance Torque Torque
verify that the motors Unipolar 12 volts 3.6 degrees 75 ohms 150 mA 43 mH 80 g-cm 504 g-cm
rotate in the opposite
direction. Note: This motor has characteristics similar to the Jameco part #105881CC, which sells for $6.49.
It was also noted that
the shaft continued to Table 5. Stepper motor characteristics.
turn briefly after power
was shut off to the motor. Even phase coils. sweepstakes, where we ask and
though the time was very short — half Today, we have a driver IC — such answer the following question: Which
a second or so — it has implications for as the ULN2803 high-voltage, high-cur- microcontroller should we use in the
the operation of the motor and of rent Darlington driver — that can be Uno design? The choice will affect the
Uno overall. How fast can it switch used instead. A pinout of the ULN2803 hardware interfacing and software
from forward to backward? How long is shown in Figure 6(b). design, but assembly and testing are
does it continue moving after hitting Next up is the microcontroller right around the corner. SV
something? These areas will need to
be investigated.
For right now, the motor chosen ABOUT THE AUTHOR Figure 6b. Driving the stepper motor
phase coils. Using the ULN2803 driver IC.
for the rear-wheel-drive system is the James Antonakos is a professor
GH12-1632T. Why, you ask? It’s just in the Departments of Electrical
a gut feeling. Perhaps all of them Engineering Technology and Computer
are suitable, but we have to start Studies at Broome Community College.
somewhere. You may reach him at antonakos_j@
For steering, a unipolar stepper sunybroome.edu or visit his website at
motor will be used. Figure 4 shows the www.sunybroome.edu/~antonakos_j
actual stepper motor, whose character-
istics are listed in Table 5. Pairs of coils
are energized in an alternating fashion Figure 6a. Driving the stepper motor
phase coils, using individual components.
to make the stepper motor rotate
clockwise or counter-clockwise. When
energized, each coil draws an average
of 155 mA. Thus, a device to switch
the coil current on and off will be
required.
In the past, this has been done
with a transistor or Darlington, as
indicated in Figure 6(a), with the
diode serving to dissipate the
inductive counter-EMF produced by
the coil when it is shut off. The same
circuit is needed for each of the four
SERVO 04.2005 71
BrainMatrix.qxd 3/9/2005 2:13 PM Page 72

DIP MICROCONTROLLERS

EE
Sp

PR
ee

O
Pr st
d

To
M
(in
og ru
Pr

A
ta
M

(P
ra ct
oc

na
l#
ic

ro
m io
es
ro

lo
gr

of
Ex ns/
so

g
RA
co

am
Pa

I/O s
I/O
r

ec sec
M

nt

M
Sp
ck

)S
od

ut )
ro

Pi
Si

Pi
ee
ag

SUPPLIER

io
ul

lle

iz

ze

ns
n
n
d
e

e
e

r
Atom 24 24-pin Dip PIC 16F876 20 MHz 35,000 14K Bytes 300 Bytes 20 3

Atom 28 28-pin Dip PIC 16F876 20 MHz 35,000 14K Bytes 300 Bytes 20 4

Basic Micro
www.basicmicro.com Atom 40 40-pin Dip PIC 16F877 20 MHz 35,000 14K Bytes 300 Bytes 32 8

AtomPro 24 24-pin Dip Renesas H8/3664 16 MHz 100,000 32K Bytes 2K Bytes 16 4

AtomPro 28 28-pin Dip Renesas H8/3664 16 MHz 100,000 32K Bytes 2K Bytes 20 8

BasicX BasicX-24 24-pin Dip Atmel 8535 7.3728 MHz 65,000 32K Bytes 400 Bytes 19 8
www.basicx.com
Faraday Engineering CStamp 24-pin Dip Zilog Z8 Encore 18.432 MHz 4,000,000 64K Bytes 4K Bytes 17 6
www.faradayco.com

Domino 1 2x10 Header 80C52 11.0592 MHz 921,600 32K Bytes 32K Bytes 12 None

Domino 2 40-pin Dip 80C52 11.0592 MHz 921,600 32K Bytes 32K Bytes 28 None

PicStic 4 32-pin Dip PIC16F84A 4 MHz 1,000,000 1K Bytes 64 Bytes 19 4/2


Micromint, Inc. PicStic 4-2k 32-pin Dip PIC16F628 4 MHz 1,000,000 2K Bytes 128 Bytes 19 4/2
www.micromint.com
PicStic 5 28-pin Dip PIC16F876 8 MHz 2,000,000 8K Bytes 256 Bytes 16 4/2

Micro64 40-pin Dip ATmega64 11.0592 MHz 11,059,200 64K Bytes 36K Bytes 29 8

Micro128 40-pin Dip ATmega128 11.0592 MHz 11,059,200 128K Bytes 36K Bytes 29 8

New Micros, Inc. Plug-an-ARM Dual 2x12 Header LPC2129 60 MHz ~60,000,000 256K Bytes 16K Bytes 32 4
www.newmicros.com Plug-a-Pod Dual 2x12 Header DSP56F803 80 MHz 40,000,000 64K Bytes 4K Bytes 32 8
BS2-IC 24-pin Dip PIC 16C57C 20 MHz 4,000 2K Bytes 32 Bytes 18 None

Parallax, Inc. BS2p24-IC 24-pin Dip SX48AC 20 MHz 12,000 8x2K Bytes 166 Bytes 18 None
www.parallax.com BS2p40-IC 40-pin Dip SX48AC 20 MHz 12,000 8x2K Bytes 166 Bytes 34 None
Javelin Stamp 24-pin Dip SX48AC 25 MHz 8,500 32K Bytes 32K Bytes 16 None
NanoCore12C32 24-pin Dip MC9S12C32 24 MHz 6,000,000 32K Bytes 2K Bytes 16 8
Technological Arts NanoCore12DXC32 32-pin Dip MC9S12C32 24 MHz 32K Bytes 2K Bytes 24 8
6,000,000
www.technologicalarts.com
NanoCore12MAXC32 40-pin Dip MC9S12C32 24 MHz 6,000,000 32K Bytes 2K Bytes 30 8
TinyARM Dip 40 40-pin Dip LPC2106 10 MHz ~10,000,000 128K Bytes 64K Bytes 32 None
TinyARM TinyARM Dip 50A 50-pin Dip LPC2129 10 MHz ~10,000,000 256K Bytes 16K Bytes 47 4
www.tinyarm.com
TinyARM Dip 50B 50-pin Dip LPC2194 10 MHz ~10,000,000 256K Bytes 16K Bytes 47 4

72 SERVO 04.2005
BrainMatrix.qxd 3/9/2005 2:14 PM Page 73

by Pete Miles

Upcoming topics include SBCs and H-bridges, sensors, kits, and actuators. If you’re a manufacturer of one of these items, please
send your product information to: BrainMatrix@servomagazine.com Disclaimer: Pete Miles and the publishers strive to present the most accurate data
possible in this comparison chart. Neither is responsible for errors or omissions. In the spirit of this information reference, we encourage readers to check with
manufacturers for the latest product specs and pricing before proceeding with a design. In addition, readers should not interpret the printing order as any form
of preference; products may be listed randomly or alphabetically by either company or product name.

C
ur

Bu
C

So

So
om

re
Fl

Fl

ilt
A (sa

nt

ur

ur
oa

oa
H

-in
m
D m

H tr

ce

ce
ar

tin

tin R t M

D
un
C p

ar e

Su qui

Pr L
bi

Re

ra
dw

/S

/S
g

g eso ath
Sa le

dw so

ic

og an
pp rem

in p

in
w
at

Po

Po lu
ar
m s/r

In

k er
H n Ty

k
ar lut

ra gu
(r
ly e
io
eT

in

in ti
pl at

te

ar p

C I

pe
e ion

un

m ag
Vo nt
t M on

ur /O
e e)

rr

dw es
PW

im

m e
ni
lta s
Ra

re
up

un

in
ng
at
ar
er

ge

nt
M
te

ts

it

g
h
e
s

)
RS-232, I2C, SPI, MicroWire,
35,000 10 bit 3 Software 1-Wire, X-10, NTSC Yes 32 bit 5-12 VDC 5 mA 25/25 mA 200/200 mA Mbasic

Software RS-232, I2C, SPI, MicroWire, Yes 32 bit


35,000 10 bit 3 5-12 VDC 5 mA 25/25 mA 200/200 mA Mbasic
1-Wire, X-10, NTSC

Software RS-232, I2C, SPI, MicroWire, Yes 32 bit


35,000 10 bit 3 5-12 VDC 5 mA 25/25 mA 200/200 mA Mbasic
1-Wire, X-10, NTSC
RS-232, I2C, SPI, MicroWire, Yes 32 bit
100,000 10 bit 3 Yes 5-12 VDC 15 mA 2/2 mA 80/80 mA Mbasic
1-Wire
RS-232, I2C, SPI, MicroWire, Yes 32 bit
100,000 10 bit 3 Yes 5-12 VDC 15 mA 2/2 mA 80/80 mA Mbasic
1-Wire

6,000 8 bit/10 bit 2 1 RS-232, I2C, SPI Yes 32 bit 5-12 VDC 12 mA 3/20 mA 40/40 mA Basic

RS-232, I2C, SPI, etc.: Quasi Yes 32 bit


50,000 12 bit 4 Yes 5-24 VDC 30 mA 2/20 mA 150/150 mA None
RS-232, SPI, or I2C
300 µA/24 BASIC-52
N/A N/A 3 2 RS-232A/RS422/RS485, I2C Yes 32 bit 5 VDC Only 15 mA 300/300 mA Interpreter
mA
BASIC-52
N/A 10 bit 3 2 RS-232A/RS422/RS485, I2C Yes 32 bit 8-16 VDC 35 mA 300 µA24 mA 300/300 mA Interpreter

1k/1k N/A 1 8 RS-232, I2C, SPI No 16 bit 8-16 VDC 5 mA 25/25 mA 200/200 mA None
1k/1k 10 bit 3 8 RS-232, I2C, SPI No 16 bit 8-16 VDC 4 mA 25/25 mA 200/200 mA None
RS-232A/RS422/RS485,
20k/10k N/A 3 8 No 16 bit 8-16 VDC 4 mA 25/25 mA 400/400 mA None
I2C, SPI
RS-232A/RS422/RS485,
15,000 8 bit/16 bit 4 5 Yes 32 bit 6.5-20 VDC 50 mA 20/20 mA 400/400 mA None
I2C, SPI
RS-232A/RS422/RS485,
15,000 8 bit/16 bit 4 5 Yes 32 bit 6.5-20 VDC 50 mA 20/20 mA 400/400 mA None
I2C, SPI
400,000 32 bit 2 9 RS-232, I2C, CAN Yes 32 bit 6-12 VDC 18 mA 4/4 mA 50/50 mA MPE-FORTH
500,000 15 bit 16 64 RS-232, CAN, SPI Yes 32 bit 6-9 VDC 18 mA 25/25 mA 180/180 mA IsoMax
N/A N/A None Software RS-232, I2C, X-10, 1-Wire No 16 bit 5-15 VDC 3 mA 20/25 mA 40/50 mA Pbasic
N/A N/A None Software RS-232, I2C, X-10, 1-Wire No 16 bit 5-12 VDC 40 mA 30/30 mA 60/60 mA Pbasic
N/A N/A None Software RS-232, I2C, X-10, 1-Wire No 16 bit 5-12 VDC 40 mA 30/30 mA 60/60 mA Pbasic
N/A N/A 1 None RS-232 No 16 bit 5-24 VDC 80 mA 30/30 mA 60/60 mA Java
140,000 8 bit 8 8 RS-232, SPI Yes 32 bit 3-16 VDC 27 mA 25/25 mA 160/160 mA None
140,000 8 bit 8 24 RS-232, SPI, CAN Yes 32 bit 3-16 VDC 27 mA 25/25 mA 240/240 mA None
140,000 8 bit 8 24 RS-232, SPI, CAN Yes 32 bit 3-16 VDC 40 mA 25/25 mA 240/240 mA None
N/A 32 bit 2 3 RS-232, I2C, SPI No 32 bit 3.6-5.5 VDC 15 mA 4/4 mA 50/50 mA None
2.44ms 32 bit 2 4 RS-232, I2C, SPI No 32 bit 3.6-5.5 VDC 18 mA 4/4 mA 50/50 mA None
2.44ms 32 bit 2 4 RS-232, I2C, SPI No 32 bit 3.6-5.5 VDC 18 mA 4/4 mA 50/50 mA None

SERVO 04.2005 73
MrRoboto.qxd 3/9/2005 6:00 PM Page 74

Our resident expert on all things


robotic is merely an Email away.
roboto@servomagazine.com

Tap into the sum of all human knowledge and get your questions answered here!
From software algorithms to material selection, Mr. Roboto strives to meet you
where you are — and what more would you expect from a complex service droid?

by
Pete Miles

Q Why are the diameters of wires and sheet metal dif-


ferent when they have the same gauge number?

— Bill Rylie
via Internet
Though there have been some international efforts
toward creating standards, there are still differences in mate-
rial thicknesses/diameters, based on what the material is.
When it comes to electrical wire, the American Wire Gauge
(AWG) is the standard that is fairly constant. When you are
looking to buy sheet metal and wire (other than electrical

A This has been a confusing topic for most people. The


short answer to your question is that there is no com-
parison between wire and sheet metal. What adds to
the confusion is that, for the same gauge thickness of sheet
metal, the actual decimal thickness is different for steel, alu-
wire), it is better to order the material by the actual thickness
that you want and not by gauge number. This way, you will
know what thickness you are getting.

minum, brass, and so on. Also, the numbering trends are not
consistent. For example, for most sheets and wires, as the
gauge number increases, the wire diameter/sheet thickness
decreases. This is not the case with music wire. As the gauge
number increases, so does its diameter.
Q Last year, I got a Lynxmotion Extreme 1 walking
robot for Christmas. This is a really cool robot, and I
have been having a lot of fun programming it. I was
wondering if you know of any good contests that I could
enter my robot in?
The gauge system is a holdover from early attempts at — Zach Field
standardizing dimensions. Different companies and different via Internet
countries tried to establish their own system of standards.
With sheet metal, the gauges were tied to the weight of a
sheet of one-inch-thick metal that was one foot square in
size. Originally, gauges were based on the weight of wrought
iron, which is 480 pounds per cubic foot — that’s equivalent
to 40 pounds per square foot. The confusing part is that a
A I am not sure where you live, but you should check out
the Walking Robot Race that was created by members of
the Portland Area Robotics Society (www.portland
robotics.org). They run this contest in their annual robotics
event — PDXBot (www.pdxbot.com). This is a relatively sim-
particular company could choose that a Gauge 3 is equiva- ple contest where your robot has to travel from one end of the
lent to 10 pounds of material. To convert that to a thickness, course to the other end, turn around, and then go back to the
just divide the weight of the Gauge 3 standard by the weight stating point. Most of the arena is white with a black starting
of one square foot of material (in this case, 40 pounds/inch). point and a green turn-around area. The arena is three feet wide
The thickness will be 0.25 inches (thickness = 10/40). and seven feet long. The robot with the quickest time wins.
These standard “gauge” weights are different for different The Extreme Walker 1 from Lynxmotion (www.lynx
materials and, in the old days, they were different at different motion.com) is fully capable of negotiating this contest and
organizations. Aluminum, steel, and brass all have different has a good chance of winning it. The reason I say this is that
weights per square foot (14.1, 40.75, and 44.64 pounds/inch) in the rules of the contest, they use a handicapping formula that
and their thicknesses for the same gauge number are similar, is based on the geometry of your robot to make sure that small
but not the same. This means that the weight of the gauge robots compete on equal grounds with large robots. This formu-
“standard” is different for different materials. Since different la is known as Alexander’s Formula, and it is used to adjust the
companies and countries had different “standards,” this result- final times of the robot based on its geometry. Because of this
ed in a great deal of confusion in getting materials that have formula, all walking robots can compete together.
the same thickness from different companies. Another contest to look at is the Walker Challenge that is
74 SERVO 04.2005
MrRoboto.qxd 3/9/2005 6:01 PM Page 75

run at the ROBOlympics (www. Vin Vout


robolympics.net). Here, a walk- Vdd +9V 7805 Vcc +5V

ing robot must negotiate a one- 0.01 uF GND 10 uF 470 ohm


C6 C5 R6
meter-wide by two-meter-long
obstacle course that is covered
with various objects no taller than
5 cm and then climb a couple of
stairs at the end of the course. The Vcc +4.8V - 6V
robot with the quickest time wins.
If you are not able to attend
4.7 kohm 1 kohm
either one of these contests, the R1 8 R4 8
arenas are very easy to build and 7 4 10 kohm 7 4
you can construct one yourself R3
10 kohm 6 555 6 555
1 kohm
and start a contest in your area R2 U1
R5
U2
2 3 2 3 SERVO
with your friends. I would highly SOCKET
encourage you to do this. The 1 uF 5 1 0.001 uF
1 uF
5 1 SIGNAL
C2 0.01 uF
more walking robot contests C1 C3 C4
there are out there, the more peo-
ple will get involved in building
walking style robots. Good luck.
Figure 1. Megarobotics AI Motor-601 Modules.

Q I see a lot of 555 timer circuits shown in the Q&A


section of Nuts&Volts Magazine. Can they be used
to drive RC servos?
— Phil Strack
via Internet
erate a one- to two-ms pulse width, while C2 and R3 are used
to create an AC couple between the two timers. The reason
that this is in here is that, in order for the monostable circuit
to work properly, the input trigger must be driven high before
the output pulse is completed; otherwise, the output pulse
will not go low until the input trigger goes high again.

A Driving a servo with a 555 timer is pretty simple and


many people use them to test their servos. The circuit
shown in Figure 1 is a simple one that uses a pair of
555 timers to develop the 50- to 60-Hz duty cycle that the ser-
vos need to maintain position and the one- to two-ms pulse
R4 and R5 combined are used to adjust the pulse width
between one to two ms. When the servo is attached to the
circuit, adjusting the potentiometer (R4) will cause the servo
horn to move. If you want a greater range of motion, you
could replace R5 with a 470- or 510-ohm resistor and replace
width to set the servo position. The first 555 timer (U1) is con- the R4 with a two-kilohm potentiometer. This will result in an
figured as an astable circuit to generate a 58.7-Hz square output pulse width range between 0.5 to 2.5 ms. This circuit
wave that is fed into the second 555 timer. The second timer can be built into a small hand-held unit that would make a
(U2) is configured as a monostable circuit that is used to gen- great device for field-testing your servos. SV

w
e
N
KHR-1 Robo-One Robot Kit
These awesome kits are the latest craze in Japan.
Robot has 17 motors for fluid movements.
Programed and Controlled via PC.
Upgradable to Bluetooth wireless.

BROUGHT TO YOU BY WWW.SOZBOTS.COM


Circle #130 on the Reader Service Card.
SERVO 04.2005 75
Tetsujin2005Ad.qxd 3/10/2005 2:48 PM Page 76

Y es exo-fans,Tetsujin is back for a second action-packed year! Once


again, we'll be part of the giant RoboNexus Conference — which
will be twice as large as last year.To "suit" the quickly-evolving work in
strength augmentation, we've expanded the challenges for Tetsujin 2005.
Now you have three ways to showcase your work:

challenge 1:
Weightlifting. Ascend stairs in your suit to the lifting
platform and lift a load of from 100 to 1,000 lbs* from a
squatting position to a height of at least 24 inches*, return
the load to the ground in a controlled manner, and
descend the stairs. Stair-climbing may be unpowered. The
winner is the competitor who lifts the most weight.

challenge 2:
Dexterity. Stack nine concrete cylinders weighing about
70 pounds each in a 4-3-2 vertical arrangement, but don't
knock them over as the pyramid grows! The winner is the
competitor who arranges the cylinders in the shortest
time.

challenge 3:
Walking Race. Walk the 100 foot* long U-shaped
challenge course, stepping over a small obstacle at the
half-way point.The shortest time wins, with a time bonus
being granted based on any auxillary load carried.Walking
must be powered.

The current rule set is available online at


www.servomagazine.com/tetsujin
and questions can be directed to
Tetsujin2005@gmail.com
Start planning NOW so you can be a part of the largest
"exo-games" event of the year — Tetsujin 2005!
*Specifics of the competition are in a tentative state and may be subject to change.
Events.qxd 3/10/2005 8:02 AM Page 77

Send updates, new listings, corrections, complaints, and suggestions to: steve@ncc.com or FAX 972-404-0269

I recently noticed an interesting discussion on the frustrated with the voluminous rules?
comp.robotics.misc newsgroup . It started out as the usual www.trincoll.edu/events/robot
sort of argument that crops up frequently about popular TV
programs that stage “robot combat.” Are the “robots” real- 11-16 BattleBots IQ
ly robots if they're actually being controlled by off-camera Universal Studios Orlando, Orlando, FL
human operators much like the prop robots in a science fic- BattleBots IQ is sort of like FIRST or BEST except
tion movie? Often the solution posed when this topic comes that instead of learning about engineering, the kids
up is a contest in which real (that is, autonomous) robots get to learn about smashing radio controlled vehi-
battle each other. In this case, however, a more interesting cles and the joys of destruction.
solution was proposed. www.battlebotsiq.com
What if, instead of trying to make real robots emulate
robot “actors” on TV shows that popularize mindless destruc- 12-14 DTU RoboCup
tion, we went the opposite direction and came up with a com- Technical University of Denmark, Copenhagen,
petition in which robots try to achieve some constructive, real- Denmark
world goal. Suggestions included building walls, laying foun- Start out by imagining your typical line following
dations, and perhaps eventually a “Habitat for Humanity”-type contest. Now, add forks in the line, ramps, stairs,
contest in which a team of robots construct a house. gaps in the line, shifts from indoor to outdoor light-
It sounds far fetched at first, but there are a lot of ing, reversals of the line shading (white to black),
researchers working on robotics technology for RoboCup and 50-cm “gates” though which the robot must
that they hope will allow a team of humanoid robots to beat pass.
a human team at a game of soccer by the year 2050. How www.iau.dtu.dk/robocup/about_robocup.html
much more useful and interesting would it be for a team of
robots to construct a house instead of a playing games 15 Carnegie-Mellon Mobot Races
or destroying each other for our amusement? [It’s worth Wean Hall, CMU, Pittsburgh, PA
thinking about, as this noble concept is the driving force The traditional Mobot slalom and MoboJoust
behind SERVO Magazine’s annual Tetsujin contest. For more events will be hosted by CMU.
information, look to your left. —Editor] www.cs.cmu.edu/~mobot/
— R. Steven Rainwater
16 RoboRodentia
For last-minute updates and changes, you can always find Mott Gymnasium, California Polytechnic State
the most recent version of the Robot Competition FAQ at University, San Luis Obispo, CA
Robots.net: http://robots.net/rcfaq.html A micromouse-like maze navigation contest for
autonomous robot mice. In addition to navigating
the maze, a robot must all pick up balls and place
A p r il 2 0 0 5 them in a nest.
www.ceng-web.calpoly.edu/openhouse/satur
3 Penn State Abington Fire Fighting Robot day.php
Contest
Penn State Abington, Abington, PA 30- PDXBOT
Regional qualifier for the Trinity College Fire May 1 Smith Center Ballroom, Portland State Univ.,
Fighting contest. Portland, OR
www.ecsel.psu.edu/~avanzato/robots/contests Lots of cool stuff planned this year including Nano,
Micro, Japan, and Mini Sumo contests, a line fol-
9-10 Trinity College Fire Fighting Home Robot Contest lowing contest, and a Robo-Magellan contest
Trinity College, Hartford, CT based on SRS rules.
Could the fire have been set by a robot builder www.pdxbot.org

SERVO 04.2005 77
Appetizer.qxd 3/10/2005 10:31 AM Page 78

Why Do Most Women Hate Robots?


by Dave Prochnow
s the father of three daughters who earned Bachelor of Science degrees that depict robotic violence is that I,
A and devoted husband of an archi-
tect, I have a rather unique perspective
in computer science only 28 percent
were women. Oddly enough, as you
Robot featured androgynous beings
totally lacking in either the overly testos-
on hot-button issues like glass ceilings, progressed to advanced degrees, the terone excesses of a Terminator or the
gender bias, and discrimination. I’ve suf- percentages changed to 26 percent of evocative sexuality of Pris (Daryl
fered and commiserated for years over women earned Master’s degrees while Hannah) from Blade Runner. These
questionable hiring and firing practices, 18 percent of women earned Doctorate robots were effectively sexless in their
unequal promotions, and downright degrees. What does that mean? physical features. This removal of visual
laughable management edicts. However, This disparity gets even more dra- prejudice prevented the audience from
if you think that I’m just going to skew matic in engineering fields. Women anticipating the odd behavior of Sonny
off into some tirade about how men are earned 17 percent of the BS degrees in (Alan Tudyk) and the other USR robots.
boorish neanderthals and women are engineering, 16 percent of the MS In a National Science Foundation-
great, forget it. I just want to know why degrees, and 12 percent of the Ph.D. funded research project, investigators
women hate robots. degrees. Finally, in an oddly titled cate- Mahzarin Banaji and Anthony Greenwald
Once you accept my motives and gory of “engineering-related technolo- designed an Implicit Association Test
appreciate my vantage point, it’s tough gies” degrees, women earned nine per- (IAT). Conducted from 1995 to 2002,
to totally ignore some of the statistical cent of the BS degrees, 19 percent of one aspect of this test was to statisti-
numbers related to women in science the MS degrees, and 11 percent of the cally measure “hidden or unconscious
and engineering. For example, in a 1995 Ph.D. degrees. attitudes.” Based on the association of
study by the US Department of Those are some serious differences words to images, the IAT was able, for
Education, of all the men and women in achievements. Where does that type example, to demonstrate how people
of incongruity begin? Are there generally attribute higher intelligence
Not all women hate robots. In fact, Robosapien educational factors that con- and character to attractive men and
is a terrific way to make robots fun for all kids. tribute to this enormous degree women based solely on their looks.
gulf, or is there some sort of fun- That makes us sound rather shallow,
damental attitude that makes us doesn’t it? Is a presidential candidate’s
“feel” that someone or some physical appearance more important
gender is better at one task than than a campaign platform?
another one? On the Internet, over 1.5 million
Let’s explore each of these international participants took the IAT.
questions. First, consider this clas- The results were sobering. In fact,
sic robo-thriller: Are the robots in according to the NSF’s report, “People
the 2004 20th Century Fox movie show strong preferences for young ver-
I, Robot male or female? Your sus old and have far more difficulty
response might be dictated by grouping women’s names with words
your own gender or your biases having to do with science (chemistry,
from other science fiction movies. biology), than with arts (drama, poetry).
As you’ll recall in this movie, This last result is as apparent in respons-
Chicago Police Department detec- es of women as in those of men.”
tive Del Spooner (Will Smith) Does this mean that we are des-
investigates a social civil war, pit- tined to be sexist? In response, investi-
ting malevolent “free-thinking” gator Greenwald states, “You’ve got
robots against the human popula- these things going on automatically.
tion. One radical departure for You may not approve of them, but
this movie from other sci-fi flicks they’re there. And you’ve got to expect
78 SERVO 04.2005
Appetizer.qxd 3/10/2005 12:37 PM Page 79

that they might influence your behav- moted careers in science and technol-
ior, unless you’re actively trying to ogy as a viable option for girls. Unlike
avoid acting in a biased manner.” later American programs, however,
So, based on the IAT results, rather the Roadshow also educated parents,
than treating young girls like artists, we teachers, and even employers about
need to educate them to be technolog- Botswana’s need for technology
ically and scientifically equal with boys. manpower — and womanpower.
Oddly enough, Africa is actually ahead Remarkably, predating the IAT
of America in realizing this need for results, the Roadshow has mandated
“actively trying to avoid acting in a that participants should “be encour-
biased manner.” aged to change their attitudes
If you don’t think of Africa as a toward women in these fields.”
growing force in science and technolo- Although slow to act, the US is
gy education, think again; better yet, now attempting to define the factors Amelia loves her little “Roro.” With just a
think last century. It was back in 1989 that contribute to the gender gap in little instruction, she is now able to program
when the Commonwealth Secretariat technology education. While the ini- lengthy command sequences into it.
Education Programme began soliciting tial reaction is to throw money at the
African countries to sponsor a program topic, one very interesting 1999 study public school district in the country, it is
called The Science and Technology suggests that filling our classrooms with a “technology-rich learning environ-
Roadshow — for girls. technology isn’t the sole answer. ment” with every classroom wired for
In 1990, the Ministry of Education Arguably, the highest tech school the Internet. According to this 1999
for Botswana became the inaugural host system in the US is the Fairfax County study of the 1998 enrollment in all tech-
for the Roadshow. Focusing on second- Public School District in Virginia. Even nology classes offered by the Fairfax
ary school students, the program pro- though this district is the 12th largest County Public School District, only six

T E X A S A R T RO B OT S
H A N D M A D E I N T E L L I G E N C E

UNIQUE LIMITED EDITIONS


INTELLIGENT & AUTONOMOUS
HAND CRAFTED
Electronic Parts & Supplies
.
WWW A RT BOTS COM . Since 1967

www.gatewayelectronics.com
(Electronically Speaking, Gateway’s Got It!)

MAIL ORDERS CALL TOLL-FREE-1-800-669-5810

Megarobotics’ AI Motors
Building blocks
for robots!
Starting at $65

www.garage-technologies.com

For the finest in robots, parts, and services, go to


www.servomagazine.com and click on Robo-Links
to hotlink to these great companies.

SERVO 04.2005 79
Appetizer.qxd 3/10/2005 10:33 AM Page 80

higher to receive college credit (some


YES, BUT WHAT CAN I DO? schools require a score of four or five
Don’t feel helpless, don’t give up, please shy away from giving away your for receiving credit). This AP test is fur-
and don’t just sit there. Here is a brief old “junk” robots. Your school might take ther divided into a one semester intro-
selection of proactive educational pas- them, but the kids will hate them. Also, ductory exam (i.e., “A” exam) and a
times, practices, and promotions that remember to throw in a couple of buck- more comprehensive one year intro-
you can try for bringing technology and ets worth of batteries; dead batteries or
robots into children’s lives. no batteries can make robotics very dull.
ductory exam (i.e., “AB” exam).
In 1999, 83 percent of those stu-
• Be a foster scientist — Sure, mentoring • Turn the TV off — While science on TV dents who applied for the “A” exam
is a hot buzz word of wealthy bureau- might be an attractive educational tool, it were male, while only nine percent of
crats, but it is so hollow (e.g., typical is a two-dimensional, spoon-fed, in-your- the “AB” exam test-takers were female.
“mentoring” programs offer a scant one face format that can actually distract a Even with such a dramatic difference in
or two hours of assistance per week). student more than inspire her/him. the gender ratio, the young women
Instead, approach mentoring like a scored higher than their curriculum
foster parent and provide a full-time, • Sponsor some school smarts — Help
choices would seem to indicate. For
hands-on science education to kids. your local school, church, club, and/or
museum purchase an additional comput- example, this same study showed that
• Take-a-robot-to-school program — Use er. Don’t try to dictate manufacturer, while 41 percent of the girls scored a
some of your “spare” cash to purchase model, or features — just give them one one on the “A” exam, 17 percent of
and donate brand new robots to your that matches the administration’s them scored a three, 20 percent a four,
local school, church, club, and/or muse- requirements. and 10 percent scored a five. That is an
um. For example, Tamiya America impressive achievement for a group
(www.tamiyausa.com) used to make • Read, read, read — You can’t ever read that is traditionally ignored in technolo-
extremely inexpensive robot kits that I enough, nor can you begin reading too
gy coursework.
have regularly given away. Consider a early. SERVO Magazine is a great source
Robosapien for your donation, but for reading about robots and technology.
As for the boys, 19 percent scored
a three, 25 percent scored a four, and
scores of five were achieved by 17 per-
percent of the students enrolled in arti- actually exceeded the boys’ enrollment cent. The differences in these scores
ficial intelligence classes were young in only one class — word processing. suggests that girls don’t really require a
women. Likewise, 23 percent of the stu- This course is considered by some edu- “pink” education, rather a stronger and
dents enrolled in computer program- cators to be nothing more than a politi- more supportive foundation in technol-
ming were female. Interestingly cally correct euphemism for the typing ogy that they can build upon.
enough, this percentage jumps to near classes of the middle 20th century. So, maybe it’s really a matter of
parity with desktop publishing and In engineering-related coursework, packaging. In other words, don’t make a
information system classes at 46 per- the number of enrolled girls were even whole new curriculum just for girls
cent female enrollment for each sub- further reduced. One percent of the (those are the educators who think
ject. Finally, in a rather disappointing students in electronics were young “pink”); instead, just modify an existing
result, the girls’ enrollment (55 percent) women, 15 percent of the technical “girl-appreciated” curriculum and infuse
drawing students were female, and 18 it with computers, programming, robots,
Making electronics, computers, and percent of the enrolled architectural and technology. You know the cliché …
robots commonplace in a child’s life will drawing students were girls. So what call it fashion and they will enroll.
expand his or her interests and allow for are girls in Fairfax County taking? The Now, before you snort and roll your
a broader choice of future careers.
enrollment numbers for foreign lan- eyes, maybe you should really study
guage, chemistry, economics, history, some of today’s sewing machines. While
art, and music showed a “higher” per- names like Bernina (www.bernin
centage of female participation. The a.com), Janome (www.janome.com),
largest female enrollments, however — and Pfaff (www.pfaff.com) aren’t as
where girls outnumbered boys by 30 familiar to you as Apple, Intel, and
percent or more — were in child care, Microsoft, these are the big players in
nursing, dance, cosmetology, fashion the multi-billion-dollar fashion industry.
marketing, dental careers, food occu- Likewise, you might think that your
pations, and animal science. new PowerBook is a high-priced power-
So, are girls just not academically house; conversely, these sewing
motivated? In some accelerated high machines — like the $5,000.00-plus
schools, like those found in the Fairfax Pfaff 2144 — are incredibly powerful,
County Public School District, students computerized stitching phenoms that
can take an Advanced Placement (AP) rely on sophisticated programming, the
test administered by the College Board installation of system firmware, and
and earn college credit in computer sci- the integration of complex digitizing
ence. This is a three-hour exam that software for regular operation. Can
typically requires a score of three or you imagine doing that level of techno-
80 SERVO 04.2005
Appetizer.qxd 3/10/2005 3:53 PM Page 81

logical work just to write a letter with can’t start too early with their introduc- the strongest case for females liking
your word processor? tion to technology. My one-year-old robots. In a 2003 interview with
Remarkably, women of all ages are daughter, for example, calls Taiwan News, Tilden offered some
able to perform these operations without Robosapien “Roro” and can deftly pro- insightful quotes regarding a proposed
any acknowledgment of being a pro- gram 14-step activities into its internal “FemBot” design. Specifically, “She
grammer, a system engineer, or a hard- memory without assistance. [the proposed FemBot design] can also
ware technician. They just like to sew and Do women really hate robots? do simple tasks like combing her
consider themselves fashion designers. Ironically, it’s the inventor of the owner’s hair … unlike boys, girls like to
So, what can you do? Luckily, Robosapien, Mark Tilden, who makes interact with their toys.” SV
you’re holding the best tool in your
hands right now! SERVO Magazine is a GIRL POWER
great place to start integrating technol-
ogy into your children’s lives, whether Knowledge is power. In order to www2.edc.org/CCT/projects_summary
they are male or female. For example, I empower girls to enter technology .asp?numProjectId=771
fields, you will need to arm yourself with
read each issue to my daughters every
some information. Below is a small sam- EducatingJane.com — Teacher’s
month. Sure, they don’t really appreci- pling of websites that detail numerous Resources for Educating Girls
ate it at the same level as I do, but they programs and activities that can be used www.educatingjane.com/educators.htm
like reading and they love robots. for helping all children achieve their
Making technology a common- potential. Girl Scouts Original Research Studies
place household resident will give your www.girlscouts.org/research/
children the best foundation that they The Advertising Council on Math, publications/original/default.asp
will ever need. Programming the Science, and Technology Education
kitchen’s microwave, burning the family www.adcouncil.org/issues/Math_and_ IEEE Women in Engineering
Science_Education/ www.ieee.org/portal/site/mainsite/me
video to a DVD, or walking Robosapien nuitem.818c0c39e85ef176fb2275875ba
around the house all help to put a face American Association of University c26c8/index.jsp?&pName=corp_level1
on technology. Also, watch your chil- Women — Tech-Savvy: Educating Girls in &path=committee/women&file=index.
dren and learn their interests, then you the New Computer Age (2000) xml&xsl=generic.xsl
will be better equipped to integrate www.aauw.org/research/girls_
technology into their daily lives. You education/techsavvy.cfm National Science Foundation:
Discoveries
AWE — Attracting Women into www.nsf.gov/discoveries/
AUTHOR BIO Engineering: A Mentoring Program
Dave Prochnow is the author of for Middle School Girls Society of Women Engineers
25 nonfiction books, including the users.rowan.edu/~jahan/personal/ www.swe.org/stellent/idcplg?IdcSer
best selling Experiments with EPROMs. kjweb/awe-web/awe.htm vice=SS_GET_PAGE&nodeId=5
Dave also won the 2001 Maggie Award
for the best “how-to” article in a con- Botswana Roadshow — Girls and Taiwan News: “Humanoid Robot
sumer magazine. Building on his new- Women in Science and Technology Dishes Out Kung-Fu Moves”
found friendships with Robosapien www.col.org/10th/best/botswana.html www.etaiwannews.com/Business/2003/
and Mark Tilden, Dave is currently 11/22/1069466565.htm
assembling an enormous selection of Education Development Center: Center
Robosapien tips, programs, and hacks for Children and Technology — Wired News:
into his forthcoming book, A Hacker’s Telementoring Young Women Bots Not a Bra-Burning Issue
Guide to Robosapien (TAB Electronics, in Engineering and Computing: www.wired.com/news/women/0,1540,
2005). Providing the Vital Link 48337,00.html

Advertiser Index
All Electronics Corp. ............................51 Hobby Engineering ..............................39 Robotic Trends .....................................21
AREXX Engineering ..............................59 Jameco ...........................................25, 83 RobotShop ............................................17
BitScope ................................................11 Lemon Studios .....................................67 Smithy .....................................................51
Lynxmotion, Inc. ...................................19
Budget Robotics ...................................70 Solutions Cubed....................................65
Net Media ...............................................2
CrustCrawler ...........................................7 Sozbots..................................................75
Parallax, Inc. ...........................Back Cover
Custom Computer Services, Inc. ........15 Technological Arts ...............................61
PCB123/PCBexpress ...............................3
Eagle Tree Systems ...............................55 PCB Fab Express ...................................49 Tetsujin 2005..........................................76
E-Clec-Tech ............................................29 Pololu Robotics & Electronics .............31 Vantec ....................................................10
IMService ..............................................45 Robotics Group, Inc..............................33 Zagros Robotics ....................................51

SERVO 04.2005 81
Last Page.qxd 3/9/2005 5:58 PM Page 82

THEN AND NOW


A Look Back at the Androbot TOPO
by Tom Carroll

Trobotics
he two-wheeled balancing robots
that you’ve seen in experimental
exhibitions across the country
ets. In assembling the robot
(after you took it apart, as
everyone I know did), you
are not new, but these later versions began by trying to align the
have sprung from the success of Dean plastic panels while making
Kamen’s Segway Human Transporter. sure the rivet holes were
Experimenters have used sensors simi- aligned. You would insert the
lar to Segway’s five-gyroscopic and rivet into both aligned holes
two-tilt sensors to reproduce their own and then insert a small plas-
balancing robots at a cost far cheaper tic pin into the center of the
than Segway’s $4,000-plus. I loved rid- rivet to spread apart the back
ing the Segway, though I feared a small pieces of the rivet to hold the
hiccup in the control electronics would two pieces of plastic panels
cause me to dive forward and trip over together. This pin went into the rivet one each at the front and back to keep
the “T” handle bar. and was flush at the surface. it from tilting over too far. It did not use
Was it the first two-wheeled robot- After 50 or so rivets, the robot gyroscopic feedback in the control sys-
ic device? Nope! There was a unique would be held together; however, the tem, but rather the two wheels were
entry into the field two decades prior. only way to take it apart again was to canted outward enough so the bottom
Quite a few of you readers may stick a small rod or punch into the rivet surfaces were not circular but like the
remember the Androbot TOPO that hole to push the pin through, and it fell oval bottom rails of a rocking chair that
made the “robotic scene” in 1982. The into the robot’s body. To get at the pin(s), keeps it from tipping over.
two-wheeled robot — yes, it managed you either had to completely disassemble Hey, you might call that cheating,
to balance on just two wheels — was it again or turn it upside down and shake but at least it could still stand upright
one of the creations of Nolan Bushnell, the robot until the pin(s) finally fell out. with the power off. SV
who is best known for Atari, Pizza Time Bad design. Very bad.
Theater, and the Pong video game. This original model had
This rather strange looking robot an RF transmitter for the
caught the eyes of many robot experi- remote control that linked to
menters when it made its public debut an external Apple II comput-
at the 1983 Consumer Electronics er. The next model had an IR
Show in Las Vegas. link and a speech synthesiz-
Bushnell described Androbot, “as er, and a later model did
my greatest joy and my greatest sor- away with the 18 separate
row.” Androbot went bankrupt and panels and used five molded
Bushnell sold it in 1985. But TOPOs body parts instead.
went through several versions before The most unique feature
they finally left the scene. was its ability to balance on
The original TOPO was constructed two wheels. It did have two
from 17 blow-molded pieces of plastic casters (if you could call
held together by a series of plastic riv- those ball-bearing casters),

ABOUT THE AUTHOR


Retired from Rockwell and NASA projects, Tom Carroll is a space robot-
ics engineer. He's authored numerous articles on combat robots, lives on
an island in the Pacific Northwest with his wife, Sue, and enjoys robotics,
kayaking, and hiking. He can be reached at: TWCarroll@aol.com

82 SERVO 04.2005
CoverInside.qxd 3/10/2005 4:26 PM Page 2

Remember when...
...electronics stores were stocked to the rafters

with every component imaginable and there was ALWAYS


a knowledgeable person there to help you?

Think those days are gone?


Great Products. Awesome Prices.
Well they’re not!
1.800.831.4242
You just need Jameco!
Call for a FREE 256-page catalog today.

We have the electronic components and knowledgeable


Technical Support people who can help bring back the fun
in your electronics hobbies, inventions, and DIY projects.

Circle #36 on the Reader Service Card.

Be sure to visit our new website at Jameco Electronics


www.Jameco.com/nvd —where electronics is still fun!
Circle #37 on the Reader Service Card.
Cover.qxd 3/10/2005 3:46 PM Page 84

Vol. 3 No. 4
SERVO MAGAZINE
REAL-WORLD ROBOTS
April 2005

U.S. $5.50 CANADA $9.25


0 4>

0 74470 58285 4
Circle #40 on the Reader Service Card.

You might also like