Robocar: Unmanned Ground Robotics

University of Colorado students are using Linux to control their robotic cars in a race with vehicles from around the world.

Actuators

Every robot relies on actuators to act upon its world.
Robocar has three of these:

Steering control is provided via a CAN-AMP. The
steering CAN-AMP is one of three nodes on our CAN (Controller Area
Network). The other two are an encoder wheel and the CAN-PC
controller card. Servo behavior can be completely controlled; for
example, we can tell it to turn a certain distance within a certain
period of time and to decelerate gently before it gets there. Two
years ago, we used one of these to turn a single camera rapidly
from side to side without damage, because of the great number and
flexibility of the parameters to the CAN servo.

Motor control is achieved through pulse width
modulation (PWM) from a computer to two DC drive motors. These 24
volt motors are extremely powerful and have great torque. One
afternoon, we took turns riding on the car, and the motors easily
pulled the car and a heavy (185 pound) human passenger up a steep
hill. We generate a PWM signal from two cascading counter/timers
that receive the same clock signal. The first is set up to
periodically generate a rising edge on its output and determines
the frequency of the PWM signal. The period of the signal does not
change. The output of the first counter/timer is connected to the
gate on the second counter/timer. The second counter/timer
determines the duty cycle of the PWM signal. A short count on this
timer maps to a longer fraction of the PWM period that is high and,
thus, to more power being sent to the motor.

Shadow-reducing head lamps are switched with a
computer-controlled relay. These lights improve the vision sensors'
ability to spot the course boundaries.

To perceive its environment, Robocar needs sensors. We have
given it cameras for detecting the track boundary lines painted in
the grass, a scanning sonar for obstacle avoidance and an encoder
wheel for speed detection. Robocar has some additional sensors for
side projects which are not used during the competition.

Vision is supplied from two standard video cameras fed
through two Matrox Meteor frame grabbers. We have two different
Matrox cards: the Meteor and the Meteor/RGB. Both can read from
multiple cameras and grab high-resolution 24-bit color images. The
only difference is that the Meteor/RGB can grab frames from a
split-RGB source, whereas the regular Meteor cannot. Even though we
could plug two cameras into a single Meteor board, we are using two
boards to get 30 frames per second per camera. Matrox's Meteor
boards are inexpensive, reliable and well supported.

A single Panasonic sonar sensor mounted on top of a Futaba RC
servo acts as an obstacle detection device. It scans the area in
front of the car, rotating back and forth to cover a wider area.
Using a single sonar has the advantage of removing any possibility
of cross-talk and of being able to look in any direction. Using
multiple statically-mounted sonar sensors would not give us this
much flexibility. The Futaba servo, like the drive motors of the
vehicle, is controlled using PWM.

An encoder wheel returns data to a speed sensor indicating
how far it has turned. Since we know the diameter of the wheel, we
know how far it has turned since last we checked. Thus, this sensor
can compute our average speed during that time. The sensor's
interface to the encoder wheel is through a CAN-PC board on our
main computer. Robocar uses this sensor to ensure that it stays
under the 5 MPH speed limit.

In addition to being a competition vehicle, Robocar acts as a
test bed for Kevin Gifford's Ph.D. thesis, which is to develop an
efficient navigation algorithm for (possibly off-world) autonomous
rovers. An additional set of sensors has been added for this
option: a GPS sensor and a “map” sensor. Using these, Robocar
always knows exactly where it is and where it wishes to go; it can
also plan the cheapest way of getting there.

The Trimble Series 4000 uses differential GPS and can make
extremely accurate measurements—+ or - 10 centimeters—compared to
normal civilian GPS. It comes with a base station, a receiver and
radio modems. GPS information is supplied over a serial
line.

During Kevin's research, Robocar knows about its environment
by using a map sensor in addition to the competition and GPS
sensors. The map sensor is basically a topological map of the
research field. With this knowledge, Robocar can calculate the most
efficient path to a set of destination coordinates.

In addition to the above sensors, we have a joystick for
manually driving Robocar to and from the course (or around the test
field just for fun). Without this, we would have to push or carry
the heavy beast around—something we prefer to avoid. The joystick
is plugged into a generic sound card on our main machine.