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

Chapter 1

            keyword here is “virtually,” since the permutations of stimuli and reactions become
            too convolved for prediction through even the most enlightened observation.
            When we truly begin to grasp this fact, the whole process of programming autono-
            mous systems takes on an almost metaphysical dimension. Input data can no longer
            be processed at face value, but must be filtered in relation to other data, and accord-
            ing to experiences of the recent past. In the process of doing this, we begin to see
            our own human behavior in a new light. Fear and caution, for example, begin to
            look like excellent control modification mechanisms, and not merely human
            emotions.
            Given the complexity of the task ahead, we must plan our approach carefully. The
            second most frustrating phase of any complex project is determining the architecture
            to be used. The first most frustrating phase is realizing after months of trying to
            implement a flawed architecture that it has degenerated into a mass of patches and
            expedients, that it has lost any semblance of elegance, and that it will have to be
            razed to the ground and rebuilt.
            While developing our architecture, we try to think of all the various capabilities we
            will need and vaguely how they will be performed in hardware and software, and
            then envision a structure that can be used to tie them together. We then think of
            things that could go wrong, and challenge our ephemeral structure. This often causes
            the rickety conceptual framework to crash to the ground, but each time it does so
            we build anew with more robust geometries. Often a vicious circle of reasoning will
            be encountered which repeatedly flips us from one approach to another, only to be
            pushed back again by complex considerations, but with single-minded persistence
            our architecture will eventually emerge.

            I will warn of as many traps as I can, but others you will have to find yourself. Just
            remember that you always need a “Plan B.” That is, you must always keep in mind
            how you will adapt your approach if one or more elements prove flawed.

            Rule-based systems, state-driven systems, and other potential tar pits

            To some extent, rule-based systems and state-driven systems are simply opposite
            sides of the same coin. In its simplest form, a state-driven system attempts to provide
            a discrete block of instructions (rules) that define the machine’s reaction to its
            inputs for a given state or circumstance. It is almost inevitable that any architecture
            will have elements of such a structure, but appropriately defining the states is the key.






                                                     4
   16   17   18   19   20   21   22   23   24   25   26