Today’s hobbyists can purchase robotic platforms with a wide variety
of electronic sensors, mechanical actuators, and programmable
microcontrollers. This means that constructing a powerful robot is
within the capacity of almost everyone, even those with a minimal
background in electronics. This availability of hardware is progressively
forcing robot enthusiasts to change their focus from building robots to
programming robots. As this emphasis on software grows, the number
of people interested in robotics will increase tremendously. This is
analogous to the boom that occurred in the personal computing industry
when people no longer had to design and build their own computers.
Just as talented programmers
shaped the personal computing
industry, the ever-increasing number
of robot programmers will carry
personal robotics to new levels as they
strive to create truly intelligent
machines. The artificial intelligence
(AI) algorithms needed for this
endeavor will be beyond the capability of the microcontrollers used in
robots because they lack adequate
memory for data and are severely
limited in mathematical and array
manipulation capabilities. Additionally,
the limited debugging features of
microcontrollers are not suitable for
large, complicated AI projects.
You could, of course, embed an
entire PC in your robot, but this has
many obvious disadvantages. This
article will explore an easy and
powerful solution that counteracts the
deficiencies mentioned above, as
well as provide possibilities for further
fascinating innovations.
58 SERVO 03.2008
The Solution
If you have a PC program that
communicates wirelessly with a robot’s
onboard microcontroller, you can
eliminate the need for the robot to
carry complex computing power. In
such a configuration, the PC would
provide all the intelligence. The robot’s
controller would simply receive
commands from the PC and execute
them without regard for why the
actions have been requested.
The hardware-control program
running on the robot can be very
simple or moderately complex based
on your needs. Even a complex
hardware-control program though,
can be handled by most microcontrollers. Let’s look at an example.
When the controller receives a
command from the PC to move
forward, it must actuate the motors
on the robot to do that. The actual
code implemented would depend
on the type of motors used by
your robot, as well as how they are
interfaced to the controller.
For simple applications, open-loop
control of the robot’s motors could
be very acceptable. If you need a
robot that can make precise
movements though, more complex
motor control routines might use
wheel encoders (or compasses and
other navigational devices) to ensure
that the requested motion has been
carried out accurately.
In addition to handling the
robot’s movement, the hardware-control program must also acquire
and send back sensory data as
needed or requested by the AI
program running on the PC. The PC
will use this sensory data to decide
how to accomplish the high-level
goals. To achieve all this, we will need
a suitable programming language
for programming the PC to act as the
AI controller.