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

Communications and Control

               Improving communications efficiency

               There are many ways to improve communications efficiency. In many cases, you will
               want to have more than one slave computer on a link, and there may be more than
               one link in your system (as in Figure 6.5).


               Broadcasts

               In some cases, a host computer will want to convey the same general information to
               more than one of the slaves. For example, the mobile base in Figure 6.5 may wish to
               broadcast the current position and heading estimate to all the sensor systems. In this
               way, slaves can process navigation information in ways not possible if they did not
               know the current position data.
               The simplest way to perform a broadcast is to define a special message, and to have
               this message write into a special broadcast bulletin board in each of the slaves. This
               bulletin board can be a reserved block of memory, or an array of data. If communica-
               tions becomes particularly busy, broadcasts can be transmitted at longer intervals, as
               long as they are sent reasonably often (every second or so).

               The biggest problem with broadcast data such as position is that it is always out of
               date, and by varying amounts of time. In the case of position data, this can mean
               that any calculation made by the slave will be wrong because of this latency.
               There are two ways to minimize this latency. The first method is to provide the slave
               with a predictive modeling program that runs at an interrupt rate much faster than
               the update rate of the broadcast. This modeler simply updates the position estimate
               in the bulletin board on the assumption that the robot is still accelerating (in each
               axis) at the same rate it was when the broadcast was received. In this way, the bul-
               letin board values for the robot’s position are continually updated for any task that
               might need them.
               The second method of reducing broadcast data latency requires fewer system re-
               sources. This method involves time-stamping incoming broadcasts against a local
               time source, and provides a method or subroutine that is called in order to retrieve a
               current estimate of broadcast data. When the method is called, the program simply
               estimates the probable change for each axis since the data was received. This is sim-
               ilar to the first method, but the data is only refreshed as actually needed.








                                                        95
   107   108   109   110   111   112   113   114   115   116   117