This same mechanism can be used to explicitly display state information to the user, or to share information with its neighboring elements. Via the broadcast command channel, the master assigns -- and can dynamically reassign -- a specific representational meaning to each LED or combination of LEDs; coded modulation of the LEDs is not used to send serial messages. The system developer can program a light to indicate a specific boolean combination or sequence of behavior states in order to help understand an unexpected group behavior by, for example, "capturing" an unanticipated transient state. In a deployed system, each element may inform its neighbors of its own behavior state in order to more effectively coordinate the behavior of the local group (Wang [WANG94] refers to this as "signboard" communication, and similar schemes have been explored in simulation by Arkin et al [ARK93] and Lucarini et al [LUCA93]). When a low cost "early warning" sentry robot detects an intruder, it can signal that fact to attract the attention of a more capable and expensive "assessment and response" robot (analogous to the action of antibodies and phages in the immune system).
During development, one light is used for error signalling. A hardware timer turns the red LED on if the robot's software fails to send its periodic timer reset. The software can also be programmed to turn the same LED on (continuously or flashing) if it fails to receive the "keep-alive" message periodically sent by the master, thus providing the highly desirable "please tell me if you don't receive this message" function, and allowing the culling of failed units. The LEDs are memory mapped, with the additional timing hardware for the error LED being transparent to the programmer (who can of course read the value of the variable to determine if the timer has in fact timed out and turned on the LED).
A key benefit of using a display mechanism such as colored lights which can be directly imaged with a camera is the potential for automatic aggregation and display of status and reporting information at the master. Instead of the master having to process an endless torrent of digital messages containing state information, maintaining a database containing each element's position and status, and repeatedly updating a display, the master can, if the geometry of the situation permits, simply program a rapid sequence of display light assignments and use simple image processing to derive the desired information. The human user of a sentry system deployed in and around around a storage yard could use a camera mounted on a mast or aerostat to visually see where the robots are and what they "think" is happening. On a smaller scale, the elements of a distributed instrumentation system could be glued to the side of a piece of equipment and a camera set up to provide a continuous display of thermal, acoustic, or other parameters. And microsopic sized sensing elements programmed to change their optical characteristics in response to their chemical and/or physical environment could be suspended in a container of liquid to provide "in-situ visualization" of temperature, pH, or salinity.
The task of node activation must also be accommodated in the system development process. Since the developer will often prefer to turn nodes on and off without having to perform physical rituals such as pouring water on them, the command structure should provide message types to support this. A node in sleeping state plays possum while waiting for a WAKE command. A frozen state permits the developer to halt the node's execution of its mission program to provide an opportunity to examine its internal state.
Up to Many Robot Systems
Please address all questions and comments to: robo-web@spawar.navy.mil
Last update: 1 December 1998.