Page 159 - Designing Autonomous Mobile Robots : Inside the Mindo f an Intellegent Machine
P. 159
Chapter 10
If a robot is attempting to turn in place on a loose throw rug, the error may be worse
than on a tile floor. Generally, the platform component of heading uncertainty for
steering can be calculated by simply multiplying the cumulative magnitude of a turning
action by an error factor (in units of degrees of error per degree of turning). It is
desirable that this factor be readily changed by the robot. It may be changed in the
initialization sequence, a path program, or a learning program of the platform as neces-
sary. These error factors are a prime example of a good use of blackboard variables.
If the mobile platform has a steering encoder that causes tick interrupts, the calcula-
tion becomes nothing more than adding the error factor to the accumulated
uncertainty in a register.
If the mobile platform does not have an interrupt for steering, then it is necessary to
do this calculation during the drive interrupts. This can be done by noting the amount
that the steering angle has changed since the previous interrupt. This calculation
must be done before the lateral uncertainty can be calculated.
Similarly, the heading uncertainty generated by driving is a factor of the distance
moved. Every time the odometry advances the robot’s position estimate by one tick,
it can add an appropriate amount to the heading uncertainty accumulator.
Generally, the error factors are quite small numbers, so it is convenient for the
uncertainty accumulator to be two or more words. The incremental increases are
then added to the lower word with carry to the higher register(s). The higher
register(s) are the only ones accessed by consuming tasks. In this way, the math for
these calculations can stay in integers and therefore execute very fast.
Heading errors related to driving, and thus uncertainty, are generally symmetric.
Turning errors are, however, not generally symmetric. A turn is much more likely to
come up short than long. The ideal model would take this into account, but very
decent performance can be accomplished by treating the uncertainty as if it were
symmetric by using its worst case factor.
Note that while we are performing uncertainty calculations using simple multiplica-
tion and addition, the effect of doing this iteratively is to produce the integral of
these functions.
Longitudinal uncertainty
Longitudinal error accumulates primarily from slippage, wheel wear, and improper
tire inflation. There are again two elements to be taken into account: errors from
142

