5.0 GENERIC SHELL

It is clear from the foregoing discussion that there are many differences between nodes at different levels of the 4D/RCS architecture as well as between different units within the organization. There are differences in the nature of the data, the range and resolution of space and time, the scope of planning, and the level of detail in plans and actions. There are differences in responsibilities, and in the kinds of knowledge, skills, and abilities. But, there are also many features of 4D/RCS nodes that are common between nodes at all levels and in all organizational units. For example, all nodes function as augmented state-machines. When triggered, they read their inputs, compute a set of functions, make decisions, write outputs, and wait for the next trigger. When triggered, all nodes run to completion and wait until the next trigger. All nodes can have built-in diagnostics that describe their current state, their current inputs, outputs, and a trace of recent history. All nodes can keep statistics regarding execution time and other parameters.

This commonality suggests that a Generic Shell might be constructed that could serve as a software development tool as well as serve as a basis for debugging and diagnostic procedures. Figure 43 shows an example of a Generic Shell for Behavior Generation at the Servo level for the Velocity Subsystem. Commands to the Servo level indicate the desired acceleration and yaw rate to be achieved 50 ms in the future. The Job Assignor decomposes this task into a commanded position for the steering wheel actuator, a commanded brake pedal force, a commanded throttle position, and a commanded gear shift setting - all to be achieved 50 milliseconds in the future. For each actuator, a Scheduler generates a schedule of planned actions and planned states over the 50 ms interval. Selected job plans are placed in a plan data structure in the Executor where they are accessed by a plan sequencer. On each cycle of the controller, each executor selects a planned action and a desired resulting state from its respective plan (stored as a state table). The planned action is sent to the control law as a feed forward action. Simultaneously, the desired resulting state is compared with the feedback predicted state from the world model. The difference between the feedback predicted state and the planned state is a feedback error that is also sent to the control law where compensation is computed and added to the feed forward planned action.

Figure 43. An example of the 4D/RCS Generic Shell for behavior generation at the Servo level.

A generic shell for behavior generation makes it relatively easy to program at this level of complexity. The generic shell provides the timing and communication functions and allows the system designer to think in terms of planning and control algorithms rather than C++ code constructs. A number of software engineering tools have been developed for constructing generic shell modules. These range in degree of formality from C++ templates to Unified Modeling Language (UML) and Architectural Description Languages (ADL) [Huang et al 01] [Messina et al 00] [Dabrowski 1999]. A tool developed by John Horst at NIST uses Control Shell [Horst 00]. Another tool developed by Will Shackleford at NIST is written in Java. [Gazi01] Additional tools are being developed at Ohio State University using a LabView front end, [Gazi01] and by Pathway Technologies using MatLab as a front end [Anathakrishnan02]9

Figure 44 shows the organizational structure for behavior generation generic shells at the Primitive (Prim) and Subsystem levels integrated with those at the Servo level. The Driving Subsystem at the Subsystem level is decomposed into the Camera Subsystem and the Vehicle Subsystem at the Prim level, and into the Pan/Tilt Subsystem and the Velocity Subsystem at the Servo level. The Servo planner looks ahead 50 ms in the plan generated by the Prim level. The Prim planner looks ahead 500 ms in the plan generated by the Subsystem level. The Subsystem level planner looks ahead 5 seconds in the plan generated by the Vehicle level. At each level, the planner always looks ahead at least to its own planning horizon in the higher level plan.

Figure 44. Generic shell BG modules at the Subsystem, Primitive, and Servo levels.


9 Commercial equipment and materials are identified in order to adequately specify certain procedures. In no case does such identification imply recommendation or endorsement by the National Institute of Standards and Technology, nor does it imply that the materials or equipment identified are necessarily the best available for the purpose.