Our resident expert on all things
robotic is merely an email away.
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?
This column marks one year for me answering your
questions and hoping that I am helping you along with
your aspirations towards building useful or entertaining
robots. The fact that you are still reading the column
makes me believe that I’m doing something right. Please
keep those questions coming; they inspire me to keep
researching and writing about what I have learned to help
you with your projects. Life is all about constantly learning.
One of my favorite authors, Robert A. Heinlein, once had a
character utter these memorable words: “When you stop
learning, you start dying.” With this in mind, I hope to live
forever – and I’ll do everything in my power to help you live
The current economic times are less than ideal for most
of us to be spending money on non-essentials, let’s face it.
There are however lots of things that get thrown away that
could net some really good robotic components. Does
anyone out there have any questions about how to salvage
good stuff from technological marvels that we no longer
want to keep using for their original purpose? I’d love to
hear them and offer you suggestions to get the most from
what you have on hand already. Let’s move on to your
questions — or rather question — there was only one this
month, but it was a good one.
Q. I am an old SERVO
reader and I really enjoy
your column. I have
learned very much from it and
it answered almost all my
questions, except this one.
First, a little introduction is
needed. I’ve been using
continuous rotation servos to
propel my robots, but I want to
move on to using DC motors
with encoders. I have read the
articles in SERVO about PID
control but that does not teach
one how to make the robot move smoothly — ramping up
to the maximum speed and slowing down just before
reaching the destination point. Looking up on Google,
I have found that a trapezoidal or even a more advanced
S-curve type control is needed.
My question is: Can you show me how to implement
(using pseudo code) a trapezoidal motion control? And for
a more advanced movement, can it be combined with a
Thank you very much in advance!
— Gabriel Petrut,
A. Thanks for your support! You ask a good question
and using a ramped acceleration and deceleration
curve will most definitely smooth your robot’s
direction and speed changes. In fact, if you have ever seen
a robot (or any motorized machine, for that matter) that
controls its acceleration and deceleration, you will most
likely be very impressed. Using a ramped curve will help
reduce wear and tear on your gear train and if properly
implemented, will eliminate the “wheelies” that a highly
Figure 1. Trapezoidal acceleration curve.