Page 98 - Designing Autonomous Mobile Robots : Inside the Mindo f an Intellegent Machine
P. 98
Communications and Control
the robot begins exhibiting strange behavior, it is essential for the programmer to be
able to determine which sensor or algorithm has induced the behavior, and to ac-
complish this without walking along behind the robot. Additionally, it is sometimes
necessary to trim the parameters of existing algorithms in order to adapt them to a
particular environment (more about this in my next flashback).
Support of system evolution
The second important requirement for the communication protocol is that it must
support the future evolution of the system. A commercial robotic system is like a
living organism; it must adapt to take advantage of the opportunities and meet chal-
lenges in its application environment. Customers will want the system customized to
accomplish things that were never envisioned during the design cycle. If doing this
requires a change of any sort in the protocol itself, then the result will be a system
that is not compatible with its siblings. When this happens, the various versions of
software metastasize, and support becomes almost impossible.
Coordination of other resources
In many environments, it is necessary for a mobile robot to control fixed resources.
For an indoor robot, these may include door openers and elevators. It is possible to
put special systems on the robot such as short range garage-door controllers, but
these solutions are often problematic because of the one-way nature of the control
and the limited channel capacity.
A better approach in many cases is to allow the base station to control these resour-
ces for the robot(s). It is therefore important that the protocol be flexible enough that it
support special flag exchanges to coordinate interfacing with these systems. The
exact nature of such coordination may vary from application to application, but if
the protocol is flexible this will not be a problem.
Rigid protocols and other really bad ideas
The most obvious (and common) solution to a protocol is to think of all of the
things you will want to tell a robot and all of the things you will want it to tell you,
and then simply to define a number of dedicated messages for exchanging this data.
Let’s consider the case of a simple remote controlled robot with differential drive.
Differential drive features one powered wheel on each side of the robot. When both
81

