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

