Page 204 - Designing Autonomous Mobile Robots : Inside the Mindo f an Intellegent Machine
P. 204

Sensors, Navigation Agents and Arbitration

               robot’s position and/or heading estimate as discussed in the previous chapter. Some
               agents will be capable of updating all axes, while others will be able to correct only
               one or two.

               Simply because an agent can offer a correction to two or more axes does not mean that
               these corrections should always be accepted. It is quite possible for an agent to pro-
               vide a relatively high Q correction for one axis while offering an unacceptably low Q
               for another axis. In the previous chapter, we saw that the quality of a y correction
               from the column in Figure 10.11 was lower than that for its x correction. This was a
               result of the observational uncertainty induced by heading uncertainty. This brings
               us to the cardinal rule about agents.
               Navigation agents must never correct the position estimate themselves, but rather report any
               implied correction to an arbitrator along with details about the quality of the correction.

               There is another potential problem associated with multiple agents. If one agent re-
               ports a correction that is accepted, other agents must have a way of knowing that the
               position or heading estimate has been corrected. If an agent is unaware that a cor-
               rection was made while it was processing its own correction, the data it returns will
               be in error. There are two reasons for this: first, the data collected may be based on
               two different reference systems; and second, even if this is prevented the same basic
               correction might be made twice.
               There are several ways to contend with the problem of other agents causing the posi-
               tion estimate to be updated. One method is to provide a globally accessible fix count
               for each axis. When an axis is updated, that counter is incremented. The counters can
               roll over to prevent exceeding the bounds for their variable type. As an agent col-
               lects data to use for correcting the position estimate, it can read these counters to
               determine if a correction has been made that could invalidate its data.

               If an agent has been preempted in this way, either it can dump its data, or it can con-
               vert all its existing data by the amount of the preempting correction. A word of
               warning about converting data is in order—if data is converted repeatedly, rounding
               and digital integration may begin to degrade the collection significantly.


               Arbitration and competition among agents
               The code that activates, deactivates, and takes reports from agents is the arbitrator.
               The arbitrator may activate an agent as the result of references to navigation fea-
               tures as specified in a program, or as the result of an automatic behavior such as map





                                                       187
   199   200   201   202   203   204   205   206   207   208   209