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
   93   94   95   96   97   98   99   100   101   102   103