Our resident expert on all things
robotic is merely an email away.
roboto@servomagazine.com
Tap into the sum of allhumanknowledge 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
Dennis Clark
Great maker! It’s May already and it seems like it
was just January! The season for robotics competitions is
getting into full swing and if I can trust what I read on
the web, there are lots of great projects in the works.
With high hopes comes great curiosity and great
questions, so let’s hear them! Onward...
Q. I am a new subscriber to SERVO Magazine. I
enjoy your column, and I wonder if you could give
me some advice. Long term, I want to build a
robotic arm that can be driven by a Linux computer to
load CDs into a CD burner and then load them into a
printer. I’ve got a long way to go, though. I’m a computer
programmer, but I don’t have any electronics or robotics
experience. I think your magazine will go a long way
towards helping me learn, but at this point, I’m still
struggling to learn the jargon — I’m not even sure the
questions I need to ask yet! How can I get up to speed so
that I can ask better questions and eventually build my
robotic arm? How would you recommend that I get
started learning? Are there books or specific back issues
or kits or perhaps something else altogether that you can
recommend to help get me started? Thanks!
— Roman
A. Wow, good question, and one that we’ve all asked,
or at least wished to ask. I’ll do my best to answer
it. A question this broad requires that I break the
answer down into “bite size” chunks, otherwise it’ll be
overwhelming. I’m going to skip over the “What is a
robot?” question because that isn’t what you are asking. If
you are interested in that rather philosophical conundrum,
I’ll re-direct you to the various discussion groups that
debate that question on a regular basis, and typically don’t
come to any resolution (I’ll list some of the active groups
at the end of my answer). I will be filling this answer with
jargon and jargon definitions to help you come to terms
with how most of us deal with and talk about robotics.
14 SERVO 05.2009
Robot Controllers
Since you are a programmer, you are already aware
of the need for tools to program your robots, sort of.
I say “sort of” because the needs of the typical robotics
programmer who deals with embedded programming are
very different from the needs of a “big iron” programmer
who is writing programs for their desktop computer. I
don’t want to give you the impression that all robotics
programming is embedded, however. These days quite a
lot of robotics is — and needs to be — done with higher-performance computers. However, you will quickly discover
that you can’t control a robot with a Linux machine alone.
Desktop operating systems (OSs) are not real time
(RT). What does that mean? Simply, it means that you’ll
find that to control servos, motors, sensors, and the like
requires your program to always be ready to react to
the needs of that hardware with little or no delay. A multithreaded OS that is task-switching every 100 ms and has
measurable delays when responding to low-level interrupts
will just not be able to deal with this intense level of
hand-holding that low-level robotic systems need. This is
where embedded programming comes in.
An embedded program will respond very quickly to
an interrupt by a device that needs control NOW. This
program is written by a programmer with an intimate
knowledge of the hardware that the program is running
on. Your high-end computer, on the other hand, doesn’t
need to know the gritty details of how a motor controller
works, for instance. The high-end computer is dealing with
a broader scope of rules and processes and it simply issues
commands down the chain to an abstracted object that is
expected to do certain things.
You have two choices when it comes to getting
low-level controllers for the hardware you need to control:
you can buy it or build it. We’re all pretty hands-on as
amateur robotics engineers, and your level of interest in
the hardware will determine which way you’ll go. These
days, however, either way is perfectly valid. One such
vendor of “ready to use” low-level controllers is Phidgets