The robot control architectures can be developed as 3 interacting layers. The behavior level interacts with the physical world. The planning layer is used for defining how to achieve goals. The executable layer connects these two layers issuing commands to the behavior level which are results of the plans and passing sensory data taken from the behavior level to the planning layer to enable planning reactive to the real world. So the executive layer is responsible for expanding abstract goals into low level commands, executing them and handling exceptions.
The main motivation behind developing Task Description Language (TDL) is that using conventional programming languages for defining such task-level control functions result in highly non-linear code which is also difficult to understand, debug and maintain. TDL extends C++ with a syntactic support for task-level control. A compiler is available to translate TDL code into C++ code that will use the Task Control Management (TCM) libraries.
The basic data type of TDL is the task tree. The leaves of a task tree are generally commands which will perform some physical action in the world. Other types of the node are goals, representing higher level tasks, monitors and exceptions. An action associated with such nodes can perform computations, and change the structure of the task tree. The nodes of a task tree can be executed sequentially or in parallel. It is also possible to expand a sub-tree but wait for some synchronization constraints to hold before beginning executing it.
No comments:
Post a Comment