Moravian College student and
roboticist Wesley Moser (class
of ‘08) built a robot that
could trace its steps and map them out
on a computer screen, albeit with a lot
of help from Moser’s own software,
which he programmed using multiple
languages.

The robot was the result of
Moser’s Student Opportunity for
Academic Research (SOAR) project at
Moravian. Ben Coleman, assistant
professor of computer science at the
academic institution, guided Moser.

The robot uses a variety of sensors
to traverse the boundaries of its given
landscape; in this case, a box. Along
with the ability to avoid obstacles —
without which it would be quite clumsy
— its sensors and computer technology
enable it to record where it has been.

The robot then distributes the
information to a computer, which draws

a line duplicating the robot’s path.

Mapping and
Maneuvering the
Robot’s Intelligence

This is a front and side angle view of
the fully assembled robot.

Technically, the robot itself doesn’t
actually know where it has been,
according to Moser. As the robot rolls
around inside its little playpen, it
keeps a heading. Every few parts of a
second, it sends its heading back to a
computer (laptop).

The heading is simply information
about whether it is turning or not and
in which direction, according to Moser.
Along with the heading, the robot
returns its recent sensor readings and
gives the computer the exact time
since its last update, Moser explains.

The computer then compiles all of
these readings in real-time and
generates a single-line mapping
of where the robot has been. “In
this case, the robot is really the
‘explorer’ and the laptop has to
do all the work of knowing where
the robot was,” continues Moser.

The robot houses its
intelligence in a Handy Board. The
Handy Board consists of a
Motorola MC68HC11 processor,
32K of RAM, and a variety of sensor inputs. It also supports four
motors. Despite its comparably
slow clock speed, the 2 MHz
processor was just speedy enough
to shoulder all the responsibilities

Moser had developed for it. “We were
coming up on its limit when trying to
send data to the computer, collect data
readings, and determine the next
heading all at once,” Moser notes.

Moser used a programming
language called Interactive-C to enable
the robot’s ‘cranium’ so it could ‘think.’
Through this programming, the robot
could complete tasks like polling
sensors for data, controlling its motors,
and doing direct access calls to the
on-board RAM.

Moser first programmed the robot
with a path-finding ability, with both the
robot and sonar facing straight ahead.
But he quickly discovered that the robot
collided with walls when approaching
them from an angle. Moser needed the
robot to be able to see obstacles from all
sides, and so he added a servo to turn
the sonar side to side. Still, the robot
crashed into walls, so Moser added
infrared sensors so the robot could sense
when it was too close to the walls of its
box, whether the sonar agreed or not!

Once Moser had decided to save
the robot’s path and record it, he realized he had to do more programming.
“I added some programming routines
to get the robot to remember what it
had done, but the robot only had
enough memory to remember the
previous 30 seconds,” Moser says.

Moser had to clear that memory
and move that data off the robot to
another computer to make room for
each new wave of information. While
Moser considered a wireless link to