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
   154   155   156   157   158   159   160   161   162   163   164