Curiosity
and the
Self-Driving Car
by Paul Bouchier and Jason Henriksen
In June 2012, the Dallas
Personal Robotics Group
(DPRG) announced that its fall
Roborama contest would be a
400 foot racetrack-style course,
held outdoors with rough
terrain. The course was not
precisely specified, but it would
have a hairpin turn, left and
right turns, and its edges
would be marked with small
red flags.
FIGURE 1. jRover (labled).
The sexiest robots today are the Mars rovers — Curiosity and Spirit — and the Google self-driving car. We thought, “Why not mash-up those ideas and see
if we could build a robot that could navigate the Roborama
course?” Our robot needed to be large enough to stably
carry a laptop while traversing rocky ground, yet small
enough for a person to pick up and carry. VEX Robotics’
line of metal and motors were scaled about right for the
job. If we added lane-following technology from self-driving
cars to keep the robot centered between the course
markers, we thought we might have a competitive entry.
You can’t just buy a lane-tracking vision system off the
shelf. However, you can get ROS — the Robot Operating
System — which includes opencv and other vision packages.
We were able to easily build a lane-tracking vision system
using freely available packages. (You can too if you use the
packages and source code provided.)
62 SERVO 06.2013
System Design
Flexibility was a key design goal. We wanted our robot
— named jRover — to be a long-lived platform for indoor
and outdoor missions. We decided jRover should be self-contained — it should not rely on an external computer.
That meant it had to carry a laptop to run Linux and ROS.
Using a camera and vision software as the primary
navigation subsystem maximized responsiveness to the
unknowns in the environment.
We also wanted several fallback strategies for the
contest in case the lane-following idea didn’t work. These
included having the robot use ultrasonics or vision to follow
someone who walked the course. Accordingly, we equipped
it with a range of sensors.
The motors and ultrasonic ranging sensors were wired
to a VEXPro robot controller which communicated with the