FIGURE 5. Super Carrier Board populated and installed.
• Calculate desired heading based on target position
vs. current position.
• Obtain current heading from compass module.
• Calculate course correction based on desired heading
vs. current heading.
• Determine if waypoint has been reached (and is last).
• Adjust course and speed of motor drive as needed to
This loop will continue until the robot reaches its goal
or the batteries die. As mentioned before, eventually other
sensor data (such as from the sonar) will be factored into
the equations to avoid obstacles, as well. For this article,
let’s assume it’s a clear path (since mine was).
The first task is to obtain the coordinates of the current
position. These coordinates are used along with the target
coordinates to calculate the desired heading. In Part 1, this
was done using Pythagorean Theorem. You can also get
FIGURE 7. Top plate installed.
40 SERVO 04.2010
FIGURE 6. Top plate assembly.
the distance to target in this section using one more
calculation. Next, we want to obtain the current heading
from the compass module and compare it to our desired
heading; any course corrections are then applied. At this
point, the specifics of the motor drive system determine
how best to handle the minor and major adjustments in
course correction. On this robot, the skid steering makes
any angle corrections easy since the robot can easily turn in
Taking the Robot
for a Stroll
The initial results were quite promising from the first
few runs; you can see video footage of the robot running
the program by visiting the project page listed in the
sidebar or on the SERVO website at www.servo
magazine.com. The only real issues were related to the
weather which did somewhat impair GPS reception at a
few points. If and when the GPS signal becomes invalid, the
robot is programmed to stop in place and await a valid fix.
FIGURE 8. Ready for programming.