KEEPING ONE PRINCIPAL OBJECT IN VIEW
Having found the road in the image, we must decide how to control the motors to
get and keep the vehicle on it. We evaluated a half-dozen approaches
experimentally with our vehicles and analytically. One approach, servoing to
keep the road image centered in the forward field of view, excelled in all the
measures, by such a margin that we feel it deserves to be considered a
fundamental navigational principle.
Let x represent the shortest distance between the center of our vehicle and the
centerline of a straight road. @G(q) is the angle between the heading of the
robot and the road direction, i.e. when @g(q) = 0 the robot is driving parallel
to the road. Suppose the vehicle travels at a constant scalar velocity v, and
control is achieved by superimposing a steering rate, d@g(q) / dt (where t is
time) on top of the forward motion. If there is no slippage, the following
kinematic relationship will hold.
dx / dt = -v sin @g(q)
(1)
The general problem for continuous road following is to find a steering
function F such that by setting d@g(q) / dt = F(x,@g(q)) the vehicle approaches
the road center. We tried several different kinds of function and noticed a
number of recurring problems. Estimating @g(q) and x from the image requires
both a precise calibration of the camera and accurate determination of the
position and orientation of the road edges in the image. Both are difficult to
achieve in practice, and the high noise level in these quantities made most of
our functions unstable. A second problem led directly to our solution. Our
other functions tended to cause the road image to drift out of the field of
view from time to time, ruining the vision step. The obvious solution was to
servo to keep the road image centered. Experimentally this approach was a
stunning success. Besides helping the vision, it seemed to be insensitive to
even large calibration errors and misestimates of the road parameters.
The theoretical analysis was remarkably sweet also, and bore out the empirical
observations. A first order analysis, where we assume the road image is kept
perfectly centered, gives the relation
x / r = sin @g(q)
(2)
where r is the distance in front of the robot where a ray through the camera
image center intersects the ground (i.e. the range at which we do our road
finding). r can be changed by raising or lowering the camera, changing its
tilt, or by using a different scanline as the center of the region in which
road edges are sought.
Equation (2) can be substituted into (1) to give
dx / dt = - v x / r
(3)
which can be solved directly, giving
-vt/r
x = x e
0
(4)
where x is the initial value of x when t = 0, so to first order the vehicle
0
approaches the centerline of the road exponentially with time.
A more detailed analysis considers the actual servo loop behavior. The
displacement of the road centerline image from the center of the forward field
of view is proportional to
( sin @g(q) - x / r ) / cos @g(q)
(5)
Servoing the steering rate on (5) sets
d@g(q) / dt = - g (sin @g(q) - x / r ) / cos @g(q)
(6)
where g is the servo loop gain. The full behavior of the robot can be found by
solving (1) with (6) simultaneously. These equations are made linear and
easily solvable by the substitution Q = sin @g(q), giving
dx / dt = -v Q
dQ / dt = - g ( Q - x / r )
(7)
By co-incidence or cosmic significance of all the servo functions we
considered, only this one yielded a fully general analytic solution.
The solution has three cases distinguished by the sign of the expression
g r - 4 v
(8)
In all cases the solution converges to x = 0, Q (and @g(q)) = 0 exponentially
with time. When g < 4v/r the convergence is a decaying oscillation - the
sluggish steering causes repeated overshoots of the road center. When g > 4v/r
the solution contains a second exponential, and the robot approaches the road
more slowly. When g = 4v/r, the critically damped case, we have the fastest
convergence and no overshoot, and the behaviour is given by the equations
-2vt/r
x = e ( vt (2x /r - Q ) + x )
0 0 0
(9)
-2vt/r
Q = e (2vt/r (2x /r - Q ) + Q )
0 0 0
(10)
The gain sets the turn rate required of the robot. Note that to retain the
critically damped situation while increasing v without changing g, it is
necessary only to increase r, i.e. arrange to have the vision look further
ahead.
The method is successful for several reasons. It keeps the road in view at all
times. Because the system always converges, errors in g or camera calibration
do not jeopardize performance. Because the parameter being servoed is the most
robust direct measurable, namely road position in the image, the noise problems
of the other approaches are almost totally eliminated. In particular, @g(q) (or
Q) and x though they occupy a central position in the theoretical analysis,
need never be calculated in the actual servo loop.